Ejercicios Para Estudio No.4 - Resuelto
-
Upload
nadia-vanessa-ramos-rodriguez -
Category
Documents
-
view
221 -
download
7
description
Transcript of Ejercicios Para Estudio No.4 - Resuelto
Fundamentos de Programación
Ejercicios para estudio No.4
Profesor : Roberto Montero Flores
Tema : Unidad 3- Subprogramas y Test
Ejercicio 1
El instituto de Inglés BTN programa todos los meses dos exámenes uno escrito y otro oral. Estos exámenes se utilizan para determinar el nivel en el que se encuentran los alumnos con el propósito de asignarles el aula respectiva, pero además para determinar el precio que se debe cobrar ya que cada nivel tiene un precio diferente. Para ello, los niveles se determinan de acuerdo al siguiente cuadro:
NIVEL Examen escrito Examen oralNivel 3 Mayor a 95 puntos Mayor a 75 puntosNivel 2 Mayor a 95 puntos No mayor a 75 puntosNivel 1 No es mayor a 95 puntos Cualquier puntaje
Dependiendo del nivel asignado se determina el precio del programa mensual de acuerdo a lo siguiente:
Nivel 1 el precio es de S/.150.00 Nivel 2 el precio es de S/.250.00 Nivel 3 el precio es de S/.400.00
Desarrollar un subprograma que permita determinar el Nivel del alumno y otro subprograma que determine el precio a cobrar.
Ejercicio 2
Debido a los excelentes resultados un restaurante ha decidido ampliar sus ofertas de acuerdo a la siguiente escala de consumo:
Consumo Descuento %Menos o igual a 30.00 10Mayor a 30.00 hasta 60.00 15Mayor a 60.00 hasta 100.00 20Mayor a 100.00 30
Escribir un subprograma java que teniendo como parámetro de entrada el consumo realizado por el cliente nos devuelva el monto a pagar, con el descuento aplicado según la tabla.
Ejercicio 3
La empresa de turismo “Buen Viaje” desea dar bonificaciones en millas gratis a los viajeros más asiduos. Para ello desea se elabore un subprograma que reciba como parámetros las millas recorridas por la persona, el tipo de viaje y si el pago fue al crédito o contado. Se debe calcular las millas de bonificación de acuerdo a lo siguiente:
Viajes Nacionales:
Entre 100 y 1000 millas la bonificación será de 1.25 Entre 1001 y 2000 millas la bonificación será de 1.50 Entre 2001 y 3000 millas la bonificación será de 1.75 Desde 3001 millas a más la bonificación será de 2.00
Viajes Internacionales:
Entre 1000 y 2000 millas la bonificación será de 1.75 Entre 2001 y 3000 millas la bonificación será de 2.00 Entre 3001 y 4000 millas la bonificación será de 2.25 Desde 4001 millas a más la bonificación será de 2.50
Finalmente el sistema preguntará si el viajero pagó al contado o en cuotas. Si ha sido en cuotas tendrá una “bonificación por pago” de 0.25 y si ha sido al contado entonces tendrá una bonificación de 0.15.
Las millas gratis se calculan mediante la siguiente fórmula:
(Nro de Millas / 50) * bonificación + (Nro de Millas / 25 + bonificación por pago * millas).
Ejercicio 4
En una fábrica de acero, se determina el grado de cada plancha de acero de acuerdo a dos medidas (T1 y T2) que maneja la empresa y de acuerdo a los siguientes criterios.El acero se considera de:
Grado1 si T1 es mayor que 0.95 y T2 es mayor que 0.75; Grado2 si T1 es mayor que 0.95 pero T2 no es mayor que 0.75; Grado3 si T1 no es mayor que 0.95
Desarrollar el subprograma java que permita determinar el Grado de una plancha
Ejercicio 5
Se solicita escribir un subprograma java que teniendo como parámetros de entrada el modelo, el precio del vehículo y el tipo de motor en centímetros cúbicos (CC) nos dé como resultado el impuesto a cobrar. Considere la siguiente tabla.
Auto Tasa de Impuesto (%)Modelo Tipo de Motor (CC)
Sedán Menos o igual a 1300 10.6
Sedán Entre 1301 y 1500 12.5
Sedán Mayor a 1500 13.4
Camioneta Menos o igual a 2000 14.3
Camioneta Entre 2001 y 3000 15.2
Camioneta Mayor a 3000 16.1
Monterrico. 21 de mayo de 2014
PREGUNTA 01
def determinarnivel(escrito,oral)if escrito>95 and oral > 75
return 3endif escrito>95 and oral <=75
return 2endif escrito<=95
return 1end
end
def determinarprecio(escrito,oral)nivel=determinarnivel(escrito,oral)if nivel==1
return 150endif nivel==2
return 250endif nivel==3
return 400end
end
#--- zona de test ----
def test_determinarnivel print validate(3, determinarnivel(96,76)) print validate(2, determinarnivel(96,75)) print validate(1, determinarnivel(95,76)) end
def test_determinarprecio print validate(400, determinarprecio(96,76)) print validate(250, determinarprecio(96,75)) print validate(150, determinarprecio(95,76)) end
def validate (expected, value) expected == value ? "." : "F"end
def test puts "Test de prueba del programa" puts "---------------------------" test_determinarnivel test_determinarprecio puts " "endtest
PREGUNTA 02
def deterinarconsumo(monto)descuento=0.0if monto<=30
descuento=0.10elsif monto>30 and monto<=60
descuento=0.15elsif monto>60 and monto<=100
descuento=0.20elsif monto>100
descuento=0.30endreturn (monto * (1-descuento)).round(2)
end
#--- zona de test ----
def test_deterinarconsumo print validate(27.00, deterinarconsumo(30.00)) print validate(48.80, deterinarconsumo(61.00)) print validate(42.50, deterinarconsumo(50.00)) print validate(78.40, deterinarconsumo(112.00)) end
def validate (expected, value) expected == value ? "." : "F"end
def test puts "Test de prueba del programa" puts "---------------------------" test_deterinarconsumo puts " "endtest
PREGUNTA 03
def determinarbonificacion(millas,tipoviaje,tipopago)# tipoviaje --> N=Nacional I=Internacional# tipopago --> C=Contado R=Credito
bonifica1=0.0if tipoviaje=='N'
if millas>=100 and millas<=1000bonifica1=1.25
elsif millas>=1001 and millas<=2000bonifica1=1.50
elsif millas>=2001 and millas<=3000bonifica1=1.75
elsif millas>=3001bonifica1=2.0
endendif tipoviaje=='I'
if millas>=1000 and millas<=2000bonifica1=1.75
elsif millas>=2001 and millas<=3000bonifica1=2.0
elsif millas>=3001 and millas<=4000bonifica1=2.25
elsif millas>=4001bonifica1=2.5
endendif tipopago=='C'
bonifica2=0.15endif tipopago=='R'
bonifica2=0.25endbonificacion=((millas/50.0)*bonifica1) + (millas/25.0 + bonifica2*millas)return bonificacion.round(2)
end
#--- zona de test ----
def test_determinarbonificacion print validate(9.50, determinarbonificacion(50,'N','C'))
print validate(43.0, determinarbonificacion(200,'N','C'))print validate(812.5, determinarbonificacion(2500,'N','R'))
print validate(14.50, determinarbonificacion(50,'I','R'))print validate(38.0, determinarbonificacion(200,'I','C'))print validate(825.0, determinarbonificacion(2500,'I','R'))
end
def validate (expected, value) expected == value ? "." : "F"end
def test puts "Test de prueba del programa" puts "---------------------------" test_determinarbonificacion puts " "endtest
PREGUNTA 04
def determinargrado(t1,t2)grado=""if t1>0.95 and t2>0.75
grado="grado1"endif t1>0.95 and t2<=0.75
grado="grado2"endif t1<=0.95
grado="grado3"endreturn grado
end
#--- zona de test ----
def test_determinargrado print validate("grado1", determinargrado(0.96,0.76)) print validate("grado2", determinargrado(0.96,0.75)) print validate("grado3", determinargrado(0.95,0.77)) print validate("grado2", determinargrado(1.95,0.0))end
def validate (expected, value) expected == value ? "." : "F"end
def test puts "Test de prueba del programa" puts "---------------------------" test_determinargrado puts " "endtest
PREGUNTA 05
def deterinarimpuesto(modelo,precio,tipomotor)# modelo --> S=sedan C=camionetatasa=0.0if modelo=='S'
if tipomotor<=1300tasa=0.106
elsif tipomotor>=1301 and tipomotor<=1500tasa=0.125
elsif tipomotor>1500tasa=0.134
endendif modelo=='C'
if tipomotor<=2000tasa=0.143
elsif tipomotor>=2001 and tipomotor<=3000tasa=0.152
elsif tipomotor>3000tasa=0.161
endendimpuesto = precio * tasareturn impuesto.round(2)
end
#--- zona de test ----
def test_deterinarimpuesto print validate(2050.20, deterinarimpuesto('S',15300.00,2000))
print validate(1303.80, deterinarimpuesto('S',12300.00,1200))print validate(4105.50, deterinarimpuesto('C',25500.00,3500))print validate(2781.60, deterinarimpuesto('C',18300.00,2500))
end
def validate (expected, value) expected == value ? "." : "F"end
def test puts "Test de prueba del programa" puts "---------------------------" test_deterinarimpuesto puts " "endtest