Simplificar código... duvida!

1. Simplificar código... duvida!

Charles GP
predaconbr

(usa Kurumin)

Enviado em 09/06/2008 - 11:03h

Bom dia pessoal,

Fiz um programa abaixo que permitir a leitura dos placares de cada set de uma partida de Vôlei! Caso o placar do set seja inválido, o programa deverá descartá-lo e solicitar uma nova digitação, até que o usuário defina um placar válido. O programa encerra quando uma equipe for a vencedora do confronto, ou seja, vencer três sets.
Porem achei o meu código muito extenso e gostaria de saber se alguém poderia me dar uma dica para simplificá-lo um pouco???

# include <stdio.h>
# include <conio.h>
main ()
{

int set,cont,timea,timeb,vita,vitb,aux;

set=0;
cont=0;
timea=0;
timeb=0;
vita=0;
vitb=0;
aux=0;

while ((vita<3) && (vitb<3))
{
aux=0;

set++;
printf ("\nSET %d \n\n\n", set);
printf ("PONTOS DO TIME A \n");
scanf ("%d",&timea);
printf ("PONTOS DO TIME B \n");
scanf ("%d",&timeb);

while (aux==0)
{
if (timea>timeb)
{
if(((timea-timeb)!=2) || (timea<25))
{

if((timea==25) && ((timea-timeb)>=2))
{
aux++;
}
else
{
aux=0;
printf ("\nINVALIDO\n");
printf ("PONTOS DO TIME A \n");
scanf ("%d",&timea);
printf ("PONTOS DO TIME B \n");
scanf ("%d",&timeb);
}

}
else
aux++;

}

if (timeb>timea)
{

{
if(((timeb-timea)!=2) || (timeb<25))
{

if((timeb==25) && ((timeb-timea)>=2))
{
aux++;
}
else
{
aux=0;
printf ("\nINVALIDO\n");
printf ("PONTOS DO TIME A \n");
scanf ("%d",&timea);
printf ("PONTOS DO TIME B \n");
scanf ("%d",&timeb);
}

}
else
aux++;

}

}
}

if(timea>timeb)
vita++;
if(timeb>timea)
vitb++;


//----------------------------- TAILBRAKE ------------------------------------


while ((vita==2) && (vitb==2))
{
aux=0;

set++;
printf ("\nSET DECISIVO (TAILBRAKE) \n\n\n");
printf ("PONTOS DO TIME A \n");
scanf ("%d",&timea);
printf ("PONTOS DO TIME B \n");
scanf ("%d",&timeb);

while (aux==0)
{
if (timea>timeb)
{
if(((timea-timeb)!=2) || (timea<15))
{

if((timea==15) && ((timea-timeb)>=2))
{
aux++;
}
else
{
aux=0;
printf ("\nINVALIDO\n");
printf ("PONTOS DO TIME A \n");
scanf ("%d",&timea);
printf ("PONTOS DO TIME B \n");
scanf ("%d",&timeb);
}

}
else
aux++;

}

if (timeb>timea)
{

{
if(((timeb-timea)!=2) || (timeb<15))
{

if((timeb==15) && ((timeb-timea)>=2))
{
aux++;
}
else
{
aux=0;
printf ("\nINVALIDO\n");
printf ("PONTOS DO TIME A \n");
scanf ("%d",&timea);
printf ("PONTOS DO TIME B \n");
scanf ("%d",&timeb);
}

}
else
aux++;
}

}
}

if(timea>timeb)
vita++;
if(timeb>timea)
vitb++;

}

}

if (vita>vitb)
printf(" \n TIME A VENCE!");
else
printf(" \n TIME B VENCE!");

getch();
}

E-MAIL para respostas: charlesgp@ig.com.br


  


2. Re: Simplificar código... duvida!

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

Enviado em 09/06/2008 - 14:14h

Olá tudo bem? Bem o seu código tem um pequeno problema: Cadê a modularização? Pode até funcionar, mas com funções acredito que seu código fique bem mais enxuto e legível.

Abraços


3. Modularização

Daniel Gimenes
DanielGimenes

(usa Ubuntu)

Enviado em 09/06/2008 - 14:23h

Concordo com o f_Candido. Caso não saiba o que seja "Modularizar", a idéia é separar o código em funções mais específicas (no seu caso, vc usou só o "main"), ok?
Além disso, estude POO. Nesse caso não sei se seria uma boa alternativa, mas é um assunto muito legal para aprender a deixar o código mais intuitivo e legível.


4. Re: Simplificar código... duvida!

Predacon
predacon

(usa Conectiva)

Enviado em 09/06/2008 - 15:24h

Sou leigo ainda em C++, na verdade esse é meu primeiro programa e não sei como "Modularizar"! : (
Tem como me mostrarem como fica isso? obrigado


5. Re: Simplificar código... duvida!

Anderson de Sousa Pereira
Pianista

(usa Debian)

Enviado em 09/06/2008 - 16:10h

modularizar seria como você escrever alguns passos comuns em subprogramas... da uma sacada ae!

http://www.webly.com.br/tutorial/outras-linguagens/8047/aula-12-modularizacao.htm


6. Re: Simplificar código... duvida!

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

Enviado em 09/06/2008 - 16:31h

Só mais um comentário: a lib conio.h, não é portável. Logo ela não funcionará em Linux, tem suas adaptações.... Vale como dica, escrever códigos portáveis.

Abraços