36
Introducción Elementos Básicos de Fortran Ejercicios para practicar Para profundizar un poco más Introducción a Fortran Mario Merino Martínez [email protected] Escuela Técnica Superior de Ingenieros Aeronáuticos Universidad Politécnica de Madrid 4 de marzo de 2011 Mario Merino Martínez Introducción a Fortran

IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

Introducción a Fortran

Mario Merino Martí[email protected]

Escuela Técnica Superior de Ingenieros AeronáuticosUniversidad Politécnica de Madrid

4 de marzo de 2011

Mario Merino Martínez Introducción a Fortran

Page 2: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

Índice

1 Introducción2 Elementos Básicos de Fortran

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

3 Ejercicios para practicar4 Para profundizar un poco más

¿Fin?

Mario Merino Martínez Introducción a Fortran

Page 3: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

¿Qué es programar?

“Un ordenador es una herramienta enormemente tonta, peroincreíblemente rápida”

Programar es dar instrucciones de forma secuencial a unordenador para que realice por nosotros una tarea.El ordenador sólo entiende instrucciones en forma de unosy ceros (código máquina). No queremos escribir enbinario: nos inventamos lenguajes de programaciónNosotros escribimos nuestro código o algoritmo en unlenguaje, y un programa (compilador) se encarga detraducirlo a código máquina (“.exe”).Cada lenguaje tiene su sintaxis y vocabulario propio. Elcompilador no admite fallos ni ambigüedades.

Mario Merino Martínez Introducción a Fortran

Page 4: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

Estructura de un programa en FortranFortran (de “formula translation”) es el lenguajecientífico e ingenieril por excelencia. Se inventó por y parael cálculo numérico.Un programa en Fortran es una lista secuencial y finitade instrucciones. El programa empieza y terminasiempre así:Fortran no distingue entre mayúsculas y minúsculas, eignora espacios y líneas en blanco extra.

program nombre_del_programa! Declaración de variables! Instrucciones SECUENCIALES! Esto es un comentario

end program nombre_del_programa

Mario Merino Martínez Introducción a Fortran

Page 5: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

El entorno de desarrolloPara escribir el código de un programa, sirve cualquier editorde texto. ¡Pero mejor utilizar una herramienta especializada!

Mario Merino Martínez Introducción a Fortran

Page 6: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Index

1 Introducción2 Elementos Básicos de Fortran

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

3 Ejercicios para practicar4 Para profundizar un poco más

¿Fin?

Mario Merino Martínez Introducción a Fortran

Page 7: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Tipos y declaración I

Una variable es un nombre al que le asociamos un número odato, para poder referirnos a él en el código de forma genérica.Hay que declarar cada variable en la parte inicial delprograma, para que el compilador sepa que existe y de quétipo es. Existen varios tipos de variables:

Variables enteras: integerVariables reales, precisión simple: real*4Variables reales, precisión doble: real*8Otros tipos (character, logical...)

Mario Merino Martínez Introducción a Fortran

Page 8: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Tipos y declaración II

Se declaran así:

program nombre_del_programaimplicit none ! ponedlo SIEMPREinteger :: i, nreal*4 :: s, tempreal*8 :: h, x, y! ...

end program nombre_del_programa

Mario Merino Martínez Introducción a Fortran

Page 9: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Asignación de valores y uso I

Una vez las variables han sido declaradas, se les puede dar unvalor con el operador asignación “=”:

! ...integer :: nreal*4 :: x, hreal*8 :: y! ...n = 34h = 4.91234x = 5. ! Los reales SIEMPRE con punto o exponente (1e0)y = 1d0 ! El exponente con “d” se utiliza para doble precisión! ...

Mario Merino Martínez Introducción a Fortran

Page 10: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Asignación de valores y uso II

Una variable se puede sobreescribir cuantas veces sedesee, y utilizar en operaciones y funciones:

! ...x = x + x + 124.5d0 - cos(x)! ...

Este ejemplo calcula x + x + 124.5− cos (x), y después loguarda en la variable x , olvidando su valor anterior.

Fortran NO tiene constantes físicas ni matemáticas “deserie”. Hay que escribirlas cada vez. Un buen truco paratener el número π es usar: pi = acos(-1d0)

Mario Merino Martínez Introducción a Fortran

Page 11: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Index

1 Introducción2 Elementos Básicos de Fortran

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

3 Ejercicios para practicar4 Para profundizar un poco más

¿Fin?

Mario Merino Martínez Introducción a Fortran

Page 12: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Operadores algebraicos (+,-,*,/,**)Suma, resta, producto, cociente y potencia se escriben así: +,-, *, /, **. La potencia tiene prioridad sobre producto ycociente, y estos sobre suma y resta. Se pueden usarparéntesis para establecer el orden de las operaciones:

5.+2.*4.**(-3) es distinto de ((5.+2.)*4.)**(-3)

¡OJO! EL COCIENTE DE ENTEROS PRODUCE COMO RE-SULTADO UN ENTERO. SI SE QUIERE UN RESULTADOREAL, NO OLVIDAR EL PUNTO NUNCA (o usar DBLE).

! ...x = 2/3 ! El resultado es 0x = 2./3. ! El resultado es 0.66666...x = dble(2)/dble(3) ! El resultado es 0.66666...! ...

Mario Merino Martínez Introducción a Fortran

Page 13: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Leer y escribir por pantalla

Se puede escribir cualquier cosa por pantalla usando:

write(*,*) ’Hola. El valor de x es: ’, x

Se puede pedir al usuario que introduzca por teclado un valorn con:

read(*,*) n

Mario Merino Martínez Introducción a Fortran

Page 14: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Funciones matemáticas “de serie”

Algunas funciones sólo funcionan con reales real*4 y real*8.

Mario Merino Martínez Introducción a Fortran

Page 15: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Ejemplo 1: raízPracticamos declaración y uso de variables, read y write, yfunciones intrínsecas.

program ejemplo1implicit noneinteger :: nreal*8 :: raiz

write(*,*) ’Por favor, introduzca un numero n’read(*,*) nraiz = sqrt(dble(n))write(*,*) ’El numero introducido es: ’, nwrite(*,*) ’Su raiz cuadrada es: ’, raiz

end program ejemplo1

Mario Merino Martínez Introducción a Fortran

Page 16: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Index

1 Introducción2 Elementos Básicos de Fortran

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

3 Ejercicios para practicar4 Para profundizar un poco más

¿Fin?

Mario Merino Martínez Introducción a Fortran

Page 17: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Ejecución condicional (if)A veces interesa que una parte del código sólo se ejecute sise verifica una condición. Por ejemplo, si el número nintroducido en el ejemplo anterior es negativo, nos gustaríaavisar al usuario. Esto puede hacerse con la construcción:

if (condición) then ... else ... end if:! ...write(*,*) ’Por favor, introduzca un numero n’read(*,*) nif (n<0) then

write(*,*) ’Atencion: el numero es negativo’else

raiz = sqrt(dble(n))end if! ...

Mario Merino Martínez Introducción a Fortran

Page 18: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Condiciones

Las condiciones van entre paréntesis. Los operadores decomparación son

<, >: menor y mayor que<=, >=: menor o igual y mayor o igual que==: igual que/=: distinto que

Se pueden construir condiciones más complicadas con losoperadores lógicos .AND., .OR., .NOT.:

(x<-3. .OR. x>=7.)

Mario Merino Martínez Introducción a Fortran

Page 19: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Index

1 Introducción2 Elementos Básicos de Fortran

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

3 Ejercicios para practicar4 Para profundizar un poco más

¿Fin?

Mario Merino Martínez Introducción a Fortran

Page 20: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Tareas repetitivas (do) ICuando se quiere hacer una operación muchas veces (o unnúmero indeterminado de veces), es muy útil emplear buclesdo.

! ...do i=1,10

write(*,*) ’Esta es la iteracion numero ’, iend do! ...

El código comprendido entre el do y el end do seejecuta tantas veces como se especifique (10)Un bucle do posee un contador (i). El contador vadesde el valor inicial hasta el final, de uno en uno.

Mario Merino Martínez Introducción a Fortran

Page 21: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Tareas repetitivas (do) IILa variable contador (i) se puede utilizar en nuestrasoperaciones si queremos.! ...s = 0do i=1,10

s = s + i**2end do! ...

En general, se puede especificar también elincremento del contador: do i=20,0,-2 (ve desdei=20 hasta i=0 de -2 en -2).Se pueden “anidar” varios bucles uno dentro de otro (verejercicios).

Mario Merino Martínez Introducción a Fortran

Page 22: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Ejemplo 2: sumatoriosSe realizan con una variable de acumulación, que hay queponer a cero inicialmente. En cada iteración se suma sobreella la expresión deseada. En este ejemplo, s = ∑n

i=1 i:program ejemplo2

implicit noneinteger :: n, ireal*8 :: swrite(*,*) ’Por favor, introduzca un numero n’read(*,*) ns = 0d0 ! Ponemos a cero la variable de acumulacióndo i=1,n

s = s + i ! Acumulamos el valor a sumarend dowrite(*,*) ’El sumatorio es: ’, s

end program ejemplo2Mario Merino Martínez Introducción a Fortran

Page 23: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Ejemplo 3: productosTambién con variable de acumulación, que hay que poner auno inicialmente. En cada iteración se multiplica con laexpresión deseada. En este ejemplo, s = ∏n

i=1 i:program ejemplo3

implicit noneinteger :: n, ireal*8 :: pwrite(*,*) ’Por favor, introduzca un numero n’read(*,*) np = 1d0 ! Ponemos a uno la variable de acumulacióndo i=1,n

p = p * i ! Acumulamos el valor del productoend dowrite(*,*) ’El producto es: ’, p

end program ejemplo3Mario Merino Martínez Introducción a Fortran

Page 24: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Index

1 Introducción2 Elementos Básicos de Fortran

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

3 Ejercicios para practicar4 Para profundizar un poco más

¿Fin?

Mario Merino Martínez Introducción a Fortran

Page 25: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Subprogramas

A veces queremos reutilizar un trozo de código en múltiplesocasiones para realizar una misma tarea en distintos lugares denuestro programa.

Las funciones y subrutinas son trozos de código(programas independientes) que pueden ser ejecutadosdesde el programa principal en cualquier momento.Tienen la misma estructura que un programa.Son “cajas negras:” mi programa las llama con unosargumentos de entrada, y recibe unos argumentos desalida, sin preocuparse de lo que sucede en ellas.Se escriben fuera del programa principal.

Mario Merino Martínez Introducción a Fortran

Page 26: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Funciones I

Se escriben entre las instrucciones function y endfunction.Hay que declararlas en el programa principal comouna variable con el atributo external.Devuelven el valor asignado al nombre de la función.Hay que declarar el nombre de la función dentro de lafunción (no deja de ser una variable más).Una vez creadas, se usan igual que las funcionesintrínsecas: e.g.: x = 1. + f(x) * 2.6.

Mario Merino Martínez Introducción a Fortran

Page 27: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Funciones II

program mainimplicit nonereal*8, external :: f

! ...write(*,*) f(3.52)! ...

end program main

function f(x)implicit nonereal*8 :: f, xf = x**2 +log(x)

end function f

Mario Merino Martínez Introducción a Fortran

Page 28: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Subrutinas I

Se escriben entre las instrucciones subroutine y endsubroutine.No hay que declararlas en el programa principal si estánen el mismo archivo de texto.Trabajan sobre los argumentos que se les entrega, quepueden ser de entrada, de salida, o de entrada/salida.No hay que declarar su nombre dentro de la subrutina (elnombre no es variable)Se llaman desde el programa principal con la instruccióncall: e.g.: call mi_sub(x,y,z)

Mario Merino Martínez Introducción a Fortran

Page 29: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

Subrutinas II

program mainimplicit none

! ...call mi_sub(x,y)write(*,*) y! ...

end program main

subroutine mi_sub(a,b)implicit nonereal*8 :: a, b! ...

end subroutine mi_sub

Mario Merino Martínez Introducción a Fortran

Page 30: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

Ejercicio guiado 1Se desea elaborar un programa que pida al usuario un númeroentero n, y que a partir de él calcule

r = 3√

n + n,

el sumatorio

S =n∑

i=1i2 = 12 + 22 + . . .+ n2,

y el factorial

P = n! =n∏

i=1i = 1 · 2 · 3 · . . . · n.

Mario Merino Martínez Introducción a Fortran

Page 31: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

Ejercicio guiado 2

Encapsular el código anterior dentro de una subrutina, que seallamada desde el programa principal para los siguientes valoresn:

n = 1, 7, 15,−4

¿Qué sucede en el último caso?

Mario Merino Martínez Introducción a Fortran

Page 32: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

Ejercicios

Número 17 (cálculos sencillos)Número 31 (funciones intrínsecas). Intentad encapsular elcódigo en funciones después.Número 46, apartados d), f), i) (bucles)Número 90 (funciones)

Mario Merino Martínez Introducción a Fortran

Page 33: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

¿Fin?

Index

1 Introducción2 Elementos Básicos de Fortran

VariablesFunciones intrínsecas e instrucciones básicasCondicionalesBuclesFunciones y subrutinas

3 Ejercicios para practicar4 Para profundizar un poco más

¿Fin?

Mario Merino Martínez Introducción a Fortran

Page 34: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

¿Fin?

¡Desde luego que no es el fin!

Fortran es ampliamente extenso. Os animo a que primerodominéis estos rudimentos, y que según os surja la necesidad,ampliéis vuestro conocimiento de Fortran. En concreto:

Vectores y matrices (arrays).Escribir con formato; escribir y leer archivos.Sentencias “exit,” “select case,” “do while.”Argumentos opcionales de las sentencias “read,” “write.”Opciones de Plato y cómo usar el debugger.Variables con atributo “allocatable,” “pointer.”Modules, interfaces, estructuras.

Mario Merino Martínez Introducción a Fortran

Page 35: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

¿Fin?

Cómo continuar

Para más información:“Introducción a FORTRAN 90”, J.J. Sánchez y C.Vázquez.Ayuda de Plato “Fortran 95 language overview.”Libros y manuales de Fortran (biblioteca).Búsquedas en internet.

Cualquier duda: [email protected] (o subid aldepartamento).

Mario Merino Martínez Introducción a Fortran

Page 36: IntroducciónaFortran - Mario Merinomariomerino.uc3m.es/assets/docs/teaching/introfortran.pdf · 2020-04-19 · Introducción Elementos Básicos de Fortran Ejercicios para practicar

IntroducciónElementos Básicos de Fortran

Ejercicios para practicarPara profundizar un poco más

¿Fin?

Imprescindibles

No olvidar NUNCA el punto “.” en real*4 y “d” enreal*8.Usar SIEMPRE “implicit none.”Leer COMPLETAMENTE los errores del compilador:nos dicen cómo resolverlos.Hacer los bucles “do” con contadores INTEGER.No hacer líneas demasiado largas. Fortran sólo lee hastala columna 132 (continuar línea con &).Escribir códigos profusamente comentados (!)

Mario Merino Martínez Introducción a Fortran