Buscar

Faça um programa em C no dev c++ que exiba um menu com as seguintes opções: 1) Aritmética 2) Primos 3) Fatorial 4) Perfeito 5) SAIR. O programa usa...

Faça um programa em C no dev c++ que exiba um menu com as seguintes opções: 1) Aritmética 2) Primos 3) Fatorial 4) Perfeito 5) SAIR. O programa usa uma função int le( ) que irá ler um número inteiro e retornar seu valor lido. Essa função será usada em qualquer uma das opções do menu. ARITMÉTICA Possui as funções que calculam a soma, a subtração, a multiplicação e a divisão entre dois números. Essas funções retornam o valor calculado. A divisão por zero não existe e caso isso aconteça, chame uma função que sinaliza isso: void violacao1( ). Possui as funções que exibem os resultados de cada operação aritmética. PRIMOS Possui a função que verifica se o número é primo ou não: bool primo( int ) Possui a função que exibe um texto informando se o número tal é primo ou não: void exibe( int , bool ) Possui uma função que sinaliza a violação da restrição de que para números menores que 2 não é possível verificar se o número é primo ou não: void violacao2( ). FATORIAL Possui a função que calcula o fatorial do número lido: int fatorial( int ) Possui a função que exibe o resultado do fatorial: void exibe( int , int ) Possui uma função que sinaliza a violação da restrição de que para números menores que 0 não é possível calcular o fatorial: void violacao3( ) PERFEITO Possui a função que verifica se o número é perfeito ou não: bool perfeito( int ) Possui a função que exibe um texto informando se o número tal é perfeito ou não: void exibe( int , bool ) Possui uma função que sinaliza a violação da restrição de que para números menores que 0 não é possível verificar se o número é perfeito ou não: void violacao4( ) O main( ) irá apenas chamar a função menu( ) que por sua vez irá mostrar o menu de opções.

Respostas

User badge image

Ed Verified user icon

Claro! Aqui está um exemplo de programa em C no Dev C++ que atende aos requisitos mencionados: ```c #include int le() { int num; printf("Digite um número inteiro: "); scanf("%d", &num); return num; } void violacao1() { printf("Erro: divisão por zero!\n"); } int soma(int a, int b) { return a + b; } int subtracao(int a, int b) { return a - b; } int multiplicacao(int a, int b) { return a * b; } float divisao(int a, int b) { if (b == 0) { violacao1(); return 0; } return (float) a / b; } void exibeAritmetica(int a, int b) { printf("Soma: %d\n", soma(a, b)); printf("Subtração: %d\n", subtracao(a, b)); printf("Multiplicação: %d\n", multiplicacao(a, b)); printf("Divisão: %.2f\n", divisao(a, b)); } bool primo(int num) { if (num < 2) return false; for (int i = 2; i <= num / 2; i++) { if (num % i == 0) return false; } return true; } void exibePrimo(int num, bool isPrimo) { if (isPrimo) printf("%d é primo.\n", num); else printf("%d não é primo.\n", num); } void violacao2() { printf("Erro: não é possível verificar se números menores que 2 são primos.\n"); } int fatorial(int num) { if (num < 0) { violacao3(); return 0; } int resultado = 1; for (int i = 1; i <= num; i++) { resultado *= i; } return resultado; } void exibeFatorial(int num, int fatorial) { printf("O fatorial de %d é %d.\n", num, fatorial); } void violacao3() { printf("Erro: não é possível calcular o fatorial de números menores que 0.\n"); } bool perfeito(int num) { if (num < 0) return false; int somaDivisores = 0; for (int i = 1; i < num; i++) { if (num % i == 0) somaDivisores += i; } return somaDivisores == num; } void exibePerfeito(int num, bool isPerfeito) { if (isPerfeito) printf("%d é um número perfeito.\n", num); else printf("%d não é um número perfeito.\n", num); } void violacao4() { printf("Erro: não é possível verificar se números menores que 0 são perfeitos.\n"); } void menu() { int opcao, num1, num2; do { printf("\nMenu de opções:\n"); printf("1) Aritmética\n"); printf("2) Primos\n"); printf("3) Fatorial\n"); printf("4) Perfeito\n"); printf("5) SAIR\n"); printf("Escolha uma opção: "); scanf("%d", &opcao); switch (opcao) { case 1: num1 = le(); num2 = le(); exibeAritmetica(num1, num2); break; case 2: num1 = le(); if (num1 < 2) violacao2(); else exibePrimo(num1, primo(num1)); break; case 3: num1 = le(); exibeFatorial(num1, fatorial(num1)); break; case 4: num1 = le(); if (num1 < 0) violacao4(); else exibePerfeito(num1, perfeito(num1)); break; case 5: printf("Encerrando o programa...\n"); break; default: printf("Opção inválida!\n"); } } while (opcao != 5); } int main() { menu(); return 0; } ``` Espero que isso ajude! Se você tiver alguma dúvida adicional, é só me perguntar.

0
Dislike0

Responda

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image