EJERCICIOS RESUELTOS
TI5: SUBPROGRAMAS
2. Determinar el valor total a pagar por una llamada telefónica, de acuerdo a lo siguiente: Toda llamada que dure menos de tres minutos, tiene un costo de $500.
Cada minuto adicional‐local a partir de los tres primeros, tiene un costo de $200. Cada minuto adicional‐nacional a partir de los tres primeros, tiene un costo de $300. Inicio
Caracter: tipollamada Real: pago, duración
Escriba: "Digite el tipo de llamada: si es local, teclee L y si es nacional teclee N” Lea: tipollamada
Escriba: "Digite la duración de la llamada en minutos " Lea: duracion
pagovaltotal (tipollamada,duracion)
Escriba: "El valor total a pagar por la llamada telefónica es de:", pago Fin
Funcion valtotal (Caracter: tipllama, Real: dura) Real: totalp0 Si (dura < 3) ent totalp←500 sino SeleccionCaso (tipllama)
Caso 'l': Caso 'L': totalp← 500+(durac-2)*200 salga
Caso 'n': Caso 'N': totalp← 500+(durac-2)*300 salga
Otro_Caso: Escriba: “Tipo de llamada incorrecto” Fin_caso
Fin_si Retorne totalp Fin_Funcion
4. Dado un capital inicial P equivalente a $800.000, se desea encontrar el valor futuro F para las siguientes tasas de Interés (i1=0.02, i2=0.08) con períodos (n1= 5, n2=13) respectivamente. Tenga en cuenta que: F = P(1 + i)n, donde:
F = valor futuro P = capital inicial n = períodos i = tasa de Interés Análisis:
Datos de Entrada: P800000, i10.02, i20.08, n15, n213 Datos de Salida: F1, F2
Proceso: El cálculo de valor futuro puede estar en una función dado que solo se puede devolver un solo número y la función puede ser llamada una o varias veces , de la siguiente manera:
Funcion valorfuturo (Real P, i, n) Real: F F P*(1 + i)*n Retorne F Fin Funcion Algoritmo: Inicio
Real: P1800000, i10.02, i20.08, n15, n213, F1, F2
F1 ← valorfuturo (P1, i1, n1) F2 ← valorfuturo (P1, i2, n2)
Escriba: "El valor futuro con la tasa de “, i1, “en el período", n1, “es de”, F1 Escriba: "El valor futuro con la tasa de “, i2, “en el período", n2, “es de”, F2 Fin
Funcion valorfuturo (Real P, i, n) Real: F F P*(1 + i)*n Retorne F Fin Funcion
6. Un almacén de venta de ropa tiene las siguientes promociones para sus clientes, las cuales consisten en lo siguiente (pago en efectivo = E, pago con Tarjeta de Crédito = T):
a. Para ventas menores ó iguales a 100.000, con pago en efectivo se hace un descuento del 20% y si es con tarjeta de crédito se hace el 10%.
b. Para ventas mayores a 100.000 y menores o iguales a 200.0000, con pago en efectivo se hace un descuento del 30%, con tarjeta de crédito se hace el 15%.
c. Para ventas mayores a 200.000, con pago en efectivo se hace un descuento del 40% y con tarjeta de crédito se hace el 20%.
Indique el valor del descuento y el total a pagar. Inicio
Caracter: formapago Real: valorventa
Escriba: "Digite la forma de pago: pago en efectivo = E, pago con Tarjeta de Crédito = T " Lea: formapago
Escriba:"Digite el valor de la venta " Lea:valorventa
valtotal (formapago,valorventa) Fin
Procedimiento valtotal (Caracter: fpago, Real: valventa)
Real: descuento0, totpag0 SeleccionCaso (fpago)
Caso 'e': Caso 'E': Si (valventa>=0 valventa<=100000) ent
descuento←valventa*0.2 sino Si (valventa<=200000) ent descuento← valventa*0.3 sino descuento←valventa*0.4 Fin si Fin si salga 2 1
Caso 't': Caso 'T': Si (valventa>=0 valventa<=100000) ent descuento←valventa*0.1 sino Si (valventa<=200000) ent descuento← valventa*0.15 sino descuento←valventa*0.20 Fin si Fin si Salga
Otro_Caso: Escriba: “Forma de Pago incorrecta” Fin_Caso
totpag ←valventa - descuento
Escriba: "El valor total a pagar por la venta es de:”, totpag”, y su descuento es de:", descuento
Fin_Procedimiento
10. A partir de un valor ingresado de la hora, el número de horas al mes y el nombre del trabajador, se desea obtener el salario neto mensual de un empleado, cuyo trabajo se paga por horas mensuales de la siguiente forma:
Las horas menores o iguales a 120 se paga normal (a lo que vale la hora). Las horas por encima de 120, se pagarán como extras (al doble de las normales).
La deducción de impuestos se hace con base en el salario básico, teniendo en cuenta el valor de las horas normales + el valor de las horas extras (si las hay).
- Si el salario básico es menor o igual a $380.000, se hace una deducción del 10%. - Si el salario básico es mayor a $380.000 y menor o igual $480.000, se hace una
deducción del 20%.
- Si el salario básico es mayor a $480.000, se hace una deducción del 30%. Inicio
Real: valhoras, numhoras, salneto←0, salbasico←0 Caracter: nombre[10]
Escriba:"Ingrese el nombre del trabajador " Lea: nombre
Escriba:"Digite el valor de las horas de trabajo" Lea: valhoras
Escriba:"Digite las horas trabajadas al mes por el trabajador" Lea: numhoras
salbasico ← calculobasico (valhoras, numhoras) salneto calculoneto(salbasico)
Escriba: "El trabajador: “,nombre,”tiene un salario neto al mes de", salneto Fin
2 1
Funcion calculobasico (Real: vh, nh) Real: sb←0 Si (horastra<=120) ent sb ←vh*nh sino sb ← + vh*120 +(nh-120)*vh*2 Finsi Retorne sb Fin_Funcion
Funcion calculoneto (Real:salb) Real: sn0, dedu0 Si (salb <= 380000) ent dedu←salb*0.10 sino Si (salb <= 480000) ent dedu←salb*0.2 sino dedu←salb*0.3 Finsi Finsi sn ←salb - dedu Retorne sn Fin_Funcion