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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts