introduccion· a la programacion· fortran .fortran es un lenguaje de programacion· flvivofl ya

Download INTRODUCCION· A LA PROGRAMACION· FORTRAN .FORTRAN es un lenguaje de programacion· flvivofl ya

Post on 22-Jul-2018

214 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • INTRODUCCION A LA PROGRAMACIONFORTRAN

    J. San FabianInformatica Aplicada a la Qumica

    Departamento de Qumica Fsica AplicadaUniversidad Autonoma de Madrid

    Primera version en Latex: 3 Nov 2004(18 de febrero de 2008)

  • 2 Introduccion a la Programacion

    Indice

    1. PRIMERA SESION 41.1. Editar, Compilar y Ejecutar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2. Constantes, Variables y Tipos de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3. Funciones Intrnsecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4. Bucles (DO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.5. Problemas Adicionales (opcionales) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2. SESION SEGUNDA 112.1. Decisiones (instruccion IF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    2.1.1. Introduccion de datos por medio de un fichero. . . . . . . . . . . . . . . . . . . . . . 122.2. GOTO (la instruccion que debemos evitar) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3. Ejercicio 1: Ecuacion de segundo grado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.4. Problemas Adicionales (opcionales) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    3. SESION TERCERA 153.1. Manejo de Vectores y Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2. Ejercicio 2: Ajuste de una recta por mnimos cuadrados . . . . . . . . . . . . . . . . . . . . . 153.3. Problemas Adicionales (opcionales) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    4. CUARTA SESION 174.1. Subprogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.2. Ejercicio 3: Integracion numerica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.3. Problemas Adicionales (opcional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

  • Dpto. Qumica Fsica Aplicada, UAM 3

    INTRODUCCION A LA PROGRAMACIONFORTRAN

    Vamos a comenzar cuatro sesiones (10 horas) de introduccion a la programacion y para ello vamosa utilizar el lenguaje de programacion FORTRAN.

    Lea detenidamente y con calma la introduccion siguiente. Siempre que aparezca una [C] esque tiene que contestar alguna cuestion. Cuando aparezca una [P] es porque tiene que hacer unprograma (editar, compilar y ejecutar) y cuando funcione imprimirlo. Los programas que no tenganla [P] no hace falta sacarlos por la impresora. Los programas impresos, las contestaciones a lascuestiones y los ejercicios 1 a 3, estos ultimos en las sesiones 2a a 4a forman el guion de practicasque tiene que entregar al profesor en el plazo de una semana desde la terminacion de la cuartasesion de FORTRAN. Tambien encontrara una serie de ejercicios adicionales que en caso de tenertiempo debe incluir en el guion de practicas (OPCIONAL).Ante un problema estudie detenidamente la informacion que le proporciona el ordenador e intenteresolverlo por s mismo antes de preguntar al profesor.

  • 4 Introduccion a la Programacion

    1. PRIMERA SESION

    1.1. Editar, Compilar y Ejecutar

    Los primero que vamos a hacer es escribir, compilar y ejecutar nuestro primer programa en FORTRAN.Para ello siga los pasos siguientes:

    1.- (EDITAR) Edite con cualquier editor un fichero llamado prog1.f con el texto de la Fig. 1. En esta figura eleditor utilizado es el KWrite, pero puede utilizar el que le resulte mas comodo (kate, vi, ...). Procureescribir el texto lo mas literal posible respetando la columna en la que se escribe cada cosa. Salve (guarde)el fichero al disco con el nombre prog1.f

    Figura 1: Primer programa FORTRAN (prog1.f) editado con el editor Kedit.

    2.- (COMPILAR) 1 Ejecute la siguiente instruccion:gfortran prog1.f -o prog1.exe (Jy)

    El smbolo final (Jy) significa que debe pulsar dicha tecla o la tecla Intro para hacer operativa la orden. Si haescrito bien el fichero prog1.f no debe aparecer ningun error. Si la compilacion produce algun error, leadetenidamente lo que le indica el ordenador, y con esa informacion revise (reedite) el fichero prog1.f yvuelva a ejecutar la instruccion anterior. Si no consigue solucionar los problemas por s mismo preguntea su profesor.

    3.- (EJECUTAR) Si la compilacion no da ningun error ejecute el comando ls y vera que entre otros tieneen el disco los ficheros prog1.f y prog1.exe. Este ultimo es un fichero ejecutable. Escriba la instruccionsiguiente para ejecutar:

    ./prog1.exe (Jy)

    El ./ antes del nombre del ejecutable (prog1.exe) es necesario en las ultimas versiones de linux e indica queel programa ejecutable esta en el subdirectorio de trabajo en el que estamos situados.

    Si todo ha funcionado, entonces, hemos editado, compilado y ejecutado nuestro primer programa en FOR-TRAN. En estas cuatro sesiones de practicas vamos a aprender un poco mas sobre la programacion FORTRAN.Como puede suponer es una introduccion al FORTRAN muy breve, le aconsejo que practique y profundice porsu cuenta en la programacion pues puede serle muy util.

    1Compilar consiste en traducir el lenguaje fortran a codigo maquina que es capaz de entender el ordenador. Esta operacion la realizaun programa llamado compilador, en este caso el gfortran.

  • Dpto. Qumica Fsica Aplicada, UAM 5

    1.2. Constantes, Variables y Tipos de Datos

    FORTRAN es un lenguaje de programacion vivo ya que la mayora de los programas usados por la comu-nidad cientfica estan escritos en FORTRAN. Es un lenguaje de alto nivel, es decir, requiere poco conocimientodel hardware y emplea palabra conocidas (normalmente en ingles) que le indican al ordenador lo que tiene quehacer con unas serie de objetos con los que va a trabajar.

    El tipo de objetos que va a manejar el or-

    Figura 2: Tipo de datos utilizados en el lenguaje FORTRAN.

    denador siguiendo las ordenes de nuestro pro-grama son los que se muestran en la Fig. 2.En estas practicas unicamente vamos a traba-jar con numeros enteros y reales y muy de pa-sada con caracteres. Por defecto el FORTRANque estamos usando utiliza 4 bytes (8x4 = 32bits) para guardar un numero entero o un nu-mero real. Esto implica que el numero enteromas grande, en valor absoluto, que podemosusar es el 2147483647. Por otro lado, los nu-meros reales tendran una precision aproxima-da de 7 cifras significativas y los numeros rea-

    les que podemos manejar estaran entre 1038 y 1038.

    Los datos pueden estar en nuestro programa

    Figura 3: Constantes y variables.

    de dos maneras diferentes, como constantes o co-mo variables (Fig. 3). Las variables son como lasmemorias de nuestra calculadora de bolsillo y sucontenido puede cambiar durante la ejecucion delprograma.

    Los numeros enteros y reales se definen (esdecir, se le indica al ordenador que son numerosenteros o reales) como se muestra en la Fig. 4. Porotro lado tambien tenemos varios tipos de nume-ros enteros y reales, aunque nosotros vamos a uti-lizar unicamente los que tiene el FORTRAN pordefecto y que hemos senalado en la Fig. 3 (defec-to).

    Es importante recordar que las variables enteras se definen con nombres que comienzan por I, J, K, L,M o N (I-N). Y variables reales las que comienzan con las demas letras (A-H, O-Z).

    Figura 4: Definicion de enteros y reales.

  • 6 Introduccion a la Programacion

    Con estos datos podemos hacer una serie de operaciones basicas (Fig. 5). Observa que las operacionestienen prioridades, es decir la multiplicacion y la division siempre se realizan antes que las sumas y restas.Para evitar problemas a este respecto conviene utilizar parentesis siempre que tengamos dudas, aunque no seanecesario.

    Figura 5: Operaciones basicas.

    Una operacion basica y a la vez difcil de entender cuando la vemos por primera vez es la instruccion deasignacion. Cuando vemos un signo = debemos entender que se realizan las operaciones que hay a laderecha del signo = y el resultado se guarda en la variable que esta a la izquierda del igual. Por tanto, ala izquierda del = siempre debe haber una variable.

    Vamos a hacer un programa para repasar los conceptos vistos hasta ahora. EDITE, COMPILE YEJECUTE el programa prog2.f. Evidentemente, los numeros de la columna derecha (entre corchetes)solo sirven para numerar las lneas y no hay que escribirlos.[C] DISCUTA brevemente los resultados.

    Figura 6: Instruccion de asignacion.

    C prog2.f 16 Oct 97 { 1}C Autor: .... { 2}C conceptos basicos { 3}C=====7========================= { 4}

    P1 = 5.3 { 5}N1 = 3 { 6}P2 = P1 *N1 { 7}N2 = P1 *N1 { 8}

    { 9}PRINT *, P2: , P2 {10}PRINT *, N2: , N2 {11}

    {12}P2 = P2+N1 * 2 {13}PRINT *, P2-NUEVO: , P2 {14}

    {15}STOP {16}END {17}

    En los programas en fortran, las instrucciones co-mienzan en la columna 7. Los comentarios (lasprimeras cuatro lneas en los programas anterioresson comentarios) se indican con una C (tambienpodra ser un asterisco *) en la columna 1. Los co-mentarios son ignorados por el compilador. El pro-grama termina con dos instrucciones que todo pro-grama FORTRAN debe tener (STOP y END).El lenguaje FORTRAN77 (y anteriores) sigue unaserie de reglas rigurosas en cuanto a la colocacion delas instrucciones (estudie la Fig. 7 detenidamente).

  • Dpto. Qumica Fsica Aplicada, UAM 7

    Figura 7: Division de las lneas en FORTRAN77.

    [C] REMPLACE la lnea 13 del programa prog2.f por:1. P2 = (P2 + N1) + 1

    2. P2 = N1 / N2

    3. P2 = REAL(N1) / REAL(N2)

    4. P2 = P2 / 2.0 * N1

    5. P2 = P2 / (2.0 * N1)

    Vuelva a COMPILAR y EJECUTAR cada caso. ANOTE y ANALICE el resultado. Mantenga elmismo nombre (prog2.f) para todos los casos.

    1.3. Funciones Intrnsecas

    Las funciones intrnsecas so