Descarga la aplicación para disfrutar aún más
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
Compartir