Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LABORATORIO Nº 1
REPASO DE FORTRAN
01
Escuela: FISICA FISICA
Docente: Juvenal Tordocillo Puchuc COMPUTACIONAL 2
I. OBJETIVOS:
II. FUNDAMENTO
Un programa es un conjunto de instrucciones, ejecutables sobre una computadora, que permite cumplir una
función específica.
Características de un algoritmo.
• preciso: el orden de realización de cada paso está especificado,
• definido: cada paso está especificado sin ambigüedad,
• finito: el resultado se obtiene en un número finito de pasos.
• entrada/salida: dispone de cero o más datos de entrada y devuelve uno o más resultados.
PROGRAM nombre
declaraciones de tipo
sentencias ejecutables
END PROGRAM nombre
FCNM-UNAC Page
-1-
Estructura de selección
IF (condición) THEN
sentencias para condición verdadera
ELSE
sentencias para condición falsa
ENDIF
IF (condición) THEN
sentencias para condición verdadera
ENDIF
ELSE
ENDIF
FCNM-UNAC Page
-2-
EJERCICIO 1:
Elaborar un programa en Fortran que permita introducir dos enteros, A y B, por teclado, y calcule y muestre
en pantalla su suma y su producto, con un texto explicativo. Además, el programa debe comparar los valores
A y B y debe informar por pantalla del mayor de ellos.
ALGORITMO
Ingresar: A, B
Paso 1: 𝐶 = 𝐴 + 𝐵
𝐷 =𝐴∗𝐵
𝑴𝒐𝒔𝒕𝒓𝒂𝒓: 𝑙𝑎 𝑠𝑢𝑚𝑎 𝑒𝑠: 𝐶
𝑴𝒐𝒔𝒕𝒓𝒂𝒓: 𝑝𝑟𝑜𝑑𝑢𝑐𝑡𝑜 𝑒𝑠: 𝐷
Paso 2: si 𝐴 > 𝐵, entonces
𝑴𝒐𝒔𝒕𝒓𝒂𝒓: A es mayor B
sino si (A<B)
𝑴𝒐𝒔𝒕𝒓𝒂𝒓: B es mayor A
Sino
𝑀𝑜𝑠𝑡𝑟𝑎𝑟: 𝐿𝑜𝑠 𝑛ú𝑚𝑒𝑟𝑜𝑠 𝑠𝑜𝑛 𝑖𝑔𝑢𝑎𝑙𝑒𝑠
Paso 3: FIN (paso 2)
EJERCICIO 2:
Escribir un programa en Fortran que, dados tres números introducidos por teclado, los represente en la
pantalla ordenados de mayor a menor.
ALGORITMO
FCNM-UNAC Page
-3-
Estructuras de repetición
DO WHILE (condición)
sentencias del bloque
ENDDO
DO
sentencias del bloque pre-condición
IF (condición) EXIT
sentencias del bloque post-condición
ENDDO
Ejemplo de un programa:
PROGRAM sumar
! ------------------------------------------------------------------
! Propósito: Primeros enteros positivos exceden a 10000.
! ------------------------------------------------------------------
! Declaración de tipos
! ------------------------------------------------------------------
IMPLICIT NONE
INTEGER :: n, suma ! número de términos a sumar
INTEGER :: limite = 10000 ! limite superior de la suma
! ------------------------------------------------------------------
! Bloque de procesamiento
! ------------------------------------------------------------------
suma = 0
n = 0
DO WHILE (suma <= limite)
n = n +1
suma = suma + n
ENDDO
! ------------------------------------------------------------------
! Salida de datos
! ------------------------------------------------------------------
PRINT*, ’n = ’, n
! ------------------------------------------------------------------
! Terminar
! ------------------------------------------------------------------
END PROGRAM sumar
FCNM-UNAC Page
-4-
EJERCICIO 3:
Elaborar un algoritmo e implementar para sumar una serie de valores, por ejemplo.
SELECT CASE
La estructura de decisión SELECT CASE se incluye en Fortran 90 para reemplazar el GOTO
calculado en el Fortran 77 para la selección de una de varias opciones posibles. Esta estructura
representa una alternativa para la escritura de decisiones aninadas.
FCNM-UNAC Page
-5-
LEER UN ARCHIVO EN FORTRAN
Las aplicaciones que manejan conjuntos de datos muy grandes, es conveniente que almacenen los
datos en algún archivo en disco o algún otro dispositivo de memoria auxiliar. Antes de que Fortran
pueda usar un archivo, debe abrirlo, asignándole una unidad. La sintaxis general para abrir un archivo es:
Ejemplos:
La sentencia READ estándar permite leer datos de cualquier dispositivo de entrada, como los archivos. La sintaxis
general de entrada por archivo es:
La sentencia WRITE permite escribir datos en cualquier dispositivo de salida, como los archivos. La sintaxis general de
salida por archivo es:
Ejemplo de Formato
OPEN(20,FILE='EULER.TXT',STATUS='UNKNOWN',ACTION='WRITE')
READ(*,*)A,B
WRITE(20,10)X(1),Y(1)
10 FORMAT(1X,F10.4,5X,F10.4)
FCNM-UNAC Page
-6-
EJERCICIO 4:
FUNCTION SUM(V,N)
REAL::V(N)
SUM=0-0
DO I=1,N
SUM=SUM+V(I)
END DO
RETURN
END
EJERCICIO 5:
Genere un archivo en block de notas y los datos debe contener dos columnas con 10 datos cada columna.
Su programa debe tener la capacidad de leer esos datos y luego sumar todos los datos de la columna y luego
su salida debe ser por archivo.
EJERCICIO 6:
Programar y completar el siguiente programa en FORTRAN 90 y si hay un mensaje de error Hacer la
corrección.
INTEGER A, B
REAL FUN
READ*, A, B
A = FUN(A, B)
B = FUN(B, A)
PRINT*, FUN(A, B)
END
FCNM-UNAC Page
-7-
EJERCICIO 7:
INTEGER A,B,C
A = 1
B = 2
C = 3
10 PRINT*, A, B, C
CALL CHANGE(A,B)
GO TO 10
PRINT*, A, B, C
END
SUBROUTINE CHANGE(A,B)
INTEGER A,B,C
C = B
B = A + B
A = C
RETURN
END
EJERCICIO 8:
Programar y completar el siguiente programa en FORTRAN 90 y si hay un mensaje de error Hacer la
corrección.
REAL A, B, C
OPEN(20,FILE='EULER.TXT',STATUS='UNKNOWN',ACTION='WRITE')
READ*, A,B
CALL FIRST(A,B,C)
PRINT*, A,B,C
F=X*Y*Z
CALL SECOND(F,Y)
CLOSE
END
FCNM-UNAC Page
-8-
EJERCICIO 9:
Debe ejecutar el programa y si funciona correctamente, debe ud. leer desde archivo un conjunto de datos y
mostrar los resultados según indica la salida.
PROGRAM MAXIMO_MINIMOS
REAL, DIMENSION (10):: I
REAL :: MIN, MAX
PRINT*, 'INGRESO 10 NUMEROS ?'
READ*, (I(J),J=1,10)
MAX=I(1)
MIN=I(1)
DO J=2,10
IF (MAX.LT.I(J)) MAX=I(J) ! menor que
IF (MIN.GT.I(J)) MIN=I(J) ! mayor que
PRINT*,MAX
PRINT*,MIN
END DO
EJERCICIO 10:
Implementar el algoritmo, leer datos desde archivo y salida de resultados por archivo. Probar si lo
resultados de salida son correctos.
Ingresar: N
Apertura de un archivo txt con dos columnas
Paso 1: pro_A=0
pro_B=0
Paso 2: HACER: I=1,N
leer: A,B
prom_A=prom_A+A
prom_B=prom_B+B
mostrar: A,B
Paso 3: FIN (paso 2)
FCNM-UNAC Page
-9-
EJERCICIO 11:
Implementar el algoritmo, leer datos desde archivo y salida de resultados por archivo. Probar si lo
resultados de salida son correctos.
Ingresar: N
Apertura de un archivo txt con en una columna
Paso 1: pro=0
desv=0
Paso 2: HACER: I=1,N
leer: X(I)
prom=prom+X(I)
Paso 3: FIN (paso 2)
prom=prom/N
Paso 4: HACER: I=1,N
desv= desv+(X(I)-pro)2
Paso 5: FIN (paso 4)
𝑑𝑒𝑠𝑣 = √𝑑𝑒𝑠/𝑁
Paso 6: GUARDAR: desv en un archivo txt
1. PROBLEMA O CASO
2. SEUDOCODIGO
3. PROGRAMA
4. RESULTADOS NUMÉRICOS SI FUERA EL CASO O EN FORMA GRÁFICA (cada gráfico debe ser comentada)
5. CONCLUSIONES
FCNM-UNAC Page
- 10 -