Baixe o app para aproveitar ainda mais
Prévia do material em texto
Exercícios Resolvidos 2.1 a 2.9 - Programação de Computadores II -UFOP 2.1 Faça um programa que leia os valores X e Y (números reais) que representam as coordenadas de um ponto em um plano cartesiano. Em seguida faça um dos cálculos abaixo, dependendo de qual quadrante o ponto se encontra (conforme diagrama abaixo). Q2 Q1 Q3 Q4 · Primeiro quadrante: calcule o quociente da divisão de X por Y. · Segundo quadrante: calcule o produto de X por Y. · Terceiro quadrante: calcule a soma de X e Y. · Quarto quadrante: calcule o valor de X elevado a Y. Obs: considere que o ponto nunca estará sobre os eixos do plano cartesiano. Exemplo de execução: Entrada: -3.5 2.2 Saída: Segundo quadrante: produto = -7.7 Res: #include <iostream> #include <math.h> using namespace std; int main() { double x,y; cin >> x; cin >> y if(x < 0){ if(y < 0) cout << "Terceiro quadrante: soma = " << x+y <<endl; else cout << "Segundo quadrante: produto = " << x*y <<endl; } else{ if(y < 0) cout << "Quarto quadrante: potencia = " << pow(x,y) <<endl; else cout << "Primeiro quadrante: divisao = " << x/y <<endl; } return 0;} 2.2 Faça um programa que receba o código de origem de um produto e mostre a sua procedência. A procedência obedece à tabela a seguir. Código Procedência 1 Amazonas 2 Pará 3 e 4 Pernambuco 5 e 6 Bahia 7 a 10 Belo Horizonte 11 a 20 São Paulo Exemplo de execução: Entrada: 5 Saída: Procedência: Bahia Res: #include <iostream> #include <locale.h> using namespace std; int main(){ int x; setlocale(LC_ALL,"Portuguese"); cin>>x; if(x==1){ cout<<"Procedência: Amazonas";} else if(x==2){ cout<<"Procedência: Para"; } else if(x==3 || x==4){ cout<<"Procedência: Pernambuco"; } else if(x==5 || x==6){ cout<<"Procedência: Bahia"; } else if(x>=7 && x<=10){ cout<<"Procedência: Belo Horizonte"; } else if(x>=11 && x<=20){ cout<<"Procedência: São Paulo"; } return 0;} 2.3 A nota final de um estudante é calculada a partir de três notas, atribuídas respectivamente a um trabalho de laboratório, a uma avaliação semestral e a um exame final. A média das três notas mencionadas obedece aos pesos a seguir: Nota Peso Trabalho de Laboratório 2 Avaliação Semestral 3 Exame Final 5 Faça um programa que receba as três notas do dispositivo de entrada padrão, calcule e mostre a média ponderada das notas obtidas pelo aluno. Seu programa deverá informar também o conceito obtido pelo aluno na disciplina, segundo a relação a seguir: Média Ponderada Conceito [8.0,10.0] A [7.0,8.0[ B [6.0,7.0[ C [5.0,6.0[ D [0.0,5.0[ E Exemplo de execução: Entrada: 7.5 5.0 6.1 Saída: Média ponderada: 6.05 Conceito: C Res: #include <iostream> #include <iomanip> #include <locale.h> using namespace std; int main(){ double x1,x2,x3,nota; setlocale(LC_ALL,"Portuguese"); cin>>x1; cin>>x2; cin>>x3; nota=(x1*2+x2*3+x3*5)/10; if(nota>=0 && nota<5){ cout<<"Média ponderada: "<<fixed<<setprecision(2)<<nota<<endl; cout<<"Conceito: E"<<endl; }else if(nota>=5 && nota<6){ cout<<"Média ponderada: "<<fixed<<setprecision(2)<<nota<<endl;; cout<<"Conceito: D"<<endl; }else if(nota>=6 && nota<7){ cout<<"Média ponderada: "<<fixed<<setprecision(2)<<nota<<endl; cout<<"Conceito: C"<<endl; }else if(nota>=7 && nota<8){ cout<<"Média ponderada: "<<fixed<<setprecision(2)<<nota<<endl; cout<<"Conceito: B"<<endl; }else if (nota>=8 && nota<=10){ cout<<"Média ponderada: "<<fixed<<setprecision(2)<<nota<<endl; cout<<"Conceito: A"<<endl; } return 0;} 2.4 Faça um programa que receba o código correspondente ao cargo de um funcionário e seu salário atual e mostre o cargo, o valor do aumento e seu novo salário. Os cargos estão na tabela abaixo. Código Cargo Percentual 1 Escriturário 50% 2 Secretario 50% 3 Caixa 20% 4 Gerente 10% 5 Diretor Não tem aumento Exemplo de execução: Entrada: 1 1000 Saída: O cargo de Escriturário teve aumento de 500.00 e o novo salário é 1500.00 Reso: #include <iostream> #include <iomanip> #include <math.h> using namespace std; int main() { int cod; double sal; cin >> cod; cin >> sal; if(cod == 1) cout<<"O cargo de Escriturário teve aumento de "<<fixed <<setprecision(2)<<0.5*sal<<" e o novo salário é "<<fixed <<setprecision(2)<<1.5*sal; else if (cod == 2) cout<<"O cargo de Secretario teve aumento de "<<fixed <<setprecision(2)<<0.5*sal<<" e o novo salário é "<<fixed <<setprecision(2)<<1.5*sal<<endl; else if (cod == 3) cout<<"O cargo de Caixa teve aumento de "<<fixed <<setprecision(2)<<0.2*sal<<" e o novo salário é "<<fixed <<setprecision(2)<<1.2*sal<<endl; else if(cod == 4) cout<<"O cargo de Gerente teve aumento de "<<fixed <<setprecision(2)<<0.1*sal<<" e o novo salário é "<<fixed <<setprecision(2)<<1.1*sal<<endl; else if(cod == 5) cout<<"O cargo de Diretor não tem aumento"<<endl; return 0;} 2.5 Faça um programa que recebe um número inteiro de entrada e faça a soma de todos os números ímpares até N. Exemplo de execução: Entrada: 16 Saída: Soma dos ímpares: 64 Resol: #include <stdio.h> #include <iostream> using namespace std; int main() { int i, n, soma; cin >> n; soma = 0; for(i =0; i <= n; i++){ if(i % 2 == 1){ soma += i; } } cout << "Soma dos ímpares: " << soma; } 2.6 Criar um algoritmo que leia vários números inteiros e encerre a leitura com 0 e imprima o maior, o menor e a média aritmética dos números. O número 0 (zero) não faz parte da sequência. Exemplo de execução: Entrada: 5 574 58 4 7 21 69 14 7 8 0 Saída: Maior: 574 Menor: 4 Média: 76.7 Resol: #include <iostream> #include <iomanip> using namespace std; int main() { float num, min, max, soma=0, contador=0; cin >> num; min= num; max= num; while(num != 0){ if(num<min) min=num; else if(num>max) max=num; soma+=num; contador++; cin>>num; } cout<<"Maior: "<<max<<endl; cout<<"Menor: "<<min<<endl; cout<<"Média: "<<setprecision(1)<<fixed<<soma/contador<<endl; return 0; } 2.7 Escreva um algoritmo que receba vários números, e finalize com a entrada do número –999. Para cada número, o algoritmo deve imprimir seus divisores inteiros. Exemplo de execução: Entrada: 12 8 6 5 7 -999 Saída: Divisores de 12: 1 2 3 4 6 12 Divisores de 8: 1 2 4 8 Divisores de 6: 1 2 3 6 Divisores de 5: 1 5 Divisores de 7: 1 7 Resol: #include <iostream> using namespace std; int main(){ int entrada, controle =-1; do{ cin >> entrada; if(entrada == -999){ controle =0; }else{ cout<<"Divisores de "<<entrada<<": "; for(int i =1; i <= entrada; i++){ if(entrada % i == 0){ if(i == entrada){ cout<<i<<endl; }else{ cout<<i<<" "; } } } } }while(controle != 0);} 2.8 Criar um algoritmo que leia a idade e o sexo (0-masculino, 1-feminino) de várias pessoas. Calcule e imprima a idade média, o total de pessoas do sexo feminino com idade entre 30-45 inclusive e o número total de pessoas do sexo masculino. O algoritmo termina quando se digita um número não positivo (ou seja, zero ou um número negativo) para a idade. Exemplo de execução: Entrada: 20 1 45 1 22 0 17 0 35 1 58 0 -1 Saída: Idade média: 32.83333 Total feminino [30-45]: 2 Total masculino: 3 Resol: int main() { int idade; int genero =0; int cont_idade=0; int wonAgecounter=0; int cont=0; int cont_homem=0; while(1){ cin>>idade; if(idade==-1){ break; }else{ cin>>genero; if(genero==1 && (idade>=35 && idade <=45)) wonAgecounter++; if (genero==1)cont_homem++; cont_idade+=idade; cont++; } } float mean = (float)cont_idade/cont; cout<<"Idade média: "<<fixed<<setprecision(5)<<mean<<endl; cout<<"Total feminino [30-45]: "<<wonAgecounter<<endl; cout<<"Total masculino: "<<cont_homem<<endl; return 0; } 2.9 Existem três candidatos a uma vaga no Senado (1, 2 e 3). Feita a eleição, os votos são registrados. O voto de cada eleitor foi codificado da seguinte forma: · 1, 2 ou 3, para Voto em cada canditato em questão, · 0 para voto branco, · 4 para votos nulos. O algoritmo deverá ser capaz de informar: · o número do candidato vencedor; · o número de votos em branco; · o número de votos nulos · número de eleitores que compareceram às urnas. Obs: Admite-se que não são possíveis empates. Construa um algoritmo que execute esta tarefa. O voto finalizador tem código –1, e não deve ser computado. Exemplo de execução: Entrada: 1 1 1 2 4 0 3 1 2 3 3 3 2 4 1 0 0 2 2 3 4 1 -1 Saída: Candidato vencedor: 1 Votos em branco: 3 Votos nulos: 3 Eleitores que compareceram às urnas: 22 Resol: #include <iostream> #include <math.h> using namespace std; int main() { int cand1=0,cand2=0,cand3=0,branco=0,nulo=0,vencedor,eleitores=0,voto; cin>>voto; while(voto!=-1){ eleitores++; if(voto==0) branco++; else if(voto==1) cand1++; else if(voto==2) cand2++; else if(voto==3) cand3++; else if(voto==4) nulo++; cin>>voto; } if(cand1 > cand2 && cand1 > cand3) vencedor = 1; if(cand2 > cand1 && cand2 > cand3) vencedor = 2; else if(cand3 > cand1 && cand3 > cand2) vencedor = 3; cout <<"Candidato vencedor: "<<vencedor<<endl; cout <<"Votos em branco: "<<branco<<endl; cout <<"Votos nulos: "<<nulo<<endl; cout <<"Eleitores que compareceram às urnas: "<<eleitores<<endl; return 0; } 3.1
Compartilhar