Buscar

Lista_5_Gabarito

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 19 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 19 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 19 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

Prévia do material em texto

Lista 5 - gabarito 
 
1 Autora: ANITA LOPES 
 
Lista 5 - imprima, atribuição,\leia, se ... então .. senão se, escolha, para, 
enquanto e faca...enquanto . 
 
 
Orientações: 
1- Todas as soluções em fluxograma e na linguagem UAL. 
2- O comanda de entrada está presente em todos os exercícios. 
3- Quando existir algum cálculo declare a variável e armazene o 
resultado da operação. 
4- A estrutura do enquanto, ou do faca...eqnuanto, está presente em 
todos os exercícios. 
5 - Todos os exercícios terão comando de saída. 
6- Codificar em C++ todas as soluções já testadas no ambiente UAL. 
 
Solução do exercício 7 
Fluxograma Linguagem UAL Linguagem C++ 
 
 
 
 
 
 
 
 
1) Construa um algoritmo que possa entrar com vários números positivos e para 
cada número imprimir a raiz quadrada. 
prog Lista5Ex1 
 real num; 
 imprima "\nDigite numero positivo. Para sair, digite 0 ou negativo: "; 
 leia num; 
 enquanto( num > 0.0 ) 
 { 
 imprima "\nRaiz quadrada: ", raiz(num); 
 imprima "\n Digite numero positivo. Para sair, digite 0 ou negativo: "; 
 leia num; 
 } 
 fimprog 
 
 
Lista 5 - gabarito 
 
2 Autora: ANITA LOPES 
 
2) Construa um algoritmo que possa entrar com várias idades e imprima quantas 
pessoas são eleitoras obrigatórias. 
prog Lista5Ex2 
 int idade, conta; 
 imprima "\nDigite idade. Para sair, digite 0 ou negativo: "; 
 leia idade; 
 conta<-0; 
 enquanto( idade > 0 ) 
 { 
 se(idade >=18 && idade <=70 ) 
 { 
 conta++; 
 } 
 imprima "\nDigite idade. Para sair, digite 0 ou negativo: "; 
 leia idade; 
 } 
 imprima "\nTotal de eleitores obrigatorio(s): ", conta, "\n"; 
fimprog 
 
3) Construa um algoritmo que possa entrar com números positivos e para cada 
número imprimir seus divisores. 
prog Lista5Ex3 
 int num, x; 
 imprima "\nDigite numero positivo inteiro. Para sair, digite 0 ou negativo: "; 
 leia num; 
 enquanto( num > 0 ) 
 { 
 para(x<-1; x<= num div 2; x++) 
 { 
 se(num % x == 0 ) 
 { 
 imprima x, "\t"; 
 } 
 } 
 imprima num, "\n"; 
 imprima "\nDigite numero positivo inteiro. Para sair, digite 0 ou negativo: "; 
 leia num; 
 } 
fimprog 
 
4) Construa um algoritmo que possa entrar com vários números positivos e 
imprima quantos números são perfeitos (Um número é perfeito se a soma de 
seus divisores exceto ele é igual a ele). 
prog Lista5Ex4 
 int num, x, conta, soma; 
 imprima "\nDigite numero positivo inteiro. Para sair, digite 0 ou negativo: "; 
 leia num; 
 conta<-0; 
 enquanto( num > 0 ) 
 { 
 soma<-0; 
 para(x<-1; x<= num div 2; x++) 
 { 
 se(num % x == 0 ) 
 
Lista 5 - gabarito 
 
3 Autora: ANITA LOPES 
 
 { 
 soma <- soma + x; 
 } 
 } 
 se( soma == num ) 
 { 
 conta++; 
 } 
 imprima num, "\n"; 
 imprima "\nDigite numero positivo inteiro. Para sair, digite 0 ou negativo: "; 
 leia num; 
 } 
 imprima "\nTotal de Numeros Perfeitos: ", conta, "\n"; 
fimprog 
 
5) Construa um algoritmo que possa entrar com o sexo de várias pessoas(M ou F 
ou m ou f) e imprima qual o sexo tem maior número de pessoas. 
prog Lista5Ex5 
 int num, contaM, contaF; 
 string sexo; 
 imprima "\nDigite sexo(M ou F). Para sair, @: "; 
 leia sexo; 
 contaM<-0; contaF<-0; 
 enquanto( sexo <> "@" ) 
 { 
 se(sexo == "m" || sexo == "M" ) 
 { 
 contaM++; 
 } 
 senao 
 { 
 se(sexo == "f" || sexo == "F" ) 
 { 
 contaF++; 
 } 
 } 
 imprima "\nDigite sexo(M ou F). Para sair, @: "; 
 leia sexo; 
 } 
 se( contaM > contaF) 
 { 
 imprima "\nTem mais pessoas do sexo masculino\n"; 
 } 
 senao 
 { 
 se( contaF > contaM ) 
 { 
 imprima "\nTem mais pessoas do sexo feminino\n"; 
 } 
 senao 
 { 
 imprima "\nNumero de pessoas do sexo masculino é igual ao numero de 
pessoas do sexo feminino\n"; 
 } 
 
Lista 5 - gabarito 
 
4 Autora: ANITA LOPES 
 
 } 
 fimprog 
 
6) Construa um algoritmo que possa entrar com várias notas e imprima a média 
das notas digitadas. 
prog Lista5Ex6 
 real nota, soma, media; 
 int conta; 
 conta<-0; 
 soma<- 0.0; 
 imprima "\nDigite nota 0 - 10. Para sair, digite -1.0: "; 
 leia nota; 
 enquanto( nota <> -1.0 ) 
 { 
 se( nota >=0.0 && nota <=10.0 ) 
 { 
 soma<- soma + nota; 
 conta++; 
 } 
 senao 
 { 
 imprima "\nNota invailda\n"; 
 } 
 imprima "\nDigite nota 0 - 10. Para sair, digite -1: "; 
 leia nota; 
 } 
 media<- soma/conta; 
 imprima "\nMedia dos numeros digitaods: ", media, "\n"; 
fimprog 
 
7) Construa um algoritmo que entre com um número e exiba a quantidade de 
algarismos do número. 
prog Lista5Ex7 
 int num, tamanho; 
 tamanho<-0; 
 imprima "\nDigite numero positivo: "; 
 leia num; 
 enquanto( num >0 ) 
 { 
 tamanho++; 
 num <- num div 10; 
 } 
 imprima "\nTotal de algarismos: ", tamanho, "\n"; 
fimprog 
 
8) Construa um algoritmo que entre com vários números positivos e imprima 
quantos são pares. 
prog Lista5Ex8 
 int num, conta; 
 conta<-0; 
 imprima "\nDigite numero positivo. Para sair, 0 ou negativo: "; 
 leia num; 
 enquanto( num > 0 ) 
 { 
 
Lista 5 - gabarito 
 
5 Autora: ANITA LOPES 
 
 se( num % 2 == 0) 
 { 
 conta++; 
 } 
 imprima "\nDigite numero positivo. Para sair, 0 ou negativo: "; 
 leia num; 
 } 
 imprima "\nTotal de numeros pares: ", conta, "\n"; 
fimprog 
 
9) Construa um algoritmo que entre com vários números e imprima quantos são 
pares e a soma dos ímpares. 
prog Lista5Ex9 
 int num, contaPar, somaImpar; 
 contaPar<-0; somaImpar<-0; 
 imprima "\nDigite numero positivo. Para sair, 0 ou negativo: "; 
 leia num; 
 enquanto( num > 0 ) 
 { 
 se( num % 2 == 0) 
 { 
 contaPar++; 
 } 
 senao 
 { 
 somaImpar<-somaImpar + num; 
 } 
 imprima "\nDigite numero positivo. Para sair, 0 ou negativo: "; 
 leia num; 
 } 
 imprima "\nTotal de numeros pares: ", contaPar, "\n"; 
 imprima "\nSoma dos numeros pares: ", somaImpar, "\n"; 
fimprog 
 
10) Construa um algoritmo que permita a entrada do número da conta e o saldo de 
vários clientes. A cada entrada, deverão ser impressos o número da conta, o 
saldo e uma das mensagens: positivo ou negativo. Ao final, deverá ser impresso 
o percentual de contas com saldo negativo. 
 
prog Lista5Ex10 
 int numConta, contaNegativo, contaTotal; 
 real saldo; 
 contaNegativo <- 0; contaTotal <- 0; 
 imprima "\nDigite numero da conta. Para sair, 0 ou negativo: "; 
 leia numConta; 
 enquanto( numConta > 0 ) 
 { 
 imprima "\nDigite saldo: "; 
 leia saldo; 
 contaTotal++; 
 se( saldo >= 0.0 ) 
 { 
 imprima "\n-------------------------------\n"; 
 
Lista 5 - gabarito 
 
6 Autora: ANITA LOPES 
 
 imprima "\n Conta numero: ",numConta, "\n Saldo R$ ", saldo, "0\n 
Situacao: Positivo ou zerado"; 
 imprima "\n--------------------------------\n"; 
 } 
 senao 
 { 
 contaNegativo++; 
 imprima "\n-------------------------------\n"; 
 imprima "\n Conta numero: ",numConta, "\n Saldo R$ ", saldo, "0\n 
Situacao: Negativo"; 
 imprima "\n--------------------------------\n"; 
 } 
 imprima "\nDigite numero da conta. Para sair, 0 ou negativo: "; 
 leia numConta; 
 } 
 imprima "\nPercentualde contas negativas: ", 
contaNegativo*100.0/contaTotal, "\n"; 
fimprog 
11) Uma empresa classifica seus funcionários de acordo com um índice de 
produtividade: (1) Excelente, (2) Bom e (3) Regular. Cada nível acrescenta um 
abono ao salário base do funcionário de acordo com a seguinte tabela: 
 
Excelente 40 % do salário base 
Bom 20 % do salário base 
Regular 5 % do salário base 
 
Construa um algoritmo que permita a entrada da matrícula, do salário base e a 
classificação de vários funcionários. Para cada funcionário deverão ser 
impressos a matrícula e seu novo salário. O programa deverá calcular a 
produtividade. A entrada de dados termina quando se digita uma matricula não 
positiva. 
 
#include <iostream> 
using namespace std; 
int main() 
{ 
 int matricula, classificacao; 
 float salario, novoSalario, abono; 
 cout<<"\nDigite matricula do funcionario. Digite 0 ou numero 
negativo para sair: "; 
 cin>> matricula; 
 while( matricula > 0) 
 { 
 cout<<"\nSalario: "; 
 cin>>salario; 
 cout<<"\nDigite (1) Excelente, (2) Bom e (3) Regular: "; 
 cin>>classificacao; 
 switch(classificacao) 
 { 
 case 1: abono= salario*0.4; 
 novoSalario= salario + abono; 
 // poderia ter sido somente a linha 
 // novoSalario= salario *1.4; 
 break; 
 
Lista 5 - gabarito 
 
7 Autora: ANITA LOPES 
 
 
 case 2: abono= salario*0.2; 
 novoSalario= salario + abono; 
 // poderia ter sido somente a linha 
 // novoSalario= salario *1.2; 
 break; 
 
 case 3: abono= salario*0.05; 
 novoSalario= salario + abono; 
 // poderia ter sido somente a 
 // linha: novoSalario= salario *1.05; 
 break; 
 
 default: abono=0; 
 novoSalario= salario + abono; 
 // poderia ter sido somente a 
 // linha: novoSalario= salario; 
 cout<<"\nClassificacao invalida. Salario Inalterado"; 
 } 
 cout<<"\n\nMatricula: "<<matricula<<"\tSalario novo R$ 
"<<novoSalario; 
 cout<<"\nDigite matricula do funcionario. Digite 0 ou numero 
negativo para sair: "; 
 cin>> matricula; 
 } 
 cout<<"\n\n"; //Coloco essa linha para afastar a mensagem do 
system("pause"); do texto 
 system("pause"); 
} 
 
12) Entrar com a idade de várias pessoas e imprimir: 
 - total de pessoas com menos de 21 anos 
 - total de pessoas com mais de 50 anos. 
 
#include <iostream> 
using namespace std; 
int main() 
{ 
 int idade, conta21=0, conta50=0; 
 cout<<"\nDigite idade. Para sair, 0 ou numero negativo: "; 
 cin>>idade; 
 while(idade > 0 ) 
 { 
 if( idade < 21 ) 
 conta21++; // nao coloquei entre chaves porque so tem um 
comando 
 else if(idade > 50 ) 
 conta50++; // nao coloquei entre chaves porque so tem um 
comando 
 cout<<"\nDigite idade. Para sair, 0 ou numero negativo: "; 
 cin>>idade; 
 } 
 cout<<"\n\n\nTotal de pessoas com menos de 21 anos: 
"<<conta21; 
 
Lista 5 - gabarito 
 
8 Autora: ANITA LOPES 
 
 cout<<"\n\n\nTotal de pessoas com mais de 50 anos: "<<conta50; 
 cout<<"\n\n"; 
 system("pause"); 
} 
 
13) Construa um algoritmo que possa entrar com vários números inteiros 
positivos até entrar -1. Imprimir todos os números e, ao final, total de 
números múltiplos de 8 digitados e a média de todos os números lidos. 
 
#include <iostream> 
using namespace std; 
int main() 
{ 
 int num, conta=0, soma=0, mult8=0; 
 cout<<"\nNumero positivo. Para sair digite -1: "; 
 cin>>num; 
 while(num > 0)//qualquer numero menor ou igual a zero sai 
 { 
 cout<<"\n\n-- Numero digitado: "<<num<<" --\n"; 
 conta++; 
 soma+=num; // poderia ser: soma = soma + num; 
 if(num % 8 == 0) 
 mult8++; 
 cout<<"\nNumero positivo. Para sair digite -1: "; 
 cin>>num; 
 } 
 cout<<"\nTotal de multiplos de 8: "<<mult8; 
 cout<<"\nMedia inteira: "<<soma/conta; 
 cout<<"\nMedia real: "<<(float)soma/conta; 
 cout<<"\n\n"; 
 system("pause"); 
} 
 
 
14) Construa um algoritmo que receba a idade, a altura e o peso de várias pessoas. 
Calcule e imprima: 
* a quantidade de pessoas com idade superior a 50 anos; 
* a média das alturas das pessoas com idade entre 10 e 20 anos; 
* a porcentagem de pessoas com peso inferior a 40 quilos entre todas as 
pessoas analisadas. 
#include <iostream> 
using namespace std; 
int main() 
{ 
 int idade, conta10_20=0, conta50=0, contaTotal=0, conta40=0; 
 float peso, altura, somaAlturas10_20=0; 
 cout<<"\nDigite idade. Para sair, 0 ou numero negativo: "; 
 cin>>idade; 
 while(idade > 0) 
 
Lista 5 - gabarito 
 
9 Autora: ANITA LOPES 
 
 { 
 cout<<"\nDigite altura: "; 
 cin>>altura; 
 cout<<"\nDigite peso: "; 
 cin>>peso; 
 contaTotal++; 
 if(peso <40) 
 conta40++; 
 if(idade > 50 ) 
 conta50++; 
 else if(idade>10 && idade < 20)//Entre significa que os extremos 
estao fora 
 { 
 conta10_20++; 
 somaAlturas10_20 += altura; 
 } 
 cout<<"\nDigite idade. Para sair, 0 ou numero negativo: "; 
 cin>>idade; 
 } 
 cout<<"\nQuantidade de pessoas com idade superior a 50 anos: 
"<<conta50; 
 if(conta10_20 > 0 ) 
 cout<<"\nMedia das alturas das pessoas com idade entre 10 e 20 
anos: "<<somaAlturas10_20/conta10_20; 
 else 
 cout<<"\nNinguem na faix entre 10 - 20 anos. Media nao 
calculada."; 
 cout<<"\nPorcentagem de pessoas com peso inferior a 40 quilos: 
"<<conta40*100.0/contaTotal<<"%"; 
 
 cout<<"\n\n"; 
 system("pause"); 
} 
 
15) Sabendo-se que uma empresa que patrocina uma equipe de vôlei paga aos 
seus jogadores, além do salário, um valor adicional ao salário mensal fruto do 
esforço de cada um. Essa produtividade é paga de acordo com a tabela a 
seguir: 
 
classe nível Valor adicional 
 
Lista 5 - gabarito 
 
10 Autora: ANITA LOPES 
 
1 excelente +100% 
2 bom +80% 
3 médio +50% 
4 regular +30% 
5 precisa treinar mais +10% 
6 limite +5% 
7 tsktsk nada 
Construa um algoritmo que entre com o salário e o código da classe de todos os 
jogadores, calcule e exiba o seu salário final e o nome da sua classe (nível). O 
programa acaba quando se digita um número fora do intervalo da faixa de 1-7. 
 
#include <iostream> 
using namespace std; 
int main() 
{ 
 int codigoClasse; 
 float salario, novoSalario; 
 cout<<"\nDigite codigo da classe(1 a 7) e para sair, qualquer outro 
numero: "; 
 cin>> codigoClasse; 
 while( codigoClasse >=1 && codigoClasse<=7) 
 { 
 cout<<"\nSalario: "; 
 cin>>salario; 
 switch(codigoClasse) 
 { 
 case 1: novoSalario= salario * 2; 
 cout<<"\n\nClase: excelente\tSalario novo R$ 
"<<novoSalario<<"\n"; 
 break; 
 
 case 2: novoSalario= salario * 1.8; 
 cout<<"\n\nClase: bom\tSalario novo R$ 
"<<novoSalario<<"\n"; 
 break; 
 
 case 3: novoSalario= salario * 1.5; 
 cout<<"\n\nClase: medio\tSalario novo R$ 
"<<novoSalario<<"\n";break; 
 
 case 4:novoSalario= salario * 1.3; 
 cout<<"\n\nClase: regular\tSalario novo R$ 
"<<novoSalario<<"\n"; 
 break; 
 
 
 case 5:novoSalario= salario *1.1; 
 cout<<"\n\nClase: precisa treinar mais\tSalario novo R$ 
"<<novoSalario<<"\n"; 
 break; 
 
 case 6:novoSalario= salario *1.05; 
 
Lista 5 - gabarito 
 
11 Autora: ANITA LOPES 
 
 cout<<"\n\nClase: limite\tSalario novo R$ 
"<<novoSalario<<"\n"; 
 break; 
 
 case 7: novoSalario= salario ; 
 cout<<"\n\nClase: tsktsk\tSalario novo R$ 
"<<novoSalario<<"\n"; 
 //Como nao existe outra possibilidade, não precisa de deafult 
 } 
 cout<<"\nDigite codigo da classe(1 a 7) e para sair, qualquer outro 
numero: "; 
 cin>> codigoClasse; 
 } 
 cout<<"\n\n"; //Coloco essa linha para afastar a mensagem do 
system("pause"); do texto 
 system("pause"); 
} 
 
 
16) Construa algoritmos que funcionem segundo menus abaixo. 
MENU 1: 
OPÇÕES 
1 Exibe a hipotenusa 
2 Exibe a média ponderada 
3 Exibe o menor entre 3 números 
4 Termina o programa 
OPCAO: 
Considerações: 
1 - Ao se escolher a opção 1, deverá ser pedido os valores dos catetos e exibida a 
hipotenusa. 
2 - Ao se escolher a opção 2, deverá ser pedido 4 notas e exibida a média 
ponderada. Para calcular a média ponderada, use os seguintes pesos para as notas: 
2, 3, 2 e 3 respectivamente. 
3 - Ao se escolher a opção 3, deverá ser pedido 3 números e exibido o menor. 
 
#include <iostream> 
#include <cmath> 
using namespace std; 
int main() 
{ 
 int opcao; 
 float cateto1, cateto2, hipotenusa, nota1, nota2, nota3, nota4, 
mediaPonderada, num1, num2, num3; 
 do 
 { 
 system("cls"); 
 cout<<"\nMENU 1\n"; 
 cout<<"\n1 Exibe a hipotenusa"; 
 
Lista 5 - gabarito 
 
12 Autora: ANITA LOPES 
 
 cout<<"\n2 Exibe a media ponderada"; 
 cout<<"\n3 Exibe o menor entre 3 numeros"; 
 cout<<"\n4 Termina o programa"; 
 cout<<"\nOPCAO:"; 
 
 cin>>opcao; 
 system("cls"); // para limpar a tela antes de entrar em um dos casos 
 
 switch(opcao) 
 { 
 case 1: 
 cout<<"\nDigite o valor do 1o cateto: "; 
 cin>> cateto1; 
 cout<<"\nDigite o valor do 2o cateto: "; 
 cin>> cateto2; 
 if( cateto1> 0 && cateto2 > 0) 
 { 
 hipotenusa= sqrt(pow(cateto1,2) + pow(cateto2,2)); 
 cout<<"\nA hipotenusa eh: "<<hipotenusa; 
 } 
 else 
 cout<<"\nNao tem como calcular a hipotenusa\n"; 
 break; 
 
 case 2: 
 cout<<"\nDigite a 1a nota: "; 
 cin>> nota1; 
 cout<<"\nDigite a 2a nota: "; 
 cin>> nota2; 
 cout<<"\nDigite a 3a nota: "; 
 cin>> nota3; 
 cout<<"\nDigite a 4a nota: "; 
 cin>> nota4; 
 mediaPonderada=(nota1*2 + nota2*3 + nota3*2 + 
nota4*3)/10; 
 /*Esse eh um comentario de varias linhas 
 por que 10? Porque 2+3+2+3 eh igual a 10 
 
Lista 5 - gabarito 
 
13 Autora: ANITA LOPES 
 
 poderia tambem fazer (nora1+nota3)*2 + (not2+nota4)*3 
 ganha o que com isso: Menos duas operacoes 
 */ 
 cout<<"\nMedia ponderada: "<<mediaPonderada; 
 break; 
 
 case 3: 
 cout<<"\nDigite o 1o numero: "; 
 cin>> num1; 
 cout<<"\nDigite o 2o numero: "; 
 cin>> num2; 
 cout<<"\nDigite o 3o numero: "; 
 cin>> num3; 
 if(num1 < num2 && num1<num3) 
 cout<<"\nMenor: "<<num1; 
 else if(num2 < num3) 
 cout<<"\nMenor: "<<num2; 
 else 
 cout<<"\nMenor: "<<num3; 
 break; 
 
 case 4: 
 cout<<"\nGabarito- Qualquer erro fale comigo: 
anita@anitalopes.com"; 
 break; 
 
 default: 
 cout<<"\nOpcao Invalida\n"; 
 } 
 cout<<"\n\n"; 
 system("pause"); 
 }while(opcao != 4); 
} 
 
MENU 2: 
MENU 
1 –Entra com três números e exibe-os em ordem decrescente 
 
Lista 5 - gabarito 
 
14 Autora: ANITA LOPES 
 
2 – Entra com um número e informa se ele é, ou não, capicua 
3 - Calcula e imprime a raiz à quarta de um número 
4 – Finaliza 
OPCAO: 
Observação: Um número é capicua se lido da esquerda para direita for igual se 
lido da direita para esquerda. Exemplo: 3443 
#include <iostream> 
#include <cmath> 
using namespace std; 
int main() 
{ 
 int opcao, num, numInvertido, copiaNum; 
 float num1, num2, num3; 
 do 
 { 
 system("cls"); 
 cout<<"\nMENU 2\n"; 
 cout<<"\n1 - Entra com tres numeros e exibe-os em ordem 
decrescente"; 
 cout<<"\n2 - Entra com um numero e informa se ele eh, ou nao, 
capicua"; 
 cout<<"\n3 - Calcula e imprime a raiz a quarta de um numero"; 
 cout<<"\n4 - Finaliza"; 
 cout<<"\nOPCAO: "; 
 
 cin>>opcao; 
 system("cls"); // para limpar a tela antes de entrar em um dos casos 
 
 switch(opcao) 
 { 
 case 1: 
 //Fiz uma solucao diferente da ordenacao por combinacao. 
 // Acho essa maior. Voce decide 
 cout<<"\nDigite 1o numero: "; 
 cin>>num1; 
 cout<<"\nDigite 2o numero: "; 
 cin>>num2; 
 cout<<"\nDigite 3o numero: "; 
 cin>>num3; 
 
Lista 5 - gabarito 
 
15 Autora: ANITA LOPES 
 
 if( num1 > num2 ) 
 { 
 if(num3 > num1 ) 
 cout<<"\n"<<num3<<"\t"<<num1<<"\t"<<num2; 
 else if(num3 > num2 ) 
 cout<<"\n"<<num1<<"\t"<<num3<<"\t"<<num2; 
 else 
 cout<<"\n"<<num1<<"\t"<<num2<<"\t"<<num3; 
 } 
 else 
 { 
 if(num3 > num2 ) 
 cout<<"\n"<<num3<<"\t"<<num2<<"\t"<<num1; 
 else if(num3 > num1 ) 
 cout<<"\n"<<num2<<"\t"<<num3<<"\t"<<num1; 
 else 
 cout<<"\n"<<num2<<"\t"<<num1<<"\t"<<num3; 
 } 
 break; 
 
 case 2:cout<<"\nNumero: "; 
 cin>>num; 
 copiaNum = num; // para nao "perder" o valor de num 
 numInvertido=0; 
 while(copiaNum > 0 ) 
 { 
 numInvertido= numInvertido*10 + copiaNum %10; 
 copiaNum = copiaNum / 10 ; //poderia ser copiaNum/=10; 
 } 
 if(num == numInvertido) 
 cout<<"\nEh capicua"; 
 else 
 cout<<"\nNao eh capicua"; 
 break; 
 
 case 3: 
 
Lista 5 - gabarito 
 
16 Autora: ANITA LOPES 
 
 cout<<"\nDigite numero: "; 
 cin>> num1; 
 if(num1 >= 0) 
 cout<<"\nRaiz a quarta: "<<pow( num1, (float)1 / 4); 
 /* 
 pow é uma função que exige, com muito rigor, os tipos dos 
argumentos. 
 Para extrair raiz, pela matemática, elevamos o radicando a uma 
fração cujo denominador é o índice do radical e como ambos são inteiros, 
TEMOS QUE FORÇAR para QUE A OPERACAO SEJA FEITA COMO REAL 
 Por essa razão, usamos um cast - tipo que desejamos entre 
parênteses 
 */ 
 else 
 cout<<"\nNao posso fazer raiz de numero negativo"; 
 break; 
 
 case 4: 
 cout<<"\nGabarito - Qualquer erro fale comigo: 
anita@anitalopes.com"; 
 break; 
 
 default: 
 cout<<"\nOpcao Invalida\n"; 
 } 
 cout<<"\n\n"; 
 system("pause"); 
 }while(opcao != 4); 
} 
 
MENU 3: 
MENU 
A – Entra com 3 matriculas e respectivos CRs. Exibe a matrícula do maior CR 
B – Exibe a quantidade de algarismos de um número 
C – Exibe a tangente de um ângulo em graus 
D - Termina 
OPCAO: 
 
#include <iostream> 
#include <cmath> 
 
Lista 5 - gabarito 
 
17 Autora: ANITA LOPES 
 
using namespace std; 
int main() 
{ 
 char opcao; 
 int mat1, mat2, mat3, num, copiaNum, tamanho; 
 float cr1, cr2, cr3, angulo, radAngulo; 
 do 
 { 
 system("cls"); 
 cout<<"\nMENU 3\n"; 
 cout<<"\nA - Entra com 3 matriculas e respectivos CRs. Exibe a 
matrícula do maior CR."; 
 cout<<"\nB - Exibe a quantidade de algarismos de um numero"; 
 cout<<"\nC - Exibe a tangente de um ângulo em graus"; 
 cout<<"\nD - Termina"; 
 cout<<"\nOPCAO: "; 
 
 cin>>opcao; 
 system("cls"); // para limpar a tela antes de entrar em um dos casos 
 
 switch(opcao) 
 { 
 case 'A': //ainda não aprendi a funcao toupper() que converte para 
maiusucula 
 case 'a': 
 cout<<"\nDigite mtricula e CR 1o aluno: "; 
 cin>> mat1>>cr1; 
 cout<<"\nDigite mtricula e CR 2o aluno: "; 
 cin>> mat2>>cr2; 
 cout<<"\nDigite mtricula e CR 3o aluno: "; 
 cin>> mat3>>cr3; 
 if( cr1> cr2 && cr1 > cr3) 
 cout<<"\nA matricula do aluno com maior CR: "<<mat1; 
 else if( cr2 > cr3 ) 
 cout<<"\nA matricula do aluno com maior CR: "<<mat2; 
 else 
 cout<<"\nA matricula do aluno com maior CR: "<<mat3; 
 
Lista 5 - gabarito 
 
18 Autora: ANITA LOPES 
 
 break; 
 
 case 'B': 
 case 'b': 
 cout<<"\nDigite numero: "; 
 cin>> num; 
 copiaNum=num; 
 tamanho=0; // nao pode declarar e inicializar porque esse item 
pode ser escolhido varias vezes 
 while(copiaNum > 0 ) 
 { 
 tamanho++; 
 copiaNum/=10; 
 } 
 cout<<"\nO numero "<<num<<" tem "<< tamanho<<" 
algarismos"; 
 break; 
 
 case 'C': 
 case 'c': 
 cout<<"\nDigite angulo em graus: "; 
 cin>> angulo; 
 radAngulo= angulo *3.14159265/180; 
 if(angulo != 90 && angulo != 270) 
 cout<<"\nTangente : "<<tan(radAngulo); 
 else 
 cout<<"\nNao posso calcular a tangente desse angulo"; 
 break; 
 
 case 'D': 
 case 'd': 
 cout<<"\nGabarito- Qualquer erro fale comigo: 
anita@anitalopes.com"; 
 break; 
 
 default: 
 cout<<"\nOpcao Invalida\n"; 
 } 
 
Lista 5 - gabarito 
 
19 Autora: ANITA LOPES 
 
 cout<<"\n\n"; 
 system("pause"); 
 }while(opcao != 'd' && opcao != 'D'); 
}

Outros materiais