Skip to content

Instantly share code, notes, and snippets.

@gabrielslau
Last active December 12, 2015 02:59
Show Gist options
  • Save gabrielslau/4703683 to your computer and use it in GitHub Desktop.
Save gabrielslau/4703683 to your computer and use it in GitHub Desktop.
Lista 02 de Programação com Ruby. 1º Bimestre / 2012.2
numero1 = gets.to_i
numero2 = gets.to_i
resultado = if(numero1 == numero2) then "Iguais" else "Diferentes" end
puts resultado
numero1 = gets.to_i
numero2 = gets.to_i
resultado = if(numero1 < numero2) then numero1 else numero2 end
puts resultado
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
nota = gets.to_f
resultado = if(nota < 0 or nota > 10) then "Invalida" else "Valida" end
puts resultado
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
numero = gets.to_i
resultado = if(numero % 2 == 0) then "Par" else "Impar" end
puts resultado
numero = gets.to_i
absoluto = if(numero < 0) then numero * (-1) else numero end
puts absoluto
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
numero = gets.to_i
resultado = if(12345678 % numero == 0) then "DIVISOR" else "NAO DIVISOR" end
puts resultado
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
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
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
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
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
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
# -----------------
# 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
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
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
#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
# -----------------
# 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