Baixe o app para aproveitar ainda mais
Prévia do material em texto
LISTA DE EXERCÍCIOS No2 - Estruturas de seleção Algoritmos e Programação / Algoritmos e Estrutura de Dados Prof. André Sarmento Barbosa e Paula Faragó Barbosa // 1. Ler um número inteiro e imprimir se ele é par ou ímpar. #include <iostream> using namespace std; int main() { int num, resto; cout << "Digite um numero inteiro: "; cin >> num; resto = num % 2; if (resto == 0) { cout << "O numero eh par.\n"; } else { cout << "O numero eh impar.\n"; } system("pause"); } // 2. Ler um número inteiro e imprimir se ele é positivo, negativo ou zero. #include <iostream> using namespace std; int main() { int num; cout << "Digite um numero inteiro: "; cin >> num; if (num > 0) { cout << "O numero eh positivo.\n"; } else { if (num < 0) { cout << "O numero eh negativo.\n"; } else { cout << "O numero eh zero.\n"; } } system("pause"); } // 3. Ler um número real e imprimir uma mensagem se ele estiver entre 130,5 e 212,7. #include <iostream> using namespace std; int main() { float num; cout << "Digite um numero real: "; cin >> num; if (num > 130.5 && num < 212.7) { cout << "O numero esta entre 130.5 e 212.7\n"; } else { cout << "O numero *nao* esta entre 130.5 e 212.7\n"; } system("pause"); } // 4. Ler um nome e imprimi-lo se a primeira letra for ‘A’ ou ‘a’. #include <iostream> using namespace std; int main() { char nome[50]; cout << "Digite um nome: "; cin >> nome; if (nome[0] == 'a' || nome[0] == 'A') { // ou poderia ser: if // (toupper(nome[0]) == 'A') { cout << nome << endl; } else { cout << "O nome nao comeca com a letra A/a\n"; } system("pause"); } // 5. Ler dois números inteiros e imprimi-los em ordem crescente. #include <iostream> using namespace std; int main() { int n1, n2; cout << "Digite um numero inteiro : "; cin >> n1; cout << "Digite outro numero inteiro: "; cin >> n2; if (n1 > n2) { cout << n2 << " " << n1 << endl; } else { cout << n1 << " " << n2 << endl; } system("pause"); } // 6. Ler dois nomes e imprimi-los em ordem alfabética. #include <iostream> #include <string.h> using namespace std; int main() { char nome1[50], nome2[50]; cout << "Digite um nome : "; cin >> nome1; cout << "Digite outro nome: "; cin >> nome2; if (strcmp(nome1, nome2) > 0) { // se nome1 > nome2 a funcao strcmp retorna +1. cout << nome2 << " " << nome1 << endl; } else { cout << nome1 << " " << nome2 << endl; } system("pause"); } // 7. Ler três números inteiros e imprimir o maior número (supondo os três números // diferentes). Obs.: Este algoritmo pode ser resolvido de maneira mais eficiente // utilizando-se uma quarta variável para armazenar o maior número. #include <iostream> using namespace std; int main() { int a, b, c; cout << "Digite tres numeros inteiros diferentes:\n"; cout << "Digite o primeiro: "; cin >> a; cout << "Digite o segundo : "; cin >> b; cout << "Digite o terceiro: "; cin >> c; if (a > b && a > c) { cout << "Maior: " << a << endl; } else { if (b > c) { cout << "Maior: " << b << endl; } else { cout << "Maior: " << c << endl; } } system("pause"); } // 7. Ler três números inteiros e imprimir o maior número (supondo os três números // diferentes). Obs.: Este algoritmo pode ser resolvido de maneira mais eficiente // utilizando-se uma quarta variável para armazenar o maior número. // ** OUTRA SOLUÇÃO ** -> Utilizando uma variável auxiliar (maior). #include <iostream> using namespace std; int main() { int a, b, c, maior; cout << "Digite tres numeros inteiros diferentes:\n"; cout << "Digite o primeiro: "; cin >> a; cout << "Digite o segundo : "; cin >> b; cout << "Digite o terceiro: "; cin >> c; maior = a; if (b > maior) { maior = b; } if (c > maior) { maior = c; } cout << "Maior: " << maior << endl; system("pause"); } // 8. Ler os três lados de um triângulo e imprimir se ele é eqüilátero, // isóscele ou escaleno. #include <iostream> using namespace std; int main() { int a, b, c; cout << "Digite os valores dos tres lados de um triangulo:\n"; cout << "Digite o primeiro: "; cin >> a; cout << "Digite o segundo : "; cin >> b; cout << "Digite o terceiro: "; cin >> c; if (a == b && b == c) { cout << "O triangulo eh equilatero\n"; } else { if (a == b || a == c || b == c ) { cout << "O triangulo eh isoscele\n"; } else { cout << "O triangulo eh escaleno\n"; } } system("pause"); } // 8. Ler os três lados de um triângulo e imprimir se ele é eqüilátero, // isóscele ou escaleno. // ** OUTRA SOLUÇÃO ** -> Com teste de existência do triângulo. #include <iostream> using namespace std; int main() { int a, b, c; cout << "Digite os valores dos tres lados de um triangulo:\n"; cout << "Digite o primeiro: "; cin >> a; cout << "Digite o segundo : "; cin >> b; cout << "Digite o terceiro: "; cin >> c; if ( a + b > c && a + c > b && b + c > a) { if (a == b && b == c) { cout << "O triangulo eh equilatero\n"; } else { if (a == b || a == c || b == c ) { cout << "O triangulo eh isoscele\n"; } else { cout << "O triangulo eh escaleno\n"; } } } else { cout << "Este triangulo nao existe\n"; } system("pause"); } // 9. Ler os três valores da equação de segundo grau (a, b e c) e calcular // o delta. Apresentar as raízes da equação se o delta for positivo, // apresentar a mensagem "Não há raízes reais" se o delta for negativo ou // apresentar a mensagem "Não é uma equação do segundo grau" se o delta for // zero. #include <iostream> #include <math.h> using namespace std; int main() { float a, b, c, delta, r1, r2; cout << "Digite os valores da equacao do segundo grau:\n"; cout << "Digite o valor de a: "; cin >> a; cout << "Digite o valor de b: "; cin >> b; cout << "Digite o valor de c: "; cin >> c; delta = b*b - 4*a*c; if (delta > 0) { r1 = (-b + sqrt(delta)) / (2 * a); r2 = (-b - sqrt(delta)) / (2 * a); cout << "A equacao tem raizes reais: "; cout << r1 << " e " << r2 << endl; } else { if (delta < 0) { cout << "Nao ha raizes reais: " << endl; } else { cout << "Nao eh uma equacao do segundo grau" << endl; cout << "Raiz: " << -b/2*a << endl; } } system("pause"); } � // 10. Leia uma data (números do dia, mês e ano separadamente) e imprima se // esta data é válida. Considere a máxima quantidade de dias de cada mês e // também o fato do ano ser bissexto. #include <iostream> using namespace std; int main() { int dia, mes, ano; cout << "Entre com uma data (somente numeros):\n"; cout << "Dia: "; cin >> dia; cout << "Mes: "; cin >> mes; cout << "Ano: "; cin >> ano; if (dia < 0 || ano < 0 || mes < 1 || mes > 12) { cout << "Data invalida!\n"; } else { // 30 dias - abril(4), junho(6), setembro(9) e novembro(11) if (mes == 4 || mes == 6 || mes == 9 || mes == 11) { if (dia > 30) { cout << "Data invalida!\n"; } else { cout << "Data valida!\n"; } } else { // 28/29 dias - fevereiro(2) if (mes == 2) { // se o ano eh bissexto if (ano % 4 == 0 && (ano % 100 != 0 || ano % 400 == 0)) { if (dia > 29) { cout << "Data invalida!\n";} else { cout << "Data valida.\n"; } } else { if (dia > 28) { cout << "Data invalida!\n"; } else { cout << "Data valida.\n"; } } } else { // 31 dias - janeiro(1), março(3), maio(5), julho(7), // agosto(8), outubro(10), dezembro(12) if (dia > 31) { cout << "Data invalida!\n"; } else { cout << "Data valida.\n"; } } } } system("pause"); } // 11. Leia o valor de X (real) e calcule o resultado das fórmulas: // f1(x) = 10 / (3 - x) e f2(x) = (10x + 2) / raiz(x2 - 16) #include <iostream> #include <math.h> using namespace std; int main() { float f1, f2, x; cout << "Digite o valor de x: "; cin >> x; if (x == 3) { cout << "f1(x) = Operacao impossivel!\n"; } else { f1 = 10 / (3 - x); cout << "f1(x) = " << f1 << endl; } if (x >= -4 && x <= 4) { cout << "f2(x) = Operacao impossivel!\n"; } else { f2 = (10 * x + 2) / sqrt(x*x - 16); cout << "f2(x) = " << f2 << endl; } system("pause"); } // 12. Criar um menu com as seguintes opções de pratos: pizza, salada, risoto e // feijoada. Para cada prato escolhido imprimir o valor do prato (escolha quatro // valores diferentes). #include <iostream> #include <math.h> using namespace std; int main() { int op; cout << "1 - Pizza\n"; cout << "2 - Salada\n"; cout << "3 - Risoto\n"; cout << "4 - Feijoada\n"; cout << "Escolha uma opcao [1 a 4]: "; cin >> op; switch (op) { case 1: cout << "\nPizza: R$20,00\n" << endl; break; case 2: cout << "\nSalada: R$10,00\n" << endl; break; case 3: cout << "\nRisoto: R$25,00\n" << endl; break; case 4: cout << "\nFeijoada: R$30,00\n" << endl; break; default: cout << "\nOpcao invalida.\n" << endl; } system("pause"); } // 13. Criar um menu com as seguintes opções: seno, cosseno e tangente. // Em cada caso, ler o valor do ângulo em graus e imprimir a resposta #include <iostream> #include <math.h> using namespace std; int main() { float ang, resp; const float PI = 3.141592654; int op; cout << "1 - Seno\n"; cout << "2 - Cosseno\n"; cout << "3 - Tangente\n"; cout << "Escolha uma opcao [1 a 3]: "; cin >> op; switch (op) { case 1: cout << "\nCalculo do seno\n" << endl; cout << "Digite o valor do angulo em graus: "; cin >> ang; resp = sin(ang*PI/180); cout << "O seno de " << ang << " eh " << resp << endl; break; case 2: cout << "\nCalculo do cosseno\n" << endl; cout << "Digite o valor do angulo em graus: "; cin >> ang; resp = cos(ang*PI/180); cout << "O cosseno de " << ang << " eh " << resp << endl; break; case 3: cout << "\nCalculo do tangente\n" << endl; cout << "Digite o valor do angulo em graus: "; cin >> ang; resp = tan(ang*PI/180); cout << "A tangente de " << ang << " eh " << resp << endl; break; default: cout << "\nOpcao invalida.\n" << endl; } system("pause"); } // 14. Ler um número inteiro e verificar se ele é divisível por 5. // Imprimir mensagens string se o número for divisível ou tiver resto. Ex.: // "divisível", "resta um", "resta dois", "resta três", "resta quatro" #include <iostream> using namespace std; int main() { int num, resto; cout << "Digite um numero inteiro: "; cin >> num; resto = num % 5; switch (resto) { case 1: cout << "Resta um.\n" << endl; break; case 2: cout << "Resta dois.\n" << endl; break; case 3: cout << "Resta tres.\n" << endl; break; case 4: cout << "Resta quatro.\n" << endl; break; default: cout << "Divisivel por 5.\n" << endl; } system("pause"); }
Compartilhar