Buscar

LISTA_2_respostas

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 9 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 9 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 9 páginas

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");
}

Outros materiais