Curso de Fortran - Vectores y matrices (arrays)

6 - Vectores y matrices (arrays)

[editar]
Curso gratis creado por Anónimo.
04 de Noviembre de 2005
ARRAYS UNIDIMENSIONALES

-Consiste en una lista de un número finito de datos del mismo tipo que
 se referencian por un identificador común y un número de orden que son
 consecutivos.

-Las variables que representan los arrays se denominan variables de
 sub¡ndice. El tama¤o de un vector es el número de elementos que
 componen el vector. Una variable de sub¡ndice tiene el formato:

-Variable (Sub¡ndice).

-La variable puede ser un array de los siguientes tipos:

-Num‚rico.
 -Cadena.
 -Lógico.
 -Complejo.

-El sub¡ndice puede ser:

-Constante num‚rica.
 -Variable.
 -Expresión matem tica.

-Para saber una determinada posición de un elemento se deben cumplir las
 siguientes caracter¡sticas:

-Todos los elementos del array son del mismo tipo.
 -El vector tiene un nombre único y los elementos est n ordenados
  por el sub¡ndice.

DECLARACION DE UN ARRAY. SENTENCIA "DIMENSION"

-Hay dos formas de definir un vector o matriz, utilizando la forma
 común a todas las versiones cuyo formato ser :

-DIMENSION Identificador1 (M¡nimo:M ximo), ..., Identificadorn
  (M¡nimo:M ximo).

-El número de elementos que obtendremos vendr  dado por la fórmula
 M ximo-M¡nimo+1, sabiendo que m ximo deber  ser mayor o igual que el
 valor de m¡nimo.

-El identificador es una variable con las mismas reglas. Opcionalmente
 se puede colocar despu‚s del Identificador un alias o ALLOCATE que se
 usar  cuando estemos en tiempo de ejecución. Como ejemplos:

-ALLOCATE Array (Valor).
 -DIMENSION Array (11:25).
 -DIMENSION (14).
 -Array (:).

-Lo que indica la opción ALLOCATE es que el valor de sus sub¡ndices se
 va a dimensionar durante la fase de ejecución.

-El sub¡ndice izquierdo puede tomar los valores cero, negativo o
 positivo al igual que el sub¡ndice derecho, pero ‚ste último debe ser
 igual o mayor que el sub¡ndice izquierdo.

-No se puede modificar la dimensión una vez definida, y es necesario
 colocar corchetes para definir un array en tiempo de ejecución.

-En el ejemplo siguiente se declara un array de una dimensión que se
 dimensionar  posteriormente:

-DIMENSION Array ALLOCATE  (:).

-Para desasignar el array y liberar la memoria se utilizar  la opción
 DEALLOCATE como sigue:

-DEALLOCATE Array (Valor).

-Las dimensiones se separan por comas y se pueden definir como m ximo
 siete dimensiones, aunque pueden ser m s dependiendo de la memoria
 del ordenador.

-Si el l¡mite es uno se puede omitir el valor de m¡nimo, quedando la
 sintaxis siguiente:

-DIMENSION Identificador1 (M ximo), ..., Identificadorn (M ximo).

-La segunda forma de definir vectores es con la especificación de tipos
 de sintaxis:

-Tipo Identificador (M¡nimo:M ximo).

-Tipo es cualquiera de los tipos definidos en Fortran. Mediante esta
 forma se asocia el tipo de dato al identificador y definirlo como un
 array con tantos elementos como haya.

-Los l¡mites inferiores y superiores son expresiones enteras siempre
 con constantes nunca variables.

-Otros atributos que podemos colocar despu‚s del identificador son:

-REFERENCE.
 -C.
 -PASCAL.
 -VALUE.

-Se usar n estas opciones cuando se va a pasar el array por par metro a
 otros lenguajes, por lo que habr  que normalizar el lenguaje.

-Los arrays se almacenan en la memoria de una forma distinta que en
 otros lenguajes, ya que se almacenan columnas a columnas unas a
 continuación de otras.

-Se almacenan en orden creciente de sus sub¡ndices a partir de una
 posición determinada. Para sacar los elementos por filas se usar  el
 DO impl¡cito.

OPERACIONES CON ARRAYS Y ELEMENTOS DE UN ARRAY.

-Hay dos tipos de operaciones b sicas, con los elementos que ser n las
 mismas que permiten los tipos de datos o con estructuras como el
 recorrido de un array.

-Para hacer el recorrido de un array se usar  una estructura del tipo
 FOR como:

-DO  Etiqueta  VarA=Izquierdo, Derecho
  acción1
  acción2
  .......
  acciónn
   Etiqueta  CONTINUE
   ENDDO
  
Se puede leer o escribir un array completo con sólo poner el
 Identificador del array en la sentencia de E/S.
-Se puede inicializar un array completo con sólo poner su identificador
 y los valores que se inicializan en la sentencia DATA.

-Consiste en obtener datos de un dispositivo externo y almacenarlos en
 un vector o escribir en un dispositivo los datos de un array.

-La E/S puede realizarse con el identificador del array y por tanto
 se procesa en total o elemento a elemento con un DO impl¡cito o
 expl¡cito.

ENTRADA Y SALIDA DE ARRAYS CON DO "IMPLICITO".

-Se utiliza en vez de la estructura de tipo FOR. Esta estructura est 
 ya definida y hace sencilla la manipulación de los arrays en la lectura
 y escritura.

-Con este tipo de DO se ejecuta una sóla vez la sentencia READ de modo
 que se lee un sólo registro f¡sico. Su sintaxis es:

-READ (*, *) (Identificador (VarA), VarA=Inicio, Final,
   Incremento).

-Cuando el incremento es uno se puede omitir. Tambi‚n puede emplearse
 para acceder a los elementos de un array de m s de una dimensión para
 leer o escribir e inicializar.

-El DO impl¡cito se puede anidar con tantos niveles como sea necesario
 o tantos niveles como dimensiones tenga el array.
Un ejemplo del uso del DO impl¡cito ser¡a:
-READ (*, *) (Array (VarA), VarA=1, 20).

-El ejemplo anterior lee veinte variables estableci‚ndose un bucle. Otro
 ejemplo:

-READ (*, *) (Array (VarA), VarA=Izdo, Dcho, Paso).

-En el ejemplo anterior Paso indica que la variable toma el valor de
 izdo y sus sucesivos valores repitiendo el proceso hasta que dcho
 tiene mayor valor que izdo.

-Pero si paso es negativo entonces dcho ha de ser menor forzosamente. El
 siguiente ejemplo tendr¡a como representación con DO la siguiente:

-READ (*, 100) (Array (VarA), VarB=1)
  READ (*, *) ((Array (VarA, VarB), VarB=1, VarC), VarA=1, VarD)

-DO VarA=1, VarD
  DO VarB=1, VarC
   READ (*, *) (Array (VarA, VarB))
  ENDDO
  ENDDO

PASO DE ARRAYS POR PARAMETRO.

-El paso de un array se realiza por referencia y cuando un array es
 pasado, en realidad se pasa la dirección en memoria del primer elemento
 ahorr ndose memoria y espacio.

-Un ejemplo de ello es el siguiente:

-REAL Array (100, 200), VarA, VarB
  CALL Lista (Array, VarA, VarB)
  SUBROUTINE Lista (Arrayauxiliar, VarC, VarD)

-En la definición de los argumentos ficticios para los arrays en las
 Subrutinas o Funciones, no es necesario que sean iguales los l¡mites
 superior e inferior de cada dimensión con los l¡mites del argumento
 actual del array transmitido.

-Siempre se exige que una variable sea dimensionada por lo que dentro
 de la Subrutina se colocar  la siguiente declaración:

-REAL Arrayauxiliar (100, 200).

-En esta Subrutina no se crea la variable arrayauxiliar sino que se
 define dicha variable. El array en esa declaración se puede ajustar
 siempre que la dimensión sea menor que la declarada anteriormente.

-En todo caso el tama¤o del argumento ficticio para el array no puede
 ser mayor que el del argumento actual.

-Se puede poner un asterisco que es la opción por defecto y que indica
 que toma el valor de la dimensión iniciada en el programa principal.

ARRAYS DE TAMAÑO AJUSTABLE Y TAMAÑO ASUMIDO.

-El argumento ficticio array en la Función M ximo su tama¤o se ajusta
 a N elementos que es un dato transmitido, y por tanto la definición
 de arrays ajustables.

-La definición de un argumento ficticio array de tama¤o ajustable en
 una Función o en una Subrutina es la única situación en la que una
 definición de array puede incluir una variable en la especificación del
 rango de cada dimensión.

-Para definir un argumento ficticio array como asumido se especifica el
 l¡mite superior de la última dimensión del array con un asterisco. El
 número de elementos del array ficticio es el mismo que el array pasado
 por par metro.

-Sólo se puede especificar el l¡mite superior de la última dimensión
 con un asterisco, aunque para los caracteres tambi‚n es v lido.

-Para las Funciones car cter externas usaremos la siguiente sintaxis:

-CHARACTER * (*) FUNCTION Identificador (Lista de par metros).
[editar]

16 opiniones

ayuda por favor

necesito que me ayuden hacer un programa en fortran mi correo es angelicamacdonald@hotmail.com podras gracias
q desconformidad muchachos eh!!!

mira yo te digo, taba pintado y necesitaba usar fortran y esto me viene dando tremenda mano...los que anden volando que aranquen a quejarse a otro lado
q pendejos los q lean esto

no explik nada acerca de los ciclos y la secuencia logica que lleva un programa medio te dicen pero no esta nada completo
malo

en verdad no tiene mucha informacion no le hagan al buey
les faltan ejemplos

, y decir en que posición del programa declaras los complejos
1 2 3 4 | siguiente >

Cursos gratis relacionados con 'Curso de Fortran'

Completo curso de lenguaje ensamblador. El lenguaje Fortran tiene unos números y signos que utiliza... Más »
El objetivo de este curso es aprender a programar en el lenguaje Ada, desde sus... Más »
Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
Aprende a programar en Visual Basic, de forma rapida y sencilla, con tan solo 20... Más »
Mediante este pequeño pero abartcador curso ud. Podra conocer mejor las actualizaciones del C#. NET... Más »

Autor y licencia de 'Curso de Fortran'


Curso gratis de Anónimo. Extraido de: 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.