Sunteți pe pagina 1din 9

Universidade Federal de Itajub

Campus Avanado de Itabira BAC004 - Informtica Prof. Me. Walter Aoiama Nagai

Lista de Exerccios 1
ATENO: Todos os exerccios devem ser resolvidos utilizando-se a linguagem de Programao C++ e o ambiente de programao Code::Blocks; Minimize o nmero de comparaes desnecessrias nos exerccios que utilizem estruturas condicionais;

Todos os programas devero ser testados. Teste de mesa um recurso muito utilizado para verificar erros em um algoritmo. A partir de dados escolhidos com resposta conhecida simula-se a execuo do algoritmo e comparase com a resposta esperada. Saber escolher os dados para os testes de muita importncia na simulao. Assim, deve-se escolher amostras de dados de forma que provoquem a execuo de todas as instrues presentes no algoritmo, testando todas as diferentes possibilidades de sada.

1. Em um curso semestral de uma instituio de ensino, a mdia final composta por trs
notas e ponderada, ou seja, possui peso 2 para a primeira nota, peso 1 para a segunda e peso 3 para a terceira. Faa um programa que pea as notas para o usurio e calcule a mdia final. 2. Faa um programa que receba o salrio bruto de um funcionrio e o seu percentual de imposto. Calcule o valor do imposto e do salrio lquido em reais (R$).

3. Uma empresa contrata um encanador a R$20,00 por dia. Crie um programa que solicite
o nmero de dias trabalhados pelo encanador e imprima a quantia lquida que dever ser paga, sabendo-se que so descontados 8% para imposto de renda. Crie uma constante com o valor pago por dia e outra constante para a porcentagem do imposto de renda.

4. Considere o seguinte trecho de cdigo de um programa em C/C++:


if (a2<=b3) { teste = 1; } else { teste = 0; } c = teste; Ento, em c estar armazenado o valor falso se, originalmente: a. a2 <= b3 b. a2 < b3 c. a2 >= b3 d. a2 > b3 e. a2 = b3 5. A partir de 3 notas fornecidas de um aluno, informe se ele foi aprovado, ficou de recuperao ou foi reprovado. A mdia de aprovao 5.0 e < 7.0; e a mdia de reprovao < 5.0. 7.0; a mdia de recuperao

6. Acrescente no problema anterior a possibilidade dele fazer prova final em caso de


recuperao. Neste caso a mdia de aprovao passa a ser 5.0.

7. Analise cada um dos algoritmos abaixo e d um parecer sobre a sua corretude. Caso ele

solucione o problema fale tambm a respeito do custo computacional (se o algoritmo est desperdiando processamento). Se for o caso, aponte a melhor soluo. As propostas se referem aos exerccios 5 e 6: 1a. Proposta: int main() { float n1, n2, n3, media, notaRecuperacao; cout << Entre com 3 notas: ; cin >> n1 >> n2 >> n3; media = (n1 + n2 + n3)/3; cout << Mdia: << media; if (media>=7.0) cout << Aprovado!; if (media>=5.0) { cout << Recuperao!; cout << Entre com a nota da recuperao: ; cin >> notaRecuperacao; media = (media + notaRecuperacao)/2; if (media>=5.0) cout << Aprovado!; else cout << Reprovado!; } else cout << Reprovado!; return 0; }

2a. Proposta: int main() { float n1, n2, n3, media, notaRecuperacao; cout << Entre com 3 notas: ; cin >> n1 >> n2 >> n3; media = (n1 + n2 + n3)/3; cout << Mdia: << media; if (media>=7.0) cout << Aprovado!; if (media>=5.0 && media<7.0) { cout << Recuperao!; cout << Entre com a nota da recuperao: ; cin >> notaRecuperacao; media = (media + notaRecuperacao)/2; if (media>=5.0 && media<7.0) cout << Aprovado!; else cout << Reprovado!; }

else cout << Reprovado!; return 0; }

3a. Proposta: int main() { float n1, n2, n3, media, notaRecuperacao; cout << Entre com 3 notas: ; cin >> n1 >> n2 >> n3; media = (n1 + n2 + n3)/3; cout << Mdia: << media; if (media>=7.0) cout << Aprovado!; if (media>=5.0 && media<7.0) { cout << Recuperao!; cout << Entre com a nota da recuperao: ; cin >> notaRecuperacao; media = (media + notaRecuperacao)/2; if (media>=5.0) cout << Aprovado!; else cout << Reprovado!; } if (media<5.0) cout << Reprovado!; return 0; }

4a. Proposta: int main() { float n1, n2, n3, media, notaRecuperacao; cout << Entre com 3 notas: ; cin >> n1 >> n2 >> n3; media = (n1 + n2 + n3)/3; cout << Mdia: << media; if (media<5.0) cout << Reprovado!; else if (media<7.0) { cout << Recuperao!; cout << Entre com a nota da recuperao: ; cin >> notaRecuperacao; media = (media + notaRecuperacao)/2; if (media>=5.0) cout << Aprovado!; else cout << Reprovado!;

} else cout << Aprovado!; return 0; }

5a. Proposta: int main() { float n1, n2, n3, media, notaRecuperacao; cout << Entre com 3 notas: ; cin >> n1 >> n2 >> n3; media = (n1 + n2 + n3)/3; cout << Mdia: << media; if (media>=7.0) cout << Aprovado!; else if (media>=5.0) { cout << Recuperao!; cout << Entre com a nota da recuperao: ; cin >> notaRecuperacao; media = (media + notaRecuperacao)/2; if (media>=5.0) cout << Aprovado!; else cout << Reprovado!; } else cout << Reprovado!; return 0; }

8. Verifique a validade de uma data de aniversrio (solicite apenas o nmero do dia e do ms).
Dica de implementao: se um dos trs casos ocorrer ento a data est correta: (1) se o ms fevereiro e o dia no ultrapassa 29; (2) se o ms um dos que possui 30 dias (abril, junho, setembro e novembro) e ao mesmo tempo o dia no ultrapassa 30; (3) se o ms de 31 dias e o dia no ultrapassa 31. Se nenhum destes casos ocorrer ento a data invlida.

9. Inclua no exerccio anterior a solicitao do ano de nascimento e tambm da data de hoje. A


partir destas informaes, apresente a idade atual dessa pessoa.

10. Descubra e apresente o maior entre trs nmeros fornecidos pelo usurio. Caso os trs
sejam iguais, avise ao usurio.

11.Coloque em ordem crescente trs nmeros quaisquer fornecidos pelo usurio. Como
desafio, tente depois fazer uma soluo com apenas 3 estruturas de deciso (if) simples. Dica: verifique se a ordem est correta para as duas primeiras variveis, seno troque os nmeros de posio, depois faa o mesmo com a segunda e terceira variveis. Refaa a

comparao com a primeira e segunda variveis.

12. O ndice de massa corporal (IMC) uma frmula que indica se um indivduo est acima do
peso, se est obeso ou abaixo do peso ideal considerado saudvel. A frmula para calcular o IMC dividir o peso, medido em quilos, pelo quadrado da altura, em metros. Assim, faa um programa que calcule e mostre o IMC.

IMC < 18,5 18,5 a < 25,0 25,0 a < 30,0 30,0 a < 35,0 35,0 a < 40,0 40,0

Classificao Abaixo do peso Peso ideal Sobrepeso Obesidade Grau I Obesidade Grau II (severa) Obesidade Grau III (mrbida)

13. Dois amigos jogam na loteria toda semana. Escreva um programa que solicite a quantia
com que cada um participou e o valor do prmio que deve ser rateado em partes diretamente proporcionais s quantias de cada um deles. O programa deve imprimir quanto receber cada um se eles ganharem.

14.Uma famlia brasileira possui cinco pessoas que trabalham fora e ajudam nos gastos
domsticos. Faa um programa que verifique quantas pessoas dessa famlia ganham mais que o salrio mnimo. Crie uma constante para armazenar o valor do salrio mnimo.

15. Faa um programa que, a partir de um ms fornecido (nmero inteiro de 1 a 12), apresente
o nome dele por extenso ou uma mensagem de ms invlido.

16. Dados nmeros reais a, b e c, calcular as razes de uma equao de segundo grau da forma
ax2+bx+c=0. Imprimir a soluo em uma das seguintes formas:

DUPLA raiz

REAIS DISTINTAS raiz 1 raiz 2

NO EXISTEM RAZES REAIS

Observao: Para calcular a raiz quadrada, utilize a funo sqrt(x) da biblioteca cmath.

17. Faa um programa que, dados trs valores, verificar se eles podem ser os comprimentos
dos lados de um tringulo e, se forem, verificar se um tringulo equiltero, issceles ou escaleno. Se eles no formarem um tringulo, escrever uma mensagem. Existe uma propriedade de tringulo que diz que o comprimento de cada lado de um tringulo menor

do que a soma dos comprimentos dos outros dois lados.

18. Tendo como dados de entrada a altura e o sexo (f ou m) de uma pessoa, faa um programa
que calcule seu peso ideal, utilizando as seguintes frmulas: Para homens o peso ideal : (72.7 * h) - 58; Para mulheres: (62.1 * h) 44.7;

19. A nota final de uma disciplina calculada a partir de trs notas atribudas, respectivamente,
a uma avaliao terica, a uma avaliao prtica e entrega de exerccios. A mdia das trs notas mencionadas anteriormente obedece aos pesos a seguir, respectivamente: 7, 2 e 1. Faa um programa que receba as trs notas, calcule e mostre a mdia ponderada e o conceito que segue a tabela a seguir. Ateno: utilize corretamente as estruturas condicionais de forma que se evitem comparaes desnecessrias. Mdia De 85 a 100 Abaixo de 85 at 70 Abaixo de 70 at 60 Abaixo de 60 at 50 Abaixo de 50 Conceito A B C D E

20.Reescreva o trecho de cdigo seguinte usando comandos if aninhados, de forma que o


nmero de avaliaes de expresso seja minimizado: if ((ch=='M')&&(sum>1000)) x=x+1; if ((ch=='M')&&(sum<=1000)) x=x+2; if ((ch=='F')&&(sum>1000)) x=x+3; if ((ch=='F')&&(sum<=1000)) x=x+5;

21. Faa um programa que apresente o menu de opes a seguir, permita ao usurio escolher
a opo desejada, receba os dados necessrios para executar a operao e mostre o resultado. Verifique a possibilidade de opo invlida e emita mensagem quando o salrio for invlido, ou seja, negativo ou zero. Faa duas solues diferentes, uma com e outra sem switch. Menu de opes: 1 - Imposto 2 - Novo salrio 3 - Classificao Digite a opo desejada: Na opo 1, receba o salrio de um funcionrio e calcule o valor do imposto usando as seguintes

regras a seguir: Salrio Menor que R$500,00 De R$500,00 a R$850,00 Acima de R$850,00 Percentual do imposto 5,00% 10,00% 15,00%

Na opo 2, receba o salrio de um funcionrio e calcule o valor do novo salrio, usando as regras a seguir: Salrio Maior que R$1500,00 De R$750,00 a R$1500,00 Abaixo de R$750,00 a R$450,00 Menor que R$450,00 Aumento R$25,00 R$50,00 R$75,00

R$100,00

Na opo 3, receba o salrio de um funcionrio e mostre sua classificao usando a tabela a seguir: Salrio At R$700,00 Superior a R$700,00 Classificao Mal remunerado Bem remunerado

22. Faa um programa que receba o preo e sua categoria (1 - limpeza, 2 - alimentao ou 3 vesturio). Calcule e mostre: o valor do aumento em reais (R$), usando as regras que se seguem.

S-ar putea să vă placă și