Trabajo Algoritmos Ii
Elabore los algoritmos (programa y subprogramas) que permitan resolver el siguiente problema:
En una finca cafetera se elabora un registro a cada recolector de café, se legraba el nombre, la edad, el tipo de lote donde recogió (1, 2, 3, 4 ó 5) y el número de kilos que recolectó, se debe crear una lista ligada (con nodo de encabezamiento) con los datos de cadarecolector, se pide además:
a) imprimir el nombre y el dinero que se le debe pagar a cada recolector teniendo en cuenta que el valor del kilo depende del lote donde recogió, así como muestra lasiguiente tabla:
Tipo de lote | 1 | 2 | 3 | 4 | 5 |
Valor kilo ($) | 2000 | 2500 | 3500 | 5000 | 5500 |
b) Calcular por cada lote, el número de kilos promedio recolectado.Solución:
INICIE //inicia programa principal
sumaKilosL1 = 0, sumaKilosL2 = 0, sumaKilosL3 = 0, sumaKilosL4 = 0, sumaKilosL5 = 0, contL1 = 0, contL2 = 0, contL3 = 0, contL4 = 0, contL5 = 0
cab =CrearLista() //le hace un llamado al subprograma (función) CrearLista
p = cab↑.liga
MIENTRAS (p≠λ) HAGA
SELECCIONE EN CASO DE (p↑.tipo)
CASO 1: sumaKilosL1 = sumaKilosL1 + p↑.kil
contL1 = contL1 + 1;pago = p↑.kil*2000
CASO 2: sumaKilosL2 = sumaKilosL2 + p↑.kil
contL2 = contL2 + 1;
pago = p↑.kil*2500
CASO 3: sumaKilosL3 = sumaKilosL3 + p↑. kil
contL3 = contL3 + 1;
pago = p↑.kil*3500CASO 4: sumaKilosL4 = sumaKilosL4 + p↑.kil
contL4 = contL4 + 1;
pago = p↑.kil*5000
CASO 5: sumaKilosL5 = sumaKilosL5 + p↑.kil
contL5 = contL5 + 1;
pago = p↑.kil*5500
FIN (SELECCIONE)
SI(p↑.edad<18) ENTONCES
pago = pago + 10000
SINO
pago = pago + 15000
FIN (SI)
IMPRIMA p↑.nombre, pago
p = p↑.liga
FIN (MIENTRAS)
promKilosL1 = sumaKilosL1 / contL1
promKilosL2 =sumaKilosL2 / contL2
promKilosL3 = sumaKilosL3 / contL3
promKilosL4 = sumaKilosL4 / contL4
promKilosL5 = sumaKilosL5 / contL5
IMPRIMA promKilosL1, promKilosL2, promKilosL3, promKilosL4,...
Regístrate para leer el documento completo.