Está en la página 1de 9

LABORATORIO 4 ARREGLOS Y MATRICES

Algoritmia y programación (Grupo 10),


Universidad del Valle
Santiago de Cali
Cali, abril del 2018

Problema 1:

A. Análisis del problema

En el ejercicio se solicita un programa en phyton en el cual se determine los


niveles de glucosa tomados diariamente, en este debe encontrarse 6 lecturas
por paciente. También se debe determinar los niveles de glucosa obtenidos
poniendo en relevancia los que se presenten en mayores cantidades.

B. Diseño de algoritmo y escribirlo en Pseudocódigo

ENTRADAS: número de días, mediciones=ENTEROS.


VARIABLES: n, s =ENTEROS.
PROCESO:
n=leer ("Digite el número de días: "))
s=n*6
mediciones=[None]*s
a=0
c=0
sumatoria=0
for i in range (0, s):
mediciones[i]=leer ("Digite el nivel de glucosa: "))
si (mediciones[i]>140):
a=a+1
Sino (mediciones[i]>=70 and mediciones[i]<=140 and (i+1) %6==0):
c=c+1
sino (i%6==0):
sumatoria=sumatoria + mediciones[i]
promedio=sumatoria/n
mayor=mediciones [0]
menor=mediciones [0]
for i in range (1, s):
si (mediciones[i]>mayor):
mayor=mediciones[i]
sino(mediciones[i]<menor):
menor=mediciones[i]
SALIDAS:
imprimir(mediciones)
imprimir ("El mayor nivel de glucosa obtenido de todas las mediciones fue
",mayor)
imprimir ("El menor nivel de glucosa obtenido de todas las mediciones fue
",menor)
imprimir ("La cantidad de mediciones que se encuentran en un nivel alto es
",a)
imprimir ("La cantidad de veces que la glucosa después de cenar estaba en
nivel normal es ",c)
imprimir ("El nivel de glucosa promedio que el paciente tuvo antes del
desayuno fue ",promedio)

C. Prueba De Escritorio

DESAYUNO ALMUERZO COMIDA


Antes Después Antes Después Antes Después
70 210 70 140 72 180
90 250 90 150 95 140
90 180 71 140 60 140

250 - Corresponde al mayor nivel de glucosa obtenido en todas las mediciones.


60 - Corresponde al menor nivel de glucosa obtenido en todas las mediciones.
5 - Corresponde al número de mediciones de glucosa alta: 210, 180, 250,
150, 180.
2 - Corresponde al número mediciones de glucosa con nivel normal después
de cena: 140, 140.
83,3 - Corresponde al nivel de glucosa promedio que el paciente tuvo antes
del desayuno.

D. Algoritmo en Python
E. Evidencias de ejecución del programa
Problema 2:

A. Análisis del problema


Se solicita un programa para el manejo de la nómina en donde almacene el
número de horas ($10.000 la hora) que trabaja un determinado empleado
durante varias semanas, este debe mostrar la semana en la que menos
gano y el costo para la empresa por empleado.

B. Diseño de algoritmo y escribirlo en Pseudocódigo

Entradas: Cantidad de empleados, cantidad de semanas, cantidad de horas


trabajadas=ENTEROS.
Nombre del empleado=CADENA DE CARACTERES.

PROCESO:
valor_hora = 10000
cant_salario = 0
contador_semana = 0
semana = 0
cant_empleados = leer("Digite la cantidad de empleados \t: "))
cant_sem = leer("Digite la cantidad de semanas \t: "))
nomina = [[0 for c in range (cant_sem+1)] for f in range (cant_empleados)]
nombres = []*cant_empleados
menor_pago_semana = []*(cant_sem+1)
mensaje = "\nLos datos ingresados fueron: \n"
for a in range (0,cant_empleados):
nomina[a][0] = leer("Digite el nombre del empleado "+str(a+1)+" : "))
nombres.append(str(nomina[a][0]))
for b in range (1,cant_sem+1):
nomina[a][b] = leer("Cantidad de horas trabajadas semanas "+str(b)+" : "))
for c in range (0,cant_empleados):
for l in range (0,cant_sem+1):
mensaje = mensaje + str(nomina[c][1])+ "\t"
mensaje = mensaje+"\t\t" + "\n"
imprimir(mensaje)
for m in range (0,cant_empleados):
for n in range(1,cant_sem+1):
cant_salario = cant_salario + nomina[m][n]
imprimir("El salario del empleado "+str(nomina[m][0])+" es: \t $",
cant_salario*valor_hora)
cant_salario = 0
for o in range (1,cant_sem+1):
for p in range (0,cant_empleados):
contador_semana = contador_semana + nomina [p][o]
imprimir ("En la semana ",o," se pago de nomina \t $:",
contador_semana*valor_hora)
contador_semana = 0
imprimir("")
imprimir("Del arreglo: \n", nombres)
nombre = leer("Digite un nombre para ver en que semana gano menos: ")
for p in range (0,cant_empleados):
si nomina[p][0] == nombre :
for e in range (1,cant_sem+1):
menor_pago_semana.insert(e,nomina[p][e])
menor = min(menor_pago_semana)
for w in range (0,(cant_sem)):
si menor_pago_semana[w] == menor:
imprimir("La semana en la que", nombre," gano menos es la semana:
",w+1)
SALIDAS:
imprimir(mensaje)
imprimir("El salario del empleado "+str(nomina[m][0])+" es: \t $",
cant_salario*valor_hora)
imprimir ("En la semana ",o," se pago de nomina \t $:",
contador_semana*valor_hora)
imprimir("Del arreglo: \n", nombres)
imprimir("La semana en la que", nombre," gano menos es la semana:
",w+1).
C. Prueba De Escritorio

Empleados Sem Sem Sem Sem Sem Total Total pago Semana que
1 2 3 4 5 Sem Mensual menos gano
Carlos 160 180 120 115 145 720 $7.200.000 4
Domínguez
Ana Soto 150 100 110 145 155 660 $6.600.000 2
Sebastián 130 120 115 150 180 695 $6.950.000 3
Carmona
Claudia 120 112 117 150 130 629 $6.290.000 2
Jiménez
TOTAL 560 512 462 560 610 2.704 $27.040.000 -

Nomina Sem 1 Sem 2 Sem 3 Sem 4 Sem 5


Semanal $5.600.000 $5.120.000 $4.620.000 $5.600.000 $6.100.000

D. Algoritmo en Python
E. Evidencias de ejecución del programa

También podría gustarte