1. TAREA 03
Cada pregunta debe ser resuelta con DO conocido y ciclo do while
4.1 Un profesor tiene un salario inicial de $1500, y recibe un incremento de 10 % anual durante 6 años.
¿Cuál es su salario al cabo de 6 años? ¿Qué salario ha recibido en cada uno de los 6 años? Realice el
programa.
PROGRAM SALARIO
REAL S
INTEGER N
S=1500
DO N=1,6
S=S+(S*0.1)
PRINT*, "EL SALARIO EN EL AÑO",N," ES: $",S
END DO
PRINT*, "EL SALARIO EN 6 AÑOS ES: $",S
END PROGRAM
4.2 “El náufrago satisfecho” ofrece hamburguesas sencillas (S), dobles (D) y triples (T), las cuales
tienen un costo de $20, $25 y $28 respectivamente. La empresa acepta tarjetas de crédito con un
cargo de 5
% sobre la compra. Suponiendo que los clientes adquieren N hamburguesas, las cuales pueden ser de
diferente tipo, realice un programa para determinar cuánto deben pagar
PROGRAM HAMBURGUESA
INTEGER N,TIPO,TIPO_PAGO
REAL TOTAL, CARGO
PRINT*, "INGRESA EL NUMERO DE HAMBURGUESAS"
READ*, N
DO WHILE(TIPO<1.OR.TIPO>3)
PRINT*,"INGRESA EL TIPO DE HAMBURGUESA"
2. PRINT*,"1 = SENCILLA $20"
PRINT*,"2 = DOBLE $25"
PRINT*,"3 = TRIPLE $28"
READ*, TIPO
IF(TIPO==1)THEN
TOTAL=N*20
ELSEIF(TIPO==2)THEN
TOTAL=0*25
ELSEIF(TIPO==3)THEN
TOTAL=0*28
ELSE
PRINT*,"INGRESA UN TIPO DE HAMBURGUESA VALIDO"
END IF
END DO
DO WHILE(TIPO_PAGO<1.OR.TIPO_PAGO>2)
PRINT*,"INGRESA EL METODO DE PAGO",TIPO_PAGO
PRINT*,"1 = OTRO MEDIO DE PAGO"
PRINT*,"2 = TARJETA DE CREDITO"
READ*, TIPO_PAGO
IF(TIPO_PAGO==1)THEN
PRINT*,"EL TOTAL A PAGAR ES: $",TOTAL
ELSEIF(TIPO_PAGO==2)THEN
CARGO=TOTAL*0.05
PRINT*,"EL TOTAL A PAGAR ES: $",TOTAL+CARGO
PRINT*,"EL CARGO APLICADO ES: $",CARGO
ELSE
PRINT*,"INGRESE UN TIPO DE PAGO CORRECTO"
END IF
END DO
END PROGRAM
3. 4.3 Se requiere un programa para determinar, de N cantidades, cuántas son cero, cuántas son
menores a cero, y cuántas son mayores a cero.
PROGRAM CANTIDADES
INTEGER X, TOTAL, N, CERO, MENOR, MAYOR
PRINT*,"DIGITAR EL TOTAL DE NUMEROS"
READ*,TOTAL
X=1
MENOR=0
MAYOR=0
DO WHILE(X<=TOTAL)
PRINT*,"INGRESA UN NUMERO"
READ*,N
IF(N<0)THEN
MENOR=MENOR+1
ELSEIF(N>0)THEN
MAYOR=MAYOR+1
ELSE
CERO=CERO+1
END IF
X=X+1
END DO
PRINT*,"EL TOTAL DE NUMEROS MENORES A CERO ES:",MENOR
PRINT*,"EL TOTAL DE NUMEROS IGUALES A CERO ES:",CERO
PRINT*,"EL TOTAL DE NUMEROS MAYORES A CERO ES:",MAYOR
END PROGRAM
4. 4.4 Una compañía fabrica focos de colores (verdes, blancos y rojos). Se desea contabilizar, de un
lote de N focos, el número de focos de cada color que hay en existencia. Desarrolle un programa para
determinar esto.
PROGRAM FOCOS
IMPLICIT NONE
INTEGER N, I, VERDE, BLANCO, ROJO
CHARACTER(10) COLOR
VERDE = 0
BLANCO = 0
ROJO = 0
PRINT *, "INGRESE EL TOTAL DE FOCOS: "
READ *, N
DO I = 1,N
PRINT *, "INGRESE EL COLOR DEL FOCO ", I, " (VERDE, BLANCO O ROJO): "
READ *, COLOR
SELECT CASE (COLOR)
CASE ("VERDE")
VERDE = VERDE + 1
CASE ("BLANCO")
BLANCO = BLANCO + 1
CASE ("ROJO")
ROJO = ROJO + 1
CASE DEFAULT
PRINT *, "COLOR INVALIDO."
END SELECT
5. END DO
PRINT *, "CANTIDAD DE FOCOS VERDES: ", VERDE
PRINT *, "CANTIDAD DE FOCOS BLANCOS: ", BLANCO
PRINT *, "CANTIDAD DE FOCOS ROJOS: ", ROJO
END PROGRAM
4.5 Se requiere un programa para determinar cuánto ahorrará en pesos una persona
diariamente, y en un año, si ahorra 3¢ el primero de enero, 9¢ el dos de enero, 27¢ el 3 de enero y así
sucesivamente todo el año.
PROGRAM AHORRO
INTEGER I
REAL A,B
A=0
DO I = 1,365
A=A+(3**I)
PRINT *, "EL AHORRO EN EL DIA ", I, "ES : ", A," CENTAVOS"
END DO
PRINT *, "EL AHORRO ANUAL SERA: ",A," CENTAVOS"
B=A/100
PRINT *, "EL AHORRO ANUAL SERA: ",B," PESOS"
END PROGRAM
6. 4.6 Realice el programa para determinar cuánto pagará una persona que adquiere N artículos, los
cuales están de promoción. Considere que si su precio es mayor o igual a $200 se le aplica un
descuento de 15%, y si su precio es mayor a $100 pero menor a $200, el descuento es de 12%; de lo
contrario, sólo se le aplica 10%. Se debe saber cuál es el costo y el descuento que tendrá cada uno de
los artículos y finalmente cuánto se pagará por todos los artículos obtenidos.
PROGRAM DESCUENTO
INTEGER N, I
REAL P, D, TOTAL_PAGAR
TOTAL_PAGAR = 0
PRINT *, "INGRESE LA CANTIDAD DE ARTICULOS A ADQUIRIR: "
READ *, N
DO I = 1, N
PRINT *, "INGRESE EL PRECIO DEL ARTICULO ", I
READ *, P
IF (P >= 200) THEN
D = P * 0.15
ELSEIF (P > 100) THEN
D = P * 0.12
ELSE
D = P * 0.10
END IF
TOTAL_PAGAR = TOTAL_PAGAR + (P-D)
PRINT *, "ARTICULO ", I
PRINT *, "PRECIO: $", P
PRINT *, "DESCUENTO: $", D
PRINT *, "TOTAL A PAGAR: $", P-D
END DO
7. PRINT *, "TOTAL A PAGAR POR TODOS LOS ARTICULOS: $", TOTAL_PAGAR
END PROGRAM
4.7 Un cliente de un banco deposita equis cantidad de pesos cada mes en una cuenta de ahorros.
La cuenta percibe un interés fijo durante un año de 10 % anual. Realice un programa para determinar
el total de la inversión final de cada año en los próximos N años.
PROGRAM BANCO
INTEGER A,X
REAL H, T, I
PRINT*,"INGRESA LOS AÑOS DE AHORRO"
READ*, A
T=0
I=0
IF(A>0)THEN
DO X = 1,12
PRINT*,"INGRESA EL AHORRO DEL MES", X
READ*,H
T=T+H
END DO
I = I+(T*0.10)
A = A-1
PRINT*,"EL INTERES ANUAL ES: $",I
PRINT*,"LA INVERSION FINAL ES: $",T+I
8. END IF
END PROGRAM
4.8 Los directivos de equis escuela requieren determinar cuál es la edad promedio de cada uno
de los M salones y cuál es la edad promedio de toda la escuela. Realice un programq para
determinar estos promedios.
PROGRAM PROMEDIO_EDADES
INTEGER I, J, M, N
REAL EDAD, SUMA, PROMEDIO_SALON, PROMEDIO_ESCUELA
PRINT*, "INGRESE LA CANTIDAD DE SALONES:"
READ*, M
PRINT*, "INGRESE LA CANTIDAD DE ESTUDIANTES POR SALON:"
READ*, N
DO I = 1, M
SUMA = 0
DO J = 1, N
PRINT*,"INGRESE LA EDAD DEL ESTUDIANTE ", J, " DEL SALON ", I
READ*, EDAD
SUMA = SUMA + EDAD
9. END DO
PROMEDIO_SALON = SUMA / N
PRINT*, "LA EDAD PROMEDIO DEL SALON ", I, " ES: ", PROMEDIO_SALON
PROMEDIO_ESCUELA = PROMEDIO_ESCUELA + PROMEDIO_SALON
END DO
PROMEDIO_ESCUELA = PROMEDIO_ESCUELA / M
PRINT*, "LA EDAD PROMEDIO DE TODA LA ESCUELA ES: ", PROMEDIO_ESCUELA
END PROGRAM
4.9 Realice un programa para obtener una función exponencial, la cual está dada por:
PROGRAM EXPONENCIAL
REAL X, E, F
INTEGER N, A, C
PRINT *, "INGRESA LAS REPETICIONES DE LA SERIE"
READ *, N
PRINT *, "INGRESA EL VALOR DE X"
READ *, X
E = 0
10. DO A=1,N
C=1
F=1
IF (C==A) THEN
F=F*C
C=C+1
END IF
E=E+(X**A)/F
END DO
PRINT *,"EL RESULTADO DE LA FUNCION ES:", E+1
END PROGRAM
4.10 Se desea saber el total de una caja registradora de un almacén, se conoce el número de
billetes y monedas, así como su valor. Realice un programa para determinar el total.
PROGRAM CAJA_REGISTRADORA
INTEGER N_BILLETES, N_MONEDAS, VALOR_BILLETES, VALOR_MONEDAS, TOTAL
11. PRINT *,"INTRODUZCA LA CANTIDAD DE BILLETES:"
READ*, N_BILLETES
PRINT*, "INTRODUZCA EL VALOR DE CADA BILLETE:"
READ*, VALOR_BILLETES
PRINT*, "INTRODUZCA LA CANTIDAD DE MONEDAS:"
READ*, N_MONEDAS
PRINT*, "INTRODUZCA EL VALOR DE CADA MONEDA:"
READ*, VALOR_MONEDAS
TOTAL = (N_BILLETES * VALOR_BILLETES) + (N_MONEDAS * VALOR_MONEDAS)
PRINT*, "EL TOTAL DE LA CAJA REGISTRADORA ES:",TOTAL
END PROGRAM
4.11 Un vendedor ha realizado N ventas y desea saber cuántas fueron por 10,000 o menos,
cuántas fueron por más de 10,000 pero por menos de 20,000, y cuánto fue el monto de las ventas de
cada una y el monto global. Realice un programa para determinar los totales.
PROGRAM VENTAS
INTEGER N, I, VENTAS1, VENTAS2
REAL MONTO, MONTO1, MONTO2, MONTO_TOTAL
PRINT*, "INGRESE LA CANTIDAD DE VENTAS: "
READ*, N
VENTAS1 = 0
VENTAS2 = 0
MONTO1 = 0
MONTO2 = 0
12. MONTO_TOTAL = 0
DO I = 1, N
PRINT*, "INGRESE EL MONTO DE LA VENTA ", I, ": "
READ*, MONTO
MONTO_TOTAL = MONTO_TOTAL + MONTO
IF (MONTO <= 10000.0) THEN
VENTAS1 = VENTAS1 + 1
MONTO1 = MONTO1 + MONTO
ELSEIF (MONTO < 20000.0) THEN
VENTAS2 = VENTAS2 + 1
MONTO2 = MONTO2 + MONTO
END IF
END DO
PRINT*, "VENTAS POR 10,000 O MENOS: ", VENTAS1
PRINT*, "MONTO DE VENTAS POR 10,000 O MENOS: ", MONTO1
PRINT*, "VENTAS POR MÁS DE 10,000 PERO POR MENOS DE 20,000: ", VENTAS2
PRINT*, "MONTO DE VENTAS POR MÁS DE 10,000 PERO POR MENOS DE 20,000: ", MONTO2
PRINT*, "MONTO TOTAL DE LAS VENTAS: ", MONTO_TOTAL
END PROGRAM
4.12 Realice un programa para leer las calificaciones de N alumnos y determine el número de
aprobados y reprobados.
13. PROGRAM CALIFICACIONES
INTEGER N, I, APROBADOS, REPROBADOS
REAL CALIFICACION
PRINT*, "INGRESE LA CANTIDAD DE ALUMNOS: "
READ*, N
APROBADOS = 0
REPROBADOS = 0
DO I = 1, N
PRINT*, "INGRESE LA CALIFICACION DEL ALUMNO ", I, ": "
READ*, CALIFICACION
IF (CALIFICACION >= 11) THEN
APROBADOS = APROBADOS + 1
ELSE
REPROBADOS = REPROBADOS + 1
END IF
END DO
PRINT*, "NUMERO DE ALUMNOS APROBADOS: ", APROBADOS
PRINT*, "NUMERO DE ALUMNOS REPROBADOS: ", REPROBADOS
END PROGRAM
14. 4.13 Realice un programa que determine el sueldo semanal de N trabajadores considerando que
se les descuenta 5% de su sueldo si ganan entre 0 y 150 pesos. Se les descuenta 7% si ganan más de
150 pero menos de 300, y 9% si ganan más de 300 pero menos de 450. Los datos son horas
trabajadas, sueldo por hora y nombre de cada trabajador.
PROGRAM SUELDO_TRABAJADORES
INTEGER N, I
REAL HORAS, SUELDO_HORA, SALARIO, DESCUENTO, SUELDO_SEMANAL
CHARACTER(30) NOMBRE
PRINT*, "INGRESE LA CANTIDAD DE TRABAJADORES: "
READ*, N
DO I = 1, N
PRINT*, "INGRESE EL NOMBRE DEL TRABAJADOR ", I, ": "
READ*, NOMBRE
PRINT*, "INGRESE LAS HORAS TRABAJADAS POR ", NOMBRE, ": "
READ*, HORAS
PRINT*, "INGRESE EL SUELDO POR HORA DE ", NOMBRE, ": "
READ*, SUELDO_HORA
SALARIO = HORAS * SUELDO_HORA
IF (SALARIO <= 150.0) THEN
DESCUENTO = SALARIO * 0.05
ELSE IF (SALARIO > 150.0 .AND. SALARIO < 300.0) THEN
DESCUENTO = SALARIO * 0.07
ELSE IF (SALARIO >= 300.0 .AND. SALARIO < 450.0) THEN
DESCUENTO = SALARIO * 0.09
ELSE
DESCUENTO = 0.0
END IF
SUELDO_SEMANAL = SALARIO - DESCUENTO
PRINT*, "EL SUELDO SEMANAL DE ", NOMBRE, " ES DE ", SUELDO_SEMANAL, " PESOS."
END DO
END PROGRAM
15. 4.14 Realice un programa donde, dado un grupo de números naturales positivos, calcule e
imprima el cubo de estos números.
PROGRAM CUBO_NUMEROS
INTEGER N, I
REAL NUM, CUBO
PRINT*, "INGRESE LA CANTIDAD DE NUMEROS A CALCULAR: "
READ*, N
DO I = 1, N
PRINT*, "INGRESE EL NUMERO ", I, ": "
READ*, NUM
CUBO = NUM ** 3
PRINT*, "EL CUBO DEL NUMERO ", NUM, " ES ", CUBO, "."
END DO
END PROGRAM
16. 4.15 Realice un programa para obtener la tabla de multiplicar de un entero K comenzando desde el 1.
PROGRAM TABLA_MULTIPLICAR
INTEGER K, I, PRODUCTO
PRINT*, "INGRESE UN NUMERO PARA GENERAR SU TABLA DE MULTIPLICAR: "
READ*, K
DO I = 1, 10
PRODUCTO = K * I
PRINT*, K, " X ", I, " = ", PRODUCTO
END DO
END PROGRAM
17. 4.16 En 1961, una persona vendió las tierras de su abuelo al gobierno por la cantidad de $1500.
Suponga que esta persona ha colocado el dinero en una cuenta de ahorros que paga 15% anual.
¿Cuánto vale ahora su inversión? P(1+i)n
. Realice un programa para obtener este valor .
PROGRAM VALOR_INVERSION
REAL INVERSION_INICIAL, TASA_INTERES, VALOR_ACTUAL
INTEGER ANIOS_INVERSION
PRINT*, "INGRESE LA INVERSION INICIAL: "
READ*, INVERSION_INICIAL
PRINT*, "INGRESE LA TASA DE INTERES ANUAL (EN PORCENTAJE): "
READ*, TASA_INTERES
PRINT*, "INGRESE EL NÚMERO DE AÑOS DE LA INVERSION: "
READ*, ANIOS_INVERSION
VALOR_ACTUAL = INVERSION_INICIAL * (1 + TASA_INTERES/100) ** ANIOS_INVERSION
PRINT*, "EL VALOR ACTUAL DE LA INVERSION ES: $", VALOR_ACTUAL
END PROGRAM
4.17 El gerente de una compañía automotriz desea determinar el impuesto que va a pagar por
cada uno de los automóviles que posee, además del total que va a pagar por cada categoría y por
todos los vehículos, basándose en la siguiente clasificación:
Los vehículos con clave 1 pagan 10% de su valor.
Los vehículos con clave 2 pagan 7% de su valor.
Los vehículos con clave 3 pagan 5% de su valor.
Realice un programa para obtener la información. Los datos son la clave y costo de cada uno.
18. PROGRAM IMPUESTO_AUTOMOVILES
INTEGER CLAVE, N, I
REAL COSTO, IMPUESTO, TOTAL_IMPUESTOS, TOTAL_COSTOS
TOTAL_IMPUESTOS = 0.0
TOTAL_COSTOS = 0.0
PRINT*,"INGRESE LA CANTIDAD DE VEHICULOS:"
READ*, N
DO I = 1, N
PRINT*,"INGRESE LA CLAVE Y COSTO DEL VEHICULO ", I
READ*, CLAVE, COSTO
SELECT CASE (CLAVE)
CASE (1)
IMPUESTO = 0.1 * COSTO
CASE (2)
IMPUESTO = 0.07 * COSTO
CASE (3)
IMPUESTO = 0.05 * COSTO
CASE DEFAULT
IMPUESTO = 0.0
END SELECT
TOTAL_IMPUESTOS = TOTAL_IMPUESTOS + IMPUESTO
TOTAL_COSTOS = TOTAL_COSTOS + COSTO
PRINT*, "EL IMPUESTO A PAGAR POR EL VEHICULO ", I, " ES: ", IMPUESTO
END DO
PRINT*, "EL TOTAL DE IMPUESTOS A PAGAR ES: ", TOTAL_IMPUESTOS
PRINT*, "EL COSTO TOTAL DE LOS VEHICULOS ES: ", TOTAL_COSTOS
END PROGRAM
19. 4.18 Realice un programa para obtener el seno de un ángulo
PROGRAM SENO_ANGULO
IMPLICIT NONE
REAL :: X, SENO, TERMINO, SIGNO
INTEGER :: N, I, J, FACTORIAL
WRITE(*,*) 'INGRESE EL ÁNGULO EN RADIANES:'
READ(*,*) X
WRITE(*,*) 'INGRESE EL NÚMERO DE TÉRMINOS A UTILIZAR:'
READ(*,*) N
SENO = 0.0
SIGNO = 1.0
DO I = 0, N-1
FACTORIAL = 1
DO J = 1, 2*I+1
FACTORIAL = FACTORIAL * J
END DO
TERMINO = SIGNO * X**(2*I+1) / REAL(FACTORIAL)
SENO = SENO + TERMINO
SIGNO = -SIGNO
END DO
WRITE(*,*) 'EL SENO DE ', X, ' ES: ', SENO
END PROGRAM
20. 4.19 Realice un programa para determinar qué cantidad de dinero hay en un monedero,
considerando que se tienen monedas de diez, cinco y un peso, y billetes de diez, veinte y cincuenta
pesos.
PROGRAM MONEDERO
INTEGER MONEDAS10, MONEDAS5, MONEDAS1, BILLETES10, BILLETES20, BILLETES50, TOTAL
MONEDAS10 = 0
MONEDAS5 = 0
MONEDAS1 = 0
BILLETES10 = 0
BILLETES20 = 0
BILLETES50 = 0
TOTAL = 0
DO
PRINT *, "INGRESE LA CANTIDAD DE MONEDAS DE 10 PESOS: "
READ *, MONEDAS10
IF (MONEDAS10 >= 0) EXIT
PRINT *, "CANTIDAD INVÁLIDA, INTENTE DE NUEVO."
END DO
21. DO
PRINT *, "INGRESE LA CANTIDAD DE MONEDAS DE 5 PESOS: "
READ *, MONEDAS5
IF (MONEDAS5 >= 0) EXIT
PRINT *, "CANTIDAD INVÁLIDA, INTENTE DE NUEVO."
END DO
DO
PRINT *, "INGRESE LA CANTIDAD DE MONEDAS DE 1 PESO: "
READ *, MONEDAS1
IF (MONEDAS1 >= 0) EXIT
PRINT *, "CANTIDAD INVÁLIDA, INTENTE DE NUEVO."
END DO
DO
PRINT *, "INGRESE LA CANTIDAD DE BILLETES DE 10 PESOS: "
READ *, BILLETES10
IF (BILLETES10 >= 0) EXIT
PRINT *, "CANTIDAD INVÁLIDA, INTENTE DE NUEVO."
END DO
DO
PRINT *, "INGRESE LA CANTIDAD DE BILLETES DE 20 PESOS: "
READ *, BILLETES20
IF (BILLETES20 >= 0) EXIT
PRINT *, "CANTIDAD INVÁLIDA, INTENTE DE NUEVO."
END DO
DO
PRINT *, "INGRESE LA CANTIDAD DE BILLETES DE 50 PESOS: "
READ *, BILLETES50
IF (BILLETES50 >= 0) EXIT
PRINT *, "CANTIDAD INVÁLIDA, INTENTE DE NUEVO."
END DO
TOTAL = MONEDAS10*10 + MONEDAS5*5 + MONEDAS1 + BILLETES10*10 + BILLETES20*20 +
BILLETES50*50
PRINT *, "EL TOTAL DE DINERO EN EL MONEDERO ES: $", TOTAL
END PROGRAM
22. 4.20 El banco “Bandido de peluche” desea calcular para cada uno de sus N clientes su saldo actual,
su pago mínimo y su pago para no generar intereses. Además, quiere calcular el monto de lo que
ganó por concepto interés con los clientes morosos. Los datos que se conocen de cada cliente son:
saldo anterior, monto de las compras que realizó y pago que depositó en el corte anterior. Para
calcular el pago mínimo se considera 15% del saldo actual, y el pago para no generar intereses
corresponde a 85% del saldo actual, considerando que el saldo actual debe incluir 12% de los
intereses causados por no realizar el pago mínimo y $200 de multa por el mismo motivo. Realice el
programa.
PROGRAM BANCO_BANDIDO
IMPLICIT NONE
INTEGER N, I
REAL SALDO_ANTERIOR, COMPRAS_REALIZADAS, PAGO_ANTERIOR, SALDO_ACTUAL, PAGO_MINIMO,
PAGO_SIN_INTERES, INTERESES_CAUSADOS, MULTA, GANANCIA_INTERES
CHARACTER(10) NOMBRE_CLIENTE
PRINT*, "INGRESE LA CANTIDAD DE CLIENTES A PROCESAR:"
READ(*,*) N
DO I = 1, N
PRINT*, "INGRESE EL NOMBRE DEL CLIENTE:"
READ(*,*) NOMBRE_CLIENTE
PRINT*, "INGRESE EL SALDO ANTERIOR DEL CLIENTE ", NOMBRE_CLIENTE, ":"
READ(*,*) SALDO_ANTERIOR
PRINT*, "INGRESE EL MONTO DE COMPRAS REALIZADAS POR EL CLIENTE ", NOMBRE_CLIENTE, ":"
READ(*,*) COMPRAS_REALIZADAS
23. PRINT*, "INGRESE EL PAGO DEPOSITADO POR EL CLIENTE ", NOMBRE_CLIENTE, " EN EL CORTE
ANTERIOR:"
READ(*,*) PAGO_ANTERIOR
SALDO_ACTUAL = SALDO_ANTERIOR + COMPRAS_REALIZADAS - PAGO_ANTERIOR
PAGO_MINIMO = 0.15 * SALDO_ACTUAL
INTERESES_CAUSADOS = 0.12 * SALDO_ACTUAL
MULTA = 200.0
PAGO_SIN_INTERES = 0.85 * SALDO_ACTUAL + INTERESES_CAUSADOS + MULTA
IF (SALDO_ACTUAL < PAGO_MINIMO) THEN
GANANCIA_INTERES = GANANCIA_INTERES + INTERESES_CAUSADOS + MULTA
END IF
PRINT*, "-------------------------------------------------"
PRINT*, "INFORMACIÓN DEL CLIENTE ", NOMBRE_CLIENTE
PRINT*, "SALDO ANTERIOR: $", SALDO_ANTERIOR
PRINT*, "COMPRAS REALIZADAS: $", COMPRAS_REALIZADAS
PRINT*, "PAGO ANTERIOR: $", PAGO_ANTERIOR
PRINT*, "SALDO ACTUAL: $", SALDO_ACTUAL
PRINT*, "PAGO MÍNIMO: $", PAGO_MINIMO
PRINT*, "PAGO SIN GENERAR INTERESES: $", PAGO_SIN_INTERES
PRINT*, "-------------------------------------------------"
END DO
PRINT*, "LA GANANCIA POR INTERESES CON CLIENTES MOROSOS ES DE $", GANANCIA_INTERES
END PROGRAM