Está en la página 1de 6

Universidad Nacional Mayor de San Marcos

Facultad de Ingeniera de Sistemas e Informtica


Escuela Acadmico Profesional de Ingeniera de Sistemas
Algortmica I

Primera Prctica calificada


Problema 1. (6 ptos.) El riesgo de que una persona sufra enfermedades coronarias depende de su edad y
su ndice de masa corporal:

El ndice de masa corporal es el cociente entre el peso del individuo en kilos y el cuadrado de su estatura en
metros. Escriba un algoritmo que reciba como entrada la estatura, el peso y la edad de una persona, y le
entregue su condicin de riesgo.

SOLUCION:

Variables de entrada: estatura, peso, edad


Variables de salida: criesgo, imc

Algoritmo Indice_masa_corporal
var
real: estatura, peso
entero: edad
real: imc
cadena: criesgo
inicio
escribir("Ingrese estatura: ")
leer(estatura)
escribir(El peso: ")
leer(peso)
escribir(edad:)
si ((estatura >= 0) y (peso >= 0) y (edad >= 0)) entonces
imc peso/estatura*estatura
si ((imc < 22) y (edad < 45) entonces
criesgo bajo
fin_si
si ((imc < 22) y (edad >= 45) entonces
criesgo medio
fin_si
si ((imc >= 22) y (edad < 45) entonces
criesgo medio
fin_si
si ((imc >= 22) y (edad >= 45) entonces
criesgo alto
fin_si

escribir (El ndice de masa corporal es: , imc)


escribir (Edad: , edad)
escribir (Condicin de riesgo: , criesgo)
sino
escribir (Uno de los datos esta mal ingresado)
fin_si
fin
Universidad Nacional Mayor de San Marcos
Facultad de Ingeniera de Sistemas e Informtica
Escuela Acadmico Profesional de Ingeniera de Sistemas
Algortmica I

Problema 2. (7 ptos.) En una industria se fabrican planchas rectangulares que se venden en lotes de 10
planchas. Una plancha se considera defectuosa si su superficie (ancho x largo) es inferior a 4.4m2, y se
considera buena si es superior. Un lote se considera defectuoso si tiene una o ms planchas defectuosas, y
bueno si todas sus planchas son buenas. Se dispone de los datos sobre el ancho y el largo de 500 planchas.
Escribir un algoritmo que lea dichos datos (ancho y largo de las planchas) y escriba el nmero de lotes buenos,
y la superficie media de todas las planchas de los lotes buenos. Ntese que no se pide la superficie media de
todas las planchas buenas. El algoritmo debe disearse de modo que cuando se detecte que una plancha de
un lote es defectuosa no siga pidiendo los datos de las restantes planchas del mismo lote. No se admite una
solucin que emplee vectores (se pueden solicitar los datos ordenados por lotes).
Universidad Nacional Mayor de San Marcos
Facultad de Ingeniera de Sistemas e Informtica
Escuela Acadmico Profesional de Ingeniera de Sistemas
Algortmica I

SOLUCION:

Variables de entrada: ancho, largo


Variables de salida: numlb(nmero de lotes buenos), supm(superficie media)
Variables intermedias: numl(nmero de lotes), superficie

Algoritmo Deteccion_lotes_buenos
var
real: ancho, largo
entero: numl, numlb, def, sums
real: supm, superficie

Inicio
numl 500/10
Sumsb 0
numlb 0
para (i = 1 hasta numl) hacer
j1
def 0
mientras ( (j<= 10) y (def = 0)) hacer
repetir
escribir("Ingrese ancho: ")
leer(ancho)
escribir(Ingrese largo: ")
leer(largo)
hasta_que((ancho>0)y(largo>0)
superficie ancho*largo
si (superficie > 4.4) entonces
sums sums + superficie
sino
def 1
fin_si
jj+1
fin_mientras
si ( j = 10) entonces
sumsb sumsb + sums
numlb numlb + 1
fin_si
sums 0
fin_para
supm sumsb/(numlb*10)
escribir (El numero de lotes buenos es: , numlb)
escribir (La media de las superficies de las planchas buenas es, supm)
fin
Universidad Nacional Mayor de San Marcos
Facultad de Ingeniera de Sistemas e Informtica
Escuela Acadmico Profesional de Ingeniera de Sistemas
Algortmica I
Universidad Nacional Mayor de San Marcos
Facultad de Ingeniera de Sistemas e Informtica
Escuela Acadmico Profesional de Ingeniera de Sistemas
Algortmica I

Problema 3. (7 ptos.) El supermercado Metro ha lanzado una promocin para todos sus clientes que posean
la tarjeta CENCOSUD. La promocin consiste en aplicar un descuento por cada n productos que pasan por
caja.
El primer descuento es de 20%, y se aplica sobre los primeros n productos ingresados. Luego, cada descuento
es la mitad del anterior, y es aplicado sobre los siguientes n productos.
Por ejemplo, si n = 3 y la compra es de 11 productos, entonces los tres primeros tienen 20% de descuento,
los tres siguientes 10%, los tres siguientes 5%, y los dos ltimos no tienen descuento.
Escriba un programa que pida al usuario ingresar n y la cantidad de productos, y luego los precios de cada
producto. Al final, el programa debe entregar el precio total, el descuento total y el precio final despus de
aplicar el descuento.

Para todas las preguntas la validacin de datos (2 ptos.)

SOLUCION:

Variables de entrada: n, cantidadpro, preciop


Variables de salida: preciot, descuentot

Algoritmo Promocion_cencosud
var
entero: n, cantidadpro
real: preciop, factord, descpro
real: preciot, descuentot
inicio
escribir ("Introduce el numero n: )
leer (n)
escribir ("Introduce cantidad de productos: )
leer (cantidadpro)
factord 0.2
contador 1
preciot 0
descuentot 0
sobrantes mod(cantidadpro/n)
mientras (contador <= cantidadpro) hacer
escribir (Precio producto , contador,: )
leer (preciop)
preciot preciot + preciop
descpro preciop*factord
descuentot descuentot + descpro
si (mod (contador/n = 0) entonces
factord factord*0.5
fin_si
si (contador = cantidadpro sobrantes) entonces
Universidad Nacional Mayor de San Marcos
Facultad de Ingeniera de Sistemas e Informtica
Escuela Acadmico Profesional de Ingeniera de Sistemas
Algortmica I

factord 0
fin_si
contador contador + 1
fin_mientras
escribir (Total: , preciot)
escribir (Descuento: , descuentot)
escribir (Por pagar: , preciot descuentot)
fin

El Profesor.

También podría gustarte