SlideShare una empresa de Scribd logo
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"
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
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 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
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
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
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
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
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
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
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
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.
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
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
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
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
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.
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
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
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
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
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
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

Más contenido relacionado

Similar a TAREA 03 (20)

Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Primer problema
Primer problemaPrimer problema
Primer problema
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Mormorejera
MormorejeraMormorejera
Mormorejera
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltos
 
Taller de algoritmos
Taller de algoritmosTaller de algoritmos
Taller de algoritmos
 
EJERCICIOS DE ALGORITMOS RESUELTOS
EJERCICIOS DE ALGORITMOS RESUELTOS EJERCICIOS DE ALGORITMOS RESUELTOS
EJERCICIOS DE ALGORITMOS RESUELTOS
 
Ejemplos de cómo realizarlosavanzado
Ejemplos de cómo realizarlosavanzadoEjemplos de cómo realizarlosavanzado
Ejemplos de cómo realizarlosavanzado
 
Taller de algoritmos
Taller de algoritmosTaller de algoritmos
Taller de algoritmos
 
Algoritmos con PSeInt
Algoritmos con PSeIntAlgoritmos con PSeInt
Algoritmos con PSeInt
 
pseudocodigos ejemplos
 pseudocodigos ejemplos  pseudocodigos ejemplos
pseudocodigos ejemplos
 
02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS
 
Ii y iii corte ejercicios de algoritmos_secuenciales_y_condicionales_ingenieria
Ii y iii corte ejercicios de algoritmos_secuenciales_y_condicionales_ingenieriaIi y iii corte ejercicios de algoritmos_secuenciales_y_condicionales_ingenieria
Ii y iii corte ejercicios de algoritmos_secuenciales_y_condicionales_ingenieria
 
Stiven veliz
Stiven velizStiven veliz
Stiven veliz
 

Último

PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
encinasm992
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
ssusere34b451
 

Último (20)

JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometria
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
 
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptxNIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
Bloque 1 _ Lectura base - Sistemas Distribuidos
Bloque 1 _ Lectura base - Sistemas DistribuidosBloque 1 _ Lectura base - Sistemas Distribuidos
Bloque 1 _ Lectura base - Sistemas Distribuidos
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptx
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
 
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariataller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundaria
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
 

TAREA 03

  • 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