Fortran 90 Para Ingenieria: Ingenieria Mecanica De Fluidos

Ing. William Chauca Nolasco FORTRAN 90 PARA INGENIERIA INGENIERIA MECANICA DE FLUIDOS Autor: Ing. William Wilfredo Cha

Views 90 Downloads 59 File size 667KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Ing. William Chauca Nolasco

FORTRAN 90 PARA INGENIERIA INGENIERIA MECANICA DE FLUIDOS

Autor: Ing. William Wilfredo Chauca Nolasco

I 2019 1

Ing. William Chauca Nolasco

LENGUAJE DE PROGRAMACION FORTRAN 90 PARA WINDOWS

1.- Introducción: Un conjunto particular de reglas para codificar las instrucciones en una computadora se llama lenguaje de programación. Hay muchos lenguajes tales como por ejemplo Fortran, LENGUAJE BASIC, Pascal y C++. Fortran, es en español: TRADUCCIÓN DE FORMULAS, es el primer lenguaje de programación de " alto nivel". Este lenguaje Hizo lo posible en usar nombres simbólicos para representar cantidades matemáticas, y para escribir fórmulas matemáticas en una forma razonablemente inteligible, tal como X = B/(2*A). La idea del Fortran se propuso 1953 por John Backus, en Nueva York, y el primer programa en Fortran ejecutado fue en Abril 1957. 2.- Definición Es un lenguaje de estilo procedural, fue el primer lenguaje de programación de alto nivel, desarrollado por IBM en 1957 para el equipo IBM 704. Está fuertemente orientado al cálculo y por ende es uno de los de mayor eficiencia en la ejecución. La definición estándar del lenguaje se estableció en 1966. Algunas otras versiones subsiguientes fueron: • FORTRAN IV • FORTRAN 80 • FORTRAN 77 • FORTRAN 90 • FORTRAN 95 • FORTRAN 2003 3.- Importancia del uso de este lenguaje de programación. Fortran 90 ha sido ampliamente adoptado por la comunidad científica para escribir aplicaciones de cálculos intensivos. La inclusión en el lenguaje de la aritmética de números complejos amplió la gama de aplicaciones para las cuales el lenguaje se adapta especialmente; muchas técnicas de compilación de lenguajes se han implementado para mejorar la calidad del código generado por los compiladores de Fortran en especial la versión Fortran 90 y 95. 4.- Características del Fortran 90 Fortran 90 provee todos los aspectos originales del LENGUAJE FORTRAN 77, y agrega las extensiones y flexibilidad de nuevos idiomas. Algunos aspectos de la norma más antiguos se han declarado obsoleto, sin embargo el Fortran PowerStation reconoce los métodos más antiguos. Fortran 90 agrega siete mejoras importantes respecto al LENGUAJE FORTRAN 77: ➢ Mejoras en lo numérico - capacidad de cómputo ➢ Orden en las operaciones ➢ Especificaciones de los datos intrínsecos y precisión ➢ Declaración de datos definidos por el usuario ➢ Módulos para contener datos y los procedimientos usados por varias unidades de programa ➢ Indicadores ➢ Aprovisionamiento para la evolución de idioma 5.- Estructura de un programa en Fortran y las declaraciones ó sentencias En este ítem, se tendrá en cuenta las partes que contiene un programa en Fortran y además a escribir en forma detallada los programas, para resolver problemas simples. Hay dos requerimientos esenciales: 1. Deben aprenderse las reglas exactas de las instrucciones para codificar el programa 2. Un planeamiento lógico para resolver el problema a desarrollar. (Diagramas de flujo, pseudocódigos) 5.1 Estructura de un programa La estructura general de un programa simple en Fortran es como se indica a continuación (los argumentos entre corchetes son opcionales):

[PROGRAM nombre_del_programa] [ declaraciones de sentencias] [ declaraciones ejecutables] END [PROGRAM [nombre_del_programa]]

Como usted puede ver, la declaración obligatoria en un programa en Fortran es END esta declaración informa el compilador que no hay mas sentencias en Fortran por compilar. La sentencia END [PROGRAM [nombre_del_programa]] significa que el nombre de programa puede omitirse desde la declaración END, pero que si hay un nombre de programa, la sentencia PROGRAM no puede omitir dicho nombre. 5.2- Las declaraciones (sentencias) en un programa: Las declaraciones forman la base de cualquier programa en Fortran, y puede contener desde 0 a 132 caracteres (una declaración puede ser vacía; las declaraciones vacías se realizan para hacer un programa más legible por secciones lógicas) Todas las declaraciones del Fortran, exceptuando la declaración de asignación (por ejemplo. EQUILIBRIO = 1000), comienzan con una letra. Ejemplo END, PRINT, PROGRAM Generalmente, una declaración debe escribirse en una línea. Sin embargo, las declaraciones múltiples pueden aparecer sobre una línea si ellos son separados por punto y coma (;). En aras de la claridad, estos se recomiendan únicamente con asignaciones cortas, tal como A = 1; B = 1; C = 1 6.- Descripción de los elementos básicos del lenguaje Fortran 90 En el nuevo estándar del Fortran, el Fortran90, se considera una nueva forma de código fuente, la forma fuente libre, en ella no existen restricciones sobre las posiciones que deben ocupar las sentencias Fortran, y sus características principales son: Los caracteres en blanco son siempre significativos exceptuando casos en los que se introducen para hacer más legible el programa. Como por ejemplo:

2

Ing. William Chauca Nolasco

Caudal=Caudal+Y(i) ó se puede escribir → Caudal = Caudal + Y(i) que es la misma sentencia. Además dos o más espacios en blanco consecutivos siempre equivalen a uno. Reiterando que cada línea de programa no puede tener más de 132 caracteres. El símbolo de exclamación (!) indica al compilador que todo lo que aparece a continuación en la misma línea es un comentario y el compilador lo ignora. En un programa no está limitado el número de comentarios. Además una línea cuyo primer carácter no blanco sea !, se conoce con el nombre de línea de comentario. El símbolo & es un símbolo de continuación de la siguiente línea y permite al programador continuar una sentencia en la siguiente línea. Una sentencia no puede abarcar más de 39 líneas. Si el primer carácter no blanco en la línea de continuación es un & los espacios en blanco son ignorados, esto permite escribir una cadena de caracteres en más de una línea. Ejemplo: Print*,’ & Aprendiendo a programar & & con Fortran 90. ‘ • Las líneas de comentario no pueden estar divididas en varias líneas debido a que el compilador consideraría el símbolo & como un carácter más y no como el signo de continuación, puesto que está dentro del comentario (indicado por el signo de admiración). • Una línea sin caracteres o solo con caracteres en blanco es considerada como una línea de comentario. • En una línea puede aparecer más de una sentencia separada por un punto y coma (;). Además, en ausencia del símbolo de continuación &, el final de la línea lo marca el final de la sentencia.

EL ENTORNO INTEGRADO DE DESARROLLO DEL COMPILADOR FORTRAN 90

1.- Requerimientos del Sistema: Para programar con Fortran 90, se necesitan: ➢ Una Computadora Personal: 80386 - 80486 o Pentium, Memoria RAM 16 Mb (Mejor 32 Mb) ➢ El disco duro deberá tener un espacio suficiente para copiar los archivos, adicionalmente 45 Mb de espacio. ➢ Sistema Operativo Windows 95 – 98, WinXp, WinNT. ➢ Programa de instalación en CD - ROM del Fortran PowerStation ➢ Monitor a color SVGA, un Mouse.

2.- Pasos para ingresar al EID del Fortran 90 Para ingresar al EID del Fortran 90 para Windows seguir los siguientes pasos. 2.1 Ir al Botón Inicio → Todos los Programas → Fortran PowerStation 4.0 → Microsft Developer Studio. (Ver Figura Nº 01)

Figura Nº 01 – Para ingresar al EID del Fortran 90 para Windows 2.2.- El EID del Fortran 90 Una vez ejecutado el paso anterior, nos presenta una ventana tal como se muestra en la siguiente Figura Nº 02. Se debe tener en cuenta; si es la primera vez que se ejecuta el compilador, el EID es la figura que se muestra. Si es que no se ha cerrado la carpeta de proyectos, en una siguiente sesión de trabajo por defecto nos mostrará el programa que se estaba haciendo en la sesión anterior, es recomendable que los proyectos se cierren completamente. En la figura observamos dos ventanas, una barra de menú principal, y barra de herramientas que están asociadas a órdenes como Nuevo, Abrir, Guardar, Copiar, Cortar, Pegar, etc. 2.3.- Descripción del EID

3

Ing. William Chauca Nolasco

3

4

1

2

Fig. Nº 02 – El EID del Fortran 90 De acuerdo a la Figura Nº 02, hemos colocados unos círculos numerado los cuales nos permite describir brevemente: (1).- Nos presenta la ventana InfoView, El InfoView muestra la organización de Libros En línea. Esto le permite mostrar cualquier asunto mostrado en su jerarquía. Utilización del InfoViewer, enmarcado con línea punteada de color rojo, ejemplo, ver la Figura Nº 03

Fig. Nº 03 – InfoView (2).- Esta ventana teniendo en cuenta la Fig. Nº 02, presenta información técnica sobre los diversos temas que comprende el estudio del Fortran 90. Fig. Nº 03

Opciones de Menú de la barra principal:

4

Ing. William Chauca Nolasco

Figuras Nº 04 PASOS PARA CREAR UN PROGRAMA EN FORTRAN

Primero se crea la carpeta de proyectos, luego se genera el archivo de texto, y grabarlo (.F90) 1. Ir al Menu File – New Seleccione la opción Project Workspace, luego Ok.

Figura Nº 05 Sale una nueva ventana para crear el nuevo proyecto, en esta ventana se debe especificar el nombre del proyecto y la unidad donde se deberá grabar el proyecto de tal forma que se almacenen todos los archivos que se crean a la hora de compilarlo, ejecutarlo el programa, es necesario que el archivo donde se encuentra el programa sea igual al nombre del proyecto. ( Observe la ventana, Figura Nº 06 Ingrese el nombre del proyecto

Aplicación para crear programas

Escriba la unidad donde se guardara el proyecto, C: ó A:

Figura Nº 06 2. Nuevamente ir al Menu File – New, sale nuevamente el recuadro New, escoger la opción Text File. Figura Nº 07

Figura Nº 07 Luego el entorno quedara de la siguiente forma: Figura Nº 08

5

Ing. William Chauca Nolasco

Ud. Puede escribir un programa en Fortran 90, bajo las ordenes que corresponda a la versión del Fortran 90.

Figura Nº 08 Si desea trabajar con instrucciones del Fortran para versiones anteriores hacer lo siguiente: Estando en la ventana anterior, ir al menu File – Save. Figura Nº 09

EN ESTE RECUADRO PONER UN NOMBRE CON EXTENSIÓN

F90

SE RECOMIENDA AL NOMBRE IGUAL DEL PROYECTO

Figura Nº 09 Nota. Una vez guardado el programa, por ejemplo NEWTON.F90, se entra a la fase de compilación, en esta fase el código fuente es traducido en código binario para que la computadora lo entienda y procese el programa, además que verifica los posibles errores que hayamos cometido a la hora de codificar la instrucciones del programa. Observe las figuras: Figura Nº 10 – Presenta el programa escrito. Figura Nº 11 – Presenta el paso para compilar Build → Compile Figura Nº 12 – Presenta el programa compilado mostrando la ventana de salida. Libre de errores y advertencia. Solo así se podrá ejecutar el programa con éxito. Figura Nº 13. – Presenta la opción para ejecutar el programa Build → Execute Figura Nº 14 – Presenta una ventana de dialogo donde nos pregunta si aceptamos los últimos cambios realizados. Yes. Figura Nº 15 – Presenta la ventana de salida de datos (Fondo Negro)

Carpeta de trabajo

Programa fuente

Figura Nº 10

6

Ing. William Chauca Nolasco

Figura Nº 11

Figura Nº 12

Figura Nº 13

Figura Nº 14

Figura Nº 15

Recuerde que una vez ejecutado el programa, deberá de cerrar el proyecto para empezar con un nuevo proyecto. Observe la Figura Nº 16

Close Workspace

Figura Nº 16

TIPOS DE DATOS Y LOS PRIMEROS PASOS: LEER, CALCULAR, ESCRIBIR

7

Ing. William Chauca Nolasco

Caracteres Fortran

Fortran 90/95 tiene su propio alfabeto especial llamado juego de caracteres Fortran. Sólo los caracteres de su alfabeto pueden usarse en este lenguaje. Consta de los siguientes: Caracteres alfanuméricos: ➢ Caracteres alfabéticos en mayúscula (26): A, B, C, D, E, F,G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z. ➢ Caracteres alfabéticos en minúscula (26): a, b, c, d, e, f, g, h,i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z. ➢ Caracteres numéricos (10): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ➢ Carácter de subrayado (1): _ Caracteres especiales (22): ➢ = + - * ** / ( ) . , $ ‘: “ % ; ! & < > ? . Nota: Fortran no distingue entre caracteres alfabéticos en mayúsculas o en minúsculas, excepto cuando forman parte de cadenas de Caracteres. La sentencia STOP: La sentencia STOP detiene la ejecución de un programa, y opcionalmente, imprime un mensaje en la salida estándar de errores. Sintaxis → STOP [n] n es una constante carácter o un entero de hasta 5 dígitos. STOP termina la ejecución de un programa Fortran, antes de que éste llegue al final de dicho programa. STOP también manda un mensaje a la salida estándar de errores si se ha especificado algo después de él (dígitos o cadena de caracteres). ❖ Un programa Fortran puede tener varias sentencias STOP (es decir, varios puntos de parada), por ello aunque el uso de n no es obligatorio, es conveniente, ya que nos dará una idea clara del punto en que ha parado el programa. ❖ Cuando la sentencia STOP precede inmediatamente a la sentencia END PROGRAM es opcional. El compilador genera automáticamente un comando STOP cuando alcanza la sentencia END PROGRAM. ❖ Entendiendo que un buen programa Fortran debe tener un único punto de entrada y otro de salida, sin ningún otro punto de parada intermedio, el uso de esta sentencia está desaconsejado. Ejemplo de uso de STOP CÓDIGO DESCRIPCIÓN STOP 7373 SE ESCRIBE "STOP 7373" EN LA SALIDA DE ERRORES STOP 'ACABO' SE ESCRIBE "STOP ACABO" EN LA SALIDA DE ERRORES STOP NO SE ESCRIBE NADA EN LA SALIDA DE ERRORES ❖ ❖

TIPOS DE DATOS Hay 5 tipos de datos predefinidos llamados intrínsecos para constantes y variables Fortran. Cada uno de estos tipos de datos intrínsecos admiten varias longitudes de memoria, dependiendo de la anchura de la palabra del computador, conocidas como clases. Una de esas clases, la más habitual, se le llama clase por defecto. TIPO ENTERO REAL COMPLEJO LÓGICO CARÁCTER ➢ ➢

➢ ➢

DENOMINACIÓN EN FORTRAN BYTES QUE OCUPA * INTEGER 4 REAL 4 COMPLEX 8 LOGICAL 4 CHARACTER [Len= # caract)] len • Depende de la capacidad del computador

INTERVALOS DE VALORES -232-1 a 232-1 -3.402823x10+39 a 3.402823x10+39 Igual que dato real .TRUE. ó .FALSE. Conjunto de caracteres ASCII de 8 bits

Suponiendo enteros de 4 Bytes, cualquier intento de usar un valor fuera del rango de representación dado en la Tabla 1.2, es decir, mayor o menor que sus valores límite, resulta en un llamado error de overflow. Para solucionar esta limitación, en parte, se incluye el tipo de dato real. Los números reales se caracterizan por dos cantidades: el rango que marca la diferencia entre los números mayor y menor que pueden representarse y la precisión o número de dígitos significativos que puede conservar un número. Para reales de 4 Bytes, el rango es aproximadamente de 10-38 a 1038 y la precisión de 7 dígitos. Así, 1000000.0 y 1000000.1 no pueden distinguirse en un programa Fortran en el que ambos son definidos de tipo real de 4 Bytes. Más adelante se aprenderá a usar reales de alta precisión. En cuanto a las variables declaradas de tipo carácter, su longitud viene dada por el número máximo de caracteres que van a almacenar. Si no aparece el paréntesis en la declaración de tipo, las variables de la lista sólo podrán almacenar un carácter. Además, Fortran 90/95 permite al programador definir tipos de datos derivados, que son tipos de datos especiales para resolver problemas particulares.

Constantes en Fortran Definición de constante: ➢ Valor específico y determinado que se define al hacer un programa y que no cambia a lo largo del mismo. ➢ Cuando un compilador Fortran encuentra una constante, coloca el valor de la constante en una localización conocida de la memoria y hace referencia a esa localización cada vez que se usa la constante en el programa. Constantes enteras: Puede tomar únicamente un valor entero (positivo, negativo o cero). Se representa como un signo (opcional) seguido de una cadena no vacía de números. Ejemplo: 59, -67412, +8899, 0, -89, 0012, 27, 3 Constantes reales Básica. Se compone de: signo (opcional), parte entera (secuencia de dígitos), punto decimal, parte fraccional (secuencia de dígitos). Ejemplos: 12.343 -0.0032 86. .3475 (equivalente a 0.3475) Básica con exponente. El exponente real se compone de: carácter alfabético E, signo (opcional), constante entera (2 dígitos como máximo). Ejemplo: +34.453E4 12.323E+03 -0.0034E-03 .89E-2 5.434E0 -4344.49E-5 Constantes lógicas Una constante lógica puede tener únicamente los valores verdadero y falso. .TRUE. Verdadero,. FALSE. Falso. Constantes complejas

8

Ing. William Chauca Nolasco

Una constante compleja representa un número complejo como un par ordenado de números reales. El primer número del par representa la parte real y el segundo la parte imaginaria. Cada parte vendrá codificada como un número real. Ejemplos: (3.E34,0.332) (-3.329,-.3E9) Constantes carácter

Consiste en una cadena de caracteres, el carácter blanco es válido y significativo dentro de la cadena, la longitud de la constante carácter coincide con el número de caracteres que componen la cadena. ➢ Cada carácter de la cadena tiene una posición concreta que es numerada consecutivamente (comenzando en 1). El número indica la posición del carácter dentro de la cadena comenzando por la izquierda. ➢ Para codificar una constante carácter dentro de un programa deberá encerrarse entre dos caracteres delimitadores comilla simple o dobles comillas. La longitud de la cadena deberá ser mayor que 0. Los delimitadores no forman parte de la constante en: ‘Hola que tal’ “hasta luego Lucas”. Para que la constante carácter incluya comillas simples (dobles) rodearla de dobles (simples) comillas: “’Hola que tal’” ‘“hasta luego Lucas”’. Identificadores Un identificador es un nombre que se usa para denotar programas, algunas constantes, variables y otras entidades. Los identificadores deben empezar con una letra y pueden tener hasta 31 letras, dígitos o caracteres de subrayado _. Por ejemplo, identificadores válidos son: Masa, MASA, Velocidad_de_la_luz, Sueldo_del_ultimo_mes, X007. Y no válidos: R2-D2, 34JUlio, pepe$. ➢

Variables

Una variable es una entidad que tiene un nombre y un tipo. Un nombre de variable es un nombre simbólico de un dato. Por tanto, ese dato podrá ser identificado, definido y referenciado a través de dicha variable. Cuando un compilador Fortran encuentra una variable, reserva espacio en memoria para esa variable de modo que, cada vez que se use la variable en el programa, se hace referencia a su ubicación en memoria. El nombre de las variables debe ser un identificador válido. El tipo de una variable puede venir determinado de forma explícita o implícita.

Declaración explícita TIPO:: lista de variables TIPO es cualquiera de los tipos de datos Fortran válidos de la Tabla anterior. lista de variables es un conjunto de variables separadas por comas cuyos nombres son identificadores válidos. Ejemplos: REAL:: radio, area INTEGER:: mesas, sillas COMPLEX:: z1, z2 LOGICAL:: testea CHARACTER (len=20):: alumno1, alumno2

DECLARACIÓN IMPLÍCITA

Si una variable no ha sido definida explícitamente por una sentencia de definición de tipo, éste será determinado por la primera letra de su nombre: I,J,K,L,M,N: son enteras los nombres de variables que empiecen con estas letras. El resto de letras: será de tipo real. Existe la posibilidad de gobernar los tipos implícitos. La sintaxis general es: IMPLICIT {NONE | TIPO (lista de letras)} NONE significa que no hay nada implícito. Por lo tanto, todas las variables del programa deben declararse explícitamente. TIPO es cualquiera de los tipos de datos Fortran válidos del cuadro anterior. lista de letras es un conjunto de letras que corresponden a las iniciales de los nombres de las variables. Si no son consecutivas en el alfabeto, van separadas por comas. Si son consecutivas en el alfabeto, letra_inicial-letra_final. La declaración implícita puede ser una fuente de problemas. En su lugar, se recomienda usar la sentencia IMPLICIT NONE y declarar de forma explícita todas las variables y constantes que se vayan a emplear. Ejemplos: IMPLICIT NONE !No hay nada implícito.

IMPLICIT LOGICAL (H-J)

!Variables que comiencen por H, I, J son lógicas.

INICIALIZACIÓN DE VARIABLES: A partir de Fortran 90, las variables pueden inicializarse al ser declaradas. TIPO:: var1=valor1[,var2=valor2]… Ejemplo 1: REAL:: velocidad=3.25, aceleracion=0.75, espacio=10.9 Ejemplo 2: CHARACTER (len=10):: apell1, apell2, nombre=’Santiago’ El valor de una variable no inicializada no está definido por el estándar de Fortran 90/95. Algunos compiladores automáticamente cargan un cero en esa variable, otros cargan cualquier valor existente en la posición de memoria de esa variable y otros incluso causan un error de ejecución al usar una variable que no ha sido previamente inicializada.

CONSTANTES CON NOMBRE: PARAMETER Cuando en un programa se utilizan constantes conocidas, ya sean: físicas como la aceleración de la gravedad o la constante de Planck, matemáticas como el número pi o el número e, químicas como el número de Avogadro etc., es deseable escribirlas siempre igual y con la máxima precisión que acepte el computador. La mejor manera de conseguir consistencia y precisión en un programa en cuanto al uso de constantes conocidas es asignarles un nombre y usar ese nombre siempre para referirse a la tal constante a lo largo del programa. Las constantes con nombre se crean usando el atributo PARAMETER de una sentencia de declaración de tipo. La forma general de una sentencia de este estilo es: TIPO, PARAMETER:: nombre1 = valor1[, nombre2 = valor2]... Permite dar un nombre simbólico a una expresión constante que será invariable en todo el programa. En tiempo de compilación, se hace una sustitución del nombre por el valor. Cualquier intento de cambiar su valor con una sentencia de asignación o de lectura provoca un error de compilación. Ejemplo: REAL, PARAMETER:: PI = 3.14159, E = 2.71828

EXPRESIONES ARITMÉTICAS Los operadores aritméticos son: OPERADORES BINARIOS OPERADORES UNARIOS

+ SUMA + SIGNO POSITIVO

- RESTA - SIGNO NEGATIVO

* MULTIPLICACIÓN

/ DIVISIÓN

** POTENCIA

No se pueden escribir dos operadores adyacentes. Ejemplo, La expresión a**-b es ilegal en Fortran y debe ser escrita como a**(-b)

REGLAS DE PRECEDENCIA DE OPERADORES ARITMÉTICOS Por precedencia (Mayor a menor): ( ) ** + , - (UNARIOS: SIGNOS) * , / + , Si una expresión contiene dos o más operadores de la misma precedencia se siguen las siguientes reglas: • Cuando existen paréntesis anidados se evalúan desde el más interno hasta el más externo. Es conveniente usar tantos paréntesis como sean necesarios en una expresión para hacerla más clara y fácil de comprender. • Las operaciones de potencia se evalúan de derecha a izquierda. • Multiplicación/división y suma/resta se evalúan de izquierda a derecha.

9

Ing. William Chauca Nolasco

ARITMÉTICA CON TIPOS MEZCLADOS Si se mezclan en una expresión operandos de distintos tipos, el resultado se eleva a la categoría del mayor, según el siguiente orden:

Ejemplo Sean: a=8.0 b=4.0 c=3.0 (Reales) i=8 j=4 k=3 (Enteros) El resultado de: a/b 2.0 (real) j/a 0.5 (real) i/j 2 (entero) b/c 1.33333... (real) a/c 2.66667 (real) j/k 1 (entero) j/i 0 (entero) j/c 1.33333... (real) Dado que la división entera puede producir resultados inesperados, los enteros deberían ser usados únicamente para cosas que son enteras intrínsecamente por naturaleza, como los contadores y los índices. Debido a la longitud de palabra finita de un computador, algunos números reales no pueden representarse exactamente. Por ejemplo, la representación de 1./3. puede ser 0.333333 y, como resultado, algunas cantidades que son teóricamente iguales no lo son al ser evaluadas en un computador: 3.*(1./3.)≠ 1.

ASIGNACIÓN ARITMÉTICA

Una sentencia de asignación aritmética asigna el valor de una expresión aritmética a una variable o un elemento de una matriz. El operador de asignación en Fortran es el símbolo “=“. variable = expresión_aritmética El funcionamiento es: Se evalúa la expresión_aritmética, se asigna el valor obtenido a la variable, si el tipo de la variable es diferente de la expresión_aritmética, se produce una conversión de tipo: expresión_aritmética es convertida al tipo de variable antes de ser asignada a variable. Pueden producirse problemas de truncamiento. Ejemplos: Si i es una variable entera:

i = 3./2. ! i se le asigna el valor 1 i=i+1 ! Incrementa en una unidad el valor de i

FUNCIONES PREDEFINIDAS EN FORTRAN Funciones intrínsecas importantes proporcionadas por Fortran. El tipo del dato del argumento y del resultado que admiten es indicado por una letra: i = entero, r = real. Un asterisco en el miembro de la derecha indica que el resultado es del mismo tipo que el argumento

EJEMPLOS RESUELTOS 1.- Elaborar un programa que calcule el area y el volumen de un cilindro cuyas dimensiones radio y altura se leen desde el teclado: Area de un cilindro: A= A_LATERAL + 2 Ab; donde A_LATERAL = 2πrh+ 2πr2 el volumen es V = πr2h PROGRAM vol_cili real::R, H, AL, ATB, A,V real, parameter::pi=3.1416 print*,"ingrese radio" read*,R print*, "ingrese altura" read*,H AL=2*pi*R*H !Calcula el area lateral ATB=2*pi*R**2 !Calcula el area de las bases del cilindro A=AL+ATB ¡Calcula el area total del cilindro V=pi*R**2*H !Calcula el volumen Del cilindro print*,"Area Cilindro=", A print*,"Volumen=", V END PROGRAM vol_cili

ingrese radio 1 ingrese altura 1 Area Cilindro= 12.56640 Volumen= 3.141600 Press any key to continue

2.- Elaborar un programa que determine la hipotenusa de un triangulo rectángulo conocidas las longitudes de los catetos: Programación en Fortran: PROGRAM PITAGORAS real:: a, b, c print*, "Ingrese un cateto" read*, a print*, "Ingrese el otro cateto" read*, b c=sqrt(a**2 + b**2) print*,"Hipotenusa=",c END PROGRAM PITAGORAS

Ingrese un cateto 3 Ingrese el otro cateto 4 Hipotenusa= 5.000000 Press any key to continue

10

Ing. William Chauca Nolasco 3.- Elaborar un programa que calcule el area de un triangulo en función de las longitudes de sus lados donde p=(a+b+c)/2 donde p es el semiperimetro y el area = √𝑝(𝑝 − 𝑎)(𝑝 − 𝑏)(𝑝 − 𝑐) PROGRAM area_triangulo real:: area, a, b, c, p print*,"ingrese el primer lado" read*,a print*,"ingrese el segundo lado" read*,b print*,"ingrese el tercer lado" read*,c p=(a+b+c)/2 area=sqrt(p*(p-a)*(p-b)*(p-c)) print*,"area del triangulo =", area END PROGRAM area_triangulo

ingrese el primer lado 3 ingrese el segundo lado 4 ingrese el tercer lado 5 area del triangulo = 6.000000 Press any key to continue

4.- Elabore un programa que realice la siguiente conversión dada una temperatura en grados Celsius a grados Fahrenheit F=(9/5) C + 32 PROGRAM conversion real::F, C Ingrese Temperatura en grados Celsius print*, "Ingrese Temperatura en grados Celsius" 60 read*, C Grados F= 92.00000 F=(9/5)*C + 32 Press any key to continue print*, "Grados F= ", F END PROGRAM conversion 5.- Elabore un programa que permita el ingreso de su nombre y de cómo salida un mensaje que diga: “HOLA JOSÉ BIENVENIDO A FORTRAN 90”, donde José puede ser cualquier nombre. PROGRAM mensaje Ingrese Su Nombre character(len=10):: nombre, men*7, men2*25 William print*, "Ingrese Su Nombre" ! HOLA William BIENVENIDO A FORTRAN 90 ! Press any key to continue read*,nombre men="! HOLA" men2="BIENVENIDO A FORTRAN 90 ¡" print*, men, nombre, men2 END PROGRAM mensaje 6.- Elaborar un programa que lea un entero positivo y determine la raiz cuadrada PROGRAM RaizCuadrada IMPLICIT NONE Dame un número positivo REAL :: num, raiz 25 ! Preguntamos por el dato de entrada La raiz de 25.00000 es 5.000000 PRINT*, "Dame un número positivo" Press any key to continue READ*, num ! Calculamos su raiz cuadrada raiz = SQRT(num) ! Mostramos el resultado PRINT*, "La raiz de ",num," es ",raiz END PROGRAM RaizCuadrada 7.-Elabore un programa que permite el ingreso de un conjunto de palabras y visualice cuantos caracteres como máximo puede almacenar y cuantos caracteres incluido los espacios en blanco. PROGRAM LongitudCadena IMPLICIT NONE Escribe algun texto CHARACTER (LEN=50) :: cad "Fortran 90 es lo mejor para Ingenieria" PRINT*, "Escribe algun texto" La cadena puede almacenar un maximo de 50 caracteres READ*, cad Has escrito 38 caracteres incluido los espacios en blanco PRINT*, "La cadena puede almacenar un maximo de ",LEN(cad)," caracteres" Press any key to continue PRINT*, "Has escrito ",LEN_TRIM(cad)," caracteres incluido los espacios en blanco" END PROGRAM LongitudCadena 8.- Elaborar um programa que permita el ingreso de um numero real y visualice su parte entera, el entero mas cercano y su valor absoluto PROGRAM Real2Entero IMPLICIT NONE REAL :: x Ingrese un numero real PRINT*, “Ingrese un número real" 5.5 Su parte entera es: 5 READ*, x El entero mas cercano es: 6 PRINT*, "Su parte entera es: ", INT(x) El valor absoluto es: 5.500000 PRINT*, "El entero más cercano es: ", NINT(x) Press any key to continue PRINT*, "El valor absoluto es: ", ABS(x) END Real2Entero

11

Ing. William Chauca Nolasco

PROBLEMAS PROPUESTOS 1.-Escribir un programa que muestres por pantalla el mensaje: HOLA A TODOS 2.-Elabora un programa que calcule la potencia de un número entero, leídos ambos previamente por teclado, y escribir el resultado por pantalla 𝑧 3.- Elabore un programa para calcular el valor de la expresión 3𝑥 2 + 2𝑦 − 4 para tres números reales x, y, z leídos por teclado y escribir el resultado por pantalla 4.- Resuelve la ecuación de segundo grado Ax2 + Bx + C = 0 únicamente para soluciones reales. Lee los coeficientes A, B y C por teclado y escribe las dos soluciones por pantalla. 5.-Elabore un programa para codificar la expresión

𝑠𝑒𝑛2 (𝑥)+𝑐𝑜𝑠 2 (𝑥) 𝜋

para un ángulo x en radianes leído por teclado. Muestre el resultado en

la pantalla del monitor 6.- Programa que pida por teclado el radio de la base y la altura de un cono. Calcula y escribe el valor de su volumen 7.- Programa que pida por teclado el lado de un cuadrado. Calcula y escribe los valores de su área (A=L2) y diagonal (Teor. Pitágoras). 8.- Programa que pida el radio de una esfera y calcule y muestre su superficie (S=4πR2) y volumen

12