Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 COMPUTAÇÃO II -‐ Aula 3 7. Funções -‐ Uma função é um conjunto de instruções desenhadas para cumprir uma tarefa particular e agrupadas numa unidade com um nome para referenciá-‐la -‐ Funções dividem grandes tarefas de computação em tarefas menores, e permitem às pessoas trabalharem sobre o que outras já fizeram, em vez de partir do nada. Uma das principais razões para escrever funções é permitir que todos os outros programadores C a utilizem em seus programas -‐ Já usamos diversas funções, tais como: printf(), scanf(), pow(). E a principal: main() -‐ Exemplo 1: Função que soma dois números inteiros e retorna essa soma int soma(int a, int b) { int c; c = a + b; return c; } Vamos colocar agora essa função dentro de um programa: #include <stdio.h> #include <conio.h> int soma(int a, int b) { int c; c = a + b; return c; } main() { int x,y, resultado; printf("Primeiro numero: "); scanf("%d", &x); printf("Segundo numero: "); scanf("%d", &y); resultado = soma(x,y); // chamada à função printf("Soma: %d", resultado); getch(); } -‐ Exemplo 2: função que converte temperaturas (graus Fahrenheit em graus Celsius) #include <stdio.h> #include <stdlib.h> int main() { float celsius(float); //protótipo ou declaração da função float c, f; printf(“Digite a temperature em graus Fahrenheit: ”); scanf(“%f”,&f); c = celsius(f); printf(“Celsius = %.2f\n”,c); system(“PAUSE”); return 0; } float celsius(float fahr) { float c; c = (fahr – 32.0)*5.0/9.0; return c; } -‐ Obs.: Podemos ter protótipo local, como o acima, ou protótipo externo, bastando coloca-‐lo após as bibliotecas e antes do main -‐ Poderíamos melhorar a função: float celsius(float fahr) { 2 return (fahr – 32.0)*5.0/9.0; } -‐ Matrizes podem ser passadas como argumento de funções. Como são um tipo de dados bastante grande, existe apenas uma única cópia da matriz na memória, sendo irrelevante o número de funções que a acessem. Quando o nome de uma matriz é passado para uma função, utiliza-‐se na verdade o endereço dos elementos da matriz original, ou seja, as alterações que a função efetuar nos elementos da matriz afetarão a matriz original (passagem por referência). Exemplo: #include <stdio.h> #include <stdlib.h> #define TAMANHO 50 void ordena(int[], int); // protótipo int main() { int tab[TAMANHO], i, j; for(i=0; i<TAMANHO; i++) { printf(“Digite número ou zero para terminar: ”); scanf(“%d”, &tab[i]); if (! tab[i]) break; } ordena(tab,i); for (j=0; j<i; j++) printf(“%d\n”, tab[j]); system(“PAUSE”); return 0; } void ordena(int lista[], int tamanho) { int i,j, temp; for (i=0; i < tamanho -‐ 1; i++) for (j=i+1; j<tamanho; j++) if (lista[i] > lista[j]) { temp = lista[j]; lista[j] = lista[i]; lista[i] = temp; } } Um exemplo de execução do programa: Digite número ou zero para terminar: 46 Digite número ou zero para terminar: 25 Digite número ou zero para terminar: 73 Digite número ou zero para terminar: 0 25 46 73 -‐ Exercício 1: Função que calcula a média de três números reais e retorna essa média -‐ Exercício 2: Crie uma função que receba um número inteiro como argumento e retorne seu valor absoluto. Em seguida faça um programa que a utilize. -‐ Exercício 3: Crie uma função que calcule o fatorial de um número. Em seguida, faça um programa que peça um número inteiro e calcule seu fatorial através da função criada. -‐ Exercício 4a: Escreva uma função que, dados dia, mês e ano de uma data gregoriana, converta essa data para a data juliana correspondente. Utilize a seguinte fórmula: Data Juliana = (1461 * (ano + 4800 + (mes – 14)/12))/4 + (367 * (mes – 2 – 12 * ((mes – 14)/12)))/12 – (3 * ((ano + 4900 + (mes – 14)/12)/100))/4 + dia – 32075 -‐ Exercício 4b: Escreva uma função que receba dia, mês e ano e calcule o dia da semana em que caiu essa data. Para isso, basta transformar a data gregoriana em juliana (exercício anterior) e calcular o resto da divisão da data juliana por 7.A função deverá retornar um número entre 0 e 6, indicando os seguintes resultados: 0 – segunda; 1 – terça; 2 – quarta; 3 – quinta; 4 – sexta; 5 – sábado; 6 – domingo.
Compartilhar