Estructuras Basicas de la Programacion Imperativa
Programación estructurada:
La programación estructura es una metodología de programación que trata fundamentalmente de construir programas que sean fácilmente comprensibles.
Esta metodología esta basada en la técnica de desarrollo de programas por refinamientos sucesivos.
La estructura de los programas imperativas se representan tradicionalmente mediante diagramas de flujo (flow-chart)
Secuencia
- La estructura mas sencilla para emplear en la descomposición es utilizar una secuencia de acciones o partes que se ejecutan de forma sucesiva.
- La estructura secuencial ya ha sido utilizada en los ejemplos realizados en los temas anteriores. Todos ellos han sido resueltos como una secuencia de sentencias elementales del lenguaje.
Selección
- La estructura de selección consiste en ejecutar una acción u otra, dependiendo de una determinada condición que se analiza a la entrada de la estructura.
- Solo tiene una única entrada y una única salida.
Iteración
- Es la repetición de una acción mientras que se cumpla una determinada condición.
- La estructura de iteración mas general es aquella en que la condición se analiza a la entrada de la estructura y antes de iniciar cada nueva repetición.
- La estructura de iteración se denomina también Bucle.
Estructuras anidadas
- Cualquier parte o acción del programa puede a su vez estar constituida por cualquiera de las estructuras descritas. Por tanto, el anidamiento entre ellas puede ser tan complejo como sea necesario.
- Mediante la técnica de refinamientos sucesivos se definen inicialmente las estructuras mas externas del programa y en los pasos sucesivos se va detallando la estructura de cada acción compuesta.
Expresiones Condicionales
- Para utilizar las estructuras de selección e iteración es necesario expresar las condiciones que controlan ambas estructuras.
- Mayor que >
- Menor que <
- Igual a =
- Mayor o igual que >=
- Diferente a <> #
- Menor o igual que <=
- Conjunción (E1 y E2) AND &
- Disyunción (E1 o E2) OR
- Negación (no E1) NOT
Nivel de Prioridad da las distintas operaciones
Las operaciones se evaluan en el orden en que estan escritas en la expresion, de izquierda a derecha.
- Operador de Negación: NOT
- Operador Multiplicativo: {*} / DIV MOD AND &
- Operador Aditivo: + - OR
- Operador de Comparación: < > = >= <= <> #
Las reglas BNF
Expresión ::= Expresión_simple [Operador_comparador Expresión_simple]
Expresión_simple ::= [ + | - ] Termino {Operador_sumador Termino}
Termino ::= Factor { Operador_multiplicador Factor }
Factor ::= Identificador_de_Variable | Identificador_de_Constante | Valor_Constante | (Expresión) | NOT Factor
Operador_comparador ::= < | > | = | <= | >= | <> | #
Operador_sumador ::= + | - | OR
Operador_multiplicador ::= * | / | DIV | MOD | AND | &
Estructuras básicas en Modula-2
Secuencia
- Secuencia_de_sentencias ::= Sentencia {; Sentencia}
Sentencia IF
- Consiste en evaluar la expresión de Condición y a continuación ejecutar la acción A si se cumple la condición o la acción B si no se cumple.
- Las palabras claves IF, THEN, ELSE, END separan las distintas partes de la sentencia
- Sintaxis
IF Condición THEN Secuencia_de_sentencias
ELSIF Condición THEN Secuencia_de_sentencias
ELSE Secuencia_de_sentencias]
END;
Sentencia WHILE
- Significa que mientras la expresión Condición resulta cierta, se ejecuta la acción de forma repetitiva.
- Si la condición resulta falsa en la primera evaluación, la acción no se ejecuta nunca.
- Sintaxis
WHILE Condición DO
Acción
END
Sentencia FOR
- La condición de la iteración se limita a comprobar si se ha alcanzado el limite correspondiente al número de repeticiones previstas.
- Sintaxis:
FOR Variable := Valor_inicial TO Valor_final
[BY Valor_incremento] DO
Secuencia_de_sentencias
END;
- Variable ::= Identificador
- Valor_inicial ::= Expresión
- Valor_final::= Expresión
- Valor_incremento::= Expresión_constante