Documente Academic
Documente Profesional
Documente Cultură
A) PROGRAM EJERCICIO_A
REAL::F
REAL::C
PRINT*,"INGRESE EL VALOR DE C"
READ*,C
F=(9/5)*C+32
PRINT*,"LA TEMPERATURA EN GRADOS FARENHEIT ES:", F
END PROGRAM EJERCICIO_A
B) PROGRAM EJERCICIO_B
IMPLICIT NONE
REAL::X,Y,Z
WRITE(*,*)"INGRESE EL VALOR DE LAS COORDENADAS"
READ(*,*)X,Y
IF(X/=0) THEN
WRITE(*,*)"LA FUNCION ESTA DEFINIDA"
ELSE
WRITE(*,*)"LA FUNCIÓN NO ESTÁ DEFINIDA"
IF(Y/=0.AND.Y/=-1) THEN
WRITE(*,*)"LA FUNCION ESTA DEFINIDA"
ELSE
WRITE(*,*)"LA FUNCIÓN NO ESTA DEFINIDA"
Z=(1+X**2/Y)/(X**3/(1+Y))
WRITE(*,*)"EL RESULTADO DE LA FUNCIÓN ES: ",Z
END IF
END IF
END PROGRAM EJERCICIO_B
C) PROGRAM EJERCICIO_C
REAL::X
REAL::Y
REAL,PARAMETER::E=2.71
PRINT*,"INGRESE EL VALOR DE X"
READ*,X
IF(X/=0) THEN
WRITE(*,*)"LA FUNCION ESTA DEFINIDA"
ELSE
WRITE(*,*)"LA FUNCION NO ESTA DEFINIDA"
END IF
Y=SQRT(1+(E**X/X**2)**2)
PRINT*,"EL VALOR DE LA FUNCION ES",Y
END PROGRAM EJERCICIO_C
PROBLEMA 1
PROGRAM VARIABLE
LOGICAL F1
X=0
F1=(X>1).OR.(X+1<10)
PRINT*,"EL RESULTADO LOGICO ES ",F1
END PROGRAM VARIABLE
!EL RESULTADO ES VERDADERO
PROBLEMA2
PROGRAM VARIABLE
LOGICAL F1
X=1
F1=(1>X).AND.(1>X+1)
PRINT*,"EL RESULTADO LOGICO ES ",F1
END PROGRAM VARIABLE
!EL RESULTADO ES FALSO
PROBLEMA3
PROGRAM VARIABLE
LOGICAL F1
X=1
F1=(1==X).AND.(10>X+2)
PRINT*,"EL RESULTADO LOGICO ES ",F1
END PROGRAM VARIABLE
!EL RESULTADO ES VERDADERO
PROBLEMA4
PROGRAM VARIABLE
LOGICAL F1
X=1
F1=(1==X).OR.(10>X+3)
PRINT*,"EL RESULTADO LOGICO ES ",F1
END PROGRAM VARIABLE
!EL RESULTADO ES VERDADERO
3.-Las variables siguientes tienen los valores indicados B=6.0, C=4.08, M=5, N =3 y K =
2, indique que valores almacenaran en la variable J como resultado de las siguientes
operaciones en FORTRAN
a) PROGRAM CALCULO
INTEGER::J
INTEGER:: M=5,N=3,K=2
J=M+(N/K)
PRINT*,”EL VALOR DE J ES=”,J
END PROGRAM CALCULO
b) PROGRAM CALCULO2
INTEGER::J
INTEGER::C=4.08,B=6.0,K=2,N=2
J=(C+B)/(K+N)
PRINT*,”EL VALOR DE J ES”,J
END PROGRAM CALCULO2
c) PROGRAM CALCULO3
INTEGER::J
INTEGER::M=5,K=2
J=M-((M/K)*K)
PRINT*,”EL VALOR DE J ES”,J
END PROGRAM CALCULO 3
d) PROGRAM CALCULO4
INTEGER::J
INTEGER::K=2,N=3
J=N*N**K
PRINT*,”EL VALOR DE J ES “,J
END PROGRAM CALCULO4
4.- Elabore comandos sencillos para las siguientes expresiones matemáticas y asuma
valores de entrada y los tipos de datos con FORTRAN
𝜋
a.- 𝑎𝑟𝑒𝑎 = 2. 𝑃. 𝑅. 𝑆𝑒𝑛 (𝜌 )
4𝑋 2
b.- 𝐴𝑅𝐶 = 2√𝑌 2 + 3
−𝐶𝑜𝑠4 𝑥
c.-𝑆 = 𝑥
1 1+𝑠𝑒𝑛(𝑥)
d.- 𝐺 = 2 𝑙𝑜𝑔 1−𝑠𝑒𝑛(𝑥)
1 2𝑎2
e.-𝑍 = − √𝑥 2 2
−
−𝑎 3√(𝑥 2 −𝑎2 )3
𝛼 𝑥 𝛼
𝑐𝑜𝑠𝑒𝑛𝑜((√ )+ )
𝑥2 2 𝑥
𝑒
f.- 𝐵 =
√2𝜋𝑥
1
g.- 𝑦 = (2𝜋) . 𝑥 𝑥+1 . 𝑒 −𝑥
2
A. PROGRAM AREA
REAL::P,R,PI1,RO
REAL::AREA
PRINT*,"DAR EL VALOR DE P "
READ*,P
PRINT*,"DAR EL VALOR DE R"
READ*,R
PRINT*," DAR EL VALOR DE RO"
READ*,RO
PI1=3.1416
AREA=2*P*R*SIN(PI1/RO)
PRINT*,"EL VALOR DEL AREA ES ", AREA
END PROGRAM AREA
B. PROGRAM PROBLEMA
REAL::Y,X
REAL::ARC
PRINT*," DAR VALOR DE Y"
READ*,Y
PRINT*,"DAR EL VALOR DE X"
READ*,X
ARC=2*SQRT(Y**2+((4*X**2)/3))
PRINT*," EL VALOR DE ARC ES ", ARC
END PROGRAM PROBLEMA
C. PROGRAM PROBLEMA
REAL::X
REAL::C
PRINT*," DAR EL VALOR DE X "
READ*,X
IF(X/=0)THEN
C=(-COS(X)**4)/X
PRINT*,"EL VALOR DE C ES ",C
ELSE
IF(X==0)THEN
PRINT*,"NO EXISTE SOLUCION"
END IF
END IF
END PROGRAM PROBLEMA
D. PROGRAM PROBLEMA
REAL::X
REAL::G
PRINT*," DAR EL VALOR DE X "
READ*,X
IF((1+SIN(X))/(1-SIN(X))>=1)THEN
G=0.5*LOG10((1+SIN(X))/(1-SIN(X)))
PRINT*,"EL VALOR DE G ES ", G
ELSE
IF((1+SIN(X))/(1-SIN(X))<1)THEN
PRINT*,"NO HAY SOLUCION"
END IF
END IF
END PROGRAM PROBLEMA
E.PROGRAM PROBLEMA
REAL::Z
REAL::X
REAL::A
PRINT*,"DAR EL VALOR DE X "
READ*,X
PRINT*,"DAR EL VALOR DE A "
READ*,A
IF((X**2-A**2)>0)THEN
Z=-(1/(SQRT(X**2-A**2)))-(2*A**2)/(3*(SQRT(X**2-A**2)**3))
PRINT*,"EL VALOR DE Z ES ",Z
ELSE
IF((X**2-A**2)<=0)THEN
PRINT*,"ERROR"
END IF
END IF
END PROGRAM PROBLEMA
F. PROGRAM PROBLEMA
REAL::B
REAL::X
REAL::A
PRINT*,"DAR EL VALOR DE X "
READ*,X
PRINT*,"DAR EL VALOR DE A "
READ*,A
E=2.718
PI=3.1416
IF((2*PI*X)>0)THEN
B=E**((A/X**2)*COS(SQRT(X/2)+A/X))/(SQRT(2*PI*X))
PRINT*,"EL VALOR DE B ES",B
ELSE
IF((2*PI*X)<=0)THEN
PRINT*,"ERROR"
END IF
END IF
END PROGRAM PROBLEMA
G. PROGRAM PROBLEMA
REAL::Y
REAL::X
PRINT*,"DAR EL VALOR DE X"
READ*,X
PI=3.1416
E=2.718
Y=(SQRT(2*PI))*(X**(X+1))*E**(-X)
PRINT*,"EL VALOR DE Y ES",Y
END PROGRAM PROBLEMA
5.- De los siguientes nombres. ¿Cuáles son validos como variables y cuales no son
válidos como variable?
● H
● BETA
● ALPHA325
● IT*
● LARGA
● F(3)12
● CHI
● COS
● I 12G
● X+2
● 42G
● A*B
● GAMMA
● IBM360
● COBOL
● A1
SI
SI
SI
NO
SI
NO
SI
SI
NO
NO
NO
NO
SI
SI
SI
SI
PROGRAM PAGO_NETO
REAL::HORAS_TRABAJADAS
REAL::TARIFA_HORARIA
REAL::TASA_DE_IMPUESTOS
REAL::PAGO
PRINT*,"INGRESE LAS HORAS TRABAJADAS"
READ*,HORAS_TRABAJADAS
PRINT*,"INGRESE LA TARIFA HORARIA"
READ*,TARIFA_HORARIA
PRINT*,"INGRESE LA TASA DE IMPUESTOS"
READ*,TASA_DE_IMPUESTOS
PAGO=TARIFA_HORARIA*HORAS_TRABAJADAS-
TARIFA_HORARIA*HORAS_TRABAJADAS*TASA_DE_IMPUESTOS/100
PRINT*,"EL PAGO NETO ES",PAGO
END PROGRAM PAGO_NETO
PROGRAM AREA_TRIANGULO
REAL::BASE,ALTURA
REAL::S
PRINT*,"INGRESE EL VALOR DE LA BASE"
READ*,BASE
PRINT*,"INGRESE EL VALOR DE LA ALTURA"
READ*,ALTURA
S=(BASE*ALTURA)/2
PRINT*,"EL AREA DEL TRIANGULO ES",S
END PROGRAM AREA_TRIANGULO
PROGRAM LONGITUD_CIRCUNFERENCIA
REAL::ANGULO,RADIO
REAL::L
REAL,PARAMETER::PI=3.1416
PRINT*,"INGRESE EL VALOR DEL RADIO"
READ*,RADIO
PRINT*,"INGRESE EL VALOR DEL ANGULO"
READ*,ANGULO
L=RADIO*ANGULO*PI/180
PRINT*,"LA LONGITUD DE LA CIRCUNFERENCIA ES",L
END PROGRAM LONGITUD_CIRCUNFERENCIA
PROGRAM AREA_CIRCULO
REAL::RADIO
REAL::A
REAL,PARAMETER::PI=3.1416
PRINT*,”INGRESE EL VALOR DEL RADIO”
READ*,RADIO
A=PI*(RADIO**2)
PRINT*,”EL AREA DEL CIRCULO ES”,A
END PROGRAM AREA_CIRCULO
PROGRAM SALARIO1
REAL::SALARIO_HORA,HORA_DIARIA
PRINT*,"INGRESE EL PAGO POR HORA"
READ*,SALARIO_HORA
PRINT*,"INGRESE LAS HORAS DE TRABAJO POR DIA"
READ*,HORA_DIARIA
SALARIO=SALARIO_HORA*HORA_DIARIA
PRINT*,"EL SALARIO SEMANAL ES DE",SALARIO," SOLES"
END PROGRAM SALARIO1
11.- Elabore un programa que pida un número del 1 al 5 y diga si es primo o no.
PROGRAM NUMEROPRIMO
REAL::NUMERO
PRINT*,"INGRESE EL NUMERO"
READ*,NUMERO
IF(NUMERO==1) THEN
PRINT*,"EL NUMERO NO ES PRIMO"
STOP
ENDIF
IF(NUMERO==4) THEN
PRINT*,"EL NUMERO NO ES PRIMO"
STOP
ELSE
PRINT*,"EL NUMERO ES PRIMO"
ENDIF
END PROGRAM NUMEROPRIMO
PROGRAM PAR
PRINT*,"ESCRIBE EL NUMERO"
READ*,N
IF(MOD(N,2)==0)THEN
PRINT*,"ES PAR"
ELSE
PRINT*,"ES IMPAR"
ENDIF
END PROGRAM PAR
13.- Elabore un programa que pida un número del 1 al 7 y diga el día de la semana
correspondiente.
PROGRAM SEMANA
REAL::S
PRINT*,"INGRESE EL NUMERO DEL 1 AL 7"
READ*,S
IF(S==1) THEN
PRINT*,"ES LUNES"
ELSE
IF(S==2) THEN
PRINT*,"ES MARTES"
ELSE
IF(S==3) THEN
PRINT*,"ES MIERCOLES"
ELSE
IF(S==4) THEN
PRINT*,"ES JUEVES"
ELSE
IF(S==5) THEN
PRINT*,"ES VIERNES"
ELSE
IF(S==6) THEN
PRINT*,"ES SABADO"
ELSE
IF(S==7) THEN
PRINT*,"ES DOMINGO"
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
END PROGRAM SEMANA
14.- Elabore un programa que pida un número del 1 al 12 y diga el nombre del mes
correspondiente.
PROGRAM MES
REAL::M
PRINT*,"INGRESE EL NUMERO DEL 1 AL 12"
READ*,M
IF(M==1) THEN
PRINT*,"ES ENERO"
ELSE
IF(M==2) THEN
PRINT*,"ES FEBRERO"
ELSE
IF(M==3) THEN
PRINT*,"ES MARZO"
ELSE
IF(M==4) THEN
PRINT*,"ES ABRIL"
ELSE
IF(M==5) THEN
PRINT*,"ES MAYO"
ELSE
IF(M==6) THEN
PRINT*,"ES JUNIO"
ELSE
IF(M==7) THEN
PRINT*,"ES JULIO"
ELSE
IF(M==8) THEN
PRINT*,"ES AGOSTO"
ELSE
IF(M==9) THEN
PRINT*,"ES SEPTIEMBRE"
ELSE
IF(M==10) THEN
PRINT*,"ES OCTUBRE"
ELSE
IF(M==11) THEN
PRINT*,"ES NOVIEMBRE"
ELSE
IF(M==12) THEN
PRINT*,"ES DICIEMBRE"
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDI
ENDIF
ENDIF
ENDIF
END PROGRAM MES
15.- Elabore un programa que pida pida 3 números y los muestre en pantalla de menor
a mayor.
PROGRAM MENOR_A_MAYOR
PRINT*,"INGRESE EL NUMERO"
READ*,A
PRINT*,"INGRESE EL NUMERO"
READ*,B
PRINT*,"INGRESE EL NUMERO"
READ*,C
IF(A<B.AND.A<C)THEN
IF(B<C)THEN
PRINT*,A,B,C
ELSE
PRINT*,A,C,B
ENDIF
ENDIF
IF(B<A.AND.B<C)THEN
IF(C<A)THEN
PRINT*,B,C,A
ELSE
PRINT*,B,A,C
END IF
ELSE
IF(C<A.AND.C<B)THEN
IF(A<B)THEN
PRINT*,C,A,B
ELSE
PRINT*,C,B,A
END IF
END IF
END IF
END PROGRAM MENOR_A_MAYOR
16.- Elabore un programa que pida 3 números y los muestre en pantalla de mayor a
menor.
PROGRAM MAYOR_A_MENOR
PRINT*,"INGRESE EL NUMERO"
READ*,A
PRINT*,"INGRESE EL NUMERO"
READ*,B
PRINT*,"INGRESE EL NUMERO"
READ*,C
IF(A>B.AND.A>C)THEN
IF(B>C)THEN
PRINT*,A,B,C
ELSE
PRINT*,A,C,B
endif
endif
IF(B>A.AND.B>C)THEN
IF(C>A)THEN
PRINT*,B,C,A
ELSE
PRINT*,B,A,C
END IF
ELSE
IF(C>A.AND.C>B)THEN
IF(A>B)THEN
PRINT*,C,A,B
ELSE
PRINT*,C,B,A
ENDIF
ENDIF
ENDIF
END PROGRAM MAYOR_A_MENOR
17.- Elabore un programa que pida 3 números y los muestre en pantalla de mayor a
menor en líneas distintas. En caso de haber números iguales se escriben en la misma
línea.
PROGRAM PROGRESION
PRINT*,"INGRESE EL NUMERO"
READ*,A
PRINT*,"INGRESE EL NUMERO"
READ*,B
PRINT*,"INGRESE EL NUMERO"
READ*,C
IF(A==B)THEN
IF(A>C)THEN
PRINT*,A,B
PRINT*,C
ELSE
PRINT*,C
PRINT*,A,B
ENDIF
ELSE
IF(A==B.AND.B==C)THEN
PRINT*,C,B,A
ELSE
IF(B==C)THEN
IF(B>A)THEN
PRINT*,B,C
PRINT*,A
ELSE
PRINT*,A
PRINT*,B,C
END IF
ELSE
IF(C==A)THEN
IF(C>B)THEN
PRINT*, C,A
PRINT*,B
ELSE
PRINT*,B
PRINT*,C,B
ENDIF
ELSE
IF(A>B.AND.A>C)THEN
IF(B>C)THEN
PRINT*,A
PRINT*,B
PRINT*,C
ELSE
PRINT*,A
PRINT*,C
PRINT*,B
END IF
END IF
IF(B>A.AND.B>C)THEN
IF(C>A)THEN
PRINT*,B
PRINT*,C
PRINT*,A
ELSE
PRINT*,B
PRINT*,A
PRINT*,C
END IF
ELSE
IF(C>A.AND.C>B)THEN
IF(A>B)THEN
PRINT*,C
PRINT*,A
PRINT*,B
ELSE
PRINT*,C
PRINT*,B
PRINT*,A
END IF
END IF
END IF
END IF
END IF
END IF
END IF
END PROGRAM PROGRESION
PROGRAM NEGATIVO
PRINT*,"ESCRIBE EL NUMERO"
READ*,N
IF(N>0)THEN
PRINT*,"ES POSITIVO"
ELSE
PRINT*,"ES NEGATIVO"
ENDIF
END PROGRAM NEGATIVO
SOLUCIÓN:
PROGRAM MAYOR_100
REAL::X
PRINT*, "INGRESE UN NUMERO"
READ*,X
IF (X>100) THEN
PRINT*, "EL NUMERO ES MAYOR QUE 100"
ELSE
IF (X==100) THEN
PRINT*,"EL NUMERO ES 100"
ELSE
PRINT*, "EL NUMERO ES MENOR QUE 100"
END IF
END IF
END PROGRAM MAYOR_100
SOLUCIÓN:
PROGRAM DETECTAR_VOCAL
CHARACTER::LETRA
PRINT*, "INGRESE UNA LETRA"
READ*,LETRA
SELECT CASE (LETRA)
CASE ("E","A","I","O","U")
PRINT*, "LA LETRA ES UNA VOCAL"
CASE ("B","C","D","F","G","H","J","K","L","M","N","P","Q","R","S","W ","T","Y","X","Z")
PRINT*, "ES UNA CONSONANTE"
END SELECT
END PROGRAM DETECTAR_VOCAL
Solución:
PROGRAM ORDEN_CRECIENTE
REAL::X,Y,Z
PRINT*,"INGRESE EL PRIMER NUMERO"
READ*,X
PRINT*,"INGRESE EL SEGUNDO NUMERO"
READ*,Y
PRINT*,"INGRESE EL TERCER NUMERO"
READ*,Z
IF (X<Y .AND. Y<Z) THEN
PRINT*, "EL ORDEN DE LOS NUMEROS ES CRECIENTE"
ELSE
PRINT*,"EL ORDEN DE LOS NUMEROS NO ES CRECIENTE"
END IF
END PROGRAM ORDEN_CRECIENTE
Solución:
PROGRAM ORDEN_DECRECIENTE
REAL::X,Y,Z
PRINT*,"INGRESE EL PRIMER NUMERO"
READ*,X
PRINT*,"INGRESE EL SEGUNDO NUMERO"
READ*,Y
PRINT*,"INGRESE EL TERCER NUMERO"
READ*,Z
IF (X>Y .AND. Y>Z) THEN
PRINT*, "EL ORDEN DE LOS NUMEROS ES DECRECIENTE"
ELSE
PRINT*,"EL ORDEN DE LOS NUMEROS NO ES DECRECIENTE"
END IF
END PROGRAM ORDEN_DECRECIENTE
PROGRAM SUMA_NUMEROS
REAL::X,Y,Z,W
PRINT*,"INGRESE EL PRIMER NUMERO"
READ*,X
PRINT*,"INGRESE EL SEGUNDO NUMERO"
READ*,Y
PRINT*,"INGRESE EL TERCER NUMERO"
READ*,Z
W=X+Y
IF (Z==W) THEN
PRINT*, "EL TERCER NUMERO ES LA SUMA DEL PRIMERO Y EL SEGUNDO"
ELSE
PRINT*, "EL TERCER NUMERO NO ES LA SUMA DEL PRIMERO Y EL SEGUNDO"
END IF
END PROGRAM SUMA_NUMEROS
24.-Elabore un programa que muestre un menú que contemple las opciones “Archivo”,
“Buscar” y “Salir”, en caso de que no se introduzca una opción correcta se notificará por
pantalla.
PROGRAM MENÚ
CHARACTER(LEN=15)::OPCIÓN
PRINT*,”INGRESE LA OPCIÓN”
READ*,OPCIÓN
IF(OPCIÓN==”ARCHIVO”.OR.OPCION==”BUSCAR”.OR.OPCION==”SALIR”) THEN
PRINT*,”OPCIÓN CORRECTA”
ELSE
PRINT*,”OPCIÓN INCORRECTA”
END IF
END PROGRAM MENÚ
25.-Elabore un programa que tome dos números y diga si ambos son pares o impares.
PROGRAM PAR_IMPAR
REAL::X,Y,T
T=2
PRINT*,"INGRESE EL PRIMER NUMERO"
READ*,X
PRINT*,"INGRESE EL SEGUNDO NUMERO"
READ*,Y
Q1=INT(X/T)
Q2=INT(Y/T)
R1=X-(T*Q1)
X=(T*Q1)+R1
R2=Y-(T*Q2)
Y=(T*Q2)+R2
IF (R1==0 .AND. R2==0)THEN
PRINT*, "AMBOS NUMEROS SON PARES"
ELSE
IF (R1/=0 .AND. R2/=0) THEN
PRINT*, "AMBOS NUMEROS SON IMPARES"
ELSE
IF (R1==0 .AND. R2/=0)THEN
PRINT*, "EL PRIMERO ES PAR Y EL SEGUNDO ES IMPAR"
ELSE
IF (R1/=0 .AND. R2==0)THEN
PRINT*, "EL PRIMERO ES IMPAR Y EL SEGUNDO ES PAR"
END IF
END IF
END IF
END IF
END PROGRAM PAR_IMPAR
27.-Elabore un programa que pida tres números y diga si el tercero es el resto de la
división de los dos primeros.
PROGRAM RESTO_DIVISION
REAL::X,Y,Z,R
INTEGER::Q
28.-Elabore un programa que muestre un menú donde las opciones sean “Equilátero”,
“Isósceles” y “Escaleno”, pida una opción y calcule el perímetro del triángulo
seleccionado.
Solución:
PROGRAM PERIMETRO
REAL::A,B,C,P
INTEGER::F
!INSTRUCCIONES
PRINT*,"MENU PARA SELECCIONAR EL TIPO DE TRIANGULO"
PRINT*," ***************"
PRINT*,"INSERTE EL NUMERO DEL MENU"
PRINT*,"PARA PROCEDER A CALCULAR"
PRINT*,"EL PERIMETRO DEL TRIANGULO"
PRINT*,"***********"
PRINT*,"(1)PARA ISOSCELES"
PRINT*,"(2)PARA ESCALENO"
PRINT*,"(3)PARA EQUILATERO"
PRINT*,"***********"
READ*,F
PRINT*,"*********"
!BLOQUE DE CONDICIONALES
IF(F==1)THEN
PRINT*,"INTRODUZCA EL VALOR DE LOS LADOS IGUALES"
READ*,A
PRINT*,"INTRODUZCA EL VALOR DE LADO RESTANTE"
READ*,C
P=(2*A)+C
PRINT*,"EL VALOR DEL PERIMETRO ES ",P
ELSE IF(F==2)THEN
PRINT*,"INTRODUZCA EL VALOR DEL PRIMER LADO"
READ*,A
PRINT*,"INTRODUZCA EL VALOR DEL SEGUNDO LADO"
READ*,B
PRINT*,"INTRODUZCA EL VALOR DEL TERCER LADO"
READ*,C
P=A+B+C
PRINT*,"EL VALOR DEL PERIMETRO ES ",P
ELSE IF(F==3)THEN
PRINT*,"INTRODUZCA EL VALOR DEL LADO"
READ*,A
P=3*A
PRINT*,"EL VALOR DEL PERIMETRO ES ",P
END IF
END PROGRAM PERIMETRO
SOLUCIÓN:
PROGRAM IMPORTE
IMPLICIT NONE
REAL::IB
REAL::IN
PRINT*,"INTRODUZCA SU IMPORTE TOTAL"
READ*,IB
IN=IB*84/100
IF(IB>15000) THEN
PRINT*,"SU IMPORTE NETO SERA",IN
ELSE IF (IB<=15000) THEN
IN=IB*90/100
PRINT*,"SU IMPORTE NETO SERA",IN
END IF
END PROGRAM IMPORTE
Solución:
PROGRAM HORA
IMPLICIT NONE
REAL::H
REAL::M
REAL::S
PRINT*,"DAME LA HORA"
READ*,H
IF(H>0 .AND. H<24) THEN
PRINT*,"DAME LOS MINUTOS"
READ*,M
PRINT*,"DAME LOS SEGUNDOS"
READ*,S
PRINT*,"SON LAS ", H,"horas",M,"minutos",S+1,"segundos"
ELSE
IF(H<0 .AND. H>24)THEN
PRINT*, "NO ESTA DENTRO DEL RANGO DE 24 HORAS"
END IF
END IF
END PROGRAM HORA
Solución:
PROGRAM SUELDO
IMPLICIT NONE
REAL::SF
REAL::A
REAL::C
C=40000
PRINT*,"Introduzca la cantidad de años de servicio"
READ*,A
IF(A>10) THEN
SF=C*110/100
PRINT*,"SU SUELDO FINAL ES ",SF
ELSE IF(A<10 .AND. A>5) THEN
SF=C*107/100
PRINT*,"SU SUELDO FINAL ES ",SF
ELSE IF(A<5 .AND. A>3) THEN
SF=C*105/100
PRINT*,"SU SUELDO FINAL ES ",SF
ELSE IF (A<3) THEN
SF=C*103/100
PRINT*,"SU SUELDO FINAL ES ",SF
END IF
END PROGRAM SUELDO
Solución:
PROGRAM CONVERTIR_F_TO_C
IMPLICIT NONE
REAL:: F
REAL:: C
PRINT*, " PROGRAMA PARA CONVERTIR EL VALOR DE TEMPERATURA DE GRADOS
FARENHEIT A GRADOS CELSIUS”
PRINT*, " INTRODUZCA EL VALOR DE F"
READ*,F
C=(F-32)*5/9
PRINT*, "EL VALOR EN GRADOS CELSIUS ES ",C
END PROGRAM CONVERTIR_F_TO_C
PROGRAM MENSAJE
CHARACTER(LEN=10)::NOMBRE, MEN=7, MEN25
PRINT*,"INGRESE SU NOMBRE"
READ*,NOMBRE
MEN="!HOLA"
MEN2="BIENVENIDOS A FORTRAN 90!"
PRINT*, MEN, NOMBRE, MEN2
END PROGRAM MENSAJE
PROGRAM NOTAS
REAL::NOTA
PRINT*,"LA NOTA ES"
READ*,NOTA
IF(NOTA>=11) THEN
PRINT*,"ESTA APROBADO"
END IF
IF (NOTA<11) THEN
PRINT*,"ESTA DESAPROBADO"
END IF
END PROGRAM NOTAS
PROGRAM CONVER
REAL::PIES,YARD,PULG,CENT,MET
INTEGER::X
PRINT*,”INGRESE LA MEDIDA EN PIES”
READ*, PIES
YARD=PIES*(1/3)
PULG=(12*PIES)
MET=PIES*0.3048
CENT=PIES*30.48
PRINT*,”1.YARDAS”
PRINT*,”2.PULGADAS”
PRINT*,”3.METROS”
PRINT*,”4.CENTIMETROS”
PRINT*,”INGRESE LA OPCION”
READ*,X
SELECT CASE(X)
CASE(1)
PRINT*,”EL EQUIVALENTE EN YARDAS ES”,YARD
CASE(2)
PRINT*,”EL EQUIVALENTE EN PULGADAS ES”,PULG
CASE(3)
PRINT*,”EL EQUIVALENTE EN METROS ES”,MET
CASE(4)
PRINT*,”EL EQUIVALENTE EN CENTIMETROS ES”,CENT
END SELECT
END PROGRAM CONVER
PROGRAM NOTAS
REAL::NOTA, PROMEDIO
PRINT*,"INGRESE LA PRIMERA NOTA"
READ*,"PRIMERA"
PRINT*,"INGRESE LA SEGUNDA NOTA"
READ*,"SEGUNDA"
PRINT*,"INGRESE LA TERCERA NOTA"
READ*,TERCERA
PROMEDIO=(PRIMERA+SEGUNDA+TERCERA)/3
IF(NOTA>=70) THEN
PRINT*,"ESTA APROBADO"
END IF
IF (NOTA<70) THEN
PRINT*,"ESTA DESAPROBADO"
END IF
END PROGRAM NOTAS
PROGRAM PROMEDIO
REAL:: NUM1, NUM2 , NUM3, NUM4, NUM5
REAL::PROM
PRINT*, "INGRESE VALOR DE NUM1"
READ*, NUM1
PRINT*, "INGRESE VALOR DE NUM2"
READ*, NUM2
PRINT*, "INGRESE VALOR DE NUM3"
READ*, NUM3
PRINT*, "INGRESE VALOR DE NUM4"
READ*, NUM4
PRINT*, "INGRESE VALOR DE NUM5"
READ*, NUM5
PROM=(NUM1+NUM2+NUM3+NUM4+NUM4)/5
PRINT*,"EL PROMEDIO DE LOS 5 NUMEROS ES ",PROM
END PROGRAM PROMEDIO
PROGRAM AREA_CIRCULO
REAL:: RADIO
REAL:: A
REAL,PARAMETER::PI=3.1416
PRINT*, "INGRESE EL VALOR DEL RADIO"
READ*, RADIO
A=PI*(RADIO**2)
PRINT*,"EL AREA EL CIRCULO ES", AEND PROGRAM AREA_CIRCULO
PROGRAM VALORES
REAL::NUM1,NUM2,NUM3
PRINT*,"INGRESE VALOR DE NUM1"
READ*,NUM1
PRINT*,"INGRESE VALOR DE NUM2"
READ*,NUM2
PRINT*,"INGRESE VALOR DE NUM3"
READ*,NUM3
IF(NUM1==NUM2) THEN
PRINT*,"LAS VARIABLES 1 Y 2 SON IGUALES"
ELSE
IF(NUM2==NUM3) THEN
PRINT*,"LAS VARIABLES 2 Y 3 SON IGUALES"
ELSE
IF (NUM3==NUM2) THEN
PRINT*,"LAS VARIABLES 3 Y 2 SON IGUALES"
ELSE
IF(NUM1>NUM2.AND.NUM1>NUM3) THEN
PRINT*,"LA VARIABLE 1 ES LA MAYOR"
ELSE
IF(NUM2>NUM1.AND.NUM2>NUM3) THEN
PRINT*,"LA VARIABLE 2 ES LA MAYOR"
ELSE
IF(NUM3>NUM2.AND.NUM3>NUM1) THEN
PRINT*,"LA VARIABLE 3 ES LA MAYOR"
END IF
END IF
END IF
END IF
END IF
END IF
END PROGRAM VALORES
38.-Diseñe un programa que lea los coeficientes de una ecuación de segundo grado
ax2+bx+c=0 y calcule sus dos soluciones. Se supone que la ecuación tiene soluciones
reales.
PROGRAM EQ
REAL::A,B,C
REAL::P,S
PRINT*,"INGRESE EL VALOR DE A"
READ*,A
PRINT*,"INGRESE EL VALOR DE B"
READ*,B
PRINT*,"INGRESE EL VALOR DE C"
READ*,C
P=(-B+SQRT(B*B-4*A*C))/2*A
S=(-B-SQRT(B*B-4*A*C))/2*A
PRINT*,"LAS SOLUCIONES DE LA ECUACION SON", P
END PROGRAM EQ
PROGRAM ECUACIONES
REAL::A,B,C,D
REAL::E,F,X,Y
C=A*X + B*Y
F=D*X + E*Y
PRINT*,"INGRESE EL VALOR DE A"
READ*,A
PRINT*,"INGRESE EL VALOR DE B"
READ*,B
PRINT*,"INGRESE EL VALOR DE C"
READ*,C
PRINT*,"INGRESE EL VALOR DE D"
READ*,D
X=(C*E-F*B)/(A*E-D*B)
Y=(A*F-D*C)/(A*E-D*B)
PRINT*,"LAS SOLUCIONES SON", X , Y
END PROGRAM ECUACIONES
40.- Implemente un programa que, dados los tres vértices de un triángulo, calcule el
área del mismo. Puede aplicar la siguiente fórmula: 𝑆 = √𝑇(𝑇 − 𝑆1 )(𝑇 − 𝑆2 )(𝑇 − 𝑆3 )
donde S1, S2 y S3 son las longitudes de los tres lados del triángulo y T es la mitad de su
perímetro.
PROGRAM AREA_TRIANGULO
REAL::S,S1,S2,S3,T
PRINT*,"EL VALOR DEL LADO S1 DEL TRIANGULO ES"
READ*, S1
PRINT*,"EL VALOR DEL LADO S2 DEL TRIANGULO ES"
READ*, S2
PRINT*,"EL VALOR DEL LADO S3 DEL TRIANGULO ES"
READ*, S3
T=(S1+S2+S3)/2
S= SQRT(T*(T-S1)*(T-S2)*(T-S3))
PRINT*,"EL AREA DEL TRIANGULO ES ", S
END PROGRAM AREA_TRIANGULO
41.- Dada una medida de tiempo expresada en horas, minutos y segundos con valores
arbitrarios, elabore un programa que transforme dicha medida en una expresión
correcta. Por ejemplo, dada la medida 3h 118m 195s, el programa deberá obtener
como resultado 5h 1m 15s
PROGRAM CONVERSION
INTEGER::H,M,S,A,B,X,Y,H1,M1,S1
PRINT*,"INGRESE LA HORA,MINUTOS Y SEGUNDOS"
READ*,H,M,S
IF(S>=60) THEN
A=MOD(S,60)
X=INT(S/60)
END IF
S1=A
M1=M+X
IF(M1>=60) THEN
B=MOD(M1,60)
Y=INT(M1/60)
END IF
M1=B
H1=H+Y
PRINT 10,"LA HORA CORRECTA SERIA ",H1," HORAS ",M1," MINUTOS ",S1," SEGUNDOS "
10 FORMAT(1X,A30,2X,I2,1X,A7,2X,I4,1X,A8,2X,I4,1X,A8)
END PROGRAM CONVERSION
42.- Programa que sume y muestre por pantalla todos los números naturales del 1
hasta el 5, ambos incluidos. Lo mismo pero de 1 a 50, lo mismo pero de 1 a 500.
PROGRAM NUMEROS
INTEGER::I,J
DO I=1,5,1
J=I
PRINT*,"ESCRIBE LOS NUMEROS DEL 1 HASTA EL 5",J
END DO
END PROGRAM NUMEROS
PROGRAM NUMEROS
INTEGER::I,J
DO I=1,50,1
J=I
PRINT*,"ESCRIBE LOS NUMEROS DEL 1 HASTA EL 5",JEND DO
END PROGRAM NUMEROS
PROGRAM NUMEROS
INTEGER::I,J
DO I=1,500,1
J=I
PRINT*,"ESCRIBE LOS NUMEROS DEL 1 HASTA EL 5",J
END DO
END PROGRAM NUMEROS
43.-Programa que sume el número 5 y sus múltiplos hasta el 100 inclusive y muestre el
resultado por pantalla.
PROGRAM NUMEROS
INTEGER::I,J
DO I=0,100,5
J=I
PRINT*,"ESCRIBE LOS NUMEROS DEL 1 HASTA EL 5",J
END DO
END PROGRAM NUMEROS
46.-Programa que lea un número natural y diga si es o no es triangular. A saber: un
numero N es triangular si, y solamente si, es la suma de los primeros N números
naturales, para algún valor de M. Ejemplo: 6 es triangular pues 6=1 + 2 +3. Una forma
de obtener los números triangulares es aplicando la formula n(n+1)/2, nEN.
PROGRAM NUM_TRI
REAL::N
REAL::T
PRINT*,"DAR VALOR A N"
READ*,N
IF(N>=0)THEN
T=(N*(N+1))/2
PRINT*,"EL NUMERO TRIANGULAR SERA",T
ELSE
IF(N<0)THEN
PRINT*,"ERROR"
END IF
END IF
END PROGRAM NUM_TRI
PROGRAM EJERC48
INTEGER:: A0, A1, A, TERM, N
PRINT*,"INGRES CUANTOS TERMINOS DESEA EN LA SERIE DE FIBONACCI"
READ*, TERM
A0=0
A1=1
WRITE(*,*) A0
WRITE(*,*) A1
DO N=3,TERM,1
A=A0+A1
WRITE(*,*) A
A0=A1
A1=A
END DO
END PROGRAM EJERC48
54.- Programa que pida un numero por teclado y diga si es primo o no mostrando todos
sus divisores.
PROGRAM PRIMOS
IMPLICIT NONE
INTEGER N, I, PRIM
PRINT*,"INTRODUCE UN NUMERO"
READ*, N
IF (N==2) THEN
GO TO 100
END IF
DO I=2,((N/2)+1),1
PRIM=MOD(N,I)
IF(PRIM==0) THEN
PRINT*,"SU NUMERO NO ES PRIMO"
GO TO 110
END IF
PRINT*,"LOS DIVISORES SON"
I=N
DO WHILE(I>0)
IF(MOD(N,I)==0) PRINT*,I
I=I-1
END DO
END DO
100 PRINT*,"SU NUMERO ES PRIMO"
110 READ(*,*)
STOP
END PROGRAM PRIMOS