• 0
Sign in to follow this  
hzez

Algorítmo de comparação em Portugol - ínicio do curso

Question

Uma questão simples, mas que estou tendo dificuldades: inserir o tempo de corrida de 5 participantes e imprimir os 3 primeiros lugares [Portugol; favor, preferencialmente utilizar condicionais]

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Bom, já faz algum tempo que esse tópico foi criado e, provavelmente o hzez já encontrou a soluçao para o problema, porem, acho interessante deixar uma resposta afim de praticar e deixar registrado.

 

Acho que e mais ou menos isso que o hzez pediu... mas... eu pensei agora... e, acho que seria interessante criar uma soluçao para o caso de terem competidores com o mesmo tempo... por exemplo:

1- tempo: 3.34

2- tempo: 4.42

3- tempo: 4.98

4- tempo: 4.98

Assim, o algoritmo teria que identificar os tres melhores tempos e imprimir 4 competidores. Seria legal mas, no momento, estou com preguiça hehehe deixa pra depois...

// Algoritmo criado para ajudar membro do forum Script Brasil.
// Esse algoritmo recebe cinco valores ("tempos") de  cinco participantes diferentes e...
// imprime os tres menores tempos (em ordem crescente) na saida.
// Escrito por ThiagoD
Algoritmo "MostraMelhoresColocados"
Var
   TEMPOS : VETOR[0..4] DE REAL
   A,B : INTEIRO
   C : REAL
Inicio
   PARA A:=0 ATE 4 FACA // esse trecho vai repetir 5x e guardar o tempo de cada participante no vetor TEMPOS
      LIMPATELA
      ESCREVA("Digite o tempo do",A+1,"o Participante: ")
      LEIA(TEMPOS[A])
   FIMPARA
   PARA A:=0 ATE 3 FACA
      B:=A+1
      REPITA
         SE (TEMPOS[A]>TEMPOS[B]) então // se o tempo guardado no indice A for maior q o tempo do indice B
            C:=TEMPOS[A]                // o valor do indice A sera substituido pelo valor do indice B, e B recebera o valor de A
            TEMPOS[A]:=TEMPOS[B]        // mas, para isso, usaremos a variavel C para guardar temporaria mente o valor do indice A
            TEMPOS[B]:=C
         FIMSE
         B:=B+1
      ATE(B>4)
   FIMPARA
   LIMPATELA
   PARA A:=0 ATE 2 FACA// por fim, vamos imprimir os valores dos 3 primeiros indices na saida.
      ESCREVAL(A+1,"o Colocado - Tempo: ",TEMPOS[A])
   FIMPARA
Fimalgoritmo

Edited by ThiagoD
corrigir bug ocorrido na hora da postagem.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this