Inicio / Wikis / Cursos gratis / Curso de Fortran - SENTENCIAS ESPECIALES DE FORTRAN

Curso de Fortran - SENTENCIAS ESPECIALES DE FORTRAN

(13 opiniones)
Curso gratis creado por Anónimo. Extraido de:
04 de Noviembre de 2005
FORTRAN

7 - SENTENCIAS ESPECIALES DE FORTRAN

SENTENCIA "EQUIVALENCE"

- Esta sentencia declara que dos o m s identificadores son equivalentes
 y al menos dos. Hace que compartan la misma posición de almacenamiento
 que puede ser referenciado de m s de una forma.

-La sintaxis de esta orden es la siguiente:

-EQUIVALENCE (Lista de Identificadores).

-En una misma sentencia EQUIVALENCE pueden haber m s de una lista de
 identificadores, cada una de las cuales se refiere a la misma posición
 de almacenamiento:

-EQUIVALENCE (Lista de Identificadores),

+           (Lista de Identificadores).

-Las variables de distinto tipo pueden hacerse equivalentes, de forma
 que habr  almacenamiento compartido pero no una posible conversión de
 tipos.

-La sentencia de almacenamiento de los identificadores de la lista
 comienza con la primera unidad de almacenamiento de las entidades de
 la lista.

-Se pueden hacer equivalentes los arrays y los elementos de los arrays.
 Los ¡ndices de las variables array escritos en una lista de la
 sentencia deben ser constantes o expresiones formadas por constantes.

-En una sentencia EQUIVALENCE no puede provocarse que una misma variable
 ocupe dos posiciones de memoria distintas.

-Esta sentencia puede utilizarse entre variables o arrays de tipo
 car cter aunque sus longitudes no sean las mismas.

-Las variables car cter equivalentes tendr n el mismo primer car cter
 ubicado en la misma posición de memoria.

-En Fortran 77 no est  permitido hacer equivalentes variables de tipo
 car cter con variables num‚ricas, y los nombres de Función no pueden
 hacerse equivalentes con otra entidad.

-Esta sentencia se suele utilizar cuando la memoria de que se dispone
 es muy peque¤a, pero produce que la lógica del programa pueda acceder
 a la variable correcta.

SENTENCIA "COMMON".

-Una forma de comunicarse entre el programa o Unidad de programa que
 llama a una Subrutina o Función, y la Subrutina o Función llamada, es
 a trav‚s de la lista de argumentos.

-Con estos argumentos se referencian zonas de memoria comunes desde
 distintas Unidades de programa, la Unidad de programa que llama y la
 Unidad llamada.

-Con esta sentencia se pueden definir zonas comunes de memoria entre
 diversas Unidades de que forman parte un programa, entre la Unidad
 principal y una o varias Subrutinas o Funciones.

-Es una sentencia no ejecutable que debe aparecer en la Unidad de
 programa que llama y en el Subprograma llamado antes de todas las
 sentencias ejecutables.

-En esta sentencia se listan los nombres de las variables y los nombres
 de los arrays con su dimensión y es una forma alternativa de comunicar
 datos a la lista de argumentos de los Subprogramas.

-Si un array va ha estar en una zona común se puede definir su lista de
 identificadores en la lista COMMON o definir el array y ponerlo en la
 lista de la sentencia COMMON.

-Las variables y los arrays son asignados a un almacenamiento común en
 el orden en que aparecen en la sentencia COMMON, siendo la sintaxis de
 esta:

-COMMON Identificador1, Identificador2, ..., Identificadorn.

-La sintaxis anterior pertenece a una sentencia COMMON sin nombre o en
 blanco, pero existe una sentencia COMMON etiquetada o con nombre.

-El orden de los identificadores especificados en una sentencia COMMON
 determina la equivalencia de identificadores simbólicos entre varias
 Unidades de un programa (El bloque común de memoria es lo global).

-La lista de identificadores deben ser de igual tipo en todas las
 sentencias COMMON estableci‚ndose las equivalencias por el orden en
 que est n en la lista.

-Un identificador de una lista COMMON no puede figurar como argumento en
 una Subrutina o Función ni como par metro en las llamadas (Puede haber
 un solapamiento de memoria).

-El bloque común de memoria es único para todo el programa. La memoria
 común se establece de forma contigua.

-En un bloque común de memoria no puede haber variables car cter y no
 car cter mezcladas, siendo todo de variables car cter o variables no
 car cter.

-Las variables o arrays que figuran en la lista de COMMON sin nombre
 no pueden ser inicializadas con DATA, sólo pueden inicializarse con
 sentencias de asignación.

SENTENCIA "COMMON" CON NOMBRE. USO CONJUNTO DE "COMMON" Y "EQUIVALENCE".

-Esta sentencia etiquetada permite definir varias zonas comunes de
 memoria, cada una con su nombre o etiqueta.

-Se forman de igual manera que las anteriores pero se escribe su nombre
 o etiqueta con dos barras (Slash) antes de la lista de variables.

-El nombre de COMMON debe ser un identificador v lido y pueden definirse
 dos o m s zonas comunes. Es conveniente usar tantas sentencias COMMON
 como zonas comunes haya.

-Se pueden mezclar en una zona común variables num‚ricas con variables
 o arrays lógicos.

-En el siguiente ejemplo tendremos sólamente dos bloques COMMON uno
 con nombre y otro sin nombre:

-COMMON /Nombre-1/ VarA, VarB, VarC
  COMMON VarH, VarI, VarJ
  COMMON /Nombre-1/ VarK, VarL
  COMMON VarM, VarN

-Una comparación entre un trozo de programa con COMMON y otro sin ‚l
 podr¡a ser el siguiente:

-REAL VarD, VarE, VarF, VarG, VarZ
  READ *, VarD, VarE, VarF, VarG
  VarZ=2
  VarT=Función (VarD, VarE, VarF, VarG)
  STOP
  END

FUNCTION Función (VarA, VarB, VarC, VarX)
  VarI=VarA*VarX2+VarB*VarX+VarC
  RETURN
  END

-REAL VarD, VarE, VarF, VarG, VarZ
  COMMON /Coeficientes/ VarD, VarE, VarF
  VarZ=2
  VarT=Función (VarZ)
  STOP
  END

FUNCTION Función (VarX)
  COMMON /Coeficientes/ VarA, VarB, VarC
  VarF=VarA*VarX
2+VarB*VarX+VarC
  RETURN
  END

-Si en una sentencia COMMON se precede a los identificadores de dos
 barras o slash indicar  que son zonas comunes sin nombre. Es 
 indiferente el orden de definición de las zonas comunes.

-Los arrays o variables de COMMON con etiqueta pueden ser inicializados
 con la sentencia DATA, pero no las variables de un COMMON sin nombre.

-Un COMMON con etiqueta tiene que tener el mismo tama¤o en todas las
 Unidades de programa.

-Las variables o arrays pueden aparecer en ambas sentencias COMMON y
 EQUIVALENCE siempre que no causen conflicto en el orden en el que se
 almacenan.

-Dos variables que est‚n en una zona común no pueden ser equivalentes
 entre s¡.

SENTENCIA "SAVE".

-Esta sentencia se utiliza para almacenar est ticamente los valores
 o datos de una invocación a otra.

-SAVE declara que las variables locales y los arrays sean retenidos
 despu‚s de ejecutar RETURN o la siguiente llamada al Subprograma.

-Las variables o arrays locales contendr n el último valor adquirido
 en la ejecución anterior al Subprograma. Su sintaxis es:

-SAVE (Lista de identificadores).

-La lista de identificadores, que podr n ser variables, arrays o bloques
 COMMON, retendr  el último valor adquirido antes de la ejecución de
 RETURN.

-Las excepciones en las que las variables no quedan indefinidas al salir
 de un Subprograma son:

-Sentencias SAVE del Subprograma.

-Bloques COMMON en blanco o sin nombre.

-Bloques COMMON etiquetados y definidos en la Unidad de programa
  principal y uno o m s Subprogramas.

-Las variables en bloques COMMON etiquetados en Subprogramas quedan
 indefinidos sólo cuando hay una salida desde un Subprograma pero no se
 pueden retener con SAVE y el nombre del bloque COMMON.

-En una lista de SAVE no pueden aparecer par metros de Subrutinas o
 Funciones, ni nombres de Función y Subrutinas ni variables o arrays
 de bloques COMMON.

-Puede haber m s de un SAVE o escribir la lista en un sólo SAVE. Si hay
 m s de un SAVE no podr n repetirse nombres de variables o arrays.

INICIALIZACION DE VARIABLES. SENTENCIA "DATA".

-Esta sentencia permite inicializar variables con la siguiente sintaxis:

-DATA Lista1 /Constantes/, ..., Listan /Constantes/.

-La lista contendr  los nombres de las variables o arrays a inicializar
 separados por comas e inicializa las constantes que vendr n separadas
 por comas.

-Puede especificarse m s de una lista y sus constantes o agrupar todas
 las variables en una sóla lista. La inicialización se realiza en el
 orden en el que aparecen, de izquierda a derecha.

-Si hay constantes consecutivas iguales se podr  poner:

-Número*Constante.

-En el formato anterior Número es el número de repeticiones que se
 especificar  de dicha forma.

-Las reglas m s importantes de las sentencias DATA son las siguientes:

-El número de constantes ha de ser igual al número de elementos
  de la lista, variables o arrays.

-No pueden aparecer argumentos ficticios de Subprogramas, nombres
  de Función y elementos de bloque COMMON en blanco.

-Sólo pueden estar los bloques COMMON etiquetados en los bloques
  DATA.

-El tipo de variable o array a inicializar debe corresponderse con el
 tipo de la constante. Lo mismo para las variables de tipo car cter
 (Si hay exceso se ignora y si hay defecto se completa con blancos a la
 derecha).

-Esta sentencia no es ejecutable y puede aparecer despu‚s de las
 especificaciones de datos pero es mejor colocarlas antes de las
 sentencias ejecutables.

-Las sentencias DATA pueden utilizar el DO impl¡cito para inicializar
 el array a los datos que se quieran o sólo definirlo. Un ejemplo de
 ello ser¡a:

-INTEGER VarA, Orden, Alfa, Lista (100)
  REAL Coeficiente (4), Epsilon (2), Pi (5), VarX (5, 5)
  CHARACTER *15 Ayuda
  DATA VarA /0/, Orden /3/
  DATA Coeficiente /1.0, 2*3.0, 1.0/, Epsilon (1) /0.0001/
  DATA ((VarX (VarI, VarJ), VarI=1, VarJ), VarJ=1.5) /15*1.0/
  DATA Lista /100*0/
  DATA Ayuda /'Ayuda'/

-El siguiente formato puede ir en cualquier parte del programa y tiene
 como misión hacer una llamada al camino o ruta especificado:

-$INCLUDE 'Path Nombre.For'.

SENTENCIA "PARAMETER".

-Esta sentencia identifica constantes mediante nombres identificadores
 o simbólicos para que despu‚s se pueda hacer referencia a la constante
 por el identificador. La sintaxis de la orden es:

-PARAMETER (Identificador=Expresión constante).

-Dentro de los par‚ntesis se pueden especificar tantos par metros como
 se quiera separ ndolos por comas.

-La expresión debe coincidir en su tipo con el identificador y el valor
 que va ha representar el identificador al evaluarse la expresión. Debe
 ajustarse a las reglas establecidas para las sentencias de asignación.
El tipo de dato del identificador puede definirse de forma impl¡cita
 o expl¡cita, describiendo la sentencia de definición antes.
-La expresión constante puede hacer referencia a otro par metro pero
 ha de estar definida antes en otro PARAMETER o en la misma sentencia
 PARAMETER.

-Un identificador de constante no puede cambiar despu‚s el valor que se
 le ha impuesto.

-El  mbito de los par metros es la Unidad de programa en que est n
 definidos y una vez que el par metro es definido puede ser referenciado
 en los sitios en que pueden referenciarse las constantes excepto:

-No se pueden usar los par metros en una especificación de un
  formato.

-Un par metro no puede usarse como parte de otra constante.

-Esta sentencia no es ejecutable y puede aparecer despu‚s de cualquier
 sentencia de especificación de tipo o antes de que se haga uso del
 par metro.

-Cuando un valor aparece varias veces en una Unidad de programa se debe
 asociarle un nombre simbólico y usar dicho nombre para despu‚s hacer
 la referencia a dicho nombre.

INICIALIZACION DE UN COMMON CON NOMBRE. SUBPROGRAMA "BLOCK DATA".

-Este Subprograma asigna valores iniciales a variables y a arrays de un
 COMMON etiquetado, puesto que los COMMON en blanco se inicializan en
 las sentencias DATA.

-La sentencia BLOCK DATA que puede tener un identificador termina con la
 sentencia END y las sentencias que se pueden especificar son todas las
 no ejecutables para la inicialización de la lista de COMMON etiquetados
 y que son:

-IMPLICIT.
 -PARAMETER.
 -DIMENSION.
 -SAVE.
 -COMMON.
 -EQUIVALENCE.
 -DATA.

-La sintaxis de este Subprograma ser :

-BLOCK DATA  Identificador
  sentencia1
  sentencia2
  ..........
  sentencian
  END

-Si el identificador se coloca es considerado como un identificador
 global y no puede coincidir con el nombre de una Función o el de una
 Subrutina.

-El COMMON etiquetado al inicializarlo hay que especificarlo en el
 Subprograma BLOCK DATA de forma completa aunque haya variables no
 inicializables.

-En un programa ejecutable pueden haber m s de un BLOCK DATA pero sólo
 uno puede ser sin nombre y todos los dem s nombres distintos. Un COMMON
 sólo puede estar en un sólo BLOCK DATA.

-Un ejemplo del uso de este Subprograma ser¡a:

-BLOCK DATA Nombre
  COMPLEX VarA, VarB
  LOGICAL VarC, VarD
  INTEGER VarI, VarJ, VarK, Lista
  REAL VarX
  COMMON /Bloque1/ VarX (10), VarI, VarJ, VarA
  COMMON /Bloque2/ Lista (6), VarC, VarD, VarB
  DATA VarX /10*0.0/, VarI, VarJ /1, 0/, VarC /False/
  DATA VarA, VarB, /2*(0, 1)/
  END

-Normalmente este tipo de Subprogramas se suelen colocar cuando acaba
 el programa principal.

TIPO DE DATO COMPLEJO.

-Este tipo de datos se representa por un par ordenado de números reales
 de doble precisión, enteros o una combinación de ellos encerrados entre
 par‚ntesis y separados por comas.

-Para definir un identificador de tipo complejo contamos con COMPLEX, y
 pueden haber variables, arrays complejos y Funciones complejas.
La memoria que ocupa una variable compleja es el doble de una variable
 real. Se puede asignar una constante compleja, otra variable compleja
 o una expresión compleja inicializ ndose con DATA.
-Cuando a la variable compleja se le quiere asignar un número complejo
 que tiene la parte real, la parte imaginaria o ambas debe usarse la
 Función intr¡nseca COMPLEX.

-Los números complejos pueden sumarse, restarse, multiplicarse, elevarse
 a una potencia y dividirse. No puede usarse en la expresión aritm‚tica
 de la sentencia IF aritm‚tico, y no puede usarse como sub¡ndice de un
 array.

-Otras Funciones que tienen los números complejos son:

-AIMAG (Expresión num‚rica) (Parte imaginaria como número real).
 -CONJ (Expresión num‚rica) (Devuelve el complejo conjugado).

-Otras Funciones internas que tienen un nombre espec¡fico para el
 argumento complejo y el valor que devuelven es tambi‚n complejo son:

-CSQRT (Expresión num‚rica) (Ra¡z cuadrada de un complejo).
 -CABS (Expresión num‚rica) (Módulo del complejo).
 -CEXP (Expresión num‚rica) (Función exponencial de un complejo).
 -CLOG (Expresión num‚rica) (Logaritmo natural de un complejo).
 -CSIN (Expresión num‚rica) (Seno de un complejo).
 -CCOS (Expresión num‚rica) (Coseno de un complejo).

SENTENCIA "PAUSE".

-Esta sentencia hace una parada temporal en la ejecución de un programa
 para detener la salida hasta que el usuario haya podido leer toda la
 información. Su sintaxis es:

-PAUSE.
 -PAUSE 'Cadena de caracteres'.
 -PAUSE Número (Constante de hasta cinco d¡gitos).

-Al producirse la parada se visualiza un mensaje propio regido por el
 número indicado o la cadena si ha sido especificada.

ASIGNACION DE ETIQUETAS A VARIABLES ENTERAS. SENTENCIA "ASSIGN TO".

-Esta sentencia permite asignar un número de etiquetas por una constante
 entera a una variable entera siendo su sintaxis:

-ASSIGN Etiqueta TO Variable.

-Etiqueta es la etiqueta de una sentencia ejecutable o de una sentencia
 FORMAT, siendo variable el identificador de una variable entera.

-Despu‚s de la ejecución de ASSIGN el valor de la variable no puede ser
 considerada como un dato entero.

-Si la etiqueta asignada a la variable es la de una sentencia FORMAT, la
 variable puede ser usada como un identificador de formato.

-Si la etiqueta asignada es ejecutable la variable puede ser usada en
 un GOTO asignado como:

-GOTO Variable.
 -GOTO Variable (Etiqueta1, Etiqueta2, ..., Etiquetan).

-Cuando se ejecuta una sentencia GOTO asignada el control del programa
 es transferido a la sentencia con la etiqueta del último valor asignado
 a la variable con ASSIGN.
Valora este capítulo: (13 opiniones)
Autor y licencia de 'Curso de Fortran - SENTENCIAS ESPECIALES DE FORTRAN'
Anónimo CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Opiniona sobre 'Curso de Fortran - SENTENCIAS ESPECIALES DE FORTRAN' (13)

Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.

Opina sobre este curso gratis



* Valoración:
* Nombre:
* Correo electrónico:
* Título:
* Comentario:

Wikis relacionados con 'Curso de Fortran - SENTENCIAS ESPECIALES DE FORTRAN'

Tabla de caracteres especiales como letras acentuadas, con marcas diacríticas, símbolos, etcétera.
Desde el comienzo, desde aquel primer hombre, se encuentra en nosotros la necesidad de inserción... Más »
El objetivo de este curso es aprender a programar en el lenguaje Ada, desde sus... Más »
Excelente curso de iniciación a la astronomía para aquellos que quieran aprender sobre esta apasionante... Más »
La idea de este curso surgió de varias conversaciones entre amig@s de la cuadrilla y... Más »
¿Estás seguro de que deseas eliminar este capítulo?