ANEXO-02 Introduccion a la programacion (11

Anuncio
INTRODUCCIÓN A LA PROGRAMACIÓN
Introducción ........................................................................................................................ 2
Traducción de un programa. Compilación .......................................................................... 3
Compilación Bajo nivel........................................................................................... 4
Compilación Alto nivel ........................................................................................... 4
Intérpretes ................................................................................................................ 4
Fases para el diseño de programas ...................................................................................... 5
Verificación de programas .................................................................................................. 6
Diagrama de flujo de los programas ................................................................................... 7
Símbolos Básicos utilizados en los organigramas .............................................................. 7
Conceptos sobre la programación estructurado .................................................................. 8
Recursos abstractos .......................................................................................... 8
Razonamiento deductivo Top Down................................................................ 8
Estructuras básicas .............................................................................................................. 9
Concatenación .................................................................................................. 9
Alternativa........................................................................................................ 9
Repetitiva ......................................................................................................... 10
Combinación de las estructuras básicas .............................................................................. 11
Introducción a la programación
2
INTRODUCCIÓN
Un PROGRAMA se puede definir como un conjunto de INSTRUCCIONES y ÁREAS DE
DATOS o VARIABLES, o lo que es lo mismo Instrucciones u Ordenes que manipulan datos.
Estas instrucciones deberán ser introducidas en la memoria del ordenador para que sean
ejecutadas por su procesador.
En los primeros ordenadores, para generar un programa ejecutable era necesario introducir las
instrucciones del programa en las celdas de su memoria utilizando algún procedimiento
material, como tarjetas o cintas de papel previamente perforadas, de modo que cada perforación
representaba un 1 y la ausencia de perforación un 0. En el futuro a este tipo de programa lo
denominaremos PROGRAMA OBJETO o MÁQUINA.
Semejante trabajo era sumamente tedioso, estaba sometido a un elevado porcentaje de errores y
requería gran cantidad de tiempo, dado que un programa normal podía tener varios miles de
instrucciones. Por tal motivo fue necesario desarrollar algunas "herramientas" que permitiesen
aliviar la escritura de los programas y su posterior transcripción a la memoria central en forma
de instrucciones máquina.
Estas herramientas son los llamados LENGUAJES DE PROGRAMACIÓN. Estos permiten
escribir las instrucciones de los programas, no a base de ceros y unos, sino mediante símbolos o
caracteres (letras, signos numéricos y especiales) fácilmente entendibles por el programador. A
estos tipos de lenguajes se les denomina LENGUAJES SIMBÓLICOS.
Por ejemplo, algunas de las representaciones de instrucciones simbólicas podrían ser : SUM
para sumar, SUB para restar, DIV para dividir, MOV para mover datos, etc.
Posteriormente y mediante un programa denominado TRADUCTOR o COMPILADOR se
traducen las instrucciones simbólicas a instrucciones de máquina “entendibles y ejecutables”
por el procesador.
Los primeros lenguajes traductores dieron lugar a la traducción una por una. Es decir, una
instrucción de programa simbólico se traducía a una sola instrucción de programa máquina,
ejecutándose posteriormente según la secuencia especificada. Ello implicaba tener un gran
conocimiento del funcionamiento del procesador.
Por ejemplo, si ha de llevarse a cabo una suma, uno de los valores implicados ha de estar en un
acumulador antes de que se ejecute la instrucción de suma.
Ejemplo: Calcular el valor de X de la siguiente operación matemática.
(A+B) x (C+D)
X= ─────────
(E+F)
A, B, C, D, E y F se interpretan como áreas de datos o variables. Se entiende que el valor de
estas variables debe conservarse en todo momento.
MOV B,M:
SUM A,M:
MOV D,N:
SUM C,N:
MOV F,P:
SUM E,P:
MLT M,N:
DIV N,P:
MOV P,X:
Llevar el valor de B a M.
Sumar A y M. El resultado dejarlo en M.
Llevar el valor de D a N.
Sumar C y N. El resultado dejarlo en N.
Llevar el valor de F a P.
Sumar E a P. El resultado dejarlo en P.
Multiplicar los valores de M y N. El resultado dejarlo en N.
Dividir el valor de N entre el valor de P (es decir dividir (A+B) x (C+D) entre E+F). El resultado
dejarlo en P.
Llevar P (el resultado) a X.
Introducción a la programación
3
A este tipo de lenguajes de programación se les denomina “Ensambladores” y son considerados
de BAJO NIVEL ya que el lenguaje simbólico utilizado guarda cierta analogía con el
funcionamiento del procesador, o lo que es lo mismo, con las instrucciones del programa
máquina.
Más tarde, aparecieron las “macroinstrucciones”. Es decir, que se podía utilizar una sola
instrucción en el programa y al traducirla o compilarla se generaba un conjunto de instrucciones
máquina. Este método incrementó considerablemente la capacidad de los lenguajes de
programación. Estos tipos de lenguajes son considerados de ALTO NIVEL ya que no
recuerdan en absoluto el «hardware» del ordenador ni su funcionamiento interno como ocurre
con los lenguajes de bajo nivel, por tal motivo dichos lenguajes emplean terminología
fácilmente comprensible y que se aproxima más o menos al lenguaje humano.
Ejemplo:
Calcular el valor de la función X de la expresión matemática, utilizando un lenguaje de
programación alto nivel como el FORTRAN, QBASIC, VISUAL BASIC...
(A+B) x (C+D)
X = ───────────────
E+F
X = (A+B) * (C+D) / (E+F)
TRADUCCION DE UN PROGRAMA. COMPILACION
Un lenguaje de programación puede considerarse que está dividido en dos partes:
1)
El lenguaje propiamente dicho, con sus normas de utilización y sus reglas para la
codificación de instrucciones, etc.
2)
Un programa denominado traductor o compilador, que permita traducir el programa
fuente generado mediante el lenguaje de programación a programa de máquina.
La entrada a un traductor se denomina PROGRAMA FUENTE. Este programa es el escrito
por el programador aplicando las reglas de codificación del lenguaje de programación,
estableciendo las necesidades del problema y el método de solución. Antes de que el
programador escriba el programa fuente, deberá haber analizado y definido el problema por
completo.
La salida del traductor se denomina PROGRAMA OBJETO, que consiste en la traducción del
programa fuente, generando el programa que ejecutará el procesador.
Introducción a la programación
4
Un programa objeto probado puede utilizarse una y otra vez, con datos relativos al problema,
para obtener resultados periódicos (tal como el programa tipo de obtención de nómina o
inventario, etc.)
Al ejecutarse la traducción de un programa fuente, el traductor se encarga de «revisar» si las
instrucciones del programa, escritas en lenguaje simbólico, obedecen a las reglas del lenguaje de
programación que utiliza. En caso de encontrar incorrecciones de símbolos o de sintaxis, da
aviso de las mismas por medio de la impresora o el monitor y no procede a la traducción
propiamente dicha hasta que el programador corrija adecuadamente las instrucciones erróneas.
Una vez que el traductor ha verificado la corrección de todas las instrucciones que corresponden
al programa fuente, se efectúa la traducción.
COMPILADORES PARA LENGUAJES DE PROGRAMACIÓN DE BAJO NIVEL
La traducción se realizará sobre el programa fuente completo y mediante la traducción una por
una, es decir una instrucción del programa fuente da lugar a una instrucción del programa objeto
o programa máquina. Son excepciones las macroinstrucciones, que generarán varias. Se
emplean para traducir programas escritos en lenguajes de bajo nivel o ENSAMBLADIORES,
muy orientados a la máquina.
COMPILADORES PARA LENGUAJES DE PROGRAMACIÓN DE ALTO NIVEL
La traducción se realizará sobre el programa fuente completo y mediante la traducción una a
varias, es decir, una instrucción del programa fuente origina varias del programa objeto o
máquina y se emplean para traducir programas escritos en lenguajes orientados al hombre,
llamados lenguajes de alto nivel.
INTERPRETES
Se emplean para facilitar el diseño del programas fuente. El programa fuente se tecleará
utilizando el programa EDITOR del Lenguaje de programación. Existen versiones de
intérpretes, como son los intérpretes PUROS o intérpretes SEMIPUROS (semi-intérpretes)
Los intérpretes semipuros, facilitan enormemente la introducción del programa fuente, ya que
en el momento de teclear una orden en el EDITOR, detecta los errores de sintaxis. Los llamados
puros, visualizan el error a la hora de ejecutar el programa.
Introducción a la programación
FASES PARA EL DISEÑO DE PROGRAMAS
Las fases generales para diseñar un programa ejecutable son:
(Analizar estos procesos con el Lenguaje de Programación Visual Basic)
1ª FASE ** CARGA DEL PROGRAMA FUENTE **
Lenguaje de
programación
EDITOR +
Programa
INTERPRETE
Programa
Fuente
2ª FASE ** PROCRESO DE COMPILACION **
Si se detectan errores
Programa
FUENTE
Programa
TRADUCTOR
Listado
errores de
formato
Si no se detectan errores
Programa
OBJETO
ejecutable
3ª FASE ** EJECUCION DEL PROGRAMA **
Datos de
Entrada
Ejecución del
Programa Objeto
Salida de
datos
5
Introducción a la programación
6
VERIFICACIÓN DE PROGRAMA
Consiste en procesar el programa, con datos de prueba. Esto se lleva a cabo para asegurarse que
el programa no contiene errores lógicos y de que es capaz de producir un resultado correcto.
Los errores del programador son difíciles de evitar, de hecho, es muy raro el programa que
funciona correctamente la primera vez que se procesa con los datos de prueba. En la mayoría de
los casos, son necesarias varias pasadas de prueba antes de que se encuentren y corrijan todos
los errores. El traductor encuentra por sí mismo la mayoría de los errores obvios (Errores de
sintaxis) durante la pasada de traducción, pero casos tales como indefinición de variables,
desbordamientos, falta de previsión de diferentes alternativas en las operaciones de prueba, etc.
solamente se detectarán durante las pruebas de verificación.
Ejemplo:
Si en un programa deseamos dividir A entre B se codificará:
LET X= A/B (dividir A entre B).
Si codificamos LET X A/ B el traductor detectaría error de sintaxis o formato en el programa
fuente. Pero si por error del programador se codifica LET X=A/B1. Entonces el traductor del
programa no encontraría ningún error de lenguaje. Ahora bien, una vez traducido el programa,
ejecutaría otras operaciones no previstas en el análisis, apareciendo lógicamente resultados
erróneos.
Para evitar esto, los programas en lenguaje máquina (programas objeto) deben someterse a una
depuración a base de una serie de pruebas (juego de ensayos) que prevean las situaciones, que
en la práctica, van a producirse durante la ejecución del programa.
Introducción a la programación
7
DIAGRAMA DE FLUJO DE LOS PROGRAMAS
Será la representación gráfica de la solución del problema con un cierto grado de detalle de
modo que facilite la visión general de la solución del problema, de un modo gráfico. Dicha
representación puede desglosarse en varios diagramas con el fin de dividir el programa principal
en varios módulos.
Para poder realizar el flujo lógico de los procesos en los diagramas, esto es, la secuencia de
ejecución, se utilizan una serie de símbolos, cada uno de los cuales representa una acción a
tomar por el ordenador, como pueden ser: decisiones, lecturas, escrituras, etc.
SIMBOLOS BÁSICOS UTILIZADOS EN LOS DIAGRAMAS DE FLUJO
Introducción a la programación
8
CONCEPTOS SOBRE LA PROGRAMACIÓN ESTRUCTURADA
Se puede considerar que el estructuralismo consiste en estudiar un determinado problema
tomando como partida unas estructuras básicas, las cuales, convenientemente manipuladas,
permiten construir un esquema dentro del cual puede encontrarse una explicación satisfactoria
para cualquier aspecto particular del problema, así como para el problema considerado en su
totalidad
De otro modo, la Programación Estructurada puede describirse como un conjunto de técnicas
que en mayor o menor medida incorporan:
PROGRAMACION ESTRUCTURADA Consta de:
- Recursos Abstractos
- Razonamiento Deductivo Top Down
Concatenación
- Estructuras Básicas Alternativa
Repetitiva
RECURSOS ABSTRACTOS
Concebir un programa en términos de recursos abstractos consiste en descomponer una
determinada acción compleja en términos de un número de acciones más simples. Estas
acciones simples serán como MACROINSTRUCCIONES para un ordenador inexistente
(BLOQUES), es decir, no se habrá llegado a nivel de instrucción, sino de bloque, de alguna
estructura básica
FIESTA DE
LA ESCUELA
RELACIONES
INSTITUCIO
NALES
BÚSQUEDA DE
FONDOS
DIRECCIÓN
ESCUELA
ENTIDADES
COMERCIALES
SERVICIO
BAR
RAZONAMIENTO DEDUCTIVO TOP DOWN
Consiste en obtener un razonamiento del problema detallando cada bloque, es decir partiendo de
una superinstrucción o bloque ir desglosándolo hasta obtener un conjunto de instrucciones
ejecutable por el ordenador, con un determinado lenguaje de programación.
Compra de X
boletos
ORGANIZACIÓN
LOTERIA
Agruparlos en
bloques
Introducción a la programación
9
ESTRUCTURAS BASICAS
Todo organigrama puede plantearse utilizando solamente tres estructuras básicas. Cada
estructura se compondrá de macroinstrucciones o bloques
CONCATENACIÓN
Permite la descomposición del problema en un determinado número de acciones, que se
ejecutarán siempre en secuencia, sin bifurcaciones posibles ni omisiones
A
B
N
ALTERNATIVAS
Verifica una determinada condición y bifurca la ejecución del programa. Admite tres
matizaciones:
IF condición THEN acción-A
Si se cumple la condición realizar A, en caso contrario pasar a la siguiente estructura
Acción A
A
IF condición THEN A ELSE B
Si se cumple la condición hacer A, en caso contrario B
Acción A
Acción
B
Introducción a la programación 10
CASE condición OF (A,B,...N)
Permite elegir entre varias opciones
A
B
C
N
REPETITIVAS
Permiten representar acciones que ocurren un número conocido o desconocido de veces. Se
admiten dos posibilidades diferentes:
WHILE condición DO A (de 0 a n)
Ejecutar la acción A "MIENTRAS QUE" se cumpla la condición. El número de veces que se
repita la acción puede ser 0
A
REPEAT A UNTIL condición (de 1 a n)
Ejecutar la acción A "HASTA QUE" se verifique la condición . La acción tendrá lugar por lo
menos una vez.
A
B1
C
Introducción a la programación 11
COMBINACIÓN DE LAS ESTRUCTURAS BÁSICAS
Nivel 0
Nivel 1
Nivel 2
A
A
A
B
B1
B1
C
B1
B11
B11
B1
C
B1
C
Nivel 4
A
B1
B111
B111
B111
B112
B112
B112
B112
Introducción a la programación 12
Descargar