Anda di halaman 1dari 32

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA


MECÁNICA Y ELÉCTRICA
UNIDAD ZACATENCO
DEPARTAMNETO DE INGENIERÍA ELÉCTRICA

LABORATORIO DE COMPUTACIÓN APLICADA A SISTEMAS


ELÉCTRICOS.

“INTRODUCCIÓN AL ENTORNO DE
FORTRAN”.
INTEGRANTES BOLETA
Dorantes Arias Ever 2014300451
Cruz Morales Gustavo 2014300389
Rodríguez López Cristofer Mateo 2014301605
Santana Lopez Abdielh Raul 2014301770
Torres Mercado Ritchie Abraham 2013301528

GRUPO: 9EV1
PROFESOR:
CORREA MARTÍNEZ ROLANDO WILIBALDO

CIUDAD DE MÉXICO, 27 DE FEBRERO DE 2018


Contenido
OBJETIVOS ........................................................................................................................... 1
INTRODUCCIÓN .................................................................................................................. 2
LA HISTORIA DEL LENGUAJE FORTRAN ................................................................. 2
LA EVOLUCIÓN DE FORTRAN .................................................................................... 3
DESARROLLO ...................................................................................................................... 4
CONCLUSIONES. ............................................................................................................... 29
OBJETIVOS
Que el alumno se familiarice con el entorno de Fortran, para que pueda codificar
algoritmos de acuerdo a las necesidades que se le presenten y pueda compilar y
correr sus propios algoritmos.
Identificar el tipo de variables que maneja Fortran.
Aprender a declarar vectores y matrices.
Conocer los operadores básicos para realizar operaciones con matrices
Implementar operaciones con números complejos
Identificar los operadores lógicos y de relación
Comprender los comandos básicos de programación.

1
INTRODUCCIÓN
LA HISTORIA DEL LENGUAJE FORTRAN
Fortran es el abuelo de todos los lenguajes científicos de programacion. El nombre Fortran
se deriva de FORmula TRANSlation, que indica que el lenguaje fue pensado desde el
principio para traducir ecuaciones científicas en código de computadora. La primera
versión del lenguaje FORTRAN 7 fue desarrollada durante los años 1954-1957 por IBM
para su uso con su computadora Tipo 704. Antes de ese momento, esencialmente todos los
programas de computadora se generaban a mano en lenguaje de máquina, que era un
proceso lento, tedioso y propenso a errores. FORTRAN fue un producto realmente
revolucionario. Por primera vez, un programador podría escribir un algoritmo deseado
como una serie de ecuaciones algebraicas estándar, y el compilador de FORTRAN
convertiría las declaraciones en el lenguaje de la máquina que la computadora podría
reconocer y ejecutar.

¡FORTRAN fue una idea maravillosa! La gente comenzó a usarlo tan pronto como estuvo
disponible, porque hizo que la programación fuera mucho más sencilla que el lenguaje de
máquina. El lenguaje fue lanzado oficialmente en abril de 1957, y en el otoño de 1958, más
de la mitad de todos los programas informáticos IBM 704 se escribieron en Fortran.

El idioma original de FORTRAN era muy pequeño en comparación con nuestras versiones
modernas de Fortran. Contenía solo un número limitado de tipos de extracto y solo
soportaba los tipos de datos enteros y reales. Tampoco hubo subrutinas en el primer
FORTRAN. Fue un primer esfuerzo para escribir un lenguaje informático de alto nivel, y
naturalmente se encontraron muchas deficiencias a medida que las personas comenzaron a
usar el lenguaje regularmente. IBM abordó esos problemas, lanzando FORTRAN II en la
primavera de 1958.
Otros desarrollos continuaron hasta 1962, cuando se lanzó FORTRAN IV. FORTRAN IV
fue una gran mejora, y se convirtió en la versión estándar de Fortran durante los siguientes
15 años. En 1966, FORTRAN IV se adoptó como un estándar ANSI, y se llegó a conocer
como FORTRAN 66.

El idioma Fortran recibió otra actualización importante en 1977. FORTRAN 77 incluyó


muchas características nuevas diseñadas para hacer que los programas estructurados sean
más fáciles de escribir y mantener, y rápidamente se convirtió en "el" Fortran. FORTRAN
77 introdujo estructuras tales como el bloque IF, y fue la primera versión de Fortran en la
que las variables de caracteres fueron realmente fáciles de manipular.

La siguiente actualización importante de Fortran fue Fortran 90. Fortran 90 incluyó todos
los FORTRAN 77 como un subconjunto y amplió el idioma en muchas direcciones nuevas
e importantes. Entre las principales mejoras introducidas en el lenguaje en Fortran 90 se
encuentran un nuevo formato de fuente libre, secciones de matriz, operaciones de matriz

2
completa, tipos de datos parametrizados, tipos de datos derivados e interfaces explícitas.
Fortran 90 fue una mejora dramática sobre las versiones anteriores del lenguaje.

Fortran 90 fue seguido en 1996 por una actualización menor llamada Fortran 95. Fortran 95
agregó una serie de características nuevas al lenguaje tales como el constructo FORALL,
funciones puras y algunos procedimientos intrínsecos nuevos. Además, aclaró numerosas
ambigüedades en el estándar Fortran 90.

Fortran 2003 fue la próxima actualización. Este es un cambio más importante de Fortran
95, que incluye nuevas características como tipos de derivados mejorados, soporte de
programación orientada a objetos, soporte de conjuntos de caracteres Unicode, mejoras en
la manipulación de datos, indicadores de procedimientos e interoperabilidad con el lenguaje
C. Fue seguido por una actualización más pequeña llamada Fortran 2008.

LA EVOLUCIÓN DE FORTRAN
El lenguaje Fortran es un lenguaje dinámico que evoluciona constantemente para
mantenerse al día con los avances en la práctica de programación y la tecnología
informática. Una nueva versión importante aparece aproximadamente una vez por década.
La responsabilidad de desarrollar nuevas versiones del lenguaje Fortran recae en el Grupo
de Trabajo Fortran de la International Organization for Standardization’s (ISO), WG5. Esa
organización ha delegado autoridad en el Comité J3 del Comité Internacional de Estándares
de Tecnología de la Información (INCITS) para preparar realmente nuevas versiones del
lenguaje. La preparación de cada nueva versión es un proceso extenso que incluye primero
sugerencias para su inclusión en el idioma, decidir qué sugerencias son factibles de
implementar, escribir y distribuir borradores a todas las partes interesadas de todo el
mundo, y corregir los borradores e intentar nuevamente hasta general acuerdo alcanzado
Eventualmente, se realiza una votación mundial y se adopta el estándar. Los diseñadores de
nuevas versiones del lenguaje Fortran deben encontrar un delicado equilibrio entre la
compatibilidad con versiones anteriores de la base existente de los programas Fortran y la
introducción de nuevas características deseables. Aunque se han introducido en el lenguaje
características y enfoques modernos de programación estructurada, muchas características
indeseables de versiones anteriores de Fortran se han conservado para compatibilidad con
versiones anteriores. Los diseñadores han desarrollado un mecanismo para identificar las
características no deseadas y obsoletas del lenguaje Fortran que ya no deberían usarse, y
para eventualmente eliminarlas del lenguaje. Aquellas partes del lenguaje que han sido
reemplazadas por métodos nuevos y mejores se declaran como características obsoletas.
Las características que se han declarado obsoletas nunca deben usarse en ningún programa
nuevo. A medida que el uso de estas características disminuye en la base de código Fortran
existente, se considerarán eliminaciones del idioma. Ninguna función se eliminará de una
versión del idioma a menos que esté en la lista obsoleta en al menos una versión anterior, y
a menos que el uso de la característica haya caído a niveles insignificantes. De esta manera,
el lenguaje puede evolucionar sin amenazar la base de código Fortran existente.
3
DESARROLLO
1) DEFINA CONCEPTO DEL PROGRAMA.
Ingenieros y científicos, siempre han tenido la necesidad de diseñar y ejecutar
programas informáticos para cumplir con un cierto objetivo. El objetivo generalmente
implica cálculos técnicos que serían demasiado difíciles o tomarían demasiado tiempo
para realizarse a mano. Fortran es uno de los lenguajes de computadora comúnmente
utilizados para estos cálculos técnicos.

2) EXPLIQUE EL CONCEPTO DE LENGUAJE DE PROGRAMACION.


Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que
pueden ser llevados a cabo por máquinas como las computadoras.

Pueden usarse para crear programas que controlen el comportamiento físico y lógico de
una máquina, para expresar algoritmos con precisión, o como modo de comunicación
humana.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen
su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se
escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código
fuente de un programa informático se le llama programación.

También la palabra programación se define como el proceso de creación de un


programa de computadora, mediante la aplicación de procedimientos lógicos, a través
de los siguientes pasos:
El desarrollo lógico del programa para resolver un problema en particular.
Escritura de la lógica del programa empleando un lenguaje de programación
específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.

3) EXPLIQUE EL CONCEPTO DE COMPILACION.


En programación, cuando se desarrolla un programa, en la fase de codificación se
llevará a cabo la compilación, que consiste en que el compilador traducirá el codigo
fuente a codigo máquina, también llamado código objeto, siempre y cuando, el propio
compilador no detecte ningún error en dicho código fuente.

4
4) REALICE EL ESQUEMA DE LA ESTRUCTURA DEL PROGRAMA.
Estructura de un programa en Fortran
Cada programa de Fortran consiste en un conjunto de enunciados ejecutables y no
ejecutables, que deben ocurrir en un orden específico. Un ejemplo del programa
Fortran se muestra en la Figura 1. Este programa lee dos números, los multiplica, e
imprime el resultado. Examinemos las características significativas de este
programa.

FIGURA 1. Programa en Fortran.


Este programa Fortran, como cualquier otro programa de Fortran, se divide en tres
secciones:
I. La sección de declaración. Esta sección consiste en un grupo de
declaraciones no ejecutables al comienzo del programa que definen el
nombre del programa y el número y tipo de variables a las que se hace
referencia en el programa.

II. La sección de ejecución. Esta sección consiste en una o más declaraciones


que describen las acciones que realizará el programa.

III. La sección de finalización. Esta sección consiste en una declaración o


declaraciones que detienen la ejecución del programa y le dicen al
compilador que el programa está completo.

5
5) EXPLIOUE EN QUE CONSISTE COMPILAR Y CORRER PROGRAMAS
EN FORTRAN.
Compilación, Vinculación y Ejecución de un programa Fortran
Antes de que se pueda ejecutar el programa de ejemplo, debe compilarse en código
de objeto con un compilador de Fortran, y luego vincularse con las bibliotecas del
sistema de una computadora para producir un programa ejecutable (Figura 2). Estos
dos pasos generalmente se realizan juntos en respuesta a un único comando del
programador. Los detalles de compilación y enlace son diferentes para cada
compilador y sistema operativo.

FIGURA 2. Crear un programa Fortran ejecutable implica dos pasos, compilar y vincular.

Los programas Fortran se pueden compilar, vincular y ejecutar en uno de dos modos
posibles: por lotes e interactivo. En el modo por lotes, un programa se ejecuta sin
una entrada o interacción de un usuario. Esta es la forma en que la mayoría de los
programas de Fortran funcionaban en sus primeros días. Un programa se presentaría
como un mazo de cartas perforadas o en un archivo, y se compilaría, vincularía y
ejecutaría sin ninguna interacción del usuario. Todos los datos de entrada para el
programa tenían que colocarse en tarjetas o colocarse en archivos antes de que se
comenzara el trabajo, y todos los resultados se enviaban a archivos de salida o a una
impresora de línea.
Por el contrario, un programa que se ejecuta en modo interactivo se compila,
vincula y ejecuta mientras un usuario está esperando en un dispositivo de entrada,
como el teclado de la computadora o un terminal. Dado que el programa se ejecuta
con el presente humano, puede solicitar datos de entrada del usuario mientras se está
ejecutando, y puede mostrar resultados intermedios y finales tan pronto como se
computen.
Hoy, la mayoría de los programas de Fortran se ejecutan en modo interactivo. Sin
embargo, algunos programas Fortran muy grandes que se ejecutan durante días
seguidos se siguen ejecutando en modo por lotes.

6
6) MENCIONE LOS ELEMENTOS BASICOS DE UN PROGRAMA EN
FORTRAN.
TABLA 1. Conjunto de caracteres.

Número de Tipo Valores


símbolos
26 Letras mayúsculas A–Z
26 Letras minúsculas a-z
10 Dígitos 0–9
1 Carácter de subrayar -
5 Símbolos aritméticos + - * / **
28 Símbolos misceláneos ().=,‘$:¡“%;<>¿~\[]@
and blank

La estructura de una declaración.

i. Declaraciones ejecutables.
ii. Declaraciones no ejecutables.

La estructura de un programa.

i. La sección de declaración.
ii. La sección de ejecución.
iii. La sección de finalización.
Estilo del programa.
Constantes y variables.
Una constante es un objeto de datos que se define antes de que se ejecute un
programa, y eso lo hace no cambia el valor durante la ejecución del programa, una
variable es un objeto de datos que puede cambiar el valor durante la ejecución de un
programa.
i. Constantes y variables enteras.
ii. Constantes y variables reales.
iii. Constantes y variables de caracteres.

7
7) MENCIONE LAS OPERACIONES EN FORTRAN.

TABLA 2.Operaciones en Fortran.

+ Adición
- Sustracción
* Multiplicación
/ División
** Exponenciación

Aritmética de enteros.
Aritmética de reales.
Aritmética en modo mixto.
Aritmética y exponenciación en modo mixto.

8) EXPLIQUE LAS CONSTANTES Y VARIABLES QUE SE USAN EN


FORTRAN.

Constantes y variables enteras.


El tipo de datos enteros consiste en constantes y variables enteras. Este tipo de datos
puede solo almacenar valores enteros: no puede representar números con partes
fraccionarias.
Una constante entera es cualquier número que no contenga un punto decimal.
Una variable entera es una variable que contiene un valor del tipo de datos entero.
Constantes y variables reales.
El tipo de datos real consiste en números almacenados en formato de punto real o
flotante. diferente a enteros, el tipo de datos real puede representar números con
componentes fraccionarios.
Una constante real es una constante escrita con un punto decimal. Puede escribirse
con o sin un exponente.
Una variable real es una variable que contiene un valor del tipo de datos real.
Las constantes reales se pueden escribir con o sin un exponente. Si se usa, el
exponente consiste en la letra E seguida de un entero positivo o negativo, que
corresponde a el poder de 10 utilizado cuando el número está escrito en notación
científica. Si el exponente es positivo, el signo + puede omitirse. La mantisa del
número (la parte del número que precede al exponente) debe contener un punto
decimal.
Constantes de caracteres y variables.
El tipo de datos de caracteres consiste en cadenas de caracteres alfanuméricos. Un
carácter constante es una cadena de caracteres encerrados en comillas simples (') o

8
dobles ("). El número de caracteres en una cadena es 0, mientras que el número
máximo de caracteres en una cadena varía de compilador a compilador.
Los caracteres entre las dos comillas simples o dobles se dice que están en un
contexto del carácter.
Una variable de caracteres es una variable que contiene un valor del tipo de datos de
caracteres.

9) EXPLIOUE EL CONTROL DEL FLUJO DEL PROGRAMA


En general, un programa FORTRAN ejecuta las comandos en el orden en el que se
escribieron, uno a la vez. Sin embargo, frecuentemente hay situaciones en las que esto
es demasiado simple para lo que uno quiere hacer. A veces es necesario repetir una
misma operación muchas veces con ligeras variaciones, y otras veces hay operaciones
que solo deben realizarse si se cumple alguna condición. Para este tipo de situaciones
existen los llamados “comandos de control del programa” y que caen en dos tipos
básicos: “loops” y condicionales.
Loops
Un “loop” es un conjunto de instrucciones que deben realizarse muchas veces y tiene la
forma estandard:
do i=start,end,increment
Comando 1
Comando 2
Comando 3
...
end do
Todos los comandos que están contenidos entre la línea do i=... y la línea end do se
repiten varias veces, dependiendo de los valores de start,end,increment que deben ser
enteros. La primera vez, la variable i toma el valor start. Al terminar, el valor de i se
incrementa en increment, si el valor final es mayor que end el loop ya no se ejecuta de
nuevo y el programa continua en el comando que siga después de end do, de lo
contrario se vuelven a ejecutar los comandos dentro del loop hasta que se obtenga
i>end. Nota: El indentar los comandos dentro del loop no es necesario (FORTRAN
ignora los espacios extra), pero es una buena idea pues hace más fácil identificar
visualmente donde comienza y termina el loop.
Ejemplo: Programa “fibonacci”.
program Fibonacci
! Este programa calcula los numeros de la serie

9
! de fibonacci hasta nmax.
implicit none
integer i,nmax
integer jnew,jold,aux
! Poner un limite. nmax = 10
! Inicializar (jnew,jold). jnew = 1; jold = 1
! Iniciar loop.
print *
do i=1,nmax
! Imprimir elemento i de la serie.
print *, ’Elemento ’,i,’ de la serie de Fibonacci: ’, jnew
print *
! Calcular nuevo elemento de la serie.
aux = jnew
jnew = jnew + jold
jold = aux
end do
end program Fibonacci
IF
En ocasiones uno desea que una parte del programa solo sea ejecutada si cierta
condición específica se satisface. Esto se logra utilizando los “condicionales”, que en
FORTRAN se controlan con el comando IF. La estructura de este comando es la
siguiente:
if (expresión lógica) then
comando 1
comando 2
else
comando 3
comando 4

10
end if
Al ejecutar esto, el programa verifica si la expresión lógica entre paréntesis después del
if es verdadera. De serlo, se ejecutan los comandos siguientes. De ser falsa, se ejecutan
los comandos después del else (nótese que el [else] es opcional). La expresión lógica
puede utilizar cualquiera de los siguientes operadores lógicos:

.and. “Y” lógico: if ((i==3).and.(j==5)) then.


El comando if puede simplificarse si solo hay un comando en su interior:
Este comando indica que si se cumple la condición el comando indicado debe
ejecutarse. También es posible tener muchas alternativas en un condicional:
if (expresión lógica 1) then
comando 1
else if (expresión lógica 2)
comando 2

11
else if (expresión lógica 3)
comando 3
else comando 4 end if

12
Control lógico de loops
Es posible utilizar condiciones lógicas para controlar un loop. Esto se logra utilizando el
comando do while():
do while(expresi´on l´ogica)
comando 1
comando 2
...
end do
En este caso no se cuenta con una variable entera como en el caso estandard, sino que el
loop se ejecuta una y otra vez mientras la expresión lógica sea verdadera. El loop se
detiene una vez que dicha expresión es falsa. Por ejemplo, el siguiente código actúa de
la misma forma que un loop estandard de 1 a 10:
i=1
do while (i <=10)
i=i+1
end do
CUIDADO: Con este tipo de loops se corre el riesgo de caer en un ciclo eterno, donde
la condición lógica nunca deja de satisfacerse y la máquina sigue ejecutando el loop
para siempre. Cuando se trabaja en una terminal uno nota esto fácilmente si el código
continua mucho tiempo más del que esperábamos sin hacer aparentemente nada. En ese
caso siempre se puede detener al código tecleando [CTRL C]. Pero cuando uno esta
corriendo en una cola en una super-computadora se corre el riesgo de terminarse la
cuota que debería haber durado un año de una sola vez, y peor aún, los encargados del
sistema pueden decidir retirar los privilegios de trabajar en esa máquina ante semejante
desperdicio de recursos de computo y falta de cuidado.

13
10) QUÉ TIPO DE ECUACIONES SE SOLUCIONAN EN EL PROGRAMA
FORTRAN
El programa realiza la solución de sistemas de ecuaciones tanto lineales como no
lineales.

11) EN INGENIERÍA ELÉCTRICA. EN QUE PARTE DEL SISTEMA SE


APLICA FORTRAN
Puede ser utilizado en:
 Formulación trifásica de sistemas eléctricos en coordenadas de fase ABC
 Flujos de potencia en CA
 Calculo de parámetros en las interconexiones de las subestaciones
(resolución nodal)
12) DESARROLLE UN CODIGO EN FORTRAN
13) El siguiente programa es para el cálculo de las potencias, corrientes, y voltajes de
entrada, el sistema esta constituido con las siguientes cargas: monofásica de la línea
B a Neutro, bifásica de Linea A a línea B, carga en estrella balanceada y otra en
delta balanceada.
14) PROGRAM assoc
15)
16) REAL
VL,Vf,PI,SA,SB,SC,TA,TB,TC,R1,X1,S2,fp2,I2,P2,R2,Z2,X2,R3,X3,P4,fp4,I4,R4,Z4,X4,I1,P1,I3
17) COMPLEX
VAN,VBN,VCN,VAB,VBC,VCA,Z1,I1B,ZZ2,I2A,I2B,IAB,IBC,ICA,Z3,I3A,I3B,I3C,ZZ4,I4A,I4B,I4C,ITA
,ITB,ITC
18) PI=3.1415926536
19)
20) WRITE(*,*)'INGRESE LOS SIGUIENTES DATOS'
21) WRITE(*,*)'VL(V):'
22) READ(*,*) VL
23)
24) Vf=VL/SQRT(3.0)
25)
26) WRITE(*,*)'DATOS'
27) WRITE(*,*)'VL=',VL,' V'
28) WRITE(*,*)'Vf=',Vf,' V'
29)
30) !RADIANES
31) SA=(11.0/6.0)*PI

14
32) SC= (1.0/2.0)*PI
33) SB= (7.0/6.0)*PI
34) !SEXAGESIMALES
35) TA=(180.0*SA)/PI
36) TB=(180.0*SB)/PI
37) TC=(180.0*SC)/PI
38)
39)
40) VAN=CMPLX(Vf*COS(SA),Vf*SIN(SA))
41) VBN=CMPLX(Vf*COS(SB),Vf*SIN(SB))
42) VCN=CMPLX(Vf*COS(SC),Vf*SIN(SC))
43) VAB=VAN-VBN
44) VBC=VBN-VCN
45) VCA=VCN-VAN
46)
47) WRITE(*,*)'FASORES'
48) WRITE(*,*)'VAN=',VAN,' V'
49) WRITE(*,*)'VBN=',VBN,' V'
50) WRITE(*,*)'VCN=',VCN,' V'
51) WRITE(*,*)'VAB=',VAB,' V'
52) WRITE(*,*)'VBC=',VBC,' V'
53) WRITE(*,*)'VCA=',VCA,' V'
54)
55) WRITE(*,*)'DATOS DE CARGA 1 (monofasica en B)'
56) WRITE(*,*)'R1(ohm):'
57) READ(*,*)R1
58) WRITE(*,*)'X1(ohm):'
59) READ(*,*) X1
60) Z1=CMPLX(R1,X1)
61) I1B=VBN/Z1
62) I1=Vf/(SQRT((R1*R1)+(X1*X1)))
63) P1=I1*I1*R1
64)
65)

15
66)
67) WRITE(*,*)'DATOS DE CARGA 2 (bifasica en AB)'
68) WRITE(*,*)'S2(VA):'
69) READ(*,*)S2
70) WRITE(*,*)'f.p(2):'
71) READ(*,*) fp2
72) I2=S2/VL
73) !WRITE(*,*)I2
74) P2=S2*fp2
75) !WRITE(*,*)P2
76) R2=P2/(I2*I2)
77) !WRITE(*,*)R2
78) Z2=VL/I2
79) X2=SQRT((Z2*Z2)-(R2*R2))
80) ZZ2=CMPLX(R2,-X2)
81) I2A=VAB/ZZ2
82) I2B=-I2A
83)
84) WRITE(*,*)'DATOS POR FASE DE CARGA 3 (trifasica en delta balanceada)'
85) WRITE(*,*)'R3(ohm):'
86) READ(*,*)R3
87) WRITE(*,*)'X3(ohm):'
88) READ(*,*) X3
89) Z3=CMPLX(R3,X3)
90) IAB=VAB/Z3
91) IBC=VBC/Z3
92) ICA=VCA/Z3
93) I3A=IAB-ICA
94) I3B=IBC-IAB
95) I3C=ICA-IBC
96) I3=VL/(SQRT((R3*R3)+(X3*X3)))
97) !WRITE(*,*)I3
98) P3=3*I3*I3*R3
99) !WRITE(*,*)P3

16
100)
101) WRITE(*,*)'DATOS DE CARGA 4 (trifasica en estrella balanceada)'
102) WRITE(*,*)'P4(W):'
103) READ(*,*)P4
104) WRITE(*,*)'f.p(4):'
105) READ(*,*) fp4
106) I4=P4/(SQRT(3.0)*VL*fp4)
107) !WRITE(*,*)'I4',I4
108) R4=(P4/3)/(I4*I4)
109) !WRITE(*,*)'R4=',R4
110) Z4=Vf/I4
111) !WRITE(*,*)'Z4=',Z4
112) X4=SQRT((Z4*Z4)-(R4*R4))
113) ZZ4=CMPLX(R4,X4)
114) I4A=VAN/ZZ4
115) I4B=VBN/ZZ4
116) I4C=VCN/ZZ4
117)
118) ITA=I2A+I3A+I4A
119) ITB=I1B+I2B+I3B+I4B
120) ITC=I3C+I4C
121)
122)
123) WRITE(*,*)'- - - - - - RESULTADOS - - - - - - -'
124) WRITE(*,*)''
125) WRITE(*,*)'- -CORRIENTES DE LINEA POR CARGA - -'
126) WRITE(*,*)'I1B=',I1B,' A'
127) WRITE(*,*)''
128) WRITE(*,*)'I2A=',I2A,' A'
129) WRITE(*,*)'I2B=',I2B,' A'
130) WRITE(*,*)''
131) WRITE(*,*)'I3A=',I3A,' A'
132) WRITE(*,*)'I3B=',I3B,' A'
133) WRITE(*,*)'I3C=',I3C,' A'

17
134) WRITE(*,*)''
135) WRITE(*,*)'I4A=',I4A,' A'
136) WRITE(*,*)'I4B=',I4B,' A'
137) WRITE(*,*)'I4C=',I4C,' A'
138) WRITE(*,*)''
139) WRITE(*,*)'- - -CORRIENTES DE LINEA TOTAL - - -'
140) WRITE(*,*)'ITA=',ITA,'A'
141) WRITE(*,*)'ITB=',ITB,'A'
142) WRITE(*,*)'ITC=',ITC,'A'
143) WRITE(*,*)''
144) WRITE(*,*)''
145) WRITE(*,*)'-POTENCIA ACTIVA CONSUMIDA POR CARGA-'
146) WRITE(*,*)'P1=',P1,'W'
147) WRITE(*,*)'P2=',P2,'W'
148) WRITE(*,*)'P3=',P3,'W'
149) WRITE(*,*)'P4=',P4,'W'
150) WRITE(*,*)''
151) WRITE(*,*)'-POTENCIA ACTIVA TOTAL ENTREGADA - -'
152) WRITE(*,*)'P entregada=',P1+P2+P3+P4,'W'
153)
154) END

18
PARA LOS PUNTOS SIGUIENTES, INCLUIR COMO EVIDENCIA LAS
PANTALLAS DEL PC:
1) DESCRIBA LOS FORMATOS DE ESCRITURA DE UN PROGRAMA EN
FORTRAN
Formatos de representación de datos Al hablar de formato de datos, se debe comenzar
diciendo que existen datos formateados y datos no formateados. Cuando uno se refiere a
datos formateados, está tratando con datos representados por caracteres de texto; es decir,
cadenas de caracteres y una persona con formación suficientes es capaz de interpretarlos.
En cambio, para los datos no formateados, la representación de este se hace a través de
código binario o código máquina, representación que es difícilmente interpretable por un
ser humano. Los datos formateados, por razones obvias, deben ser almacenados en
archivos, a los cuales la computadora accede para leerlos o bien para escribir datos.

El asterisco * resaltado indica que el formato es automático y ´está establecido por las
características propias del Fortran. El programador o el usuario solo debe saber que al
introducir los datos, ya sea a través del teclado o un archivo de texto, los datos requeridos
por la instrucción read deben estar separados por espacios o comas, los datos de tipo
carácter delimitados por comillas o dobles comillas. Para la escritura de datos, la
computadora proporcionara los datos de tipo numérico de manera completa, separados por
espacios; los datos de tipo lógica utilizando los caracteres T y F, representaciones de los
valores. true. y false. respectivamente, separados por espacios y las cadenas de caracteres
serán escritas de acuerdo a la longitud de la expresión de tipo carácter sin tipos de
separación.
Formatos preestablecidos Si bien, una de las ventajas de utilizar el formato automático,
tanto en la lectura, como en la escritura de datos, es que el programador y el usuario del
programa solo deben preocuparse de escribir bien las instrucciones del programa e
introducir correctamente los datos, separados por comas o espacios. Sin embargo, esta
aparente facilidad, tiene algunas consecuencias de orden práctico; como, por ejemplo:
• Dificultad para confeccionar cuadros o tablas de resultados presentables.
• Dificultad para reutilizar datos obtenidos, como datos de entrada.
• Confusiones con cadenas de caracteres

19
2) DESCRIBIR COMO SE REALIZA LA COMPILACION
Permite convertir un programa en código fuente a código máquina. Un compilador es un
programa que, a su vez, traduce un programa escrito en un lenguaje de programación a otro
lenguaje de programación, generando un programa equivalente. Usualmente el segundo
lenguaje es código máquina, pero también puede ser simplemente texto. Este proceso de
traducción se conoce como compilación. La razón principal para querer usar un compilador
es querer traducir un programa de un lenguaje de alto nivel, a otro lenguaje de nivel inferior
(típicamente lenguaje maquina). De esta manera un programador puede diseñar un
programa en un lenguaje mucho más cercano a cómo piensa un ser humano, para luego
compilarlo a un programa más manejable por una computadora.
El proceso de compilación puede desglosarse en dos subprocesos:
• El primero en el cual el compilador verifica que el código fuente este bien escrito, y al
decir “bien escrito” el código fuente debe cumplir las reglas sintácticas y semánticas del
lenguaje de programación, sin preocuparse sobre la pertinencia del conjunto de
instrucciones del programa. Resultado de este subproceso, si es que no hay errores, es un
código intermedio, llamado código objeto, manifestado, para FORTRAN y C, en archivos
de extensión .o.
• El segundo subproceso, consiste en enlazar (link en inglés) el código objeto producido en
el primer subproceso, eventualmente con otros códigos que se encuentran en archivos
biblioteca, cuya extensión usual son. a o .so. Luego optimizar este código y convertirlo
finalmente en código ejecutable, manifestado en archivos ejecutables.

3) DESCRIBA LOS PASOS PARA LAS INSTRUCCIONES BASICAS


Los programas elaborados utilizando un lenguaje de programación de alto nivel, como es el
caso del FORTRAN, están estructurados lógicamente de una manera jerárquica en unidades
programáticas. De esta manera, todo programa susceptible de ser ejecutado por la
computadora o computadoras, debe tener una unidad principal, llamada programa principal,
que contiene las instrucciones que definirán el objetivo del programa, pudiendo recurrir a
otras unidades programáticas o subprogramas de nivel jerárquico inferior, para poder
realizar algunas de las instrucciones del programa principal. Los subprogramas de nivel
jerárquico inferior son, en consecuencia, son grupos de instrucciones, que agrupadas
constituyen una instrucción del programa principal y aplicando este principio de
jerarquización, un subprograma puede recurrir a otros subprogramas de nivel jerárquico de
nivel más inferior, lo que da la estructura jerárquica esquematizada en la figura I.1.2

20
Figura I.1.2: Esquema de la Estructura de un Programa
En consecuencia, el nivel de jerarquía puede ser definido como sigue: el nivel más alto
corresponde al primer nivel, el programa principal es de primer nivel o nivel 1, el nivel de
un subprograma corresponde al nivel inmediatamente inferior del subprograma de nivel
más inferior que sirve. A manera de ilustración, en la figura I.1.2, el programa principal es
de nivel 1, SP1, SP2 y SP3 son de nivel 2, SP4, SP5 y SP6 de nivel 3, y por ´ultimo SP7 de
nivel 4. Asimismo, la figura I.1.2 permite vislumbrar una relación entre subprogramas: SPk
≺ SPl , si existen subprogramas SPk+1, SPk+2, . . . , SPl−1, tales que SPk+1 es utilizado
por SPk, SPk+2 es utilizado por SPk+1 y así sucesivamente hasta SPl es utilizado por
SPl−1. SPi SPj , si SPi ≺ SPj .
A partir de la relación definida entre subprogramas, la primera regla que se tiene es que no
puede existir dos subprogramas SPk y SPl , tales que SPk ≺ SPl y SPl ≺ SPk al mismo
tiempo; aun si el proceso de compilación culmina sin errores, con un programa ejecutable,
al momento de ejecutar el programa se verán los errores. También, otra regla que debe
respetarse es que un subprograma no puede utilizarse así mismo, excepto en alguna
situación especial de recursividad que permite Fortran 90.

21
4) DESCRIBA LA LECTURA Y ESCRITURA DE DATOS
Uno de los elementos básicos de la programación e cualquier lenguaje es la lectura y/o
escritura de datos. En el lenguaje FORTRAN la lectura escritura se realiza a través de las
sentencias READ y WRITE
A la hora de leer/escribir datos necesitamos definir:
 ¿Qué tipo de datos son?
 ¿Dónde queremos leerlos/escribirlos?
 ¿Cómo queremos leerlos/escribirlos?
El esquema general es el de:
WRITE(___,___ ) ____
Igualmente con la sentencia READ.

En el primer campo se especifica donde están (o deben ponerse ) los datos (si ponemos un *
se tomará la pantalla). En el segundo campo como deben escribirse, (si ponemos un * se
tomará la opción por defecto) , y en el tercer campo la lista de variables a leer/escribir.
Adicionalmente a las variables también podemos escribir texto explicativo, poniéndolo
entre comillas simples.
WRITE(*,*)’Resultados = ’A,B
Hará aparecer en pantalla el texto

Resultados=
Seguido de los valores de las variables A y B.

22
5) OPERACIONES CON TABLEROS
Los tableros que son arreglos de valores de un determinado tipo, engloban las nociones de
vector (tablero unidimensional), matriz (tablero bidimensional), grilla (tablero
tridimensional), etc. Se los puede generar de manera estática o de manera dinámica. Los
tableros pueden ser tratados por Fortran, como listas de valores para ciertas funciones y
como matrices, en el sentido maten ático, por otras.
Para poder comprender, como Fortran maneja los tableros, debemos abordar desde el punto
de vista de una lista de valores indexados; por consiguiente: 1. Un tablero unidimensional
es una lista indexada de valores a un índice:

Se observa que el índice i que identifica la ubicación del valor en la lista está acotado por ni
y ns. Normalmente la cota inferior ni vale 1; sin embargo, nada impide que tome otros
valores, la única condición es que ns ≥ ni.
2. Un tablero bidimensional es una lista indexada de valores a dos índices:

Los índices i y j están acotados por ni y ns, mi y ms respectivamente. Tradicionalmente el


índice i identifica el número de fila y el índice j identifica el número de columna de la
ubicación de un valor en la lista. Al igual que en el tablero unidimensional, los valores de
las cotas inferiores ni y mi valen 1.
Un tablero tridimensional será una lista indexada a tres índices i, j y k, donde los índices
están acotados por una cota inferior y una cota superior como en el tablero unidimensional
y en el tablero bidimensional.

23
Un tablero n-dimensional será una lista indexada a índices i1, i2,...,in, donde los índices
están acotados por una cota inferior nik y una cota superior nsk.
Ahora bien, la computadora solo maneja listas indexadas a un índice, por lo que Fortran, en
el proceso de compilación, convierte los tableros multidimensionales en tableros
unidimensionales, cuyo índice está acotado inferiormente por 1. Este hecho es fundamental
y debe ser tomado en cuenta, cuando se utiliza tableros multidimensionales en los
programas
Declaración de Tableros
Comencemos con la forma más fácil de declarar un tablero, por la forma estática,
definiendo el número de índices y el rango de los índices, al momento de declararlo. La
notación o simbología, en Fortran del rango es,

El número de índices y su posición, se obtiene colocando los rangos en orden, de izquierda


a derecha, separados por una coma. Así; por ejemplo,

Significa que el tablero tiene n ´índices con sus respectivos rangos. Cuando un ni=1, no se
puede indicar el rango del ´índice, solamente colocando ns, en lugar de 1:ns; el compilador
asumirá que el rango es 1:ns. La declaración de un tablero, cuyos valores son de un tipo
dado, puede realizarse, utilizando el atributo dimensión o directamente sobre la variable, de
acuerdo a las siguientes sintaxis:

Donde, es uno de los tipos intrínsecos (integer, real, character, complex, logical) o un tipo
derivado; está dado por (V.2.4) y donde cada nik y nsk es un valor constante de tipo integer
o una variable constante de tipo integer, declarada antes, con el atributo parameter. De esta
manera, se tiene como, las siguientes declaraciones validas:

24
Una vez declarado un tablero, los elementos o componentes del tablero son identificados
por sus ´índices, tal como ilustran los siguientes ejemplos, de los tableros dados por el
código de más arriba.
Vector (10)
Vector (i)
Matriz (i,j)
Matriz (10,i*5-j)
Matemáticas (20,(n2-ns1)/2)
Por lo observado, puede utilizarse como ´índices: valores enteros fijos, variables de tipo
integer o expresiones de tipo integer. Solamente hay que tener cuidado que el número de
índices esté en concordancia con la declaración del tablero y que los valores de los índices
estén dentro el rango de cada uno de los ´índices del tablero.
6) OPERACIONES MATRICIALES
Fortran, en sus versiones 90 y posteriores permite realizar operaciones matriciales con
matrices (tableros bidimensionales) y vectores (tableros unidimensionales). A continuación
detallamos estas operaciones matriciales.
La adición, sustracción, multiplicación por escalar de matrices y vectores, se las trata como
tableros, lo que ha sido visto más arriba. La multiplicación de matrices, matrices con vector
(columna), se la efectúa utilizando la función intrínseca matmul, cuyas sintaxis son:

Está demás decir, que las tallas de las matrices y vectores involucrados deben ser
compatibles con la definición de la multiplicación de matrices y vectores.
Ejemplo.- Consideremos las matrices:

25
Ahora, ilustremos mathmul con líneas de código Fortran

7) ESTRUCTURAS E INSTRUCCIONES DE CONTROL


Hasta ahora, somos capaces de escribir programas en Fortran, como una colección de
instrucciones que siguen un orden secuencial de principio a fin, en las que se ejecutan todas
las instrucciones una sola vez. Ahora bien, a menudo se requiere que ciertas instrucciones
sean ejecutadas, si se cumple alguna condición y otras veces se requiere repetir un grupo de
instrucciones, sin que sea necesario repetir las instrucciones en el código fuente del
programa. Fortran permite crear estructuras de control para este propósito y en este capítulo
desarrollaremos aquellas que son más útiles, dejando las otras a la curiosidad del lector.
Instrucción if
La instrucción if permite someter la ejecución de una o varias instrucciones a una
condición:

Si no hay más que una sola instrucción ejecutable, se puede utilizar la forma compacta de la
instrucción if, como en el ejemplo siguiente:

26
Si hay más de una instrucción ejecutable, se debe utilizar un bloque if, como:

Importante, se comienza el bloque después de la instrucción ten y se concluye el bloque con


end if. Remarcamos que las instrucciones del bloque if, se realizan únicamente si se cumple
la condición de la instrucción if y luego se continua con las instrucciones que siguen al
bloque; sin embargo, muchas veces se requiere que el programa realice instrucciones
alternativas, en caso que no se cumpla la condición de la instrucción if. Para este tipo de
situaciones, se utiliza la instrucción else. Ilustramos su uso, continuando con el código del
ejemplo precedente.
El ciclo do
La instrucción do permite repetir la ejecución de un bloque de instrucciones. Esta
instrucción admite algunas variantes de uso, que serán detalladas a continuación.
Si el programa, que contiene este bloque do de instrucciones, llegase a ejecutarse, jamás se
detendría y escribiría de manera indefinida Debo estudiar. Veamos las formas elegantes de
salir de este ciclo. La primera opción es utilizar la instrucción stop, que detiene el
programa,. Luego la instrucción exit permite salir del bloque de instrucciones do,
continuando en la siguiente instrucción que sigue el end do del ciclo. Además se cuenta con
la instrucción cycle, que obliga al programa regresar al inicio de las instrucciones del
bloque do. Conforme avancemos ilustraremos su uso.
Por lo tanto, la estructura completa de un ciclo do “infinito”, tiene la siguiente forma:

Do while

27
Una manera de limitar el número de iteraciones de un bloque de instrucciones do, consiste
en utilizar la variante do while, cuya estructura es:

El ciclo continua realizando mientras la condición sea cierta; eso significa, que para que se
ejecute al menos una vez, la condición tiene que ser cierta en el primer ciclo. En esta
variante, está permitido utilizar las instrucciones cycle y exit; como también es posible
imbricar otros ciclos do.

La estructura select case


La estructura select case permite elegir un bloque de instrucciones, entre varios bloques, en
función del valor de una expresión. La estructura sintáctica de selecta case es la siguiente:

Donde puede ser una expresión de tipo character, logical o integer; él es opcional; es un
valor, rango de valores (especificados por :) o valores y rangos (separados por comas).

28
CONCLUSIONES.
CRUZ MORALES GUSTAVO
Al finalizar la practica numero dos, se puede concluir que los objetivos aclarados al
principio fueron cumplidos satisfactoriamente, ya que se pudo familiarizar con el entorno
del programa interactuando con ello, de igual manera se logro familiariza con los
operadores básicos con matrices, así como los tipos de variables que este maneja. Se logro
implementar las operaciones con números complejos y se comprendieron los comandos
básicos de programación. Una gran ventaja que este programa tiene es que el ingreso y la
declaración de los parámetros son fáciles de hacer a comparación con otros programas que
son más laboriosos. Este lenguaje de programación de alto nivel es utilizado por científicos
e ingenieros, ya que es muy práctico y nos ayuda como una herramienta de calculo en los
proyectos a fines. Con esta herramienta nuestra formación se fundamenta aun mas y nos
hace mas competitivos en el campo laboral ya que nos ahorra tiempo y nos ofrece
seguridad y precisión de los cálculos.

DORANTES ARIAS EVER


A través de la introducción a FORTAN se puedo conocer aquellos conceptos básicos
relacionados a un programa, de manera a uniformizar la terminología utilizada, profundizar
y aclarar conceptos claves y tener los elementos mínimos para concebir y crear programas
útiles a nuestros fines. Se aprendió que un programa es un conjunto, una colección o una
serie de instrucciones realizadas computacionalmente, cada una en un tiempo finito de
duración, utilizadas para introducir, procesar o presentar datos. Ahora bien, para que una
computadora o varias computadoras puedan ejecutar el programa, éstas requieren que las
instrucciones estén escritas en un código ejecutable o código binario o lenguaje máquina, a
través del cual las computadoras sean capaces de llevar a cabo las instrucciones. El código
ejecutable, binario o lenguaje máquina, tal como indica el nombre, está formado por
instrucciones que contienen ceros y unos, que en teoría una persona formada podría
interpretarlos y escribirlos, pero que en la práctica es casi imposible, por no decir
imposible. A partir del análisis de introducción se puede comenzar a programar y estudiar
el entorno FORTRAN.

RODRÍGUEZ LÓPEZ CRISTOFER MATEO.


Una vez concluida la práctica, se visualiza lo amigable que resulta el trabajar con un
software como fortran, ya que, por ser prácticamente el padre de los lenguajes de
programación, cuenta con todos los elementos que se tienen en un lenguaje C o C++, con la
gran diferencia de que la sintaxis resulta más sencilla.

29
De igual manera se ha adquirido el conocimiento sobre como elaborar un código
(algoritmo) en este entorno de programación, desde lo más básico, tal como la declaración
y tipos de variables, hasta las operaciones que se pueden realizar, además claro de los
distintos tipos de funciones tales como las trigonométricas, etc.
De esta manera se cuenta con un elemento más de apoyo para el modelado y resolución de
problemas relacionados a los sistemas eléctricos de potencia de manera computacional, lo
cuál como se ha planteado resulta de gran ayuda no sólo en la confiabilidad de los
resultados, si no en la velocidad de obtención de los mismos.

SANTANA LOPEZ ABDIELH RAUL


El lenguaje de programación en fortran es el inicio de la programación en C y C++, dando
pauta a un sinfín de aplicaciones y principalmente a aplicaciones matemáticas.

Con este código podemos resolver un sinfín de análisis de sistemas eléctricos de potencia
como pequeños circuitos, desarrollando un adecuado código podemos dar solución a este
tipo de problemas. En la actualidad se sigue utilizando en diversos ámbitos, en menor
proporción que otros lenguajes de programación más actuales.

TORRES MERCADO RITCHIE ABRAHAM


Con lo expuesto anteriormente, se puede concluir que este trabajo ha sido de gran ayuda
para la familiarizacion con el ambiente de FORTRAN, asi mismo se identificaron los
operadores de relacion como los operadores logicos, se aprendio a como definir vectores y
matrices y a hacer operaciones basicas con ellas lo cual es muy importante ya que es la base
para posteriormente desarrollar metodos numericos para el estudio de flujos de potencia.
Por otra parte tambien se comprendio como definir numeros complejos y hacer operaciones
con ellos asi como tambien a extraer diferentes partes importantes de ellos como lo son
angulo y magnitud, etc. Finalmente tambien se comprendio como es que funcionan los
comandos de los ciclos clasicos mas utilizados en programacion como lo son el ciclo FOR
y el ciclo WHILE asi como la condicion IF.

30

Anda mungkin juga menyukai