Logo Studenta

Solución_ejercicios_de_clase_-_Ruby

¡Estudia con miles de materiales!

Vista previa del material en texto

Programación Básica - Unidad 1 2016-I 
Solución de ejercicios de clase (DDF) 1 de 10 
Ejercicio 1 
Elaborar un programa que pida al usuario dos números enteros, calcule la suma de éstos y la muestre en la 
pantalla. 
 
n1 = gets.to_i 
n2 = gets.to_i 
 
s = n1 + n2 
 
puts 'La suma es: ' + s.to_s 
 
Ejercicio 2 
Elaborar un programa que pida al usuario las horas trabajadas, el pago por hora, calcule el sueldo neto y lo 
muestre en la pantalla, sabiendo lo siguiente: 
 
 Sueldo bruto = Horas trabajadas x Pago por hora. 
 Beneficios = 25% del Sueldo bruto + S/. 200. 
 Descuentos = 10% del Sueldo bruto + S/. 50. 
 Sueldo Neto = Sueldo bruto + Beneficios - Descuentos. 
 
h = gets.to_i 
t = gets.to_f 
 
sb = h*t 
be = 0.25*sb + 200 
de = 0.1*sb + 50 
sn = sb + be - de 
 
puts 'El sueldo neto es: ' + sn.to_s 
 
Ejercicio 3 
Elaborar un programa que pida al usuario tres números enteros, calcule la suma de éstos y muestre un 
mensaje en la pantalla indicando si la suma es o no mayor que 50. 
 
n1 = gets.to_i 
n2 = gets.to_i 
n3 = gets.to_i 
 
s = n1 + n2 + n3 
 
if s > 50 
 puts 'La suma es mayor que 50' 
else 
 puts 'La suma no es mayor que 50' 
end 
 
 
Programación Básica - Unidad 1 2016-I 
Solución de ejercicios de clase (DDF) 2 de 10 
Ejercicio 4 
Elaborar un programa que pida al usuario cuatro notas de un alumno, calcule el promedio y muestre en la 
pantalla un mensaje indicando si está aprobado o desaprobado. 
 
n1 = gets.to_i 
n2 = gets.to_i 
n3 = gets.to_i 
n4 = gets.to_i 
 
s = (n1 + n2 + n3 + n4)/4.0 
 
if s >= 10.5 
 puts 'Aprobado' 
else 
 puts 'Desaprobado' 
end 
 
Ejercicio 5 
Elaborar un programa que pida al usuario dos números: un entero que indique el número de horas trabajadas 
durante la semana y un real que indique el salario por hora de trabajo; mostrar en la pantalla un mensaje 
indicando el monto a pagar. Si las horas trabajadas exceden las 48, el exceso deberá pagarse con un 
incremento del 50%. 
 
h = gets.to_i 
t = gets.to_f 
 
if h <= 48 
 s = h*t 
else 
 s = 48*t + (h-48)*t*1.5 
end 
 
puts 'El sueldo a pagar es: ' + s.to_s 
 
Ejercicio 6 
Elaborar un programa que pida al usuario un número entero e indique en pantalla si el número es par o 
impar. 
 
puts 'Ingrese un número: ' 
n = gets.to_i 
 
if n%2 == 0 
 puts 'El número es par' 
else 
 puts 'El número es impar' 
end 
 
 
Programación Básica - Unidad 1 2016-I 
Solución de ejercicios de clase (DDF) 3 de 10 
Ejercicio 7 
Elaborar un programa que pida al usuario los siguientes datos de una venta: el nombre del cliente, la cantidad 
del producto, el precio unitario y el tipo de cliente (A, B o C), luego que calcule el importe bruto, el descuento, 
el importe final y muestre en pantalla los resultados. El descuento será del 10% si el cliente es de tipo “A” o 
la cantidad del producto es mayor a 100, sino será de 5%. 
 
n = gets.chomp 
c = gets.to_i 
p = gets.to_f 
t = gets.chomp 
 
ib = c*p 
if t=='A' || t=='a' || c>100 
 des = ib*0.1 
else 
 des = ib*0.05 
end 
 
it = ib - des 
puts 'El importe bruto es: ' + ib.to_s 
puts 'El descuento es: ' + des.to_s 
puts 'El importe total es: ' + it.to_s 
 
Ejercicio 8 
Elaborar un programa que pida al usuario un número entero (N) y luego muestre en la pantalla los N primeros 
números enteros (positivos). 
 
puts 'Primero con while' 
n = gets.to_i 
i = 1 
while i<=n 
 puts i 
 i=i+1 
end 
 
puts 'Ahora con For' 
n = gets.to_i 
for i in 1..n 
 puts i 
end 
 
Programación Básica - Unidad 1 2016-I 
Solución de ejercicios de clase (DDF) 4 de 10 
Ejercicio 9 
Elaborar un programa que muestre en pantalla todos los números pares comprendidos entre 1 y 6525. 
 
puts 'Primero con while' 
 
i = 1 
while i<=6525 
 if i%2==0 
 puts i 
 end 
 i=i+1 
end 
 
puts 'Ahora con For' 
 
for i in (2..6525).step(2) 
 puts i 
end 
 
Ejercicio 10 
Elaborar un programa que permita determinar la suma de los primeros mil números enteros positivos. 
 
puts 'Primero con while' 
 
i = 1 
s = 0 
while i<=1000 
 s=s+i 
 i=i+1 
end 
puts 'La suma es: '+s.to_s 
 
puts 'Ahora con For' 
 
s = 0 
for i in 1..1000 
 s=s+i 
end 
puts s 
 
 
Programación Básica - Unidad 1 2016-I 
Solución de ejercicios de clase (DDF) 5 de 10 
Ejercicio 11 
Elaborar un programa que pida al usuario ingresar 10 números enteros, calcule la suma y luego muestre el 
resultado en la pantalla. 
 
puts 'Primero con while' 
 
i = 1 
s = 0 
while i<=10 
 n=gets.to_i 
 s=s+n 
 i=i+1 
end 
puts 'La suma es: '+s.to_s 
 
puts 'Ahora con For' 
 
s = 0 
for i in 1..10 
 n=gets.to_i 
 s=s+n 
end 
puts s 
 
Ejercicio 12 
Elaborar un programa que pida al usuario ingresar las edades de varias personas y luego calcule la edad 
promedio y la muestre en la pantalla. Cada vez que el usuario ingrese una edad, se debe mostrar en la 
pantalla: "¿Desea continuar (S/N)?” y esperar a que el usuario responda; si éste escribe “N” el programa 
mostrará el resultado y terminará, de lo contrario pedirá una edad más. 
 
i = 0 
s = 0 
x = 1 
while x == 1 
 n=gets.to_f 
 s=s+n 
 i=i+1 
 puts 'Desea continuar (S/N)?' 
 a=gets.chomp 
 if a=='s' || a=='S' 
 x=1 
 else 
 x=0 
 end 
end 
puts 'El promedio es: '+(s/i).to_s 
 
Programación Básica - Unidad 1 2016-I 
Solución de ejercicios de clase (DDF) 6 de 10 
Ejercicio 13 
Elaborar un programa que permita determinar la cantidad de números impares que existen entre N y M 
(valores enteros ingresados por el usuario, tal que M sea siempre mayor que N), y mostrar el resultado en la 
pantalla. 
 
puts 'Primero con while' 
 
n=gets.to_i 
m=gets.to_i 
i = n 
c = 0 
while i<=m 
 if i%2 != 0 
 c=c+1 
 end 
 i=i+1 
end 
puts 'La cantidad de impares: '+c.to_s 
 
puts 'Ahora con For' 
 
n=gets.to_i 
m=gets.to_i 
c=0 
for i in n..m 
 if i%2 != 0 
 c=c+1 
 end 
end 
puts c 
 
Ejercicio 14 
Elaborar un programa que permita hacer N veces lo siguiente: pedir al usuario que ingrese un número entero 
X, calcular su factorial y mostrarlo. 
 
n = gets.to_i 
for i in 1..n 
 puts 'Ingrese número '+i.to_s+': ' 
 x = gets.to_i 
 f = 1 
 for j in 1..x 
 f = f*j 
 end 
 puts 'Su factorial es: '+f.to_s 
end 
 
 
Programación Básica - Unidad 1 2016-I 
Solución de ejercicios de clase (DDF) 7 de 10 
Ejercicio 15 
Elaborar un programa que, usando dos bucles, escriba en pantalla el número 1, una vez; el 2, dos veces; el 3, 
tres veces; y así sucesivamente hasta N (ingresado por el usuario). Para N = 5, escribiría: 
 
1 
22 
333 
4444 
55555. 
 
n = gets.to_i 
for i in 1..n 
 x = '' 
 for j in 1..i 
 x = x + i.to_s 
 end 
 puts x 
end 
puts ' ' 
#Otra forma... usando PRINT 
for i in 1..n 
 for j in 1..i 
 print i 
 end 
 puts ' ' 
end 
 
Ejercicio 16 
Elaborar un programa que obtenga el cociente y el residuo de una división mediante restas sucesivas, por 
ejemplo, si el dividendo es 3989 y el divisor es 1247. El cociente es el número de veces restado (3) y el residuo 
es 248 porque ya no se puede seguir dividiendo más. 
 
 3989 - 1247 = 2742  R (1) 
 2742 - 1247 = 1495  R (2) 
 1495 - 1247 = 248  R (3) 
 
puts 'Ingrese dividendo' 
n = gets.to_i 
puts 'Ingrese divisor' 
d = gets.to_i 
i = 1 
x = n - d 
while x >= d 
 i = i + 1 
 x = x - d 
end 
puts ' ' 
puts 'El cociente es '+i.to_s 
puts 'El residuo es '+x.to_s 
Programación Básica - Unidad 1 2016-I 
Solución de ejercicios de clase (DDF) 8 de 10 
 
Ejercicio 17 
Elaborar un programa a través del cual se pueda jugar al “número escondido”, que se juega de la siguiente 
manera: el Jugador A escribe un número N (entre 0 y 100) y el Jugador B debe descubrirlo; B dice un número 
X y si es mayor que N, A deberá decir “alto” y, si es menor que N, deberá decir “bajo”. La partida finaliza 
cuando B aciertaN; A y B intercambian lugares y juegan otra partida. Gana quien haya acertado N en menos 
intentos. 
 
puts 'Jugador A: ingrese número escondido' 
n = gets.to_i 
puts ' ' 
puts 'Número aceptado, presione [Enter] para 
continuar...' 
gets 
system 'cls' 
 
fin = 0 
i = 0 
while fin==0 
 puts 'Jugador B: ingrese número' 
 x = gets.to_i 
 i = i + 1 
 if x == n 
 fin = 1 
 else 
 if x>n 
 puts 'alto' 
 else 
 puts 'bajo' 
 end 
 end 
end 
puts 'Encontró el número en '+i.to_s+' intentos...' 
 
 
Programación Básica - Unidad 1 2016-I 
Solución de ejercicios de clase (DDF) 9 de 10 
Ejercicio 18 
Elaborar un programa a través del cual el usuario (Jugador A) pueda jugar a piedra, papel o tijera con la 
computadora (Jugador B); el programa deberá indicar qué jugador ganó la partida. 
 
fin = 0 
while fin==0 
 puts 'A: ingrese piedra, papel o tijera (1, 2 o 3)' 
 ja = gets.to_i 
 if ja >= 1 && ja <= 3 
 fin = 1 
 end 
end 
jb = rand(3) + 1 
puts 'B juega ' + jb.to_s 
if ja==jb 
 puts 'Empate' 
else 
 if (ja==1 && jb==3) || (ja==2 && jb==1) || (ja==3 && jb==2) 
 puts 'Gana A' 
 else 
 puts 'Gana B' 
 end 
end 
 
Ejercicio 19 
Elabore un programa que calcule, a partir de un número de días ingresado por el usuario ¿a cuántos años, 
meses, semanas y días equivale? (asuma que 1 año equivale a 365 días y 1 mes a 30 días). 
 
puts 'Ingrese número de días' 
n = gets.to_i 
a = n/365 
puts 'Años: ' + a.to_s 
n = n%365 
m = n/30 
puts 'Meses: ' + m.to_s 
n = n%30 
s = n/7 
puts 'Semanas: ' + s.to_s 
d = n%7 
puts 'Días: ' + d.to_s 
 
 
Programación Básica - Unidad 1 2016-I 
Solución de ejercicios de clase (DDF) 10 de 10 
Ejercicio 20 
Elabore un programa que calcule el monto a pagar por el servicio de estacionamiento, teniendo en cuenta 
que por la primera hora se paga 5 soles y por las restantes 3 soles. Se tiene como datos: hora de entrada, 
hora de salida (formato militar), iniciada una hora se contabiliza como hora completa. 
 
ok = 0 
while ok==0 
 puts 'Ingrese hora de entrada' 
 h1 = gets.to_i 
 puts 'Ingrese hora de salida' 
 h2 = gets.to_i 
 if h2>h1 
 ok=1 
 end 
end 
 
puts 'La tarifa a pagar es de' 
if h2-h1<=100 
 puts '5 soles' 
elsif (h2-h1)%100==0 
 puts (5+3*((h2-h1)/100-1)).to_s + ' soles' 
else 
 puts (5+3*(h2-h1)/100).to_s + ' soles' 
end

Continuar navegando

Contenido elegido para ti

240 pag.
kupdf net_a-prende-java_ejercicios

ULT

User badge image

Manuel Rodrigues Monameo

240 pag.
JAvA_CON_EJEMPLOS

ULT

User badge image

Manuel Rodrigues Monameo

2 pag.
14 pag.
Sentencias condicionales en Java: if y switch

Valentin Gomez Farias

User badge image

Oswaldo M

Otros materiales