Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf ·...
Transcript of Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf ·...
![Page 1: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/1.jpg)
1
AnAnáálisislisis NumNumééricoricoy y
ProgramaciProgramacióónnFacultad de Ingeniería Química
Primavera 2009
Dra. Lilia Meza Montes – Instituto de Física
![Page 2: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/2.jpg)
2
Conceptos Básicos
1. Varios2. Estructuras de programación3. Lenguaje Fortran
LMM
![Page 3: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/3.jpg)
3
Notas importantes para el curso• Buenos hábitos
a) Estudiarb) Aprender las instruccionesc) Respaldar (y borrar si es posible) los archivosantes de apagar la computadorad) Preguntar lo que no se entiendee) Hacer sus propios programas (no copiarlos)f) Escribir pseudocódigo
LMM
![Page 4: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/4.jpg)
4
1. Varios
Se presentan conceptosrelacionados con programación y
Fortran
![Page 5: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/5.jpg)
5
Programación• Programa: conjunto de instrucciones para que
la computadora realice una tarea• Algoritmo: procedimiento para obtener una
solución aproximada.• Estructuras de un algoritmo
a) secuenciab) selecciónc) repetición
Convención: mayúsculas para instruccionesdefinidas por la computadora
LMM
![Page 6: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/6.jpg)
6
Fortran• Formula Translation Fortran (traducción de
fórmulas)• Proceso para correr un programa:
Edición: las instrucciones se guardan en archivos (con extensión for: nombre.for)
Compilación: se revisan las instrucciones, si hay errores, genera mensajes indicando tipo de error y línea donde ocurre. Si no hay errores, genera archivo en lenguaje de máquina.
• Liga y ejecución: Si instrucciones en variosarchivos, los liga y genera un archivo ejecutable, el cual al ser llamado ejecutará las instrucciones.
![Page 7: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/7.jpg)
7
Formato de un programaprincipal en Fortran
PROGRAMPROGRAM nombrenombreC C DeclaracionDeclaracion de variablesde variables
REALREALINTEGERINTEGERCHARACTERCHARACTER
**C C InstruccionesInstrucciones del del programaprograma**C Fin del C Fin del programaprograma
STOPSTOPENDEND
NotasNotas: En Fortran 77 se : En Fortran 77 se escribenescriben instruccionesinstrucciones a a partirpartir de 7a de 7a columnacolumna y y hastahasta la 72a.la 72a.C,* C,* parapara comentarioscomentarios (se (se escribenescriben en 1a en 1a columnacolumna))! ! ComentariosComentarios, se , se ignoraignora lo lo escritoescrito despuésdespués de de esteeste signosigno LMM
![Page 8: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/8.jpg)
8
Instrucciones en un programa• Representación de información sencilla (declaración de
constantes, variables y sus tipos)
• Representación de información más compleja (estructuras de datos, arreglos y registros)
• Fórmulas matemáticas (asignación , reglas de prioridad y funciones intrínsecas)
• Entrada/Salida (de informació)
• Representación lógica (secuencias, selección y repetición)
• Programación modular (funciones y subrutinas)
LMM
![Page 9: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/9.jpg)
9
Convención en Pseudocódigo
Asignación de valorvariable=valor
Para entrada: INPUT variable
Para salida:DISPLAY variable
variable=valor
READ(*,*)variable
WRITE(*,*)variableDispositivoDispositivo de de salidasalida: :
monitormonitorFormatoFormato librelibre en en salidasalida
LMM
DispositivoDispositivo de de entradaentrada: : tecladoteclado
FormatoFormato librelibre en en entradaentrada
Instruccionesen Fortran
![Page 10: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/10.jpg)
10
Variables
EnterasEnteras: : empiezanempiezan con con laslas letrasletras I,J,K, L, M, NI,J,K, L, M, NRealesReales EmpiezanEmpiezan con con laslas letrasletras AA--H, OH, O--ZZCaracteresCaracteres:: La La cadenacadena de de caracterescaracteres entreentre comillascomillas
PrecisiónPrecisión asignadaasignada: : SIMPLESIMPLE: : realesreales (real*4 con 6 (real*4 con 6 cifrascifras significativassignificativas, 16 bits), 16 bits)EnteroEntero: integer*4 : integer*4 CaracteresCaracteres 1 1 caractercaracter
Localidad de almacenamiento de datos que puede ser modificada durantela ejecución del programa.
Cada variable tiene un nombre que la identifica. Características de los nombres:
•Debe comenzar con un caracter del alfabeto•No puede contener un punto o caracter de tipo de declaración (!, =, etc.) •Debe ser única en el contexto. •No debe tener más de 255 characters.
TIPOS DE VARIABLES
LMM
valorvalor
AA
![Page 11: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/11.jpg)
11
Ejemplo de programaPROGRAM PROGRAM Ejemplo_variablesEjemplo_variables
C C DeclaracionDeclaracion de variablesde variablesinteger ninteger nreal a1real a1character*3 character*3 var_carvar_car
C C AsignacionAsignacion de de valoresvaloresn=2n=2a1= 1.4ea1= 1.4e--44var_carvar_car=‘=‘abcabc’’write(*,*)n,a1,var_carwrite(*,*)n,a1,var_carn=3n=3write(*,*)’n’=,nwrite(*,*)’n’=,nSTOPSTOPENDEND
NotasNotas::nombrenombre de de programaprogramacomentariocomentario
variable variable enteraenteravariable realvariable realcadenacadena con 3 con 3 caracterescaracteres
comentariocomentarion n tienetiene valor 2valor 2real en real en notaciónnotación científicacientíficatrestres caracterescaracteresescribeescribe valoresvalores de variablesde variablesmodificamodifica nnescribeescribe cadenacadena de de caracterescaracteres y y valor de nvalor de n
terminatermina programaprogramafinalizafinaliza
![Page 12: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/12.jpg)
12
Arreglos (=arrays)•• EscalaresEscalares
Solo tienen un valor, se asigna con nombre=valor•• VectoresVectores
tienen n componentes, n es la dimensiónEjemplo Si n=3, un vector A=(a1,a2,a3) tiene componentes a1, a2, a3.
Varias formas de Declaración, ejemplos (alguna de las dos):REAL A(3)DIMENSION A(3)
Asignación de valores:A(1) = valor1A(2) = valor2A(3) = valor3
Notas: Indices y dimensiones son enterosPuede irse incrementando dimensión, se declaran en forma diferente; pero en nuestro caso será fija.
A (1)A (1)
A A
A (2)A (2) A (3)A (3)
![Page 13: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/13.jpg)
13
Arreglos (=arrays)•• MatricesMatrices
Una matriz de tamaño m x n (m renglones, n columnas)
Elemento aij renglón i, columna j
Declaración (3 x 2), alguna de las dos:
REAL A(3,2)DIMENSION A(3,2)
Asignación de valoresA(1,1 )= valor11A(2,2) = valor22A(3,2) = valor32
Nota: Puede irse incrementando dimensión, se declaran en forma diferente; pero en nuestrocaso ésta será fija.
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
=
mnmmm
n
n
aaaa
aaaaaaaa
A
.........
...
321
2232221
1131211
Un Arreglo en general, puedetener varios índicesEjemplo tamaño 3x2x4Declaración
REAL A(3,2,4)Asignación de valores
A(1,1,1)=valor111A(3,2,4)=valor324
![Page 14: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/14.jpg)
14
Ejemplo
PSEUDOCÓDIGOInput nDO i=1,n
A(i)=iENDDO
Input jDISPLAY A(j)
FIN
PLANTEAMIENTOPLANTEAMIENTOHacerHacer un un programaprograma queque1.1. Declare un Declare un arregloarreglo ((enteroentero) de un ) de un
ciertocierto nnúúmeromero de de elementoselementos((dimensidimensióónn) )
2.2. Lea n Lea n ≤≤dimension del dimension del arregloarreglo3.3. GenereGenere arregloarreglo taltal queque la la ii--éésimasima
componentecomponente sea sea igualigual al al ííndicendice de de la la componentecomponente..
4.4. Lea Lea enteroentero jj5.5. EscribaEscriba el valor de la el valor de la componentecomponente
j del j del arregloarreglo
TAREA: 2.9, 2.17,2.18 de TAREA: 2.9, 2.17,2.18 de ChapraChapra
![Page 15: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/15.jpg)
15
2. 2. EstructurasEstructurasdede
programaciprogramacióónn
LMM
![Page 16: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/16.jpg)
16
Diagrama de flujo• Representación visual o gráfica de un algoritmo• Utiles para planear, aclarar o comunicar la lógica
del programa
Flujo de la lógica.Arco indica queno hay conexión
entre flechas
Líneas de flujo
Inicio o final de programa
Terminal
FunciónNombreSímbolo
![Page 17: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/17.jpg)
17
Comparación, pregunta o decisión
que derterminacaminos alternativos
Decisión
De datos o información
Entrada-salida
Confluencia de líneas de flujo
Unión
Cálculos o manipulación de
datos
ProcesoFunciónNombreSímbolo
![Page 18: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/18.jpg)
18
Ciclo: Repeticiónpredeterminada de
iteraciones
Ciclo de cuenta
controlada
Continúa en otrapágina
Conexiónde fin de página
FunciónNombreSímbolo
PseudocódigoPseudocódigo••ExpresionesExpresiones semejantessemejantes a a laslas del del códigocódigo de la de la computadoracomputadora en en lugarlugar de de símbolossímbolos gráficosgráficos
![Page 19: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/19.jpg)
19
a) Estructura secuencial: instrucción tras instrucción
Instrucción1
Instrucción2
Instrucción3
Instrucción 1
Instrucción 2
Instrucción 3
Diagrama de flujo Pseudocódigo
LMM
![Page 20: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/20.jpg)
20
Operaciones aritméticas• Pseudocódigo+ Suma- Resta* Multiplicación/ DivisiónPotencia: ab
• Sintaxis en Fortran+-*/** a**b= ab
// Concatenación de caracteres
EjecutaEjecuta primeroprimero laslas operacionesoperacionesde mayor de mayor prioridadprioridadmayor mayor prioridadprioridad PotenciaPotenciasiguientesiguiente *, /*, /siguientesiguiente +,+,--
LMM
‘‘a’//’a’//’b’b’ ‘ab‘ab’’
![Page 21: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/21.jpg)
21
EjemplosSintaxisSintaxis en Fortranen Fortran
a+ba+b*c*c
a*c**2a*c**2
(a*c)**2(a*c)**2
A+b/cA+b/c
((A+b)/cA+b)/c
A/(b*c)A/(b*c)
a/b*ca/b*c
EcuaciónEcuación
a+bca+bc
A*cA*c22
(ac)(ac)22
A+ (A+ (b/cb/c))
((A+b)/cA+b)/c
A/(A/(bcbc))
(A/(A/b)/cb)/c
ObservacionesObservaciones
TieneTiene * mayor * mayor prioridadprioridad queque ++
PrimeroPrimero elevaeleva c al c al cuadradocuadrado
PrimeroPrimero multiplicamultiplica, , resultadoresultado al al cuadradocuadradoPrimeroPrimero divide divide b/cb/c y le y le sumasuma AA
PrimeroPrimero sumasuma ((A+bA+b) y lo divide) y lo divide
PrimeroPrimero multiplicamultiplica bcbc y y luegoluegodividedividePrimeroPrimero divide A y b, divide A y b, luegoluego dividedivide
Si hay Si hay dudaduda, , particularmenteparticularmente en en operadoresoperadores de de mismamisma prioridadprioridad, , usarusar ()()LMM
![Page 22: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/22.jpg)
22
Ejercicios
• Hacer un programa que:1. Lea dos números2. Realice dos operaciones aritméticas con
ellos3. Escriba los dos resultados especificando
el tipo de operación realizada, por ejemplo‘Suma=‘ ó ‘ab**2’.
![Page 23: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/23.jpg)
23
b) Estructuras de selección
División del flujo del programa considerandoel resultado de una condición lógica
Condición lógica: igualdad, desigualdad, criterio.
LMM
![Page 24: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/24.jpg)
24
IF/THEN una alternativa[ IF=si (condicional); THEN=entonces]
Condición?
Bloque Verdadero
Verdadero
IF condición THENBloque Verdadero
ENDIF
DiagramaDiagrama de de flujoflujo PseudocPseudocóódigodigo
••Se Se analizaanaliza la la condicicondicióónn••Si Si eses VerdaderaVerdadera
se se ejecutanejecutan instruccionesinstruccionesdel del BloqueBloque VerdaderoVerdadero
••Si no Si no eses VerdaderaVerdadera se se ignoraignoraBloqueBloque VerdaderoVerdadero y y contincontinúúaaejecuciejecucióónn despudespuééss de ENDIFde ENDIF
EjemploEjemploLMM
![Page 25: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/25.jpg)
25
Expresión Matemática Sintaxis en Fortran
(A.ne.B)ne=not equal to
A≠B
(A.eq.B)eq=equal to (igual a)
A=B
(A.ge.B)ge=greater or equal to
A≥B
(A.gt.B)gt=greater than (mayor que)
A>B
(A.le.B)le=less than or equal to
A≤B
(A.lt.B)lt=less than (menor que)
A<B
LMM
![Page 26: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/26.jpg)
26
EjemploEjemplo
LMM
![Page 27: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/27.jpg)
27
IF/THEN/ELSE dos alternativas[ ELSE=de otro modo, de lo contrario]
Condición?
Bloque Verdadero
Verdadero
IF condición THENBloque Verdadero
ELSEBloque Falso
ENDIF
Bloque Falso
Falso
DiagramaDiagrama de de FlujoFlujoPseudocPseudocóódigodigo
••Se Se analizaanaliza la la condicicondicióónn••Si Si eses VerdaderaVerdadera
se se ejecutaejecuta BloqueBloqueVerdaderoVerdadero••Si Si eses FalsaFalsa se se ejecutaejecutaBloqueBloque FalsoFalso••ELSE divide los ELSE divide los bloquesbloques••ENDIF fin de ENDIF fin de estructuraestructura
EjemploEjemplo LMM
![Page 28: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/28.jpg)
28
EjemploEjemplo
LMM
![Page 29: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/29.jpg)
29
IF/THEN/ELSEIF múltiples alternativas[ ELSEIF “palabra” creada para computación]
Condición1?
Bloque 1
V IF condición1 THENBloque 1
ELSEIF condición2Bloque 2
ELSEIF condición3Bloque3
ELSEBloque4
ENDIF
F
Condición3?
Condición2?
Bloque 4
Bloque 2
Bloque 3
F
FV
V
DiagramaDiagrama de de FlujoFlujo
PseudocPseudocóódigodigo
••SemejanteSemejante a ELSEa ELSE••VariasVarias condicionescondiciones••ÚÚltimaltima se se indicaindica con con ELSEELSE
LMM
![Page 30: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/30.jpg)
30
CASE [ case=caso]
ExpresiónDe
prueba
Bloque 4
PseudocódigoSELECT CASE Expresión de prueba
CASE Valor1Bloque1
CASE Valor2Bloque2
CASE Valor3Bloque3
CASE ELSEBloque4
END SELECT
Bloque 1 Bloque 3Bloque 2
Tantas como sea necesario
Valor1
Otro
DiagramaDiagrama de de FlujoFlujo
LMM
Valor2
![Page 31: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/31.jpg)
31
Sintaxis en FortranSelect Case (expresión de prueba)
[Case (valor n de la lista)[Bloque n]] . . .
[Case Default si el valor no esta en la lista[Bloque else-n]]
End Select ]
•El contenido entre [] es opcional•expresión de prueba puede ser número (real o entero) o cadena de caracteres
Su evaluación da un valor valor llamado índice del caso. •Se ejecuta el Bloque n correspondiente al valor n de la expresión de prueba•Bloque: secuencia de cero o más instrucciones o construcciones
EjemploEjemplo LMM
![Page 32: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/32.jpg)
32
EjemploEjemplo
LMM
![Page 33: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/33.jpg)
33
c) c) EstructuraEstructura de de repeticirepeticióónn
•Ejecución repetida de instrucciones en un ciclo o loop(Loop= rizo, lazo)•Se clasifican según la forma en que terminan
LMM
![Page 34: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/34.jpg)
34
Loop de decisióntermina con decisión lógica
Condición?
Bloque 2
V
DOBloque 1
IF condición EXITBloque 2
ENDDO
Bloque 1
F
LMM
PseudocPseudocóódigodigo
![Page 35: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/35.jpg)
35
Sintaxis en Fortran
DO [etiqueta[, ] ] WHILE (expresión)Bloque1
IF (condición) EXITBloque2
[etiqueta] END DO
Etiqueta: número para especificar una instrucción ejecutable
Expresión: es una expresión escalar (un solo valor) lógica(puede ser Falsa o Verdadera).
ProblemaProblema 2.12.1
LMM
![Page 36: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/36.jpg)
36
Loop controlado por contador o loop DOFOR número determinado de repeticiones o iteraciones
[DO=hacer]
i>fin?
Bloque
i=inicio DO FOR i=inicio, fin, incrementoBloque
ENDDO
F
i=i+incremento
V
Si Si incrementoincremento <0<0terminatermina cuandocuando i<fini<fin
PseudocPseudocóódigodigo
••IndiceIndice I I tomartomaráá valoresvalores desdedesde incioinciohastahasta fin fin aumentandoaumentando segsegúúnnincrementoincremento••Para Para cadacada valor de i, valor de i, mientrasmientras ii≤≤finfin, , ejecutaejecuta BloqueBloque••Al Al llegarllegar a ENDDO, se a ENDDO, se incrementaincrementa el el valor de ivalor de i••TerminaTermina cuandocuando i>fini>fin
LMM
![Page 37: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/37.jpg)
37
Loop controlado por contador o loop DOFOR
Número determinado de repeticiones o iteraciones
••IndiceIndice ii: variable con valor : variable con valor inicialinicial inicialinicial y valor final y valor final finfin•• SE PRUEBA SI SE PRUEBA SI ii ≤≤ finfin
sisi lo lo eses ejecutaejecuta BloqueBloque y y vuelvevuelve al al inicioinicio del del lazolazo
en ENDDO: se en ENDDO: se incrementaincrementa i i porpor valor valor definidodefinido porporusuariousuario (default 1)(default 1)
•• Si Si i i > > finfin sale del loopsale del loop
LMM
![Page 38: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/38.jpg)
38
Sintaxis en Fortran[[ NombreNombre::]] DODO [[etiquetaetiqueta, ] ] , ] ] ííndicendice==inicioinicio,,finalfinal, , incrementoincremento
BloqueBloque[[etiquetaetiqueta]] finalizacionfinalizacion [[NombreNombre]]
NombreNombre ((OpcionalOpcional): ): nombrenombre de la de la construcciconstruccióónn DODO. . etiquetaetiqueta ((OpcionalOpcional en END DO): en END DO): nnúúmeromero parapara identificaridentificar la la llííneanea de de finalizacifinalizacióónn, se , se escribeescribe en en laslas primerasprimeras 5 5 columnascolumnasÍÍndicendice: : variable variable enteraentera queque tomatoma el valor el valor inicialinicial inicioinicio, , aumentaaumenta porpor la la cantidadcantidad incrementoincremento (default 1)(default 1) mientrasmientras sea sea menormenor o o igualigual queque finalfinalBloqueBloque: : secuenciasecuencia de cero o de cero o mmááss instruccionesinstrucciones o o construccionesconstrucciones. . FinalizaciFinalizacióónn:: llííneanea parapara indicarindicar final del DO. final del DO. PuedePuede ser END DO, ser END DO, CONTINUE o CONTINUE o unauna instrucciinstruccióónn..
NOTA: NOTA: PuedePuede haberhaber un DO un DO dentrodentro de de otrootro ((anidadoanidado), ), puedenpueden tenertenermismamisma etiquetaetiqueta
EjemplosEjemplos enddoenddo continuecontinue instrucciinstruccióónnLMM
![Page 39: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/39.jpg)
39
Ejemplo con finalización END DO
LMM
![Page 40: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/40.jpg)
40
Ejemplo con finalizaciónCONTINUE
Notar la etiqueta de continuación 10 en las primeras 5 columnas
LMM
![Page 41: Análisis Numérico y Programación - ifuap.buap.mxlilia/numerico/Estructuras_programacion_1.pdf · la computadora realice una tarea ... cadena con 3 caracteres comentario n tiene](https://reader031.fdocuments.co/reader031/viewer/2022022103/5bc21e4309d3f291178b61a6/html5/thumbnails/41.jpg)
41
Ejemplo final con instrucciónNotar la etiqueta de continuación 10 en las primeras 5 columnas de la
instrucción write
EjemploEjemplo: : sumasuma de de primerosprimeros n n naturalesnaturalesLMM