Ferramentas do usuário

Ferramentas do site


prog2:funcoes

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
prog2:funcoes [2019/04/09 13:32]
maziero
prog2:funcoes [2019/08/26 16:51] (atual)
maziero
Linha 24: Linha 24:
  
   if (n<​=1) //​ por definição   if (n<​=1) //​ por definição
-    ​return (1+    ​fat = 1 ; 
- +  else 
-  fat = 1 ; +  ​
-  for (i=2; i<=n; i++) +    ​fat = 1 ; 
-    fat *= i ;+    for (i=2; i<=n; i++) 
 +      fat *= i ; 
 +  }
  
   return (fat) ;   return (fat) ;
Linha 45: Linha 47:
 long fatorial (int n) long fatorial (int n)
 { {
 +  long fat ;
 +  ​
   if (n<=1)   if (n<=1)
-    ​return ​1 ; +    ​fat = 1 ; 
- +  ​else 
-  ​return ​n * fatorial (n-1) ;+    fat = n * fatorial (n-1) 
 +   
 +  return fat ;
 } }
 </​code>​ </​code>​
Linha 238: Linha 244:
   clean_mat (lin, col, mat) ;   clean_mat (lin, col, mat) ;
   ...   ...
 +}
 +</​code>​
 +
 +===== Uso do return =====
 +
 +A estrutura "​ortodoxa"​ de código com a chamada a ''​return''​ somente no final da função pode levar a um código longo e cansativo de ler (e de programar). O exemplo a seguir apresenta uma função que compara dois inteiros e retorna -1 (se ''​a<​b''​),​ 0 (se ''​a=b''​) ou +1 (se ''​a>​b''​):​
 +
 +<code c>
 +int compara (int a, int b)
 +{
 +  int result ;
 +
 +  if (a<b)
 +    result = -1 ;
 +  else
 +    if (a>b)
 +      result = 1 ;
 +    else
 +      result = 0 ;
 +
 +  return result ;  ​
 +}
 +</​code>​
 +
 +Entretanto, é possível sair da função invocando ''​return''​ a qualquer instante, levando a um código mais conciso e fácil de ler:
 +
 +<code c>
 +int compara (int a, int b)
 +{
 +  if (a<b) return -1 ;
 +  if (a>b) return ​ 1 ;
 +  return 0 ;  ​
 } }
 </​code>​ </​code>​
Linha 249: Linha 287:
     - retornar o maior valor em um vetor de inteiros.     - retornar o maior valor em um vetor de inteiros.
   - Escrever um programa em C para somar dois vetores de inteiros. Crie funções separadas para a) ler um vetor; b) somar dois vetores; c) imprimir um vetor.   - Escrever um programa em C para somar dois vetores de inteiros. Crie funções separadas para a) ler um vetor; b) somar dois vetores; c) imprimir um vetor.
-  - Escreva ​sua própria versão das funções ​de manipulação de strings ​''​strlen''​''​strcpy'' ​''​strcat''​. ​Depoiscompare o desempenho de sua implementação em relação às funções ​originais da LibC (sugestãomeça o tempo necessário para ativar cada função um milhão ​de vezes).+  - Escreva ​um programa para ordenação ​de vetores, com as seguintes funções:​ 
 +    * ''​le_vetor(vetor,​ N)''​: ler um número N e um vetor de N inteiros; 
 +    * ''​ordena_vetor(vetor,​ N)''​: ordenar o vetor lido usando a técnica de **ordenação da bolha**; 
 +    * ''​escreve_vetor(vetor,​ N)''​: imprimir os elementos de um vetor com N elementos. 
 +  - Escreva um programa para transpor matrizescom as seguintes ​funções
 +    * ''​le_matriz(matriz, M, N)''​ler uma matriz ​de MxN inteiros; 
 +    * ''​transpoe_matriz(matriz,​ M, N)'':​ transpor uma matriz; 
 +    * ''​escreve_matriz(matriz,​ M, N)'':​ imprimir uma matriz.
  
prog2/funcoes.1554827570.txt.gz · Última modificação: 2019/04/09 13:32 por maziero