Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.Medicamentos
deflotesPorVencer(fechaVencimientos)
end
defobtenerCosto(costos,fechaVencimientos)
end
defobtenerCategoriaMayorCosto(costos,lotes)
end
#zonadetest
defpregunta_1
fechas1=["12/10/2016","12/10/2016","12/12/2016","12/10/2016","12/10/2017"]
fechas2=["12/10/2016","12/10/2016","12/12/2016","12/10/2015","12/10/2017"]
fechas3=["12/10/2016","12/10/2015","12/12/2016","12/10/2015","12/10/2017"]
printvalidate(0,lotesPorVencer(fechas1))
printvalidate(1,lotesPorVencer(fechas2))
printvalidate(2,lotesPorVencer(fechas3))
end
defpregunta_2
fechas1=["12/10/2016","12/10/2016","12/12/2016","12/10/2016","12/10/2017"]
costos1=[22,20,44,35,46]
fechas2=["12/10/2016","12/10/2016","12/12/2016","12/10/2015","12/10/2017"]
costos2=[22,20,44,35,46]
fechas3=["12/10/2016","12/10/2015","12/12/2016","12/10/2015","12/10/2017"]
costos3=[22,20,44,35,46]
printvalidate(0,obtenerCosto(costos1,fechas1))
printvalidate(35,obtenerCosto(costos2,fechas2))
printvalidate(55,obtenerCosto(costos3,fechas3))
end
defpregunta_3
lotes1=["AN12312334","AN32423434","AN54565456","LA6576556","AN423423423"]
costos1=[22,20,44,35,46]
lotes2=["MU97767633","MU242323579","MU788767654","MU346342","MU78768668"]
costos2=[22,20,44,35,46]
lotes3=["AN12333","AN45646","AN768667","LA43224334","AN56456445"]
costos3=[22,20,44,35000,46]
printvalidate("Antibioticos",obtenerCategoriaMayorCosto(costos1,lotes1))
printvalidate("Mucoliticos",obtenerCategoriaMayorCosto(costos2,lotes2))
printvalidate("Laxantes",obtenerCategoriaMayorCosto(costos3,lotes3))
end
defvalidate(expected,value)
expected==value?".":"F"
end
deftest
puts"Testdepruebadelprograma"
puts""
pregunta_1
pregunta_2
pregunta_3
puts""
end
test
2.Encuestadora.
La encuestadora Datitos desea realizar un programa que le permita analizar ciertos datos de
una poblacin. Para esto ha recolectado una base de datos que lepermitirrealizarestalabor
consuayuda.
Setienen4arreglosquecontienenlossiguientesdatos:nombre,edad,sexo,documentos
Sepide:
Determinarlacantidaddehombrescuyaedadseamayora40.
DadoelnmerodeDNI,obtenerelnombrededichociudadano.
Dadounnombre,determinarcuntoshomnimostienedichociudadano.
Determinar cuntos ciudadanos tienen la coincidencia de que su edad seencuentreenalguna
partedesunmerodedocumento.
Por ejemplo si un ciudadano tiene su nmero de documento 42264954 y tiene 26 aos,
entoncescumpleconlacondicindecoincidencia.
defhombresMayor40(listaEdades,listaSexos)
end
defobtenerNombre(dni,listaDocumentos,listaNombres)
end
defobtenerNumHomonimos(nombre,listaNombres)
end
defcoincidenciaEdad(documentos,edades)
end
#zonadetest
defpregunta_1
edades=[22,20,44,35,46]
sexos=['M','F','F','M','M']
edades1=[22,20,54,55,46]
sexos1=['M','F','F','M','M']
printvalidate(1,hombresMayor40(edades,sexos))
printvalidate(2,hombresMayor40(edades1,sexos1))
end
defpregunta_2
documentos=["42264954","45553237","44234532","49000021","43612323"]
nombres=["JoseRuiz","MariaPrado","LuzDelgado","MarioRuiz","JoseRuiz"]
printvalidate("JoseRuiz",obtenerNombre("42264954",documentos,nombres))
printvalidate("MariaPrado",obtenerNombre("45553237",documentos,nombres))
end
defpregunta_3
nombres=["JoseRuiz","MariaPrado","LuzDelgado","MarioRuiz","JoseRuiz"]
printvalidate(2,obtenerNumHomonimos("JoseRuiz",nombres))
printvalidate(1,obtenerNumHomonimos("MariaPrado",nombres))
printvalidate(0,obtenerNumHomonimos("MariaSalgado",nombres))
end
defpregunta_4
documentos=["42264954","45553237","44234532","49000021","43612323"]
edades=[22,20,44,35,46]
documentos1=["42264999","45553777"]
edades1=[15,77]
documentos2=["45564999","41233777"]
edades2=[17,53]
printvalidate(2,coincidenciaEdad(documentos,edades))
printvalidate(1,coincidenciaEdad(documentos1,edades1))
printvalidate(0,coincidenciaEdad(documentos2,edades2))
end
defvalidate(expected,value)
expected==value?".":"F"
end
deftest
puts"Testdepruebadelprograma"
puts""
pregunta_1
pregunta_2
pregunta_3
pregunta_4
puts""
end
test
3.Aerolnea
Serequierelosiguiente:
1. Subprogramaqueobtengalacantidaddeasientosdisponibles.
2. Subprogramaquedevuelvalalistadeasientosqueseencuentrandisponibles.
3. Subprograma que devuelva el nmero del primer asiento disponible. En caso no exista
asientodisponibledevolvercero.
4. Subprograma que devuelva el nmero del ltimo asiento disponible. En caso no exista
asientodisponibledevolvercero.
5. Subprogramaquedevuelvaelporcentajedeasientosdisponibles.
defnumAsientosDisponibles(estadoAsientos)
end
deflistaAsientosDisponibles(asientos,estadoAsientos)
end
defprimerAsientoDisponible(asientos,estadoAsientos)
end
defultimoAsientoDisponible(asientos,estadoAsientos)
end
defporcentajeDisponible(estadoAsientos)
end
#zonadetest
deftest_numAsientosDisponibles
printvalidate(10,numAsientosDisponibles(@estado1))
printvalidate(8,numAsientosDisponibles(@estado2))
printvalidate(7,numAsientosDisponibles(@estado3))
end
deftest_listaAsientosDisponibles
printvalidate([4,6,7,8,10,11,13,15,16,17],listaAsientosDisponibles(@listaAsientos,@estado1))
printvalidate([1,2,3,9,10,11,12,15],listaAsientosDisponibles(@listaAsientos,@estado2))
printvalidate([6,11,13,15,16,18,19],listaAsientosDisponibles(@listaAsientos,@estado3))
end
deftest_primerAsientoDisponible
printvalidate(4,primerAsientoDisponible(@listaAsientos,@estado1))
printvalidate(1,primerAsientoDisponible(@listaAsientos,@estado2))
printvalidate(6,primerAsientoDisponible(@listaAsientos,@estado3))
end
deftest_ultimoAsientoDisponible
printvalidate(17,ultimoAsientoDisponible(@listaAsientos,@estado1))
printvalidate(15,ultimoAsientoDisponible(@listaAsientos,@estado2))
printvalidate(19,ultimoAsientoDisponible(@listaAsientos,@estado3))
end
deftest_porcentajeDisponible
printvalidate(0.50,porcentajeDisponible(@estado1))
printvalidate(0.40,porcentajeDisponible(@estado2))
printvalidate(0.35,porcentajeDisponible(@estado3))
end
defvalidate(expected,value)
expected==value?".":"F"
end
deftest
@listaAsientos=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
@estado1=["O","O","O","D","O","D","D","D","O","D","D","O","D","O","D","D","D","O","O","O"]
@estado2=["D","D","D","O","O","O","O","O","D","D","D","D","O","O","D","O","O","O","O","O"]
@estado3=["O","O","O","O","O","D","O","O","O","O","D","O","D","O","D","D","O","D","D","O"]
puts""
test_numAsientosDisponibles
test_listaAsientosDisponibles
test_primerAsientoDisponible
test_ultimoAsientoDisponible
test_porcentajeDisponible
puts""
end
test
4.Cifrado
Seproponequeprogramelossiguientessubprogramas:
1. Subprogramaquerecibaunaletrayquedevuelvalaletra quecorrespondaaaplicaruna
determinadaposicindedesplazamiento.
2. Subprogramaquerecibaeltextoacifrarydevuelvacomoresultadoeltextocifrado.
Debe tener en cuenta que slo se codifican los caracteres correspondientes a las letras del
alfabeto, el resto de caracteres (espacios en blanco, signos de puntuacin,etc)permanecern
inalterados.
Ejemplo:Sieltextoacodificares:UNTEXTOylaclavees3resultarXQWHAWR
defobtenerLetraDesplazada(abecedario,letra,desplazamiento)
end
defcifrado(texto,desplazamiento,abecedario)
end
#ZonadeTest
deftest_obtenerLetraDesplazada
printvalidate("X",obtenerLetraDesplazada(@abecedario,"U",3))
printvalidate("Q",obtenerLetraDesplazada(@abecedario,"N",3))
printvalidate("",obtenerLetraDesplazada(@abecedario,"",3))
printvalidate("W",obtenerLetraDesplazada(@abecedario,"T",3))
printvalidate("H",obtenerLetraDesplazada(@abecedario,"E",3))
printvalidate("A",obtenerLetraDesplazada(@abecedario,"X",3))
printvalidate("W",obtenerLetraDesplazada(@abecedario,"T",3))
printvalidate("R",obtenerLetraDesplazada(@abecedario,"O",3))
printvalidate("B",obtenerLetraDesplazada(@abecedario,"Z",2))
printvalidate("G",obtenerLetraDesplazada(@abecedario,"E",2))
printvalidate("V",obtenerLetraDesplazada(@abecedario,"T",2))
printvalidate("C",obtenerLetraDesplazada(@abecedario,"A",2))
printvalidate("C",obtenerLetraDesplazada(@abecedario,"Y",4))
printvalidate("E",obtenerLetraDesplazada(@abecedario,"A",4))
printvalidate("",obtenerLetraDesplazada(@abecedario,"",4))
printvalidate("I",obtenerLetraDesplazada(@abecedario,"E",4))
printvalidate("W",obtenerLetraDesplazada(@abecedario,"S",4))
printvalidate("X",obtenerLetraDesplazada(@abecedario,"T",4))
printvalidate("E",obtenerLetraDesplazada(@abecedario,"A",4))
end
deftest_cifrado
printvalidate("XQWHAWR",cifrado("UNTEXTO",3,@abecedario))
printvalidate("BGVC",cifrado("ZETA",2,@abecedario))
printvalidate("CEIWXE",cifrado("YAESTA",4,@abecedario))
end
#zonadetest
defvalidate(expected,value)
expected==value?".":"F"
end
deftest
@abecedario=
["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","
Z"]
puts"Testdepruebadelprograma"
puts""
test_obtenerLetraDesplazada
puts""
test_cifrado
puts""
end
test
5.Repuestos
ExisteunreporteenlaempresaREPUESTOSIQUITOSS.A.conlasiguienteinformacin:
VENTAS
Cdigo
Descripcin
2010
2011
RMF8IX1
Radiador
1250.21
2501.20
KRC90Z1
Bomba de petrleo
1250.52
1351.21
HYN9M90
Filtro de aceite
3125.25
4254.25
IIU90881P
Cadena de distribucin
6512.52
5524.25
Selepidequeimplementelossiguientessubprogramasparadeterminarlosiguiente:
a)Culeselcdigodelrepuestomsvendidoenelao2011?
b) Qu repuesto (indicar descripcin),esaquelquedisminuysusventasentrelosaos 2010
y2011?(sisonmsdeunoindicarelltimodeellos).
c) Cul es la variacin de incremento o disminucin (expresado en porcentaje) entre las
ventastotalesderepuestosentrelosaos2010y2011?
# encoding: UTF-8
def mas_vendido(codigo, ventas2011)
end
puts "---------------------------"
test_mas_vendido
test_disminucion_ventas
test_variacion_ventas
puts " "
end
test
6.Sueldos
Una empresa cuenta con la informacin de los sueldos de sus empleados los mismos que
estnasociadosasusnombres.Laempresatienelaurgenciadeconocerlosiguiente:
Un subprograma que reciba como parmetro el nombre de los empleados y otro con los
sueldosdecadauno.Sedebedeterminarquineselempleadoqueganamsenlaempresa.
Un subprograma que reciba como parmetro el nombre de los empleados y otro con los
sueldos de cada uno. Se debe determinar quin es el empleado que gana menos en la
empresa.
Un subprograma que reciba como parmetro los sueldos de los trabajadores y nos retorne el
promediodetodoslossueldos.
Un subprograma que reciba como parmetro los sueldos de los trabajadores y nos retorne el
totaldelossueldos.
deftrabajador_de_mayor_sueldo(nombres,sueldos)
end
deftrabajador_de_menor_sueldo(nombres,sueldos)
end
defpromedio_sueldos(sueldos)
end
deftotal_sueldos(sueldos)
end
#zonadetest
deftest_trabajador_de_mayor_sueldo
printvalidate(trabajador_de_mayor_sueldo(@nombres1,@sueldos1),"OscarPimentel")
printvalidate(trabajador_de_mayor_sueldo(@nombres1,@sueldos2),"JoseAlcantara")
printvalidate(trabajador_de_mayor_sueldo(@nombres1,@sueldos3),"ErnestoAgurto")
end
deftest_trabajador_de_menor_sueldo
printvalidate(trabajador_de_menor_sueldo(@nombres1,@sueldos1),"RocioMorante")
printvalidate(trabajador_de_menor_sueldo(@nombres1,@sueldos2),"MariaLuyo")
printvalidate(trabajador_de_menor_sueldo(@nombres1,@sueldos3),"JuanPerez")
end
deftest_promedio_sueldos
printvalidate(promedio_sueldos(@sueldos1),2585.49)
printvalidate(promedio_sueldos(@sueldos2),58000.48)
printvalidate(promedio_sueldos(@sueldos3),216703.32)
end
deftest_total_sueldos
printvalidate(total_sueldos(@sueldos1),31025.89)
printvalidate(total_sueldos(@sueldos2),696005.71)
printvalidate(total_sueldos(@sueldos3),2600439.82)
end
defvalidate(expected,value)
expected==value?".":"F"
end
deftest
@nombres1=["RobertoMontero","JoseAlcantara","RosarioMedina","RocioMorante","Maria
Luyo","OscarPimentel","AlbertoPino","CeliaMayer","AlfredoPinto","JuanPerez","Andres
Montero","ErnestoAgurto"]
@sueldos1
=[1250.12,1585.01,3456.54,234.19,1234.89,7861.99,1241.00,4001.01,4320.12,3400.88,1239.9
1,1200.23]
@sueldos2
=[31232.21,211585.21,43456.24,12234.22,11234.19,127861.10,12241.02,40101.10,42320.10,1
1300.18,71239.92,81200.22]
@sueldos3
=[81222.71,176585.44,43876.56,712514.55,81224.66,67861.70,77241.32,43101.30,342320.70,
18130.56,75139.76,881220.56]
puts""
test_trabajador_de_mayor_sueldo
test_trabajador_de_menor_sueldo
test_promedio_sueldos
test_total_sueldos
puts""
end
test
7.FocusGroup
Unaempresadeseaconocerlaopinindelpblicosobresusproductosquesonquesosde
cincotipos:Parmesano,Gouda,Edam,FrescoyAzul.Porelloquiereunaaplicacinquele
permitaprocesarlosdatos.Alosasistentesselesdaunasencuestasdondemarcansus
preferenciasenunniveldel1al5dondesehadefinido:
NivelDefinicin
1Nolocomprara
2Locompraramuypoco
3Locomprarararavez
4Locompraraaveces
5Locomprarasiempre
Selepidelosiguiente:
Desarrollarunsubprogramaquedetermineququesostienenclasificacinde5?
Desarrollarunsubprogramaquedeterminequporcentajedequesosestporsobre3en
elpuntaje?
Desarrollarunsubprogramaquepermitabuscarelniveldeunquesoespecfico.
defbuscar_mejores_quesos(nivel,tipo_queso)
end
defcalcular_quesos_sobre_promedio(nivel)
end
defbuscar_nivel_queso_por_tipo(nivel,tipo_queso,nombre_queso)
end
#ZonadeTest
@tipo_queso=["Parmesano","Gouda","Edam","Fresco","Azul"]
deftest_buscar_mejores_quesos
toma1=[5,3,5,3,2]
toma2=[3,2,3,5,1]
toma3=[1,5,3,4,5]
printvalidate(["Parmesano","Edam"],buscar_mejores_quesos(toma1,@tipo_queso))
printvalidate(["Fresco"],buscar_mejores_quesos(toma2,@tipo_queso))
printvalidate(["Gouda","Azul"],buscar_mejores_quesos(toma3,@tipo_queso))
end
deftest_calcular_quesos_sobre_promedio
toma1=[5,3,5,3,2]
toma2=[3,2,3,5,1]
toma3=[1,5,3,4,5]
printvalidate(40.00,calcular_quesos_sobre_promedio(toma1))
printvalidate(20.00,calcular_quesos_sobre_promedio(toma2))
printvalidate(60.00,calcular_quesos_sobre_promedio(toma3))
end
deftest_buscar_nivel_queso_por_tipo
toma1=[5,3,5,3,2]
toma2=[3,2,3,5,1]
toma3=[1,5,3,4,5]
printvalidate(5,buscar_nivel_queso_por_tipo(toma1,@tipo_queso,"Edam"))
printvalidate(5,buscar_nivel_queso_por_tipo(toma2,@tipo_queso,"Fresco"))
printvalidate(1,buscar_nivel_queso_por_tipo(toma3,@tipo_queso,"Parmesano"))
printvalidate(5,buscar_nivel_queso_por_tipo(toma3,@tipo_queso,"Gouda"))
end
defvalidate(expected,value)
expected==value?".":"F"
end
deftest
puts"Testdepruebadelprograma"
puts""
test_buscar_mejores_quesos
puts""
test_calcular_quesos_sobre_promedio
puts""
test_buscar_nivel_queso_por_tipo
puts""
end
test
8.Sobreusodecelular
Sehadeterminadoqueelusodembparaenviardatossevaamanejarsegnlossiguientes
montos:
Consumo(mb)Soles/mb
Primeros100mb0.15
De101a500mb0.20
De501a1000mb0.35
Msde1000mb0.80
Losmontosseincrementansegnlacantidaddembusados.Siporejemplouso80mb
entoncespago:
80*0,15
Perosiconsumo110entoncespagolosprimeros100a0.15ylossiguientes10alatarifa
siguientequeseran0.20solesloquedaracomoresultado.
100*0.15+10*0.20
Sepidelosiguiente:
1.Subprogramaquedadaunadeterminadacantidaddemb(consumo),devuelvael
costo/mb.
2.Subprogramaquecalculeelmontototalapagar.
defcosto_mb(consumo)
end
defmontoPagar(consumo)
end
#zonadelprogramaprincipal
#zonadetest
deftest_costo_mb
printvalidate(0.20,costo_mb(150))
printvalidate(0.35,costo_mb(560))
printvalidate(0.80,costo_mb(1560))
end
deftest_montoPagar
printvalidate(182.50,montoPagar(750))
printvalidate(1058.0,montoPagar(1985))
printvalidate(80.0,montoPagar(425))
end
defvalidate(expected,value)
expected==value?".":"F"
end
deftest
puts"Testdepruebadelprograma"
puts""
test_costo_mb
puts""
test_montoPagar
puts""
end
test