Advertisement
lmartins333

AlgoritmoDaDivisibilidade

Jan 11th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.91 KB | None | 0 0
  1. /*
  2. Algoritmo desenvolvido como solução ao problema apresentado em sala de aula na
  3.  disciplina Matemática Discreta ministrada pelo professor André Almeida, onde
  4.  o mesmo propôs que o Algoritmo de Divisibilidade fosse implementado em alguma
  5.  línguagem de programação.
  6.  
  7.  Alunos:
  8.    Dhian Kelson de Oliveira Leite
  9.    Lucas Henrique Martins Soares
  10.    Maria Eliana da Silva Holanda
  11. */
  12. #include <stdio.h>
  13. #include <stdlib.h>
  14. #include <locale.h>
  15.  
  16. main() {
  17. // Faz com que o prompt permita acentuações.
  18.     setlocale(LC_ALL, "");
  19. /*
  20.     As variáveis "dividendo" e "divisor" armazenam o valor informado pelo
  21.      usuário até o fim da execução do programa.
  22.     As variáveis "quociente" e "resto" serão calculadas à partir das variáveis
  23.      "dividendo" e "divisor".
  24.     A variável "temp" será usada para armazenar os valores que serão passados de
  25.      uma variável a outra durante a execução.
  26. */
  27.     int dividendo, divisor, quociente, resto, temp;
  28. // É usado para verificar se o usuário quer continuar a execução do pograma.
  29.     char opcao;
  30.  
  31.     do {
  32.     // Limpa a tela.
  33.         system("cls");
  34.     // Define a cor de fundo e da letra.
  35.         system("color 1F");
  36.  
  37.         printf("\n\t\t######### Algoritmo da Divisibilidade #########\n\n\n");
  38.  
  39.     // Recebe e valida o primeiro algarismo.
  40.         do {
  41.             printf("\n Informe o primeiro algarismo: ");
  42.         // Lê o valor informado pelo usuário.
  43.             scanf("%d", &dividendo);
  44.  
  45.         // Se o valor informado for igual a zero...
  46.             if(dividendo == 0) {
  47.             // Limpa a tela.
  48.                 system("cls");
  49.                 printf("\nO valor informado é menor ou igual a zero. \nTente novamente.\n");
  50.             }
  51.     // O laço repetirá enquanto o valor informado for igual a zero.
  52.         } while((dividendo == 0));
  53.  
  54.     // Recebe e valida o segundo algarismo.
  55.         do {
  56.             printf("\n Informe o segundo algarismo: ");
  57.         // Lê o valor informado pelo usuário.
  58.             scanf("%d", &divisor);
  59.  
  60.         // Se o valor informado for igual a zero...
  61.             if(divisor == 0) {
  62.             // Limpa a tela.
  63.                 system("cls");
  64.                 printf("\nO valor informado é igual a zero. \nTente novamente.\n");
  65.             }
  66.     // O laço repetirá enquanto o valor informado for igual a zero.
  67.         } while(divisor == 0);
  68.  
  69.     // Verifica se o divisor é maior que o dividendo.
  70.         if (divisor > dividendo) {
  71.         // Caso sim, inverte seus valores.
  72.             temp = divisor;
  73.             divisor = dividendo;
  74.             dividendo = temp;
  75.         }
  76.  
  77.     // Calcula o quociente.
  78.         quociente = dividendo / divisor;
  79.     // Calcula o resto.
  80.         resto = dividendo % divisor;
  81.  
  82.     // Verifica se a expressão é realmente válida.
  83.         if(dividendo == (divisor * quociente + resto)) {
  84.         // Se sim, exibe os valores recebidos, calculados e a expressão.
  85.             printf("\n\tQuociente = %d\n", quociente);
  86.             printf("\tResto = %d\n", resto);
  87.             printf("\n\tSeu Algorítmo de divisão é: \n\n\tD = d * q + r");
  88.  
  89.         // Verifica se o resto é igual a zero.
  90.             if(resto == 0) {
  91.             // Se não houver resto, exibe a expressão sem o resto.
  92.                 printf("\n\t%d = %d * %d", dividendo, divisor, quociente);
  93.                 printf("\n\n\t%d é múltiplo de %d!\n", dividendo, divisor);
  94.             // Define a cor de fundo e da letra.
  95.                 system("color 2A");
  96.             } else {
  97.             // Se houver algum resto, exibe a expressão com o resto.
  98.                 printf("\n\t%d = %d * %d + %d\n\n", dividendo, divisor, quociente, resto);
  99.                 printf("\t%d não é divisível por %d.\n", dividendo, divisor);
  100.             // Define a cor de fundo e da letra.
  101.                 system("color 4C");
  102.             }
  103.         } else {
  104.             printf("\nNão foi possível calcular a igualdade!\n");
  105.         }
  106.  
  107.         printf("\n  Deseja continuar? (Pressione C e confirme): ");
  108.     // Recebe a opção que o usuário deseja.
  109.         scanf("%s", &opcao);
  110.  
  111. // Repete enquanto o usuário informar "C" ou "c".
  112.     } while((opcao == 'c') || (opcao == 'C'));
  113.  
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement