Hola,estaba haciendo un script en ruby y me sale el siguiente errorhola.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
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 ')':
resultado = 0,5**((cateto1 ** 2)+(cateto2 ** 2)
Saludos
grax