Sie sind auf Seite 1von 34

Programación y Fortran

Organización

• Parte 1: Objetivos e introducción

• Parte 2: Proceso de diseño de un algoritmo

• Parte 3: El lenguaje Fortran


Parte 1

Objetivos e Introducción
Objetivos
ƒ Desarrollar buenos algoritmos
ƒ Implementar el algoritmo en el lenguaje
ƒ Documentación
ƒ Actualización, mantenimiento y extensión
del código
ƒ Aplicar los conocimientos a un caso
particular
Estos puntos son imprescindibles para el desarrollo de
software, sobre todo cuando el desarrollo se hace con la
participación de varias personas que trabajan en equipo.
Introducción
• Conceptos y definiciones básicas

• Tipos de lenguajes: sus características

• FORTRAN: breve reseña


Conceptos y definiciones básicas
ƒ Instrucción: orden o acción clara y precisa.
ƒ Algoritmo: descripción precisa de una suceción de
instrucciones para realizar un trabajo en un número finito de
pasos.
ƒ Programa: es la codificación de un algoritmo en algún
lenguaje.
ƒ Proceso: ejecución de una o varias instrucciones en
forma secuencial.
ƒ Variable: es un lugar de memoria donde se almacena un
dato que puede ir cambiando. Tiene los siguientes atributos:
nombre y tipo de dato. El tipo de dato delimita las
operaciones que podrán realizarse con la variable.
Tipos de lenguajes: sus características

Interprete: las líneas de programa se van


traduciendo a lenguaje de máquina una a una a
medida que el flujo del programa pasa por ellas,
esto hace lento el proceso de ejecución.

Compilado: una vez escrito el programa fuente


este es traducido al lenguaje de máquina en
bloque. A este grupo pertenece el lenguaje
FORTRAN (FORmula TRANslator). El proceso de
ejecución es rápido.
Obtención del ejecutable en un lenguaje
compilado
1) Escritura del código fuente: escribir el código utilizando
un editor.
2) Compilar: es un proceso (llevado a cabo por un programa) que
oficia de traductor entre el lenguaje de programación y el lenguaje
objeto o lenguaje de máquina. Acepta un archivo fuente (.f .for .h) y
genera un archivo objeto (.obj .mod). Consta de los siguientes
pasos: preprocesamiento, compilación y optimización, generación del
código objeto.

3) Linkeditar: es un proceso que enlaza las referencias simbólicas


entre los módulos objeto, buscando la definición de las variables o
funciones que faltan en los objetos o las librerías para producir el
programa ejecutable. Cuando encuentra la definición de un objeto
buscado la copia en el archivo resultante de salida
FORTRAN: breve reseña
FORTRAN (FORmula TRANSlator) es el primer
lenguaje científico, desarrollado en la década de 1950 y
ampliamente utilizado hasta hoy en ciencia e ingeniería.
Es un lenguaje de alto nivel, lo cual facilita la tarea del
programador al generar el código fuente (archivo de
texto o en código ASCII). Es de tipo compilado,
minimizando por ello los tiempos de ejecución.
Es un lenguaje pensado para resolver fórmulas,
contiene un gran número de funciones predefinidas que
permite escribir códigos cortos y claros, tanto para
comprender como para modificar, sobre todo si están
bien documentados
Parte 2

Proceso de diseño de un algoritmo


(Herramientas para extraer el algoritmo de un código existente)
Contenido
1) Fases para resolver un problema
2) Pasos para desarrollar un programa
3) Diseño estructurado programación
4) Representaciones de los algoritmos
5) Control de calidad y tipos de errores
6) Depuración y prueba
7) Documentación
Fases para resolver un problema

• Formulación
9 Adoptar un modelo matemático
9 Elegir y/o generar el modelo numérico
• Solución
9 Proceso algebraico para encontrar
el conjunto solución
• Interpretación
9 Presentación de resultados para su
evaluación

Formulación Solución Interpretación


NOTA:

ƒ El código se especializa en la solución


(proceso sistematizado, largo y complejo)

ƒ Se deja al usuario la formulación y la


interpretación de resultados
(proceso creativo)
Pasos para desarrollar un programa
a) Análisis preliminar
b) El algoritmo
c) Representar el algoritmo y codificar
d) Prueba y depuración de errores
e) Documentación
f) Mantenimiento y extensión de
capacidades
a) Análisis preliminar
Es el proceso de interpretación detección y
ordenamiento de las etapas que llevan a la
resolución del problema.
Sus etapas son:
9 Interpretar la esencia del problema
9 Detectar los datos relevantes y necesarios (entrada)

9 Identificar la información/resultados a obtener (salida)

9 Análisis de las combinaciones de composiciones posibles


y/o necesarias, su orden e interrelación

9 Evaluar cada planteo para asegurar la mejor solución


b) ¿Qué es un algoritmo y para que sirve?
ALGORITMO
Es la secuencia de pasos lógicos que permiten
encontrar la solución de un problema
mediante una sucesión finita de pasos.

¿Cuáles son los atributos principales de un


buen algoritmo?
ƒ Sean suficientemente generales (prever contingencias)
ƒ Sean claros para facilitar la comprensión, su implementación
y sus posteriores modificaciones o extensiones
ƒ Cada paso es determinado (sin ambigüedades y sin depender
de la casualidad)
casualidad
ƒ Debe involucrar un número finito de pasos
Diseño estructurado

El diseño estructurado es una serie de reglas que


ayudan a desarrollar “buenos” algoritmos,
Para obtener programas eficientes y consistentes

Diseño modular: consiste en dividir el algoritmo


(programa) en módulos o subprogramas que se
escriben y prueban por separado. (Como las
divisiones de un libro)

Diseño “Top – Down”: es un proceso efectivo


para reconocer los módulos.
Los algoritmos se componen de:

Instrucciones elementales
• Asignación
• Entrada / Salida

Estructuras de control (composiciones)


• Secuencia
• Alternativa (o decisión)
• Repetitiva (o iterativa)
Instrucciones elementales

• Asignación: es la instrucción fundamental, permite


almacenar información (dato) en una variable. La
asignación no es una igualdad. No son posibles
asignaciones donde los tipos son incompatibles
• Entrada / Salida: permiten la comunicación con todo
aquello que está fuera del algoritmo, o bien a toda
persona ajena a su desarrollo, usuarios.
Entrada: permite asociar un valor a una variable
desde fuera del algoritmo.
Salida: permiten mostrar los resultados obtenidos
por el algoritmo al usuario.
Estructuras lógicas básicas
(composiciones)

• Secuencia: ejecutar instrucciones en forma


consecutiva. Se realizan una vez en el mismo lugar
del algoritmo.
• Alternativa o selección: permite decidir en función
del valor de verdad (V / F) de una expresión lógica,
habilitando la ejecución de un solo proceso en cada
caso.
• Repetitiva o iterativa: permite repetir una
composición tantas veces como sea necesario. El
número de veces debe ser finito.
• NOTA: las composiciones descriptas
pueden combinarse dependiendo de la
situación.
Pueden darse en:
un mismo nivel (una después de otra)
en forma anidada (una dentro de otra)

Todas las posibles combinaciones son


válidas.
c) Representar el algoritmo y codificar
ƒ Diagramas: permiten especificar y representar
el algoritmo, involucra la construcción
propiamente dicha.
de llaves
de flujo
ƒ Pseudocódigo: es un “puente” entre los
diagramas y el código fuente. Utiliza
instrucciones similares a las de un código en
lugar de los símbolos.
ƒ Código fuente: es un archivo de texto, escrito
con las reglas de sintaxis del lenguaje de
programación
Diagrama de llaves
Principio del algoritmo: comprende las instrucciones que se
realizan por UNICA vez y al COMIENZO del algoritmo.
(inicialización de variables mediante asignaciones o instrucciones de
entrada)

Cuerpo del algoritmo: formado por las composiciones que


resuelven el nudo del problema, respetando el orden e
interrelación de la etapa de análisis.

Fin del algoritmo: comprende las instrucciones que se


realizan por UNICA vez y al FINAL del algoritmo.
(mostrar resultados mediante instrucciones de salida )
Simbología
9 LLAVES: para estructuras que respeten el esquema
principio – cuerpo – final.
9 CORCHETES: para composiciones secuenciales.
9 “o” exclusivo: para separar posibilidades de composición
alternativa
9 Intermedio INT: para composiciones secuenciales
intermedias.
9 Sin acción S / A : para composiciones secuenciales vacías.
Principio del algoritmo Proceso Principio

Nombre del
Cuerpo del algoritmo
algoritmo

Fin del algoritmo Proceso Final


Diagrama de flujo
Consta de símbolos gráficos que permiten construir los
patrones lógicos del algoritmo. Permite la visualización de
la estructura global, y una evaluación de la misma.
9 Composiciones secuenciales
9 Expresiones lógicas de decisión
9 Conexiones
9 Intersecciones
9 Inicio o final
9 Entrada o Salida
9 Conteo controlado
Pseudocódigo
Se definen palabras clave que se escriben
en imprenta mayúscula:
9 Secuencia: se escribe cada instrucción en una
linea
9 Alternativa:
IF / THEN / ELSE / END IF
(ELSE IF)
9 Repetitiva:
DO / IF… EXIT / END DO
DO / Vc = inicia , termina , paso / END DO
Correspondencia

SECUENCIA

LLAVE FLUJO PSEUDOCÓDIGO

Tarea 1 Tarea 1 Tarea 1

Tarea 2 Tarea 2 Tarea 2

Tarea 3 Tarea 3
Tarea 3
Correspondencia
ALTERNATIVAS

LLAVE FLUJO PSEUDOCÓDIGO

Princ. Alt.
Principio alternativa
IF ( cond) THEN
Tareas 1
Expresión lógica Tareas 1
ELSE
Tareas 1 Tareas 2
Tareas 2
END IF
Expresión lógica Tareas. 2

Fin Alt.
Fin alternativa
Correspondencia
REPETITIVAS

LLAVE FLUJO PSEUDOCÓDIGO

DO
Principio repetitiva IF (cond) EXIT
Tareas
Cuerpo de Tareas END DO
Repetir
(criterio repetitiva
de fin)

Fin repetitiva
DO
Tareas
IF (cond) EXIT

END DO
Correspondencia
REPETITIVAS (cont)

FLUJO PSEUDOCÓDIGO FLUJO PSEUDOCÓDIGO

DO
DO vc = in, fin, paso
Tareas
Tareas
IF (cond) EXIT
END DO
Tareas

END DO
Etapas de desarrollo de programas
• Las etapas se presentan secuencialmente, si se cometen
errores estos suelen provocar que se revean pasos anteriores.
Para programas no demasiado complejos las etapas son:

(1) Análisis Diseño Pseudocódigo

Errores al tratar datos

Prueba de Compilación Código


ejecución y linkeo Fuente

Errores al compilar

Errores al ejecutar
d) Prueba y depuración de errores

Son acciones que se realizan sobre el código


Objetivo es asegurar la confiabilidad de los resultados
Se preparan lotes de datos para controlar que se estén
cubriendo todas las posibilidades
Detectar y depurar los errores.
Los errores pueden ser de los siguientes tipos:
de sintaxis (compilación) Simples de detectar y corregir

de enlace o construcción (linkeo)

en tiempo de ejecución

en la lógica Problemáticos de solucionar


e) Documentación

Comprende desde
la elección de los nombres de las variables,
comentarios en el cuerpo del código
a la escritura de manuales

MUY IMPORTANTE
DOCUMENTAR AL MAXIMO
f) Mantenimiento y extensión de capacidades

Comprende las mejoras y actualizaciones en


la codificación
y
adicionar al código nuevas rutinas o funciones
que permitan resolver problemas con mayor
complejidad en relación a los que motivaron
el desarrollo original

Es invaluable para estas etapas contar con la máxima


documentación

Das könnte Ihnen auch gefallen