Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sumrio
Definio
Comando return
Exemplo
Passagem de parmetros
Exerccios
Bibliografia
Definio
Definio
O tipo de uma funo definido pelo tipo de valor que ela retorna
meio do comando return;
Comando return
Comando return
F u n e s d o tip o vo id po de m te r u m co m a n d o re
desacompanhado de expresso. Nesse caso, o comando re
serve para terminar a execuo da funo;
Um valor retornado por uma funo pode ser atribudo a uma var
ou fazer parte de alguma expresso. (Ex.: c = celsius(f)).
Sintaxe
Tipo
o tipo de valor que
return devolve;
Pode ser qualquer tipo vlido (int, float, ...);
retorno inteiro;
S se pode devolver um nico valor.
Para
Sintaxe
Parmetros
uma lista de variveis com seus respectivos tipos,
parnteses so necessrios;
Os parmetros devem ser informados por quem utilizar a
funo;
Exemplo
Exemplo 1
#include <stdio.h>
float celsius( float fahr ) {
return (fahr 32) * 5.0/9.0;
}
int main() {
float fahr;
printf("Informe a temperatura em Fahrenheit:
); "
scanf("%f", &fahr);
printf("A temperatura em Celsius e' ,%f"
celsius( fahr ) );
}
Exemplo
Exemplo 2
#include <stdio.h>
int segundos ( int h, int m, int s );
int main() {
int hora, min, seg, segs;
printf("Digite a hora (hora:min:seg): ");
scanf("%d:%d:%d", &hora, &min, &seg);
segs = segundos(hora, min, seg);
printf("A hora em segundos e' %d", segs );
}
int segundos ( int h, int m, int s ) {
return (h*3600 + m*60 + s);
}
Exemplo
Exemplo 3
#include <stdio.h>
int fatorial(int n) {
int i, fat = 1;
for ( i = n; i > 1; i( -fat = fat * i;
return fat;
}
int main() {
int num;
printf("Digite um nmero: ");
scanf("%d", &num);
printf("Fatorial de %d = %d", num, fatorial(num));
}
Passagem de parmetros
Passagem de parmetros
Existem duas maneiras de se passar parmetros:
Por valor;
Por referncia.
Passagem de parmetros
Passagem de parmetros
Passagem de parmetros por valor:
Os dados so copiados para a varivel da funo;
Passagem de parmetros
Passagem de parmetros
Passagem de parmetros por valor:
Exemplo:
int quad(int a){
a = a*a;
return a;
}
int main(){
int n = 10;
printf(''a*a = %d, a = %d'', quad(n), n);
}
Passagem de parmetros
Passagem de parmetros
Passagem de parmetros por referncia:
O endereo de uma varivel copiado;
passou a informao.
Passagem de parmetros
Passagem de parmetros
Passagem de parmetros por referncia:
Exemplo:
Exerccios
1. Escreva um programa que solicite dois nmeros reais e imprima o
maior deles. Use uma funo que faa a comparao dos dois nmeros
e retorne o maior deles.
2. Um nmero primo qualquer inteiro positivo que divsivel apenas
por si prprio e por 1. Escreva uma funo que receba um inteiro positivo
e, se este nmero for primo, retorna 1, caso contrrio, retorna 0. Em
seguida, implemente um programa que testa a funo criada.
3. Escreva uma funo que recebe um inteiro positivo e retorna o nsimo elemento da srie de Fibonacci. A srie de Fibonacci dada por 1,
1, 2, 3, 5, 8, 13,...Em seguida, teste a funo.
Exerccios
4. Escreva uma funo que receba o ano como argumento e retorne 1 se
for um ano bissexto e 0 se no for. Um ano bissexto se for divisvel por
4, mas no por 100. Um ano tambm bissexto se for divisvel por 400.
Escreva um programa que teste a sua funo.
5. Gregoriana para Juliana: Dados dia, ms e ano de uma data
gregoriana, escreva uma funo que converta essa data para a data
juliana correspondente. Utilize a seguinte frmula:
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
Exerccios
6. Dia da Semana: Escreva uma funo que receba dia, ms e ano e
calcule o dia da semana em que caiu essa data. Para isso, basta
transformar a data gregoriana em juliana (utilize a funo escrita no
exerccio anterior) e calcular o resto da diviso da data juliana por 7. A
funo dever retornar um nmero entre 0 e 6, indicando os seguintes
resultados:
0 Segunda-feira
1 Tera-feira
2 Quarta-feira
3 Quinta-feira
4 Sexta-feita
5 Sbado
6 Domingo
Exerccios
7 . Um nmero perfeito se ele igual soma de seus divisores
menores do que ele prprio. Assim, por exemplo, 6 perfeito, pois 6 = 1
+ 2 + 3.
a) Escreva uma funo iterativa denominada EhPerfeito(), que retorne 1
se o inteiro positivo recebido como argumento seja perfeito e 0 em caso
contrrio;
b) Escreva um programa que receba um nmero inteiro maior do que ou
igual a zero como entrada e imprima se o nmero perfeito ou no. O
programa deve terminar quando o usurio introduzir o valor 0
Bibliografia
Treinamento em linguagem C Victorine Viviane Mizrahi 2 Edio
2008 Captulo 5.