Buscar

Lab2 Funções Werneck

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

UNIFEI – Universidade Federal de Itajubá 
Campus Avançado de Itabira 
Laboratório de Lógica de Programação – ECOI02 
Profa. Claudia A. Izeki 
 
Laboratório – Funções 
Objetivos da atividade: 
• Entender e aplicar os conceitos de funções. 
Procedimentos da atividade: 
• Utilize a apostila de Lógica de Programação como material base; 
• Se tiver alguma dúvida, verifique com seu colega, depois com a professora. Caso a 
dúvida ocorra fora do horário de aula, utilize o fórum da disciplina teórica no SIGAA; 
• Não é permitido jogar durante a aula, nem ver vídeos ou redes sociais que não estejam 
associados diretamente com a disciplina. 
Após o término desta atividade, você deverá ser capaz de: 
• Distinguir passagem de parâmetros por valor e passagem de parâmetros por 
referência e entender quando usá-los; 
• Entender e aplicar o uso do operador de endereços; 
• Entender os termos protótipo de função, chamada à função e definição de função, 
bem como suas sintaxes; 
• Entender o cabeçalho de definição de função e saber implementar o seu corpo, além 
de entender e aplicar como chamar funções e como obter seu valor de retorno, caso 
haja; 
• Entender que funções void não possuem valor de retorno e, por isso, não devem ser 
chamados em couts ou como condições de condicionais ou laços. 
 
1) Quando se trabalha com funções existem 3 conceitos importantes que devem 
ser fixados: 
a. Protótipo de função: serve para indicar ao compilador da existência de 
uma função que possui um nome, parâmetros e seus tipos (se houver) e 
seu tipo de retorno (se houver). É escrito antes da função main e de 
qualquer função que a chame; 
b. Definição de função: é a codificação da função, composta por cabeçalho 
de definição da função e corpo da função entre chaves; 
c. Chamada à função: serve para executar, ativar a função definida. 
No programa da página a seguir são apresentadas cada uma dessas partes. 
 
 
 
 Digite o programa, compile-o e execute-o. 
A seguir, retire o protótipo da função calculaMedia e compile o programa. 
O que aconteceu? Verifique o erro dado pelo compilador. 
2) Existe uma alternativa para não escrever o protótipo da função antes da main: 
apagar o protótipo e copiar a definição da função antes da main. Altere o 
programa anterior para que funcione sem o protótipo. Compile-o e execute-o. 
 
 
 
3) O operador & antes do nome de uma variável retorna o endereço de memória 
da variável. Para provar que as variáveis da função main() não são as mesmas 
da função calculaMedia() no programa do Exercício 2, adicione os 
seguintes trechos de código destacados em vermelho no programa anterior. 
Quais foram os endereços de memória impressos? O que isso significa? 
 
 
 
 
 
 
4) Por que ocorreu um erro na linha 13 na chamada à função maior() do 
programa abaixo? Corrija-o. Dica: verifique a sintaxe da chamada à função 
calculaMedia() no exercício anterior. 
 
 
 
5) Por que ocorreu um erro na linha 6 do programa abaixo? 
 
 
 
6) No programa abaixo não ocorreu erro na compilação, mas a temperatura em 
Fahrenheit não foi impressa. Por quê? 
 
 
 
7) Quando uma função possui um valor de retorno do tipo int, ela é dita “função 
int”. Quando ela possui um valor de retorno float, ela é dita “função float”; e 
assim por diante. A função calculaMedia() do Exercício 1 é float. A 
função maior() do Exercício 4 é int. Quando uma função não possui valor 
de retorno, ela é dita “função void”. “void” significa vazio. Digite, compile e 
execute o seguinte programa. 
 
 
 
 
 
 
8) Por que ocorreu um erro na linha 11 do programa abaixo? Corrija-o. 
 
 
 
9) Complete o programa a seguir, definindo as funções validaNotas() e 
media(), não esquecendo de incluir os protótipos, caso os use. Suponha que a 
média seja aritmética simples. Dica para definir a função validaNotas: 
verifique que a chamada à função validaNotas está dentro da condição da 
estrutura condicional; assim, deve-se retornar um valor booleano (true ou 
false) dessa função. Verifique, também, que deverá haver 3 parâmetros do 
tipo float na definição dessa função. 
int main() 
{ 
float n1, n2, n3; 
 
cout << "Digite 3 notas: "; 
cin >> n1 >> n2 >> n3; 
 
if(validaNotas(n1, n2, n3)) 
{ 
 cout << "Media: " << media(n1, n2, n3); 
} 
else 
 cout << "Alguma nota nao estah no intervalo de 0 a 10"; 
 
return 0; 
} 
 
 
 
 
10) O índice de massa corporal (IMC) é uma fórmula que indica se um indivíduo está 
acima do peso, se está obeso ou abaixo do peso ideal considerado saudável. A 
fórmula para calcular o IMC é dividir o peso, medido em quilos, pelo quadrado 
da altura, em metros. Assim, escreva um programa cujo objetivo é saber o IMC 
de uma pessoa e sua classificação. Esse programa deverá definir e chamar todas 
as funções que possuam os protótipos apresentados na página a seguir. 
/* Retorna falso caso peso e/ou altura forem inválidos (negativos ou zero); ou 
verdadeiro, caso contrário */ 
bool validaEntrada(float peso, float altura); 
 
/* Calcula e retorna o IMC */ 
float calculaIMC(float peso, float altura); 
 
/* Imprime a classificação de acordo com o IMC */ 
void exibeClassificacaoIMC(float imc); 
 
/* Imprime a tabela de classificação do IMC */ 
void exibeTabelaIMC(); 
 
 
IMC Classificação 
< 18,5 Abaixo do peso 
18,5 a < 25,0 Peso ideal 
25,0 a < 30,0 Sobrepeso 
30,0 a < 35 Obesidade Grau I 
35,0 a < 40 Obesidade Grau II (severa) 
≥ 40,0 Obesidade Grau III (mórbida) 
 
11) Deseja-se trocar os valores entre duas variáveis. Por exemplo, as variáveis x e y 
possuem os valores 1 e 2, respectivamente. Após a troca de valores, x deverá ter 
o valor 2 e y o valor 1. Para alcançar esse objetivo foi definida uma função 
chamada troca(). Edite, compile e execute o programa da página a seguir. O 
que foi impresso na tela? Verifique que houve passagem de parâmetros por 
valor, ou seja, os valores de x e y foram copiados para as variáveis a e b, 
respectivamente. 
 
 
 
12) Verifique o código a seguir para corrigir a função troca() do exercício anterior. 
 
Deve-se incluir o & antes do nome da variável no cabeçalho de definição da 
função. Esse & não significa endereço de memória como no Exercício 3. Significa 
apenas que “a é um outro nome, um apelido, para a variável x”. Da mesma 
forma, “b é um outro nome, apelido, para a variável y”. Com isso, qualquer 
alteração no valor da variável a também afeta o conteúdo da variável x. Sendo 
assim, corrija seu programa. Esse tipo de passagem de parâmetros é dito por 
referência. 
 
 
 
 
13) Para provar que x e a estão na mesma posição de memória, adicione os seguintes 
trechos de código pontilhados de vermelho no programa anterior. Que 
semelhanças há nos endereços de memória de a e b com x e y?

Continue navegando