guía de ejercicios - programación lógica

25
Guía de Ejercicios N° 1: Ejercicio 18: Una concesionaria de autos paga a los vendedores $500 por mes, más una comisión de $50 por auto vendido, más el 5% del valor de la venta total realizada. Si tenemos para el vendedor, la cantidad de autos vendidos y el total facturado, ¿cuál será su sueldo? Desarrollo: Inicio Programa “Ejercicio 18” Real pago, comisión, Vv, Av, TF, sueldo Pago ← 500 Comision ← 50 x Av Vv ← (TF x 5) / 100 Sueldo ← pago + comisión + Vv Mostrar “El sueldo del vendedor es:” sueldo Fin programa “Ejercicio 18” Ejercicio 19: Conociendo la velocidad de un auto expresada en km/hs. Calcular el espacio recorrido sabiendo el tiempo, expresado en horas, que utilizó. [Espacio = velocidad * tiempo]. Indicar el resultado en metros. Desarrollo: Inicio Programa “Ejercicio 19” Real Vel, tiempo, espacio Ingresar “Ingresar la Velocidad:” Vel Ingresar “Ingresar el Tiempo:” tiempo Espacio ← (Vel x tiempo) x 1000 Mostrar “El espacio rocrrido por el auto es:” espacio Fin Programa “Ejercicio 19”

Upload: gabriel-baldomir

Post on 25-Jun-2015

159 views

Category:

Education


4 download

DESCRIPTION

Guia de ejercicios de la materia programación lógica. Instituto ESBA Villa Urquiza.

TRANSCRIPT

Page 1: Guía de ejercicios - Programación Lógica

Guía de Ejercicios N° 1:

Ejercicio 18: Una concesionaria de autos paga a los vendedores $500 por mes, más una comisión de $50 por auto vendido, más el 5% del valor de la venta total realizada. Si tenemos para el vendedor, la cantidad de autos vendidos y el total facturado, ¿cuál será su sueldo?

Desarrollo:

Inicio Programa “Ejercicio 18”

Real pago, comisión, Vv, Av, TF, sueldo

Pago ← 500Comision ← 50 x AvVv ← (TF x 5) / 100Sueldo ← pago + comisión + Vv

Mostrar “El sueldo del vendedor es:” sueldo

Fin programa “Ejercicio 18”

Ejercicio 19: Conociendo la velocidad de un auto expresada en km/hs. Calcular el espacio recorrido sabiendo el tiempo, expresado en horas, que utilizó. [Espacio = velocidad * tiempo]. Indicar el resultado en metros.

Desarrollo:

Inicio Programa “Ejercicio 19”

Real Vel, tiempo, espacio

Ingresar “Ingresar la Velocidad:” VelIngresar “Ingresar el Tiempo:” tiempo

Espacio ← (Vel x tiempo) x 1000

Mostrar “El espacio rocrrido por el auto es:” espacio

Fin Programa “Ejercicio 19”

Ejercicio 20: Dados el año de nacimiento de una persona y su nombre, mostrar el nombre y la edad.

Desarrollo:

Inicio Programa “Ejercicio 19”

Real Añon, edadTexto Nombre

Page 2: Guía de ejercicios - Programación Lógica

Ingrese “Ingresar Año de Nacimiento:” AñonEdad ← 2014 – Añon

Mostrar “El nombre es:” nombre “y la edad es:” edad

Fin Programa “Ejercicio 20”

Guía de Ejercicios N° 2:

Ejercicio 35: Dados tres números, al mayor restarle el menor y elevarlos al restante.

Desarrollo:

Inicio Programa “Ejercicio 35”

Real N1, N2, N3

Ingresar “Ingrese el Numero 1:” N1Ingresar “Ingrese el Numero 2:” N2Ingresar “Ingrese el Numero 3:” N3

Si (N1 > N2 > N3) entonces mostrar “…” (N1 – N3) ^ N2Sino Si (N1 > N3 > N2) entonces mostrar “…” (N1 – N2) ^ N3 Sino SI (N2 > N1 > N3) entonces mostrar “…” (N2 – N3) ^ N1 Sino Si (N2 > N3 > N1) entonces mostrar “…” (N2 – N1) ^ N3 Sino Si (N3 > N1 > N2) entonces mostrar “…” (N3 – N2) ^ N1 Sino Si (N3 > N2 > N1) entonces mostrar “…” (N3 – N1) ^ N2 Sino mostrar “Los números son iguales” Fin Si Fin Si Fin Si Fin Si Fin SiFin Si

Fin Programa “Ejercicio 35”

Page 3: Guía de ejercicios - Programación Lógica

Ejercicio 39: Hacer un programa que escriba la correspondiente calificación a una determinada nota de acuerdo con el siguiente criterio:

A. Si la Nota es 10 = S. B. Si la Nota es 9 = D. C. Si la Nota es 7 u 8 =MB. D. Si la Nota es 5 o 6 = B. E. Si la Nota es 4 = R. F. Si la Nota es 1, 2, 3 = I.

Desarrollo:

Inicio Programa “Ejercicio 39”

Entero Nota

Ingresar “Ingrese Nota:” Nota

Según (Nota) hacer 1: caso 10 mostrar “Nota = S” 2: caso 9 mostrar “Nota = D” 3: caso [7-8] mostrar “Nota = MB” 4: caso [5-6] mostrar “Nota = B” 5: caso 4 mostrar “Nota = R” 6: caso [1..3] mostrar “Nota = I”Sino Mostrar “La nota ingresada es incorrecta”Fin Según

Fin Programa “Ejercicio 39”

Ejercicio 46: De una exposición de libros se conocen las cantidades de libros de autores argentinos, de autores uruguayos, de autores paraguayos y de autores chilenos que hay. Se pide hacer un programa que informe:

a. La cantidad total de libros que hay en la exposición. b. ¿Qué porcentaje del total le corresponde a cada una de las cantidades ingresadas?c. ¿Cuál es el nivel de la exposición, considerando que puede ser: malo, bueno, muy bueno, excelente o sobresaliente, si la cantidad de obras expuestas es menor que 5.000, 10.000, 20.000, 30.000 o supera este último valor?

Desarrollo:

Inicio Programa “Ejercicio 46”

Page 4: Guía de ejercicios - Programación Lógica

Entero CLA, CLU, CLP, CLC, CTLReal PLA, PLU, PLP, PLC

Ingresar “Ingrese la Cantidad de Libros de autores Argentinos:” CLAIngresar “Ingrese la Cantidad de Libros de autores Uruguayos:” CLUIngresar “Ingrese la Cantidad de Libros de autores Paraguayos:” CLPIngresar “Ingrese la Cantidad de Libros de autores Chilenos:” CLC

CTL ← CLA + CLU + CLP + CLC mostrar “El total de libros es:” CTLPLA ← (CLA x 100) / CTL mostrar “El porcentaje de libros de autores Argentinos es:” PLAPLU ← (CLU x 100) / CTL mostrar “El porcentaje de libros de autores Uruguayos es:” PLUPLP ← (CLP x 100) / CTL mostrar “El porcentaje de libros de autores Paraguayos es:” PLPPLC ← (CLC x 100) / CTL mostrar “El porcentaje de libros de autores Chilenos es:” PLC

Según (CTL) hacer 1: caso [0...4999] mostrar “El nivel de la exposición es malo” 2: caso [5000..9999] mostrar “El nivel de la exposición es bueno” 3: caso ]10000..19999] mostrar “El nivel de la exposición es muy bueno” 4: caso [20000..29999] mostrar “El nivel de la exposición es excelente”Sino mostrar “El nivel de la exposición es sobresaliente”Fin Según

Fin Programa “Ejercicio 46”

Guía de Ejercicios N° 3:

Ejercicio 69: Dadas las horas trabajadas de 20 empleados y sabiendo que la hora de trabajo es de $5, mostrar el sueldo a pagar. Al finalizar se desea saber también cuántos empleados ganan igual o más de $900 y cuántos ganan menos que esa suma.

Desarrollo:

Inicio Programa “Ejercicio 69”

Entero HT, empleado, mas, menosReal sueldo, valor hora 5Mas ← 0Menos ← 0

Para empleado desde 1 hasta 20 hacer

Page 5: Guía de ejercicios - Programación Lógica

Repetir Ingresar “Ingrese las horas trabajadas:” HT Hasta (HT > 0)

Sueldo ← HT x valor hora

Mostrar “El sueldo es:” sueldo

Si (sueldo >= 900) entonces mas ← mas + 1 Sino menos ← menos + 1 Fin Si

Fin Para

Mostrar “Los empleados cuyo sueldo es mayor a $900:” masMostrar “Los empleados cuyo sueldo es menor a $900:” menos

Fin programa “Ejercicio 69”

Ejercicio 81: Hacer un algoritmo que permita ingresar N números y que informe al finalizar el producto de todos los negativos, el promedio de todos los positivos y la cantidad de ceros. El valor de N deberá pedirse como primer dato.

Desarrollo:

Inicio Programa “Ejercicio 81”

Entero número, cant_num, VF, producto, positivos, ceros

Ingresar “Ingrese la cantidad total de números:” VF

Producto ← 1 Positivos ← 0Ceros ← 0

Para cant_num desde 1 hasta VF hacer

Ingresar “Ingrese Número:” número

Si (numero = 0) entonces ceros ← ceros + 1 Sino Si (numero > 0) entonces positivos ← positivos + 1 Sino producto ← producto x numero Fin Si Fin SI

Page 6: Guía de ejercicios - Programación Lógica

Fin Para

Mostrar “La cantidad de ceros son:” cerosMostrar “El promedio de los números positivos es:” (positivos x 100) / VFMostrar “El producto de los números negativos es:” producto

Fin Programa “Ejercicio 81”

Ejercicio 82: Dadas las edades y estaturas de 45 alumnos de un curso se desea saber: la edad y estatura promedio, la cantidad de alumnos mayores a 21 años y la cantidad de alumnos que miden menos 1,70 metros.

Desarrollo:

Inicio Programa “Ejercicio 82”

Entero I, EP, AP, MV, AM17, edad, alturaEP ← 0AP ← 0MV ← 0AM17 ← 0

Para I desde 1 hasta 45 hacer

Repetir Ingresar “Ingrese la edad:” edad Hasta (edad > 0)

Repetir Ingresar “Ingrese la altura:” altura Hasta (altura > 0)

EP ← EP + edad AP ← AP + altura

Si (altura < 1,70) entonces AM17 ← AM17 + 1 Fin Si

Si (edad > 21) entonces MV ← MV + 1 Fin Si

Fin Para

Mostrar “La edad promedio es:” EP / 45Mostrar “La altura promedio es:” AP / 45Mostrar “La cantidad de alumnos cuya edad es mayor a 21 es:” MVMostrar “La cantidad de alumnos cuya altura es menor a 1,70 es:” AM17

Fin Programa “Ejercicio 82”

Page 7: Guía de ejercicios - Programación Lógica

Guía de Ejercicios N° 5:

Ejercicio 100: En un comercio hay 4 [cuatro] vendedores. Por cada venta realizada se conoce el código de vendedor, la cantidad vendida, el precio unitario y el código de artículo [del 15 al 180]. Se solicita informar por cada venta realizada el código de vendedor, el artículo y monto a pagar. Asimismo se debe informar:a. La venta total de cada vendedor.b. Cuál fue la venta de mayor monto y el código del vendedor que la efectuó.c. Cuál fue el artículo de menor precio unitario.La entrada de datos finaliza cuando el código de vendedor es igual a 0.

Desarrollo:

Procedimiento “Ingreso_Dato_Cond” (entero & codv) Repetir Ingresar “…” codv Hasta (codv >= 0) and (codv < 5)Fin procedimiento

Inicio Programa “Ejercicio 100”

Entero codv, cantv, codart, mayor_cv, menor_caReal PU, IMP, TV1, TV2, TV3, TV4, mayor, menorTV1 ← 0 TV2 ← 0 TV3 ← 0TV4 ← 0Mayor ← 0Menor ← 99999

Ingreso_Dato_Cond (codv)

Mientras (codv <> 0) hacer

Repetir Ingresar “…” cantv Hasta (cantv > 0) Repetir Ingresar “…” PU Hasta (PU > 0)

Repetir Ingresar “…” codart Hasta (codart >= 15) and (codart <=180)

Mostrar codv Mostrar codart IMP ← cantv x PU Mostrar IMP

Page 8: Guía de ejercicios - Programación Lógica

Según (codv) hacer 1: caso 1 TV1 ← TV1 + IMP 2: caso 2 TV2 ← TV2 + IMP 3: caso 3 TV3 ← TV3 + IMP 4: caso 4 TV4 ← TV4 + IMP Fin según

Si (IMP > mayor) entonces Mayor ← IMP Mayor_cv ← codv Fin si

Si (PU < menor) entonces Menor ← PU Menor_ca ← codart Fin si

Ingreso_Dato_Cond (codv) Fin mientras

Mostrar “…” TV1Mostrar “…” TV2Mostrar “…” TV3Mostrar “…” TV4Mostrar “La venta de mayor monto fue” Mayor, mayor_cvMostrar “La venta de menor monto fue” Menor, menor_ca

Fin programa “Ejercicio 100”

Ejercicio 101: Se ingresa una lista de pares ordenados [nombre; edad] empleando 2 [dos] variables. El par [“*”; 0] determina el fin del ingreso de datos. Se pide informar cuantas personas tienen más de 18 años y cuantas menos de 65; el nombre de la persona de mayor edad y nombre de la menor. En los últimos dos casos mencionados, mostrar además dicha edad.

Desarrollo:

Procedimiento “Ingreso_Dato_Cond1” (texto & nombre) Repetir Ingresar “Ingresar Nombre:” nombre Hasta (nombre <> “”)Fin Procedimiento

Procedimiento “Ingreso_Dato_Cond2” (entero & edad) Repetir Ingresar “Ingresar Edad:” edad Hasta (edad >=1 0)Fin Procedimiento

Page 9: Guía de ejercicios - Programación Lógica

Inicio Programa “Ejercicio 101”

Entero edad, mayor18, menor65, cmayor18, cmenor65Texto nombre, nmayor18, nmenor65nmayor18 ← 0cmayor18 ← 0nmenor65 ← 0cmenor65 ← 0mayor18 ← 0menor65 ← 99999

Ingreso_Dato_Cond1 (nombre)

Ingreso_Dato_Cond2 (edad)

Mientras (nombre <> “*”) and (edad <> 0) hacer

Si (edad > 18) entonces cmayor18 ← cmayor18 + 1 Fin Si

Si (edad < 65) Entonces cmenor65 ← cmenor65 + 1 Fin Si

Si (edad > mayor18) entonces nmayor18 ← nombre mayor18 ← edad Fin Si

Si (edad < menor65) entonces nmenor65 ← nombre menor65 ← edad Fin Si

Ingreso_Dato_Cond1 (nombre)

Ingreso_Dato_Cond2 (edad)

Fin Mientras

Mostrar “…” cmayor18, nmayor18, mayor18Mostrar “…” cmenor18, nmenor65, menor65

Fin Programa “Ejercicio 101”

Ejercicio 102: De cada uno de los empleados de una fábrica se tienen los siguientes datos:Legajo [0: determina el fin de datos]Área de trabajo [M: Mecánica, E: Electricidad, P: Proyectos)Turno de trabajo [M: Mañana, T: Tarde, N: Noche]Cantidad de horas trabajadas.

Page 10: Guía de ejercicios - Programación Lógica

Calificación obtenida.Se solicita Informar:a. Cantidad de empleados por área y por turno.b. Porcentaje de empleados que trabajan en el turno tarde del área de electricidad con respecto al total de dicho turno.c. Los datos del empleado con mejor calificación.d. Los datos del empleado con la menor cantidad de horas controladas.e. El área que tenga la mayor cantidad de empleados, cual es dicha cantidad y el porcentaje que representa con respecto al total de empleados de los 3 turnos.

Desarrollo:

Procedimiento “Ingreso_Dato_Cond” (entero & legajo) Repetir Ingresar “...” legajo Hasta (legajo <> “”)Fin Procedimiento

Función “Porcentajes2 (entero puntoe; entero turnotot): real real RES RES ← (puntoe * 100) / turnotot Retornar RESFin Función

Inicio Programa “Ejer 102”

Entero legajo, aream, areae, areap, turnom, turnot, turnon, puntob, puntoclegajo, puntodlegajo, puntoe, turnototReal htrabajo, calificación, mayorcalificacion, puntochoras, menorhoras, puntodhoras, Texto atrabajo, ttrabajo, puntocarea, puntocturno, puntodarea, puntodturnoaream ← 0areae ← 0areap ← 0turnom ← 0turnot ← 0turnon ← 0puntob ← 0mayorcalificacion ← 1menorhoras ← 9999puntoe ← 0turnotot ← 0

Ingreso_Dato_Cond (legajo)

Mientras (legajo <> 0) Hacer

Repetir Ingresar “…” atrabajo Hasta (atrabajo = “M”) or (atrabajo = “E”) or (atrabajo = “P”)

Repetir Ingresar “…” ttrabajo Hasta (ttrabajo = “M”) or (ttrabajo = “T”) or (ttrabajo = “N”)

Page 11: Guía de ejercicios - Programación Lógica

Repetir Ingresar “…” htrabajo Hasta (htrabajo <> 0)

Repetir Ingresar “…” calificación Hasta (calificación <> “”)

Si (atrabajo = “M”) Entonces aream ← aream + 1 Fin Si

Si (atrabajo = “E”) Entonces areae ← areae + 1 Fin Si

Si (atrabajo = “P”) Entonces areap ← areap + 1 Fin Si

Si (ttrabajo = “M”) Entonces turnom ← turnom + 1 Fin Si

Si (ttrabajo = “T”) Entonces turnot ← turnot + 1 Fin Si

Si (ttrabajo = “N”) Entonces turnon ← turnon + 1 Fin Si

Si (ttrabajo = “T”) and (atrabajo = “E”) Entonces puntob ← puntob + 1 Fin Si

turnotot ← turnom + turnot + turnon

Si (calificación > mayorcalificacion) Entonces mayorcalificacion ← calificación puntoclegajo ← legajo puntocarea ← atrabajo puntocturno ← ttrabajo puntochoras ← htrabajo Fin Si

Si (htrabajo < menorhoras) Entonces menorhoras ← htrabajo puntodlegajo ← legajo puntodarea ← atrabajo puntodturno ← ttrabajo puntodhoras ← htrabajo Fin Si

Page 12: Guía de ejercicios - Programación Lógica

Si (aream > areae) and (aream > areap) Entonces puntoe ← aream Sino Si (areae > aream) and (areae > areap) Entonces puntoe ← areae Sino puntoe ← areap Fin si Fin si

Ingreso_Dato_Cond (legajo)

Fin mientras

Mostrar “...” aream, areae, areap, trunom, turnot,turnonMostrar “...” puntob*100/turnotMostrar “...” puntoclegajo, puntocarea, puntocturno, puntochorasMostrar “...” puntodlegajo, puntodarea, puntodturno, puntodhoras Mostrar “...” puntoe, porcentajes (puntoe, turnotot)

Fin programa “Ejercicio 102”

Guía de Ejercicios N° 6:

Ejercicio 121: De la facturación de una empresa se conoce por día: código de factura, código de artículo, cantidad y precio unitario. Los artículos son 3 [tres] y se factura solo un artículo por ven-ta. El programa deberá terminar cuando el número de factura ingresado sea “000”. Se re-quiere informar:a. Por cada factura: su código e importe aplicando el 21% de IVA.b. El promedio de unidades vendidas del artículo 3.c. Total general facturado.d. La cantidad de facturas emitidas para cada uno de los artículos.e. El porcentaje de ventas [en $] del artículo 1 sobre el total.

Desarrollo:

Procedimiento “Ingreso_Dato_Cond” (entero & num_fact) Repetir Ingresar “…” num_fact Hasta (num_fact >= 0)Fin procedimiento

Función “Porcentajes” (real totf1, real IMPTotal): real Real RES RES ← (totf1 x 100) / IMPTotal Retornar RESFin función

Inicio Programa “Ejercicio 121”

Entero cod_art, cant, num_fact, cant3, cant2, cant1Real PU, totf1, IMP, IMPTotal, contart3Cant1 ← 0

Page 13: Guía de ejercicios - Programación Lógica

Cant2 ← 0Cant3 ← 0Totf1 ← 0IMP ← 0IMPTotal ← 0Contart3 ← 0

Ingreso_Dato_Cond (Num_Fact)

Mientras (Num_Fact <> 000) hacer

Repetir Ingresar “…” cod_art Hasta (cod_art > 0) and (cod_art <= 3)

Repetir Ingrear “…” cant Hasta (cant > 0)

Repetir Ingresar “…” PU Hasta (PU > 0)

Mostrar “El número de factura es:” num_fact

IMP ← (cant x PU) /1.21

Mostrar “El importe es” IMP

IMPTotal ← IMPTotal + IMP

Según (cod_art) hacer 1: caso 1 cant1 ← cant1 + 1 totf1 ← totf1 + IMPTotal 2: caso 2 cant2 ← cant2 + 1 3: caso 3 cant3 ← cant3 + 1 contart3 ← contart3 + cant Fin según

Ingreso_Dato_Cond (num_fact)

Fin mientras

Mostrar “Promedio:” contart3 / cant3Mostrar “Total Facturado:” IMPTotalMostrar “Cantidad de Facturas emitidas por cada artículo:” cant1, cant2, cant3Mostrar “Porcentaje:” Porcentajes (totf1, IMPTotal)

Fin Programa “Ejercicio 121”

Page 14: Guía de ejercicios - Programación Lógica

Ejercicio 122: Una casa de comidas tiene 6 [seis] mesas y 3 [tres] mozos. Cada mozo puede atender cualquier mesa y cuando la mesa se desocupa se registran los siguientes datos: número de mesa, código de mozo, importe de la cuenta, cantidad de personas que comieron. El ingreso de datos concluye con número de mozo igual a 777. Se solicita informar:a. Por cada mesa que se desocupa, su número, importe [aplicando un 10% de des-cuento si supera los $400] y el código de mozo que la atendió.b. El promedio de personas atendidas por el mozo 2.c. Recaudación por mozo.d. Cantidad de personas que comieron en la mesa 5.e. Porcentaje de ventas [en $] del mozo 3.f. Cantidad de cuentas con importe por encima de los $278.

Desarrollo:

Procedimiento “Ingreso_Cod_Mozo” (entero & codm) Repetir Ingresar “…” codm Hasta (codm >= 0) and (codm <> “ “)Fin procedimiento

Función “Porcentajes” (real recm3, real IMPT): real Real RES RES ← (recm3 x 100) / IMPT Retornar RESFin función

Inicio Programa “Ejercicio 122”

Entero numm, codm, cantp, cantpt, cantpm2, cantpm5Real IMPC, recm1, recm2, recm3, IMPT, IMPMCantpt ← 0Cantpm2 ← 0Cantpm5 ← 0Recm1 ← 0Recm2 ← 0Recm3 ← 0IMPT ← 0IMPM ← 0

Ingreso_Cod_Mozo (codm)

Mientras (codm <> 777) hacer Repetir Ingresar “Numero de Mesa:” numm Hasta (numm > 0) and (numm < 7)

Repetir Ingresar “Importe de la cuenta:” IMPC Hasta (IMPC > 0) and (IMPC <> “ “)

Page 15: Guía de ejercicios - Programación Lógica

Repetir Ingresar “Cant. De Personas:” cantp Hasta (cantp > 0)

Si (IMPC > 400) entonces IMPC ← IMPC + [(10 x IMPC) / 100] Fin si

Mostrar “…” Numm, IMPC, codm

Cantpt ← cantpt + cantp IMPT ← IMPT + IMPC Según (codm) hacer 1: caso 1 recm1 ← recm1 + IMPC 2: caso 2 recm2 ← recm2 + IMPC cantpn2 ← cantpn2 +cantp 3: caso 3 recm3 ← recm3 + IMPC Fin según

Si (codm = 5) hacer cantpm5 ← cantpm5 + cantp Fin si

Si (IMPC > 278) hacer IMPM ← IMPM + 1 Fin si

Ingreso_Cod_Mozo (codm)

Fin Mientras

Mostrar “Promedio de personas mozo 2:” cantpt / cantpm2Mostrar “La recaudación de cada mozo es:” recm1, recm2, recm3Mostrar “La cantidad de personas que comieron en la mesa 5 es:” cantpm5Mostrar “El porcentaje de ventas del mozo 3 es:” Porcentajes (recm3, IMPT)Mostrar “La cantidad de cuentas con importe mayor a $278 son:” IMPM

Fin Programa “Ejercicio 122”

Ejercicio ARG Líneas Aéreas: 1) Escribir una Función denominada “Nombre_Ciudad_Destino”, que dado un Código de Ciudad Destino, devuelva como resultado el nombre de una determinada ciudad de la República Argentina, respetando el siguiente cronograma:

Código de Ciudad Destino Nombre Ciudad Destno01 CABA02 Santiago del Estero03 Rosario04 Corrientes

Page 16: Guía de ejercicios - Programación Lógica

05 Ushuaia06 Paraná07 Santa Rosa08 Mendoza09 Posadas10 San Miguel de Tucumán

2) Escribir un Procedimiento denominado “Recaudacion_Cantidad_Pasajes”, que dado un Im-porte en pesos y una Cantidad de Pasajes Vendidos acumule la Recaudación Total y la Cantidad Total de Pasajes Vendidos, de cada uno de los 5 [cinco] Aeropuertos donde opera “ARG Líneas Aéreas”.3) Escribir una Función denominada “Calculo_de_Porcentaje”, que se encuentre preparada para recibir dos valores reales, y calcule el porcentaje correspondiente para la que sea llamada desde el Algoritmo Principal.4) Escribir un Procedimiento denominado “Maximos_Minimos”, que reciba un Código de Empleado, una Cantidad de Pasajes vendida y un Importe de la venta realizada. El cuerpo del mencionado Procedimiento debe contener solamente las estructuras condicionales adecuadas para luego informar lo solicitado en los ítems j) y k).5) “ARG Líneas Aéreas” vende pasajes en 5 [cinco] Aeropuertos. En cada uno de ellos hay empleados encargados de efectuar las ventas, en total son 75. Cada vez que un cliente compra pasajes, hacia un mismo destino, se registran los datos que se especifican a continuación:Código de Aeropuerto donde se efectuó la transacción.Código del Empleado, que efectuó la venta de pasajes.Número de DNI de la Persona que compró el/los pasaje/s.Código de Ciudad Destino.Precio unitario del pasaje.Cantidad de Pasajes comprados.Se debe validar cada uno de los datos mencionados según corresponda a cada caso. Para dicha acción se debe tener en cuenta toda la información expuesta en cada uno de los puntos del presente enunciado. La venta de pasajes del día finaliza cuando un empleado de la Línea Aérea ingresa el Código de Aeropuerto igual a (-1) [menos uno].Se solicita informar:a) Por cada venta realizada: el Código de Aeropuerto, el Código de Empleado, el Número de DNI del comprador, el Nombre de la Ciudad Destino, la Cantidad de Pasajes com- prados y el importe a abonar aplicando el 4.5% de Taza de Embarque.b) La recaudación total de cada uno de los 5 [cinco] Aeropuertos.c) La cantidad de pasajes vendidos en cada uno de los 5 [cuatro] Aeropuertos.d) La cantidad de facturas emitidas que hayan excedido los $4.758.e) La recaudación total en pesos de “ARG Líneas Aéreas”.f) Porcentaje de ventas en $ del Empleado número 1 del Aeropuerto 3, sobre el total de dicho Aeropuerto.g) Promedio de pasajes vendidos, en cada una de las ventas efectuadas.h) El importe recaudado del empleado cuyo Código es igual a 2 del Aeropuerto número 4.i) Porcentaje de pasajes vendidos por el Empleado número 14 del Aeropuerto número 2, sobre el total de pasajes vendidos.j) ¿Qué Código de Empleado realizó la venta con mayor cantidad de pasajes? ¿Cuál fue dicha cantidad?k) ¿Qué Código de Empleado realizó la venta de menor importe? ¿Cuál fue dicho importe?NOTAS DE LA CÁTEDRA:• En el Ítem a), para informar el Nombre de la Ciudad Destino, emplear la Función des-arrollada en el punto 1).• Para los Ítems b) y c) emplear el Procedimiento desarrollado en el Punto 2).• Para los ítems f) e i) emplear la Función desarrollada en el Punto 3).• Para los ítems j) y k) emplear el Procedimiento desarrollado en el Punto 4).

Page 17: Guía de ejercicios - Programación Lógica

Desarrollo:

Función “Nombre_Cuidad_Destino” (entero cod_ciu_des): texto Según (cod_ciu_des) hacer 1: caso 01 retornar “CABA” 2: caso 02 retornar “Santiago del Estero” 3: caso 03 retornar “Rosario” 4: caso 04 retornar “Corrientes” 5: caso 05 retornar “Ushuaia” 6: caso 06 retornar “Parana” 7: caso 07 retornar “Santa Rosa” 8: caso 08 retornar “Mendoza” 9: caso 09 retornar “Posadas” 10: caso 10 retornar “San Miguel de Tucuman” Fin SegúnFin Función

Procedimiento “Recaudación_Cantidad_Pasajes” (entero aerop, entero cant_pasaje, real IMP_EMB, real & total pasaje 1, real & total pasaje 2, real & total pasaje 3, real & total pasaje 4, real & total pasaje 5, real & IMP_total 1, real & IMP_total 2, real & IMP_total 3, real & IMP_total 4, real & IMP_total 5) Según (aerop) hacer 1: caso 1 total pasaje 1 ← total pasaje 1 + cant_pasaje IMP_total 1 ← IMP_total 1 + IMP_EMB 2: caso 2 total pasaje 2 ← total pasaje 2 + cant_pasaje IMP_total 2 ← IMP_total 2 + IMP_EMB 3: caso 3 total pasaje 3 ← total pasaje 3 + cant_pasaje IMP_total 3 ← IMP_total 3 + IMP_EMB 4: caso 4 total pasaje 4 ← total pasaje 4 + cant_pasaje IMP_total 4 ← IMP_total 4 + IMP_EMB 5: caso 5 total pasaje 5 ← total pasaje 5 + cant_pasaje IMP_total 5 ← IMP_total 5 + IMP_EMB Fin SegúnFin Procedimiento

Page 18: Guía de ejercicios - Programación Lógica

Función “Calculo_de_Porcentaje” (real V1, real V2): real real CP cp ← (V1 x 100) / V2 retornar CPFin Función

Procedimiento “Maximos_Minimos” (entero COD_EM, entero cant_pv, real IMP_EMB, entero & mayor pasaje, real 6 menor importe, entero & mayor empleado, entero & menor empleado) Si (cant_pv > mayor pasaje) entonces mayor pasaje ← cant_pv mayor empleado ← COD_EM Fin Si

Si (importe < menor importe) entonces menor importe ← IMP_EMB menor empleado ← COD_EM Fin SiFin Procedimiento

Inicio Programa “Ejercicio ARG Lineas Aereas”

Entero cod_ciu_des, aerop, cant_pasaje, COD_EM, cant_pv, mayor pasaje, mayor empleado, menor empleado, DNIReal IMP, total pasaje 1, total pasaje 2, total pasaje 3, total pasaje 4, total pasaje 5, IMP_total 1, IMP_total 2, IMP_total 3, IMP_total 4, IMP_total 5, V1, V2, importe, menor importe, PU, NC, IMP_EMB, FEM, RT, IRE1, IRE2, PVE14, VR, VA3, total pasajesTotal pasaje 1 ← 0Total pasaje 2 ← 0Total pasaje 3 ← 0Total pasaje 4 ← 0Total pasaje 5 ← 0IMP_total 1 ← 0IMP_total 2 ← 0IMP_total 3 ← 0IMP_total 4 ← 0IMP_total 5 ← 0Mayor pasaje ← 0 Mayor empleado ← 0Menor importe ← 9999999Menor empleado ← 0IMP_EMB ← 0 FEM ← 0 RT ← 0 IRE1 ← 0IRE2 ← 0PVE14 ← 0VR ← 0VA3 ← 0

Repetir Ingresar “Ingresar Código de Aeropuerto:” aeropHasta (aerop > 0) and (aerop < 6)

Page 19: Guía de ejercicios - Programación Lógica

Mientras (aerop <> -1) hacer

Repetir Ingresar “Ingresar Código de Empleado:” COD_EM Hasta (COD_EM > 0) and (COD_EM <= 75)

Repetir Ingresar “Ingresar Número de Documento:” DNI Hasta (DNI > 0) and (DNI <> “”)

Repetir Ingresar “Ingresar Código de Ciudad Destino:” cod_ciu_des Hasta (cod_ciu_des > 0) and (cod_ciu_des <= 10)

Repetir Ingresar “Ingresar Precio Unitario:” PU Hasta (PU > 0) and (PU <> “”)

Repetir Ingresar “Ingresar Cantidad de Pasajes:” cant_pasaje Hasta (cant_pasaje > 0) and (cant_pasaje <> “”)

IMP ← PU x cant_pasaje IMP_EMB ← IMP + (IMP x 4.5) / 100 NC ← Nombre_Ciudad_Destino (cod_ciu_des)

Mostrar “…” aerop, cod_em, DNI, cant_pasaje, IMP_EMB, NC

Recaudación_Cantidad_Pasaje (aerop, cant_pasaje, IMP_EMB, total pasaje 1, total pasaje 2, total pasaje 3, total pasaje 4, total pasaje 5, IMP_total 1, IMP_total 2, IMP_total 3, IMP_total 4, IMP_total 5)

Si (IMP_EMB > 4758) entonces FEM ← FEM + 1 Fin si

RT ← RT + IMP_EMB

Según (COD_EMP) hacer 1: caso 1 Si (aerop = 3) entonces IRE1 ← IRE1 + IMP_EMB Fin Si 2: caso 2 Si (aerop = 4) entonces IRE2 ← IRE2 + IMP_EMB Fin Si 3: caso 14 Si (aerop = 2) entonces PVE14 ← PVE14 + cant_pasaje Fin Si Fin Según

Page 20: Guía de ejercicios - Programación Lógica

VR ← VR + 1

Total pasajes ← Total pasajes + (total pasaje 1 + total pasaje 2 + total pasaje 3 + total pasaje 4 + total pasaje 5)

Maximos_Minimos (COD_EM, cant_pv, IMP_EMB, mayor pasaje, menor importe, mayor empleado, menor empleado)

Repetir Ingresar “Ingresar Código de Aeropuerto, ingrese -1 para finalizar la venta de pasajes:” aerop Hasta [(aerop > 0) and (aerop < 6)] or (aerop = -1)

Fin Mientras

Mostrar “…” IMP_total 1, IMP_total 2, IMP_total 3, IMP_total 4, IMP_total 5Mostrar “…” total pasaje 1, total pasaje 2, total pasaje 3, total pasaje 4, total pasaje 5Mostrar “…” FEMMostrar “…” RTMostrar “…” Calculo_de_Porcentaje (IRE1, IMP_total 3)Mostrar “…” (total pasaje 1 + total pasaje 2 + total pasaje 3 + total pasaje 4 + total pasaje 5) / VRMostrar “…” IRE2Mostrar “…” Calculo_de_Porcentaje (PVE14, total pasajes)Mostrar “…” mayor empleado, mayor pasajeMostrar “…” menor empleado, menor importe

Fin Programa “ARG Lineas Aereas”