• Nenhum resultado encontrado

Lab3

N/A
N/A
Protected

Academic year: 2021

Share "Lab3"

Copied!
9
0
0

Texto

(1)

UNIFEI – Universidade Federal de Itajubá Campus Avançado de Itabira

Laboratório de Programação – BAC004 Profa. Claudia A. Izeki

Laboratório 3 – Estudo Dirigido de Funções

Objetivos da atividade:

 Entender, aplicar e avaliar os conceitos de funções.

Procedimentos da atividade:

Você deverá resolver todos os 14 exercícios desta lista em seu caderno, com sua própria caligrafia. Nesta aula, resolva os exercícios na sequência: 1, 2, 3, 12, 13 e 14, pois serão discutidos na aula teórica da tarde. Em sua casa, resolva os demais;

Utilize o material de referência da disciplina: http://bac004.wikidot.com. Observação: sempre traga esse material na forma impressa ou digital para não depender do funcionamento de Internet no laboratório;

Quando tiver alguma dúvida, verifique-a com seu colega ou acesse o material de aula. Se a dúvida persistir, contate o monitor e/ou professor. Caso a dúvida ocorra fora do horário de aula, favor enviar um e-mail para [email protected].

 A nota desta lista de exercícios, juntamente com outras, valerá 20% da nota da

prática de ECOI02;

 Você terá uma semana para resolver esta lista, que deverá ser apresentado no início da aula do dia 31 de março de 2015, para ser vistado;

 Ao terminar os exercícios você deverá se retirar do laboratório;

 Não é permitida a realização de atividades que não as relacionadas à disciplina, como o acesso a redes sociais (Facebook), execução de trabalhos de outras disciplinas, entre outras.

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;

c. Chamada à função: serve para executar a função definida. No programa a seguir são apresentadas cada uma dessas partes.

(2)

Digite o programa, compile-o e execute-o. A seguir, retire o protótipo da função calculaMedia e compile o programa. Anote em seu caderno a mensagem de erro apresentada.

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. Escreva o programa inteiro em seu caderno.

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. Anote em seu caderno os endereços de memória impressos.

(3)

4) Por que ocorreu um erro na linha 13 na chamada à função maior() do programa a seguir? Escreva somente esta linha corrigida em seu caderno. Dica: verifique a sintaxe da chamada à função calculaMedia() no exercício anterior.

(4)

5) Por que ocorreu um erro na linha 6 do programa a seguir?

6) No programa a seguir não ocorreu erro na compilação, mas a temperatura em Fahrenheit não foi impressa. Por quê?

(5)

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”. Digite, compile e execute o seguinte

programa. Escreva-o em seu caderno.

(6)

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. 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. Escreva o programa inteiro em seu caderno. 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) Chame corretamente as funções necessárias nas linhas 16 e 17 para que o programa a seguir fique correto. Dica: tente entender o que o programa faz, assim você conseguirá resolvê-lo. Escreva o programa inteiro em seu caderno. 1 #include <iostream>

2 using namespace std;

3

4 float imposto(float s, float p);

5 float salarioLiquido(float s, float v); 6

7 int main() 8 {

(7)

10 p_imp, // percentual de imposto 11 v_imp, // valor em reais do imposto 12 sal_liq; // salario líquido

13

14 cout << "Digite o salario e o percentual (%) de imposto: ";

15 cin >> sal >> p_imp;

16 ____________________________________________; 17 _____________________________________________;

18

19 cout << "\nSalario Bruto: " << sal 20 << "\nValor do imposto: " << v_imp 21 << "\nSalario Liquido: " << sal_liq; 22

23 return 0; 24 }

25

26 // Recebe o salario e o percentual de imposto, nesta ordem

27 // Retorna o imposto em reais 28 float imposto(float s, float p) 29 {

30 return s*(p/100); 31 }

32

33 // Recebe o salario bruto e o valor do imposto em reais 34 // Retorna o salario liquido

35 float salarioLiquido(float s, float v) 36 {

37 return s-v; 38 }

11) 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 a seguir. Observação: escreva o programa inteiro em seu caderno.

/* 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 */

(8)

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)

12) 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 a seguir. Escreva e comente o resultado (a impressão na tela) em seu caderno. 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.

13) Verifique o código a seguir para corrigir a função troca() do exercício anterior.

(9)

Deve-se incluir o & antes do nome da variável. 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, escrevendo-o inteirescrevendo-o em seu cadernescrevendo-o. Esse tipescrevendo-o de passagem de parâmetrescrevendo-os é ditescrevendo-o pescrevendo-or referência.

14) Para provar que x e a estão na mesma posição de memória, adicione os seguintes trechos de código no programa anterior. Escreva em seu caderno os endereços de memória das variáveis x, y, a e b.

Referências

Documentos relacionados

O pressuposto teórico à desconstrução da paisagem, no caso da cidade de Altinópolis, define que os exemplares para essa análise, quer sejam eles materiais e/ou imateriais,

CONCLUSÕES E PROPOSTAS PARA TRABALHOS FUTUROS Nesta dissertação, foi apresentada uma avaliação do desempenho das funções de proteção aplicadas em transformadores de potência,

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

Os fatores relacionados ao conhecimento estão relacionados com “o potencial insuficiente de inovação, falta de pessoal qualificado: dentro da empresa, no mercado

Código Descrição Atributo Saldo Anterior D/C Débito Crédito Saldo Final D/C. Este demonstrativo apresenta os dados consolidados da(s)

Pode-se concluir, até o momento, que a maioria dos idosos avaliados apresenta redução evidente da capacidade de produção de força, tanto de membros inferiores, quanto de

Almanya'da olduğu gibi, burada da bu terimin hiçbir ayrım gütmeden, modern eğilimleri simgeleyen tüm sanatçılar için geçerli olduğu anlaşılıyor.. SSCB'de ilk halk

Anno Descrizione Lavoro Importo lavori a base d'asta Tipologia Lavoro Committente Natura e livello della prestazione Grado di attuazione 2018 Implementazione sistema di