domingo, 17 de fevereiro de 2013

Programa Múltiplos de um Número II



Qualquer número multiplicado pela sequência dos números naturais, obtem - se os seus Múltiplos,
Veja abaixo a sequência dos Números Múltiplos de 2 até 5:

2 x 0 = 0
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10

E assim vai, até onde você quizer.

Portanto 2, 4, 6, 8 e 10 são Múltiplos de { 2 }, Partindo desta lógica ficou fácil criar este programa em linguagem C.

Breve resumo do funcionamento:

Na primeira tela O Programa começa pedindo um intervalo ao usuário para estabelecer os limites mínimos e máximos dos Múltiplos.
Na segunda tela ele pede que se digite o número para verificação dos Múltiplos
dentro dos limites estabelecidos previamente.
Coloquei limites no programa para que não se use números muito longo, e ficou limitado até 10,
se for digitado um número acima disto um beep é acionado junto com uma mensagem para o usuário
advertindo para os limites do programa e volta para o início da função main fazendo o bom uso da recursividade ,
e isto dentro de uma chave while bem imprementada.
Más se for digitado um número dentro dos parâmetros estabelecidos o programa segue o seu curso entrando num bloco
comandado por um for que recebe auxílio de um if e uma variável que termina todo
o processo, recebendo a carga nas costas de todos os Múltiplos do número solicitado.



Eis as saídas deste Programa no cmd:



Veja o código abaixo:

#include <stdio.h>
#include <conio2.h>
int main ( ) {
     int a, b, i = 0, j = 0, num, result = 0;
     system ( "title PROGRAMA MULTIPLOS DE UM NUMERO II" );
     while ( 1 ) {
         system ( "cls" );
         textcolor ( LIGHTRED );
         gotoxy ( 27, 3 );
         printf ( "PROGRAMA MULTIPLOS DE UM NUMERO II" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 25, 5 );
         printf ( "Digite um intervalo" );
         textcolor ( YELLOW );
         gotoxy ( 25, 7 );
         printf ( "De: " );
         scanf ( "%d", &a );
         fflush ( stdin );
         textcolor ( YELLOW );
         gotoxy ( 25, 9 );
         printf ( "Ate: " );
         scanf ( "%d", &b );
         fflush ( stdin );
         if ( num == -1 ) {
              textcolor ( LIGHTRED );
              gotoxy ( 35, 7 );
              printf ( "O ROCCO AGRADECE" );
              Sleep ( 1800 );
              exit ( 0 );
         }
         system ( "cls" );
         textcolor ( LIGHTRED );
         gotoxy ( 27, 3 );
         printf ( "PROGRAMA MULTIPLOS DE UM NUMERO II" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 18, 5 );
         printf ( "digite um numero entre 1 e 10: [ Zero para Sair ] " );
         textcolor ( LIGHTRED );
         scanf ( "%d", &num );
         fflush ( stdin );
         while ( ( num < 0 ) || ( num >= 10 ) ) {
              textcolor ( YELLOW );
              gotoxy ( 25, 7 );
              printf ( "\aNumero Acima de 0 e menor que 10\n" );
              Sleep ( 1800 );
              main ( );
         }
         if ( num == 0 ) {
              textcolor ( LIGHTRED );
              gotoxy ( 35, 7 );
              printf ( "O ROCCO AGRADECE" );
              Sleep ( 1800 );
              exit ( 0 );
         }
         result = b - a;
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 7 );
         printf ( "Entre %d e %d  Temos %d Multiplos de %d ", a, b, result,
                   num );
         textcolor ( LIGHTGRAY );
         gotoxy ( 1, 9 );
         for ( i = a; i < b; i++ ) {
              if ( num > 0 ) {
                   j = num * i;
                   //result = b - a;
                   printf ( " %d ", j );
                   Sleep ( 50 );
              }
         }
         getche ( );
         for ( num = 0;; num++ ) {
              textcolor ( LIGHTCYAN );
              gotoxy ( 20, 17 );
              printf ( "Digite: [ 1 para Repetir ou Negativo para sair ]\n" );
              gotoxy ( 39, 21 );
              scanf ( "%d", &num );
              fflush ( stdin );
              if ( num < 0 ) {
                   textcolor ( LIGHTRED );
                   gotoxy ( 35, 21 );
                   printf ( "O ROCCO AGRADECE" );
                   Sleep ( 1800 );
                   exit ( 0 );
              }
              if ( num == 1 ) {
                   main ( );
              } else {
                   textcolor ( LIGHTBLUE );
                   gotoxy ( 36, 21 );
                   printf ( "\aOPCAO ERRADA" );
                   Sleep ( 1800 );
                   textcolor ( LIGHTBLUE );
                   gotoxy ( 36, 21 );
                   printf ( "               " );
              }
         }
     }
}


Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.