Last active
December 12, 2015 02:59
-
-
Save gabrielslau/4703683 to your computer and use it in GitHub Desktop.
Lista 02 de Programação com Ruby. 1º Bimestre / 2012.2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
numero1 = gets.to_i | |
numero2 = gets.to_i | |
resultado = if(numero1 == numero2) then "Iguais" else "Diferentes" end | |
puts resultado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
numero1 = gets.to_i | |
numero2 = gets.to_i | |
resultado = if(numero1 < numero2) then numero1 else numero2 end | |
puts resultado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
numero1 = gets.to_i | |
numero2 = gets.to_i | |
numero3 = gets.to_i | |
menor = if(numero1 < numero2 and numero1 < numero3 ) then numero1 | |
elsif(numero2 < numero1 and numero2 < numero3) then numero2 | |
else numero3 | |
end | |
puts menor |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
nota = gets.to_f | |
resultado = if(nota < 0 or nota > 10) then "Invalida" else "Valida" end | |
puts resultado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
nota1 = gets.to_f | |
nota2 = gets.to_f | |
media = ((nota1*2.0)+(nota2*3.0))/5.0 | |
if( (nota1 < 0 or nota1 > 10) or (nota2 < 0 or nota2 >10)) then | |
resultado = "I" | |
elsif(media >= 5.9) then | |
resultado = "A" | |
else | |
resultado = "R" | |
end | |
puts resultado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
numero = gets.to_i | |
resultado = if(numero % 2 == 0) then "Par" else "Impar" end | |
puts resultado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
numero = gets.to_i | |
absoluto = if(numero < 0) then numero * (-1) else numero end | |
puts absoluto |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
numero1 = gets.to_i | |
numero2 = gets.to_i | |
if(numero1 > numero2) then | |
maior = numero1 | |
menor = numero2 | |
else | |
maior = numero2 | |
menor = numero1 | |
end | |
if( maior % menor == 0 ) then puts "Multiplo" end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
numero = gets.to_i | |
resultado = if(12345678 % numero == 0) then "DIVISOR" else "NAO DIVISOR" end | |
puts resultado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
a = gets.to_i | |
b = gets.to_i | |
c = gets.to_i | |
if( (a < b+c) and (b < a+c) and (c < b+a) ) then | |
if(a == b and b == c) then | |
resultado = "Equilatero" | |
elsif( (a == b and b != c) or (a == c and c != b) ) then | |
resultado = "Isosceles" | |
else | |
resultado = "Escaleno" | |
end | |
else | |
resultado = "Nenhum" | |
end | |
puts resultado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
a = gets.to_i | |
b = gets.to_i | |
c = gets.to_i | |
if( (a < b+c) and (b < a+c) and (c < b+a) ) then | |
if(a == b and b == c) then | |
resultado = "Equilatero" | |
elsif( (a == b and b != c) or (a == c and c != b) ) then | |
resultado = "Isosceles" | |
else | |
resultado = "Escaleno" | |
end | |
else | |
resultado = "Nenhum" | |
end | |
puts resultado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
numero1 = gets.to_i | |
numero2 = gets.to_i | |
numero3 = gets.to_i | |
maior = if (numero1 > numero2 and numero1 > numero3) then numero1 | |
elsif (numero2 > numero1 and numero2 > numero3) then numero2 | |
else numero3 | |
end | |
menor = if (numero1 < numero2 and numero1 < numero3) then numero1 | |
elsif (numero2 < numero1 and numero2 < numero3) then numero2 | |
else numero3 | |
end | |
recheio = if (numero1 < maior and numero1 > menor) then numero1 | |
elsif (numero2 < maior and numero2 > menor) then numero2 | |
else numero3 | |
end | |
puts maior | |
puts recheio | |
puts menor |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
numero1 = gets.to_i | |
numero2 = gets.to_i | |
numero3 = gets.to_i | |
numero4 = gets.to_i | |
maior = if (numero1 > numero2 and numero1 > numero3 and numero1 > numero4) then numero1 | |
elsif (numero2 > numero1 and numero2 > numero3 and numero2 > numero4) then numero2 | |
elsif (numero3 > numero1 and numero3 > numero2 and numero3 > numero4) then numero3 | |
else numero4 | |
end | |
menor = if (numero1 < numero2 and numero1 < numero3 and numero1 < numero4) then numero1 | |
elsif (numero2 < numero1 and numero2 < numero3 and numero2 < numero4) then numero2 | |
elsif (numero3 < numero1 and numero3 < numero2 and numero3 < numero4) then numero3 | |
else numero4 | |
end | |
puts numero1+numero2+numero3+numero4-maior-menor |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dia = gets.to_i | |
mes = gets.to_i | |
ano = gets.to_i | |
isValid = false # valor padrao | |
if( | |
(ano >= 0 and mes >= 1 and mes <= 12 and dia >= 1) and | |
( | |
((mes == 1 or mes == 3 or mes == 5 or mes == 7 or mes == 8 or mes == 10 or mes == 12) and dia <= 31) or | |
((mes == 4 or mes == 5 or mes == 9 or mes == 11) and dia <= 30) or | |
( mes == 2 and dia <= 29 ) | |
) | |
) then | |
# Com 31 dias (Janeiro, Março, Maio, Julho, Agosto, Outubro, Dezembro) | |
# Com 30 dias (Abril, Junho, Setembro, Novembro) | |
# Com 28 ou 29 dias (Fevereiro) | |
# if( ((mes == 1 or mes == 3 or mes == 5 or mes == 7 or mes == 8 or mes == 10 or mes == 12) and dia <= 31) or ((mes == 4 or mes == 5 or mes == 9 or mes == 11) and dia <= 30) or ( mes == 2 and dia <= 28 ) ) then | |
isValid = true | |
# end | |
end | |
if(isValid) then | |
puts "Valida" | |
else | |
puts "Invalida" | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dia = gets.to_i | |
mes = gets.to_i | |
ano = gets.to_i | |
isValid = false # valor padrao | |
if( ano >= 0 and mes >= 1 and mes <= 12 and dia >= 1) then | |
if((mes == 1 or mes == 3 or mes == 5 or mes == 7 or mes == 8 or mes == 10 or mes == 12) and dia <= 31) then | |
isValid = true | |
maxDate = 31 | |
elsif((mes == 4 or mes == 5 or mes == 9 or mes == 11) and dia <= 30) then | |
isValid = true | |
maxDate = 30 | |
elsif( mes == 2 and dia <= 29 ) then | |
isValid = true | |
maxDate = 29 | |
end | |
if(isValid) then | |
if( dia == 1 ) then | |
dia = maxDate | |
if(mes == 1) then | |
mes = 12 | |
ano -= 1 | |
else | |
mes -= 1 | |
end | |
else | |
dia -= 1 | |
end | |
puts "#{"%02d" % dia}/#{"%02d" % mes}/#{"%04d" % ano}" | |
end | |
end | |
if( not(isValid) ) then | |
puts "Invalida" | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ----------------- | |
# entrada de dados | |
# ----------------- | |
dia1 = gets.to_i | |
mes1 = gets.to_i | |
ano1 = gets.to_i | |
dia2 = gets.to_i | |
mes2 = gets.to_i | |
ano2 = gets.to_i | |
isValidDate1 = false # valor padrao | |
isValidDate2 = false # valor padrao | |
# ----------------------- | |
# processamento de dados | |
# ----------------------- | |
# validacao da primeira data | |
if( ano1 >= 0 and mes1 >= 1 and mes1 <= 12 and dia1 >= 1) then | |
if((mes1 == 1 or mes1 == 3 or mes1 == 5 or mes1 == 7 or mes1 == 8 or mes1 == 10 or mes1 == 12) and dia1 <= 31) then | |
isValidDate1 = true | |
maxDate1 = 31 | |
elsif((mes1 == 4 or mes1 == 5 or mes1 == 9 or mes1 == 11) and dia1 <= 30) then | |
isValidDate1 = true | |
maxDate1 = 30 | |
elsif( mes1 == 2 and dia1 <= 28 ) then | |
isValidDate1 = true | |
maxDate1 = 28 | |
end | |
end | |
# validacao da segunda data | |
if( ano2 >= 0 and mes2 >= 1 and mes2 <= 12 and dia2 >= 1 ) then | |
if((mes2 == 1 or mes2 == 3 or mes2 == 5 or mes2 == 7 or mes2 == 8 or mes2 == 10 or mes2 == 12) and dia2 <= 31) then | |
isValidDate2 = true | |
maxDate2 = 31 | |
elsif((mes2 == 4 or mes2 == 5 or mes2 == 9 or mes2 == 11) and dia2 <= 30) then | |
isValidDate2 = true | |
maxDate2 = 30 | |
elsif( mes2 == 2 and dia2 <= 28 ) then | |
isValidDate2 = true | |
maxDate2 = 28 | |
end | |
end | |
if( not(isValidDate1) ) then | |
puts "A Data 1 e Invalida" | |
elsif( not(isValidDate2) ) then | |
puts "A Data 2 e Invalida" | |
else | |
# Calculo da diferenca das datas | |
data1 = ano1 * 365 + ano1 / 4 + dia1 + (mes1 - 1) * 31 - (((mes1 * 4 + 23) / 10) * ((mes1 + 12) / 15)) + (((4 - ano1%4) / 4) * (mes1 + 12) / 15) | |
data2 = ano2 * 365 + ano2 / 4 + dia2 + (mes2 - 1) * 31 - (((mes2 * 4 + 23) / 10) * ((mes2 + 12) / 15)) + (((4 - ano2%4) / 4) * (mes2 + 12) / 15) | |
if(data1 > data2) then | |
puts data1 - data2 | |
elsif(data1 < data2) then | |
puts data2 - data1 | |
else | |
puts 0 | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
numero1 = gets.to_i | |
numero2 = gets.to_i | |
numero3 = gets.to_i | |
numero4 = gets.to_i | |
numero5 = gets.to_i | |
maior = if (numero1 > numero2 and numero1 > numero3 and numero1 > numero4 and numero1 > numero5) then numero1 | |
elsif (numero2 > numero1 and numero2 > numero3 and numero2 > numero4 and numero2 > numero5) then numero2 | |
elsif (numero3 > numero1 and numero3 > numero2 and numero3 > numero4 and numero3 > numero5) then numero3 | |
elsif (numero4 > numero1 and numero4 > numero2 and numero4 > numero3 and numero4 > numero5) then numero4 | |
else numero5 | |
end | |
menor = if (numero1 < numero2 and numero1 < numero3 and numero1 < numero4 and numero1 < numero5) then numero1 | |
elsif (numero2 < numero1 and numero2 < numero3 and numero2 < numero4 and numero2 < numero5) then numero2 | |
elsif (numero3 < numero1 and numero3 < numero2 and numero3 < numero4 and numero3 < numero5) then numero3 | |
elsif (numero4 < numero1 and numero4 < numero2 and numero4 < numero3 and numero4 < numero5) then numero4 | |
else numero5 | |
end | |
puts maior - menor |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
nota1 = gets.to_f | |
nota2 = gets.to_f | |
#media parcial | |
media = ((nota1*2.0)+(nota2*3.0))/5.0 | |
if( (nota1 < 0 or nota1 > 10) or (nota2 < 0 or nota2 >10)) then | |
resultado = "0.0:REPROVADO" | |
elsif(media >= 5.9) then | |
resultado = "#{"%.1f" % media}:APROVADO" | |
else | |
resultado = "#{"%.1f" % media}:REPROVADO" | |
# pede novos dados de notas para a media final | |
if( media >= 2.0 and media <= 5.8 ) then | |
nota1 = gets.to_f | |
nota2 = gets.to_f | |
# media final | |
media = ((nota1*2.0)+(nota2*3.0))/5.0 | |
if(media >= 5.9) then | |
resultado = "#{"%.1f" % media}:APROVADO" | |
else | |
resultado = "#{"%.1f" % media}:REPROVADO" | |
end | |
end | |
end | |
puts resultado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#entradas | |
qtd_combustivel_c1 = gets.to_i | |
consumo_combustivel_c1 = gets.to_f | |
velocidade_c1 = gets.to_i | |
velocidade_c2 = gets.to_i | |
distancia_c1c2 = gets.to_i | |
#calculos | |
tempo_encontro = distancia_c1c2.to_f / (velocidade_c1.to_f + velocidade_c2.to_f) | |
ponto_encontro = velocidade_c1 * tempo_encontro | |
combustivel_necessario = ponto_encontro.to_f / consumo_combustivel_c1.to_f | |
if(qtd_combustivel_c1 < combustivel_necessario) then | |
resultado = "--:--:--" | |
else | |
# calcula e exibe em HH:MM:SS | |
hh = tempo_encontro.to_i | |
mm = (tempo_encontro - hh) * 60 | |
ss = (mm - mm.to_i) * 60 | |
resultado = ("%02d" % hh.to_s) + ":" + ("%02d" % mm.to_i.to_s) + ":" + ("%02d" % ss.to_i.to_s) | |
end | |
#saida | |
puts resultado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ----------------- | |
# entrada de dados | |
# ----------------- | |
# nomes dos times | |
nome_time1 = gets.chomp | |
nome_time2 = gets.chomp | |
nome_time3 = gets.chomp | |
# gols dos times nas partidas | |
partida1_gols_time1 = gets.to_i | |
partida1_gols_time2 = gets.to_i | |
partida2_gols_time1 = gets.to_i | |
partida2_gols_time3 = gets.to_i | |
partida3_gols_time2 = gets.to_i | |
partida3_gols_time3 = gets.to_i | |
# ----------------------- | |
# processamento de dados | |
# ----------------------- | |
pontos_vitoria = 3 | |
pontos_empate = 1 | |
pontos_derrota = 0 | |
# Pontuação inicial dos times | |
pontos_time1 = pontos_time2 = pontos_time3 = 0 | |
# Vitórias inicias dos times | |
vitorias_time1 = vitorias_time2 = vitorias_time3 = 0 | |
# Derrotas inicias dos times | |
derrotas_time1 = derrotas_time2 = derrotas_time3 = 0 | |
# Empates inicias dos times | |
empates_time1 = empates_time2 = empates_time3 = 0 | |
# Calculo de pontuacao por partida | |
# PARTIDA 1 | |
if(partida1_gols_time1 > partida1_gols_time2) then | |
pontos_time1 += pontos_vitoria | |
vitorias_time1 += 1 | |
derrotas_time2 += 1 | |
elsif(partida1_gols_time1 < partida1_gols_time2) then | |
pontos_time2 += pontos_vitoria | |
vitorias_time2 += 1 | |
derrotas_time1 += 1 | |
else | |
pontos_time1 += pontos_empate | |
pontos_time2 += pontos_empate | |
empates_time1 += 1 | |
empates_time2 += 1 | |
end | |
# PARTIDA 2 | |
if(partida2_gols_time1 > partida2_gols_time3) then | |
pontos_time1 += pontos_vitoria | |
vitorias_time1 += 1 | |
derrotas_time3 += 1 | |
elsif(partida2_gols_time1 < partida2_gols_time3) then | |
pontos_time3 += pontos_vitoria | |
vitorias_time3 += 1 | |
derrotas_time1 += 1 | |
else | |
pontos_time1 += pontos_empate | |
pontos_time3 += pontos_empate | |
empates_time1 += 1 | |
empates_time3 += 1 | |
end | |
# PARTIDA 3 | |
if(partida3_gols_time2 > partida3_gols_time3) then | |
pontos_time2 += pontos_vitoria | |
vitorias_time2 += 1 | |
derrotas_time3 += 1 | |
elsif(partida3_gols_time2 < partida3_gols_time3) then | |
pontos_time3 += pontos_vitoria | |
vitorias_time3 += 1 | |
derrotas_time2 += 1 | |
else | |
pontos_time2 += pontos_empate | |
pontos_time3 += pontos_empate | |
empates_time2 += 1 | |
empates_time3 += 1 | |
end | |
# Gols Pro | |
GolsPro_time1 = partida1_gols_time1 + partida2_gols_time1 | |
GolsPro_time2 = partida1_gols_time2 + partida3_gols_time2 | |
GolsPro_time3 = partida2_gols_time3 + partida3_gols_time3 | |
# Gols Contra | |
GolsContra_time1 = partida1_gols_time2 + partida2_gols_time3 | |
GolsContra_time2 = partida1_gols_time1 + partida3_gols_time3 | |
GolsContra_time3 = partida2_gols_time1 + partida3_gols_time2 | |
# Saldo de Gols | |
SaldoGols_time1 = GolsPro_time1 - GolsContra_time1 | |
SaldoGols_time2 = GolsPro_time2 - GolsContra_time2 | |
SaldoGols_time3 = GolsPro_time3 - GolsContra_time3 | |
# Dados dos Times | |
# Formatação: NomeTime:Pontos:QtdVitórias:QtdEmpates:QtdDerrotas:GolsPro:GolsContra:SaldoGols | |
# Time1 | |
DadosTime1 = "#{nome_time1.capitalize}:#{pontos_time1}:#{vitorias_time1}:#{empates_time1}:#{derrotas_time1}:#{"%02d" % GolsPro_time1}:#{"%02d" % GolsContra_time1}:#{"%+03d" % SaldoGols_time1}" | |
# Time2 | |
DadosTime2 = "#{nome_time2.capitalize}:#{pontos_time2}:#{vitorias_time2}:#{empates_time2}:#{derrotas_time2}:#{"%02d" % GolsPro_time2}:#{"%02d" % GolsContra_time2}:#{"%+03d" % SaldoGols_time2}" | |
# Time3 | |
DadosTime3 = "#{nome_time3.capitalize}:#{pontos_time3}:#{vitorias_time3}:#{empates_time3}:#{derrotas_time3}:#{"%02d" % GolsPro_time3}:#{"%02d" % GolsContra_time3}:#{"%+03d" % SaldoGols_time3}" | |
# Classificação dos times | |
# | |
# - Critérios de desempate | |
# Caso haja dois times com a mesma pontuacão os critérios de desempate, na ordem, são: | |
# 1. Confronto direto. | |
# 2. Saldo de gols. | |
# 3. Maior quantidade de gols pró. | |
# 4. Menor quantidade de gols contra. | |
# Classificação Pódio 1 | |
if(pontos_time1 > pontos_time2 and pontos_time1 > pontos_time3) then | |
classificacao_podio1 = DadosTime1 | |
# Classificação Pódio 2 e 3 | |
if(pontos_time2 > pontos_time3) then | |
classificacao_podio2 = DadosTime2 | |
classificacao_podio3 = DadosTime3 | |
elsif(pontos_time2 < pontos_time3) then | |
classificacao_podio2 = DadosTime3 | |
classificacao_podio3 = DadosTime2 | |
else | |
# Faz o desempate para segundo e terceiro lugar | |
# confronto direto | |
if(partida3_gols_time2 > partida3_gols_time3) then | |
classificacao_podio2 = DadosTime2 | |
classificacao_podio3 = DadosTime3 | |
elsif(partida3_gols_time2 < partida3_gols_time3) then | |
classificacao_podio2 = DadosTime3 | |
classificacao_podio3 = DadosTime2 | |
# no confronto direto, deu empate. | |
# avalia saldo de gols | |
else | |
if( SaldoGols_time2 > SaldoGols_time3 ) then | |
classificacao_podio2 = DadosTime2 | |
classificacao_podio3 = DadosTime3 | |
elsif( SaldoGols_time2 < SaldoGols_time3 ) then | |
classificacao_podio2 = DadosTime3 | |
classificacao_podio3 = DadosTime2 | |
else | |
# maior quantidade de GolsPro | |
if(GolsPro_time2 > GolsPro_time3) then | |
classificacao_podio2 = DadosTime2 | |
classificacao_podio3 = DadosTime3 | |
elsif(GolsPro_time2 < GolsPro_time3) then | |
classificacao_podio2 = DadosTime3 | |
classificacao_podio3 = DadosTime2 | |
else | |
# menor quantidade de GolsContra | |
if(GolsContra_time2 < GolsContra_time3) then | |
classificacao_podio2 = DadosTime2 | |
classificacao_podio3 = DadosTime3 | |
elsif(GolsContra_time2 > GolsContra_time3) then | |
classificacao_podio2 = DadosTime3 | |
classificacao_podio3 = DadosTime2 | |
else | |
# não é possivel definir a classificação por falta de critérios | |
classificacao_podio2 = "Time2 empatou com Time3 em segundo lugar" | |
classificacao_podio3 = "Time2 empatou com Time3 em segundo lugar" | |
end | |
end | |
end | |
end | |
end | |
# Classificação Pódio 1 | |
elsif(pontos_time2 > pontos_time1 and pontos_time2 > pontos_time3) then | |
classificacao_podio1 = DadosTime2 | |
# Classificação Pódio 2 e 3 | |
if(pontos_time1 > pontos_time3) then | |
classificacao_podio2 = DadosTime1 | |
classificacao_podio3 = DadosTime3 | |
elsif(pontos_time1 < pontos_time3) then | |
classificacao_podio2 = DadosTime3 | |
classificacao_podio3 = DadosTime1 | |
else | |
# Faz o desempate para segundo e terceiro lugar | |
# confronto direto | |
if(partida2_gols_time1 > partida2_gols_time3) then | |
classificacao_podio2 = DadosTime1 | |
classificacao_podio3 = DadosTime3 | |
elsif(partida2_gols_time1 < partida2_gols_time3) then | |
classificacao_podio2 = DadosTime3 | |
classificacao_podio3 = DadosTime1 | |
# no confronto direto, deu empate. | |
# avalia saldo de gols | |
else | |
if( SaldoGols_time1 > SaldoGols_time3 ) then | |
classificacao_podio2 = DadosTime1 | |
classificacao_podio3 = DadosTime3 | |
elsif( SaldoGols_time1 < SaldoGols_time3 ) then | |
classificacao_podio2 = DadosTime3 | |
classificacao_podio3 = DadosTime1 | |
else | |
# maior quantidade de GolsPro | |
if(GolsPro_time1 > GolsPro_time3) then | |
classificacao_podio2 = DadosTime1 | |
classificacao_podio3 = DadosTime3 | |
elsif(GolsPro_time1 < GolsPro_time3) then | |
classificacao_podio2 = DadosTime3 | |
classificacao_podio3 = DadosTime1 | |
else | |
# menor quantidade de GolsContra | |
if(GolsContra_time1 < GolsContra_time3) then | |
classificacao_podio2 = DadosTime1 | |
classificacao_podio3 = DadosTime3 | |
elsif(GolsContra_time1 > GolsContra_time3) then | |
classificacao_podio2 = DadosTime3 | |
classificacao_podio3 = DadosTime1 | |
else | |
# não é possivel definir a classificação por falta de critérios | |
classificacao_podio2 = "Time1 empatou com Time3 em segundo lugar" | |
classificacao_podio3 = "Time1 empatou com Time3 em segundo lugar" | |
end | |
end | |
end | |
end | |
end | |
# Classificação Pódio 1 | |
elsif(pontos_time3 > pontos_time1 and pontos_time3 > pontos_time2) then | |
classificacao_podio1 = DadosTime3 | |
# Classificação Pódio 2 e 3 | |
if(pontos_time1 > pontos_time2) then | |
classificacao_podio2 = DadosTime1 | |
classificacao_podio3 = DadosTime2 | |
elsif(pontos_time1 < pontos_time2) then | |
classificacao_podio2 = DadosTime2 | |
classificacao_podio3 = DadosTime1 | |
else | |
# Faz o desempate para segundo e terceiro lugar | |
# confronto direto | |
if(partida1_gols_time1 > partida1_gols_time2) then | |
classificacao_podio2 = DadosTime1 | |
classificacao_podio3 = DadosTime2 | |
elsif(partida1_gols_time1 < partida1_gols_time2) then | |
classificacao_podio2 = DadosTime2 | |
classificacao_podio3 = DadosTime1 | |
# no confronto direto, deu empate. | |
# avalia saldo de gols | |
else | |
if( SaldoGols_time1 > SaldoGols_time2 ) then | |
classificacao_podio2 = DadosTime1 | |
classificacao_podio3 = DadosTime2 | |
elsif( SaldoGols_time1 < SaldoGols_time2 ) then | |
classificacao_podio2 = DadosTime2 | |
classificacao_podio3 = DadosTime1 | |
else | |
# maior quantidade de GolsPro | |
if(GolsPro_time1 > GolsPro_time2) then | |
classificacao_podio2 = DadosTime1 | |
classificacao_podio3 = DadosTime2 | |
elsif(GolsPro_time1 < GolsPro_time2) then | |
classificacao_podio2 = DadosTime2 | |
classificacao_podio3 = DadosTime1 | |
else | |
# menor quantidade de GolsContra | |
if(GolsContra_time1 < GolsContra_time2) then | |
classificacao_podio2 = DadosTime1 | |
classificacao_podio3 = DadosTime2 | |
elsif(GolsContra_time1 > GolsContra_time2) then | |
classificacao_podio2 = DadosTime2 | |
classificacao_podio3 = DadosTime1 | |
else | |
# não é possivel definir a classificação por falta de critérios | |
classificacao_podio2 = "Time1 empatou com Time2 em segundo lugar" | |
classificacao_podio3 = "Time1 empatou com Time2 em segundo lugar" | |
end | |
end | |
end | |
end | |
end | |
else | |
# Caso todos os time empatem | |
# tenta verificar o primeiro e segundo lugar no caso de empate | |
if( pontos_time1 == pontos_time2 and pontos_time1 > pontos_time3 ) then | |
classificacao_podio3 = DadosTime3 | |
# confronto direto | |
if(partida1_gols_time1 > partida1_gols_time2) then | |
classificacao_podio1 = DadosTime1 | |
classificacao_podio2 = DadosTime2 | |
elsif(partida1_gols_time1 < partida1_gols_time2) then | |
classificacao_podio1 = DadosTime2 | |
classificacao_podio2 = DadosTime1 | |
# no confronto direto, deu empate. | |
# avalia saldo de gols | |
else | |
if( SaldoGols_time1 > SaldoGols_time2 ) then | |
classificacao_podio1 = DadosTime1 | |
classificacao_podio2 = DadosTime2 | |
elsif( SaldoGols_time1 < SaldoGols_time2 ) then | |
classificacao_podio1 = DadosTime2 | |
classificacao_podio2 = DadosTime1 | |
else | |
# maior quantidade de GolsPro | |
if(GolsPro_time1 > GolsPro_time2) then | |
classificacao_podio1 = DadosTime1 | |
classificacao_podio2 = DadosTime2 | |
elsif(GolsPro_time1 < GolsPro_time2) then | |
classificacao_podio1 = DadosTime2 | |
classificacao_podio2 = DadosTime1 | |
else | |
# menor quantidade de GolsContra | |
if(GolsContra_time1 < GolsContra_time2) then | |
classificacao_podio1 = DadosTime1 | |
classificacao_podio2 = DadosTime2 | |
elsif(GolsContra_time1 > GolsContra_time2) then | |
classificacao_podio1 = DadosTime2 | |
classificacao_podio2 = DadosTime1 | |
else | |
# não é possivel definir a classificação por falta de critérios | |
classificacao_podio1 = "Time1 empatou com Time2 em primeiro lugar" | |
classificacao_podio2 = "Time1 empatou com Time2 em primeiro lugar" | |
end | |
end | |
end | |
end | |
elsif( pontos_time1 == pontos_time3 and pontos_time1 > pontos_time2 ) then | |
classificacao_podio3 = DadosTime2 | |
# confronto direto | |
if(partida2_gols_time1 > partida2_gols_time3) then | |
classificacao_podio1 = DadosTime1 | |
classificacao_podio2 = DadosTime3 | |
elsif(partida2_gols_time1 < partida2_gols_time3) then | |
classificacao_podio1 = DadosTime3 | |
classificacao_podio2 = DadosTime1 | |
# no confronto direto, deu empate. | |
# avalia saldo de gols | |
else | |
if( SaldoGols_time1 > SaldoGols_time3 ) then | |
classificacao_podio1 = DadosTime1 | |
classificacao_podio2 = DadosTime3 | |
elsif( SaldoGols_time1 < SaldoGols_time3 ) then | |
classificacao_podio1 = DadosTime3 | |
classificacao_podio2 = DadosTime1 | |
else | |
# maior quantidade de GolsPro | |
if(GolsPro_time1 > GolsPro_time3) then | |
classificacao_podio1 = DadosTime1 | |
classificacao_podio2 = DadosTime3 | |
elsif(GolsPro_time1 < GolsPro_time3) then | |
classificacao_podio1 = DadosTime3 | |
classificacao_podio2 = DadosTime1 | |
else | |
# menor quantidade de GolsContra | |
if(GolsContra_time1 < GolsContra_time3) then | |
classificacao_podio1 = DadosTime1 | |
classificacao_podio2 = DadosTime3 | |
elsif(GolsContra_time1 > GolsContra_time3) then | |
classificacao_podio1 = DadosTime3 | |
classificacao_podio2 = DadosTime1 | |
else | |
# não é possivel definir a classificação por falta de critérios | |
classificacao_podio1 = "Time1 empatou com Time3 em primeiro lugar" | |
classificacao_podio2 = "Time1 empatou com Time3 em primeiro lugar" | |
end | |
end | |
end | |
end | |
elsif( pontos_time2 == pontos_time3 and pontos_time2 > pontos_time1 ) then | |
classificacao_podio3 = DadosTime1 | |
# confronto direto | |
if(partida3_gols_time2 > partida3_gols_time3) then | |
classificacao_podio1 = DadosTime2 | |
classificacao_podio2 = DadosTime3 | |
elsif(partida3_gols_time2 < partida3_gols_time3) then | |
classificacao_podio1 = DadosTime3 | |
classificacao_podio2 = DadosTime2 | |
# no confronto direto, deu empate. | |
# avalia saldo de gols | |
else | |
if( SaldoGols_time2 > SaldoGols_time3 ) then | |
classificacao_podio1 = DadosTime2 | |
classificacao_podio2 = DadosTime3 | |
elsif( SaldoGols_time2 < SaldoGols_time3 ) then | |
classificacao_podio1 = DadosTime3 | |
classificacao_podio2 = DadosTime2 | |
else | |
# maior quantidade de GolsPro | |
if(GolsPro_time2 > GolsPro_time3) then | |
classificacao_podio1 = DadosTime2 | |
classificacao_podio2 = DadosTime3 | |
elsif(GolsPro_time2 < GolsPro_time3) then | |
classificacao_podio1 = DadosTime3 | |
classificacao_podio2 = DadosTime2 | |
else | |
# menor quantidade de GolsContra | |
if(GolsContra_time2 < GolsContra_time3) then | |
classificacao_podio1 = DadosTime2 | |
classificacao_podio2 = DadosTime3 | |
elsif(GolsContra_time2 > GolsContra_time3) then | |
classificacao_podio1 = DadosTime3 | |
classificacao_podio2 = DadosTime2 | |
else | |
# não é possivel definir a classificação por falta de critérios | |
classificacao_podio1 = "Time2 empatou com Time3 em primeiro lugar" | |
classificacao_podio2 = "Time2 empatou com Time3 em primeiro lugar" | |
end | |
end | |
end | |
end | |
end | |
end | |
# ----------------- | |
# saída de dados | |
# ----------------- | |
puts "1:#{classificacao_podio1}" | |
puts "2:#{classificacao_podio2}" | |
puts "3:#{classificacao_podio3}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment