Você não está conectado. Conecte-se ou registre-se

[C++] Find Even Number

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 [C++] Find Even Number em Qui Ago 02, 2012 4:58 pm

Find Even Number


Tenho andado a estudar C++ e hoje deu-me na cabeça de fazer um aplicativo.
Este aplicativo acha se o numero é PAR, baseado na minha logica, todo o numero que acaba em 0,2,4,6,8 é PAR , o restante é Ímpar, muitas pessoas diriam, "Ah mas o 0 é PAR e ÍMPAR sim, mas eu preferi por colocar só para PAR porque vejamos, 10 é PAR e não ÍMPAR.

Download: http://www.mediafire.com/?5307bq3aoxb5hz8

Source Code: http://pastebin.com/QiaTXQMb

ou

Spoiler:
Código:
/*
=====================================
>                                  <
<        FIND EVEN NUMBER        >
>           by BlueX              <
<                                  >
>        [iPs]TeaM (c) 2012        <
<                                  >
=====================================
*/
#include <iostream>
#include <string>
#include <Windows.h>

using namespace std;

char isPrimaryNumber(char Input[]);
char isNumeric(char Input[]);

void SendColoredText(string str, int color);
int restart();

int main(){
   char userInput[50];

   SendColoredText("\t ============[",14),SendColoredText(" BlueX Find Even Number ",15),SendColoredText("]============\n",14);
   Sleep(1500);
   SendColoredText("Insira um numero: ", 15);
   cin.getline(userInput,50);
   cout << endl;

   if(!isNumeric(userInput)){
      SendColoredText("[",15),SendColoredText("ERRO",4);SendColoredText("]:",15),SendColoredText(" Insira apenas numeros!",15);
      restart();
   }
   if(isPrimaryNumber(userInput)){
      SendColoredText("[ ", 15),SendColoredText("PAR", 2),SendColoredText(" ] - numero: ", 15),SendColoredText(userInput, 15),cout << endl,restart();
   }
   else
      SendColoredText("[ ", 15),SendColoredText("IMPAR", 4),SendColoredText(" ] - numero: ", 15),SendColoredText(userInput, 15),cout << endl,restart();

   //system("pause");
   return 0;

}

char isNumeric(char Input[]){
   for(int i = 0, j = strlen(Input); i < j; i++)
   {
      if(Input[i] > '9' || Input[i] < '0') return 0;
   }
   return 1;
}

char isPrimaryNumber(char Input[]){
   int pos;
   pos = strlen(Input);
   if(Input[pos-1] == '0' || Input[pos-1] == '2' || Input[pos-1] == '4' || Input[pos-1] == '6' || Input[pos-1] == '8')
      return 1;
   return 0;
}

void SendColoredText(string str, int color){
   HANDLE hConsole;

   hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
   SetConsoleTextAttribute(hConsole, color);
   cout << str;
   SetConsoleTextAttribute(hConsole, 15);
}

int restart(){
   char a[2];
   int error = 0;
   if(error == 0){
      Sleep(2500);
      system("CLS");
   }
   SendColoredText("Voce deseja restar o programa?\n",15);
   SendColoredText("[N]",4),SendColoredText(" - Nao\n",15);
   SendColoredText("[S]",2),SendColoredText(" - Sim\n",15);
   SendColoredText("Opcao: ",15);
   cin.getline(a,2);
   if(a[0] == 'N' || a[0] == 'n') return 0;
   else if(a[0] == 'S' || a[0] == 's'){
      system("CLS");
      main();
   }
   else {
      SendColoredText("[",15),SendColoredText("ERRO",4);SendColoredText("]:",15),SendColoredText(" Insira apenas S ou N!",15);
      a[0] = '\1';
      restart();
   }
   return 0;
}

OBS: Ainda estou aprendendo mais sobre c++, portanto o código pode estar horrível, lembrando outra coisa, ele tem um bug que eu não consigo resolver, quando nós inserimos um numero na parte de fechar ou resetar programa ele buga, mas enfim, ninguem vai colocar numeros né? kk, outra coisa é que eu usei uma função que crie que chama-se SendColoredText que tambem esta disponivel no meu pastebin, espero que gostem Very Happy

Ver perfil do usuário

2 Re: [C++] Find Even Number em Qui Ago 02, 2012 5:12 pm

[iPs]BrunoSilva

avatar
Administrador
Parabéns, ficou legal (código organizado, limpo, tá bonito). Mas a minha dica é que utilize o operador de resto para isto

Todo número dividido por 2 que sobra 0 é par. Logo

caso !(n % 2) o número "n" é par.

--

O crash deve estar causando porque caso o cara não selecione "S" ou "N" não tem o que fazer no código

Código:
if(bla == 'n' || bla == 's') {
// executar suas coisas
}
else {
// voce nao selecionou S ou N. selecione novamente
}

Não é isto, mas o erro deve estar em restart()

Ver perfil do usuário http://www.brunodasilva.com

3 Re: [C++] Find Even Number em Qui Ago 02, 2012 5:32 pm

Depois irei lançar uma nova versão, irei estudar um pouco de c++

Ver perfil do usuário

4 Re: [C++] Find Even Number em Qui Ago 02, 2012 6:59 pm

Fa muito tempo que eu n programo em c++.(so sei/sabia o basico)

O return de "if(a[0] == 'N' || a[0] == 'n') return 0;" num deveria retorna True (return 1;) ?

Essa função de colorir o texto... eu tenho ela pra python '-'

Ver perfil do usuário

5 Re: [C++] Find Even Number em Qui Ago 02, 2012 7:45 pm

Uma logica bacana pra numero par e que todo numero par divide por 2 e não tem resto.. ^^

Ver perfil do usuário

6 Re: [C++] Find Even Number em Qui Ago 02, 2012 10:15 pm

Acho que é isto daqui Razz

>>>._.<<<

é a mesma coisa sobre o que mencionaram acima. lembrei, do pawn u.u


ta ficando bão bluex, to upando também .

Ver perfil do usuário

7 Re: [C++] Find Even Number em Sex Ago 03, 2012 7:35 am

[iPs]JotaPee escreveu:Fa muito tempo que eu n programo em c++.(so sei/sabia o basico)

O return de "if(a[0] == 'N' || a[0] == 'n') return 0;" num deveria retorna True (return 1;) ?

Essa função de colorir o texto... eu tenho ela pra python '-'

Não, porque ao dar return 0 ele vai fazer com que o aplicativo feche ;D

[iPs]iPedrO_ escreveu:Uma logica bacana pra numero par e que todo numero par divide por 2 e não tem resto.. ^^

Sim também pode fazer isso.

[iPs]OnlyOne escreveu:Acho que é isto daqui Razz

>>>._.<<<

é a mesma coisa sobre o que mencionaram acima. lembrei, do pawn u.u


ta ficando bão bluex, to upando também .

kkkk, vc lembra sempre do pawn, D:

Ver perfil do usuário

8 Re: [C++] Find Even Number em Sex Ago 03, 2012 9:00 am

[iPs]BlueX escreveu:
[iPs]JotaPee escreveu:Fa muito tempo que eu n programo em c++.(so sei/sabia o basico)

O return de "if(a[0] == 'N' || a[0] == 'n') return 0;" num deveria retorna True (return 1;) ?

Essa função de colorir o texto... eu tenho ela pra python '-'

Não, porque ao dar return 0 ele vai fazer com que o aplicativo feche ;D


Entendi oq vc quer.... (n tinha lido direito.... tava com pressa)



Última edição por [iPs]JotaPee em Sex Ago 03, 2012 1:40 pm, editado 1 vez(es)

Ver perfil do usuário

9 Re: [C++] Find Even Number em Sex Ago 03, 2012 9:39 am

Legal.. parabens.

Ver perfil do usuário http://meustestes.mywebcommunity.org

Conteúdo patrocinado


Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum