Академический Документы
Профессиональный Документы
Культура Документы
int main(){
funcao2
funcao3
……..
int main(){
……..
return 0} return 0}
Programa sem estruturação Programa estruturado
Troca de funcao3
informação
entre os
módulos int main(){
Parâmetros: ……..
permitem comunicação entre os
“mundos” (interno e externo), de
uma função, possibilitando que seja return 0}
executada no processamento de Programa estruturado
diferentes valores
5 INF 01202 - Prof. Marcelo Walter – Aula 17
Exemplo: função que calcula média aritmética de 3
números float e apresenta na tela
• Informaremos os 3
void calcula_media(……????........)
números que irão
{ compor a média, via
parâmetros para a
função
}
• Parâmetros
definidos dentro
dos parêntesis que
seguem o nome da
função
void calcula_media(float n1, float n2, float n3){
}
6 INF 01202 - Prof. Marcelo Walter – Aula 17
Exemplo de função void com parâmetros
float m;
m = (n1 + n2 + n3 ) / 3;
int main()
{
float a,b,c;
return 0;
}
Aqui não vai float… apenas as variáveis
Pela correspondência com o protótipo:
a->n1, b->n2, c->n3
8 INF 01202 - Prof. Marcelo Walter – Aula 17
Função void com parâmetro: outro exemplo
Problema:
• Como melhorar a função escreve_linha (desenvolvida em aula
anterior) na impressão de linhas contendo diferentes número de
qualquer caractere?
– n e c são recebidos pela função: parâmetros!
Solução:
– obtém caractere
– obtém nro_vezes
– para (i=1, enquanto i <= nro_vezes, incrementa 1 em i)
imprime caractere
– quebra a linha
/*
Exemplo de funcao void com parametro. Impressao de um
caractere c por n vezes
Entradas: caractere a ser impresso e numero de vezes
Saidas: Impressao na tela
*/
#include<stdio.h>
#... //outros includes
void escreve_linha (char caract, int num_vezes)
{ // preenche linha com num_vezes caract
int i; // variável local
for (i=1;i<=num_vezes;i++)
printf(“%c“, caract);
printf("\n");
} 2 parâmetros de tipos
int main() diferentes: um char e um
{
...
inteiro
Elemento Significado
void Palavra_chave indicando que a função não retornará
valor.
nome_da_função Nome da função.
lista de Um ou mais parâmetros, passados à função como
parâmetros argumentos, quando da sua execução. Devem ter o
tipo especificado e estar separados por vírgulas. Se
omitidos, significa que não existem.
void Palavra_chave indicando que a função não receberá
argumentos. Aqui, equivale a ( ).
{ Indica início do corpo_da_função.
} Indica fim do corpo_da_função.
int main()
{
int num;
char letra='a';
int main()
{
int num;
char letra='a'; // inicializa conteúdo antes do for
for (num=1;num<=15;num++)
{
imprime(letra,num);
letra++;
}
return 0;
18} INF 01202 - Prof. Marcelo Walter – Aula 17
Exercício
void pesoideal(char sex, float alt) // funcao que calcula o peso ideal
{
if (sex == 'M' || sex == 'm')
printf("Peso ideal: %.2f\n", alt*72.7-58);
else
if (sex == 'F' || sex == 'f')
printf("Peso ideal: %.2f\n", alt*62.1-44.7);
else
printf("Sexo informado invalido.\n");
}
int main()
{
...
}
void pesoideal(char sex, float alt) // funcao que calcula o peso ideal
{
if (sex == 'M' || sex == 'm')
printf("Peso ideal: %.2f\n", alt*72.7-58);
else
if (sex == 'F' || sex == 'f')
printf("Peso ideal: %.2f\n", alt*62.1-44.7);
else
printf("Sexo informado invalido.\n");
}
int main()
{
char sexo;
float altura;
puts("Entre o sexo da pessoa (M ou F)");
scanf(" %c", &sexo);
puts("Entra a altura da pessoa (em metros)");
scanf("%f", &altura);
pesoideal(sexo, altura); //chamada da funcao
return 0;
21} INF 01202 - Prof. Marcelo Walter – Aula 17
Comentários sobre o programa anterior
float pesoideal(char sex, float alt) // funcao que calcula o peso ideal
{
float peso;
if (sex == 'M' || sex == 'm') Observe: o
peso = alt*72.7-58; valor
else
if (sex == 'F' || sex == 'f') retornado pela
peso = alt*62.1-44.7; função é
return peso; armazenado na
} variável
int main()
{ pesoid, do
char sexo; mesmo tipo
float altura, pesoid; que o valor
retornado pela
puts("Entre o sexo da pessoa (M ou F)");
scanf(" %c", &sexo); função (float)
puts("Entra a altura da pessoa (em metros)");
scanf("%f", &altura);
pesoid = pesoideal(sexo, altura); //chamada da funcao
printf(“O peso ideal da pessoa eh %.2f\n”, pesoid );
return 0;
24} INF 01202 - Prof. Marcelo Walter – Aula 17
Como definir uma função tipada, com ou sem parâmetro ?
return 0;
}
O que houve?
Erro no cálculo do fatorial de 14 e 40 (número muito grande
para um tipo int)