• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Parasita

De 4 equipes encontrar o 1º e o 2º lugar atraves dos pontos e dos golos marcados

9 mensagens neste tópico

Oi pessoal, estou aqui com uma dificuldade para encontrar o 1º e o 2º lugar ( de 4 equipes ) claro que depende dos pontos(pts) e em caso de igualdade depende dos golos marcados(gm).

Precisso de ajuda eu tentei assim:

if ptsP>ptsA then                                                   
maior:=ptsP                                                             
else                                                                       
maior:=ptsA;                                                            
if ptsP=ptsA and gmP>gmA then                                               
    maior:=ptsP                                                              
    else                                                                      
       maior:=ptsA;                                                          
if maior<ptsI then                                                          
     maior:=ptsI                                                              
    else                                                                      
      if maior=ptsP or maior=ptsA and gmI>gmP or gmI>gmA then                 
         maior:=ptsI                                                          
      else                                                                    
    maior:=maior;                                                            
if maior<ptsM then                                                         
maior:=ptsM                                                               
    else                                                                      
    if maior=ptsP or maior=ptsA or maior=ptsI and gmM>gmP or gmM>gmA or gmM>gm
writeln('1ºLugar  Milão: ',ptsM,' pts')                                
else                                                                      
maior:=maior;

Assim nao esta a resultar lá muito bem :cheesygrin:

desde já muito obrigado pessoal

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

dá-me logo um erro no 2º if nao sei pq? mas o prob é k assim nao me está a convencer, mas sinceramente nao sei se existe outra melhor solução. ou se existe algum exemplo num tuturial...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois se o problema é no 2º If nao percebo ... :\

É em que caractere da linha do 2º If ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

if ptsP=ptsA and gmP>gmA then                                             

o erro acontece no sinal > mas nao percebo pk? :eek: :wallbash:

mas mesmo assim na tou a ver bem como encontrar o 2º lugar, pk atraves do codigo k mandei paki so vai encontrar o 1º lugar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ois

Experimenta la assim :

if ptsP>ptsA then                                                   
maior:=ptsP                                                             
else                                                                       
maior:=ptsA;                                                            
if (ptsP=ptsA) and (gmP>gmA) then                                               
    maior:=ptsP                                                              
    else                                                                      
       maior:=ptsA;                                                          
if maior<ptsI then                                                          
     maior:=ptsI                                                              
    else                                                                      
      if (maior=ptsP) or (maior=ptsA) and (gmI>gmP) or (gmI>gmA) then                 
         maior:=ptsI                                                          
      else                                                                    
    maior:=maior;                                                            
if maior<ptsM then                                                         
maior:=ptsM                                                               
    else                                                                      
    if (maior=ptsP) or (maior=ptsA) or (maior=ptsI) and (gmM>gmP) or (gmM>gmA) or (gmM>gm) then
       writeln('1ºLugar  Milão: ',ptsM,' pts')                                
else                                                                      
maior:=maior;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ois

Ha maneiras mais simples de fazer isso, mas isso so como tu tens pode dar barraca, se o numero de pontos for igual

vai se ver quem tem mais golos marcados e entao se o numero de golos marcados for tambem igual ? Como fazes ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

inda nao testei a tua maneira, mas para responder á tua questão existe ainda a variavel de golos sofridos, ou seja se o nº de pts for = e os golos marcados forem iguais entao o desempate é atraves dos golos sofridos, mas eu ainda nao queria entrar por aí pois ainda nao cheguei lá e 1º kero resolver em relaçao aos pontos e aos golos marcados.

desde já muito obrigado e se tiverem mais soluçoes eu agradeço  :-[

Já agora existe um conceito k me falaram que se chama booble sort e k me dizeram k era o soficiente para resolver este caso, mas eu nao sei como funciona se por acaso souberes agradecia k mo explicasses.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora