[SOLUCIONADO] Por qué tengo este error? [Script en Ruby]

Iniciado por deletethisaccount, Octubre 02, 2016, 03:39:10 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Octubre 02, 2016, 03:39:10 PM Ultima modificación: Octubre 03, 2016, 02:25:40 PM por Gabriela
Hola,estaba haciendo un script en ruby y me sale el siguiente error
Código: php
hola.rb:53: syntax error, unexpected keyword_elsif, expecting ')'
hola.rb:53: syntax error, unexpected keyword_elsif, expecting ')'
elsif respuesta2 == 2
     ^
hola.rb:62: syntax error, unexpected keyword_end, expecting ')'
hola.rb:134: syntax error, unexpected keyword_elsif, expecting ')'
elsif respuesta == 3
     ^
hola.rb:431: syntax error, unexpected keyword_end, expecting ')'


y ya e revisado el codigo y esta bien por lo que he visto,aqui el script
Código: ruby
require 'colorize'
Math::constants.grep /pi/i

def lcm(x, y, z, a ,b, c, d, e, f, g)
  if x > y and x > z and x > a and x > b and x > c and x > d and x > e and x > f and x > g
    mayor = x
  elsif y > x and y > z and y > a and y > b and y > c and y > d and y > e and y > f and y > g
    mayor = y
  elsif z > x and z > y and z > a and z > b and z > c and z > d and z > e and z > f and z > g
    mayor = z
  elsif a > x and a > y and a > z and a > b and a > c and a > d and a > e and a > f and a > g
    mayor = a
  elsif b > x and b > y and b > a and b > z and b > c and b > d and b > e and b > f and b > g
    mayor = b
  elsif c > x and c > y and c > a and c > b and c > z and c > d and c > e and c > f and c > g
    mayor = c
  elsif d > x and d > y and d > a and d > b and d > z and d > c and d > e and d > f and d > g
    mayor = d
  elsif e > x and e > y and e > a and e > b and e > z and e > d and e > c and e > f and e > g
    mayor = e
  elsif f > x and f > y and f > a and f > b and f > z and f > d and f > e and f > c and f > g
    mayor = f
  elsif g > x and g > y and g > a and g > b and g > z and g > d and g > e and g > c and g > c
    mayor = g
  end
  while true
    if mayor % x == 0 and mayor % y == 0 and mayor % z == 0 and mayor % a == 0 and mayor % b == 0 and mayor % c == 0 and mayor % d == 0 and mayor % e == 0 and mayor % f == 0 and mayor % g == 0
      lcm = mayor
      break
    end   
    mayor += 1
  end
  return lcm
end

puts "Que quieres hacer\n1:teorema de pitagoras\n2:area\n3:fracciones".red
print ">".blue
respuesta = gets.chomp
if respuesta == 1
puts "\nQue quieres hacer\n1=calcular hipotenusa\n2=cacular cateto".red
print ">".blue
respuesta2 = gets.chomp
if respuesta2 == 1
puts "Dame el primer cateto".red
print ">".blue
cateto1 = gets.chomp
puts "Dame el segundo cateto".red
print ">".blue
cateto2 = gets.chomp
resultado =  0,5**((cateto1 ** 2)+(cateto2 ** 2)
puts "#{resultado}".blue

elsif respuesta2 == 2
puts "Dame la hipotenusa".red
print ">".blue
hipotenusa = gets.chomp
puts "Dame el cateto".red
print ">".blue
cateto = gets.chomp
resultado =  0,5**((hipotenusa ** 2)-(cateto ** 2))
puts "#{resultado}".blue
end
elsif respuesta == 2
puts "Que quieres calcular\n1=cuadrado\n2=triangulo\n3=circulo\n4=rectangulo\n5=rombo\n6=romboide\n7=trapecios\n8=poligono regular".red
print ">".blue
respuesta2 = gets.chomp
if respuesta2 == 1
puts "Damelo".red
print ">".blue
a = gets.chomp
respuesta = a ** 2
puts respuesta
elsif respuesta2 == 2
puts "Dame la base".red
print ">".blue
base = gets.chomp
puts "Dame la altura".red
print ">".blue
altura = gets.chomp
resultado = (base*altura)/2
puts "#{resultado}".blue
elsif respuesta2 == 3
puts "Dame el radio".red
print ">".blue
radio = gets.chomp
resultado = 2*Math::PI*radio ** 2
puts "#{resultado}".blue
elsif respuesta2 == 4
puts "Dame el primer lado".red
print ">".blue
lado1 = gets.chomp
puts "Dame el segundo lado".red
print ">".blue
lado2 = gets.chomp
resultado = lado1 * lado2
puts "#{resultado}".blue
elsif respuesta2 == 5
puts "Damelo".red
print ">",blue
a = gets.chomp
puts "Otra vez".red
print ">",blue
b = gets.chomp
resultado = (a*b)/2
puts "#{resultado}".blue
elsif respuesta2 == 6
puts "Dame la altura".red
print ">".blue
altura = gets.chomp
puts "Dame la base".red
print ">".blue
base = gets.chomp
resultado = base*altura
puts "#{resultado}".blue
elsif respuesta2 == 7
puts "Dame la base".red
print ">".blue
base = gets.chomp
puts "Dame la parte de arriba".red
print ">".blue
parte_arriba = gets.chomp
resultado = (base + parte_arriba)/2
puts "#{resultado}".blue
elsif respuesta2 == 8
puts "Damelo".red
print ">",blue
a = gets.chomp
puts "Dame la altura".red
print ">".blue
altura = gets.chomp
resultado = (a*altura)/2
puts "#{resultado}".blue
end
elsif respuesta == 3
a = 1
b = 1
c = 1
d = 1
e = 1
f = 1
g = 1
h = 1
i = 1
j = 1


puts "Que quieres hacer\n1:sumar\n2:restar\n3:multiplicar\n4:dividir".red
print ">".blue
eleccion = gets.chomp
if eleccion == "3"
puts "dame lo primero".red
print ">".blue
af = gets.chomp.to_i
puts "-".red
print ">".blue
bf = gets.chomp.to_i
puts "\n"
puts "dame lo segundo".red
print ">".blue
cf = gets.chomp.to_i
puts "-".red
print ">".blue
df = gets.chomp.to_i
ac = af*cf
bd = bf*fd
elsif eleccion == "1"
puts "tienen el mismo denominador\n1:Si\n2:No".red
print ">".blue
eleccion2 = gets.chomp
if eleccion2 == "1"
puts "Eres tonto ponte a estudiar mates ;)".yellow
else
puts "cuantas son(sin contar la primera)".red
print ">".blue
el = gets.chomp.to_i
lista = []
lista2 = []
lista3 = []
lista4 = []
la = 0

while not la == el
puts "dame lo primero".red
print ">".blue
a = gets.chomp.to_i
lista[la] = a
puts "-".red
print ">".blue
b = gets.chomp.to_i
lista2[la] = b
puts "\n"
puts "dame lo segundo".red
print ">".blue
c = gets.chomp.to_i
lista3[la] = c
puts "-".red
print ">".blue
d = gets.chomp.to_i
lista4[la] = d
la = la + 1

end
if el == 1
ac = (lista[0]*lista4[0])+(lista2[0]*lista3[0])
bd = lista2[0]*lista4[0]
elsif el == 2
bd = lcm(lista2[0], lista4[0], lista2[1], a, b, c, d, f, g, h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ac = ha+he+hi
elsif el == 3
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], b, c, d, f, g, h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
ac = ha+he+hi+ho
elsif el == 4
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], lista2[2], c, d, f, g, h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
hu = (bd/lista2[2])*lista[2]
ac = ha+he+hi+ho+hu
elsif el == 5
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], lista2[2], lista4[2], d, f, g, h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
hu = (bd/lista2[2])*lista[2]
hau = (bd/lista4[2])*lista3[2]
ac = ha+he+hi+ho+hu+hau
elsif el == 6
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], lista2[2], lista4[2], lista2[3], f, g, h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
hu = (bd/lista2[2])*lista[2]
hau = (bd/lista4[2])*lista3[2]
hae = (bd/lista2[3])*lista[3]
ac = ha+he+hi+ho+hu+hau+hae
elsif el == 7
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], lista2[2], lista4[2], lista2[3], lista4[3], g, h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
hu = (bd/lista2[2])*lista[2]
hau = (bd/lista4[2])*lista3[2]
hae = (bd/lista2[3])*lista[3]
hai = (bd/lista4[3])*lista[3]
ac = ha+he+hi+ho+hu+hau+hae+hai
elsif el == 8
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], lista2[2], lista4[2], lista2[3], lista4[3], lista2[4], h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
hu = (bd/lista2[2])*lista[2]
hau = (bd/lista4[2])*lista3[2]
hae = (bd/lista2[3])*lista[3]
hai = (bd/lista4[3])*lista3[3]
hao = (bd/lista2[4])*lista[4]
ac = ha+he+hi+ho+hu+hau+hae+hai+hao
elsif el == 9
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], lista2[2], lista4[2], lista2[3], lista4[3], lista2[4], lista4[4])
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
hu = (bd/lista2[2])*lista[2]
hau = (bd/lista4[2])*lista3[2]
hae = (bd/lista2[3])*lista[3]
hai = (bd/lista4[3])*lista3[3]
hao = (bd/lista2[4])*lista[4]
hau = (bd/lista4[4])*lista3[4]
ac = ha+he+hi+ho+hu+hau+hae+hai+hao+hau

end
end
elsif eleccion == 2
elsif eleccion == "1"
puts "tienen el mismo denominador\n1:Si\n2:No".red
print ">".blue
eleccion2 = gets.chomp
if eleccion2 == "1"
puts "Eres tonto ponte a estudiar mates ;)".yellow
else
puts "cuantas son(sin contar la primera)".red
print ">".blue
el = gets.chomp.to_i
lista = []
lista2 = []
lista3 = []
lista4 = []
la = 0

while not la == el
puts "dame lo primero".red
print ">".blue
a = gets.chomp.to_i
lista[la] = a
puts "-".red
print ">".blue
b = gets.chomp.to_i
lista2[la] = b
puts "\n"
puts "dame lo segundo".red
print ">".blue
c = gets.chomp.to_i
lista3[la] = c
puts "-".red
print ">".blue
d = gets.chomp.to_i
lista4[la] = d
la = la + 1

end
if el == 1
ac = (lista[0]*lista4[0])-(lista2[0]*lista3[0])
bd = lista2[0]*lista4[0]
elsif el == 2
bd = lcm(lista2[0], lista4[0], lista2[1], a, b, c, d, f, g, h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ac = ha-he-hi
elsif el == 3
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], b, c, d, f, g, h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
ac = ha-he-hi-ho
elsif el == 4
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], lista2[2], c, d, f, g, h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
hu = (bd/lista2[2])*lista[2]
ac = ha-he-hi-ho-hu
elsif el == 5
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], lista2[2], lista4[2], d, f, g, h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
hu = (bd/lista2[2])*lista[2]
hau = (bd/lista4[2])*lista3[2]
ac = ha-he-hi-ho-hu-hau
elsif el == 6
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], lista2[2], lista4[2], lista2[3], f, g, h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
hu = (bd/lista2[2])*lista[2]
hau = (bd/lista4[2])*lista3[2]
hae = (bd/lista2[3])*lista[3]
ac = ha-he-hi-ho-hu-hau-hae
elsif el == 7
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], lista2[2], lista4[2], lista2[3], lista4[3], g, h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
hu = (bd/lista2[2])*lista[2]
hau = (bd/lista4[2])*lista3[2]
hae = (bd/lista2[3])*lista[3]
hai = (bd/lista4[3])*lista[3]
ac = ha-he-hi-ho-hu-hau-hae-hai
elsif el == 8
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], lista2[2], lista4[2], lista2[3], lista4[3], lista2[4], h)
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
hu = (bd/lista2[2])*lista[2]
hau = (bd/lista4[2])*lista3[2]
hae = (bd/lista2[3])*lista[3]
hai = (bd/lista4[3])*lista3[3]
hao = (bd/lista2[4])*lista[4]
ac = ha-he-hi-ho-hu-hau-hae-hai-hao
elsif el == 9
bd = lcm(lista2[0], lista4[0], lista2[1], lista4[1], lista2[2], lista4[2], lista2[3], lista4[3], lista2[4], lista4[4])
ha = (bd/lista2[0])*lista[0]
he = (bd/lista4[0])*lista3[0]
hi = (bd/lista2[1])*lista[1]
ho = (bd/lista4[1])*lista3[1]
hu = (bd/lista2[2])*lista[2]
hau = (bd/lista4[2])*lista3[2]
hae = (bd/lista2[3])*lista[3]
hai = (bd/lista4[3])*lista3[3]
hao = (bd/lista2[4])*lista[4]
hau = (bd/lista4[4])*lista3[4]
ac = ha-he-hi-ho-hu-hau-hae-hai-hao-hau
end
end



else eleccion == 4
puts "dame lo primero".red
print ">".blue
af = gets.chomp.to_i
puts "-".red
print ">".blue
bf = gets.chomp.to_i
puts "\n"
puts "dame lo segundo".red
print ">".blue
cf = gets.chomp.to_i
puts "-".red
print ">".blue
df = gets.chomp.to_i
ac = af*df
bd = bf*cf

end
puts "El resultado es: ".red
puts """
#{ac}
---
#{bd} 
""".blue
end


En la línea 50 falta un ')':

Código: ruby
resultado =  0,5**((cateto1 ** 2)+(cateto2 ** 2)



Saludos