CARACTERÍSTICAS DE LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA La programación estructurada se basa en una metodología
de desarrollo de programas llamada refinamientos sucesivos: Se plantea una operación como un todo y se divide en segmentos más sencillos o de menor complejidad.
Una vez terminado todos los segmentos del programa, se
procede a unificarlos. Si se ha utilizado adecuadamente la programación estructurada, esta integración debe ser sencilla y no presentar problemas al integrar la misma, y de presentar algún problema, será rápidamente detectable para su corrección.
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA La representación gráfica de la programación estructurada
se realiza a través de diagramas de flujo, el cual representa el programa con sus entradas, procesos y salidas.
FLUJO
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA La programación estructurada propone segregar los procesos en
estructuras lo más simple posibles, las cuales se conocen como secuencia, selección e iteración. Ellas están disponibles en todos los lenguajes modernos de programación imperativa en forma de sentencias. Combinando esquemas sencillos se pueden llegar a construir sistemas amplios y complejos pero de fácil entendimiento. Sentencias de selección: estas sentencias evalúan una condición que puede cumplirse o no. Dependiendo del resultado (verdadero o falso) de la evaluación de esta condición el flujo del programa discurre por un camino u otro. Ambos caminos son excluyentes, de tal manera que sólo se ejecutan las sentencias que se encuentren en el camino determinado por la evaluación de la condición. En muchos lenguajes de alto nivel , esta sentencia adquiere la forma: Si [sentencias]
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA Sentencias
de selección: C++ proporciona tres tipos de estructuras de decisión: If (decisión simple): realiza (selecciona) una acción si la condición es verdadera, o evita la acción si la condición es falsa. Diagrama de Flujo
Condició n
Verdadero
Acciones
Falso
Pseudocódigo Si (condición) entonces S1 … Sn Fin_Si
Código en C++ If (condición) {
S1 … Sn }
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA If/Else (decisión doble): ésta selecciona entre dos diferentes
acciones. Realiza una acción si la condición es verdadera o realiza una acción diferentes si la acción es falsa. Diagrama de Flujo
Verdadero
Acciones
Condició n
Falso
Acciones
Pseudocódigo Si (condición) entonces S11 … S1n Sino S21 … S2m Fin_Si
Código en C++ If (condición) {
S11 … S1n } Else {
S21 … S2m }
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA Switch (decisión múltiple): realiza una o muchas acciones
diferentes, dependiendo del valor de una expresión.
Diagrama de Flujo
Condició n
1 … Acciones 1
2
3
n Acciones 2
Acciones 3
…
Acciones n
Pseudocódigo Caso de (expresión) hacer lista 1: sentencias 1 lista 2: sentencias 2 … Sino sentencias n Fin_Caso
Código en C++ Switch(expresión) { case valor 1: sentencias 1; break; case valor 2: sentencias 2; break; … default: //opcional sentencias n; }
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA Sentencias de iteración: establecen que un conjunto de sentencias se
repitan hasta que se cumpla una determinada condición que es evaluada en cada repetición o ciclo. Este tipo de sentencias también se conocen como “bucles” o “lazos” y adquieren diferentes formas según se evalúe la condición al principio o al final del lazo o se conozca a priori el numero de veces que debe ejecutarse el mismo. C++ proporciona tres tipos de estructuras de iteración: While (repita mientras): las sentencias del lazo se repiten mientras la condición (expresión lógica) sea verdadera. Cuando la condición es falsa termina la ejecución del lazo. Diagrama de Flujo
Condició n
Verdadero
Acciones
Falso
Pseudocódigo Repita mientras (condición) S1 … Sn Fin_RM
Código en C++ While (condición) {
S1 … Sn }
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA Do/while (hacer mientras):
las sentencias del lazo se repiten mientras la condición (expresión lógica) sea verdadera. Cuando la condición es falsa termina la ejecución del lazo. Es una sentencia “Repita Mientras” con la diferencia que evalúa la condición al final del lazo y no al principio.
Diagrama de Flujo
Acciones
Verdadero
Condició n Falso
Pseudocódigo Hacer S1 … Sn Mientras(condición)
Código en C++ Do {
S1 … Sn } while (condición);
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA For (repita para):
se le conoce “estructura controlada por un contador” y se utiliza cuando se conoce con anterioridad a que empiece a ejecutarse el lazo, el numero de veces que éste se va a repetir.
Diagrama de Flujo Pseudocódigo Código en C++ Repita para (expr1; expre2; expre3) For(expr1; expre2; expre3) S1 { Calcular valor inicial … S1 y final Sn … Asignar el Fin_RP Sn valor inicial al contador } Contado r> valor final Falso Incrementar contador
Acciones
Verdadero
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA Sentencias de secuencia (o de asignación): este tipo de
sentencias no rompe la dirección natural del orden de ejecución de un programa, de tal manera que, tras ejecutarse una sentencia secuencial, el flujo del programa se sitúa en la sentencia inmediatamente posterior a ésta en el código del programa. Diagrama de Flujo
Sentencia 1
Sentencia 2
Sentencia 3
… Sentencia n
Pseudocódigo S1 S2 … Sn
Código en C++ S1; S2; … Sn;
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA Constantes: son tipos de datos (con valores numéricos o de cadena) que permanecen invariables, sin
posibilidad de cambiar el valor que tienen durante el curso del programa. Una constante corresponde a una longitud fija de un área reservada en la memoria principal del computador, donde el programa almacena valores fijos. Por ejemplo: El valor de pi = 3.141592 Por conveniencia, el nombre de las constantes suele escribirse en mayúsculas en la mayoría de lenguajes. En C++ existen cuatro tipos de constantes: constantes literales constantes definidas constantes enumeradas constantes declaradas
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA Constantes literales: son las más usuales; toman valores tales como
45.32564, 222 o bien “Introduzca sus datos” que se describen directamente en el texto del programa. Las constantes literales, en general, se clasifican también en cuatro grupos, cada uno de los cuales puede ser de cualquiera de los tipos: constantes enteras constantes caracteres constantes de coma flotante constantes cadena
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA Constantes definidas: son identificadores que se asocian con
valores literales constantes y que toman determinados nombres. Las constantes definidas pueden recibir nombres simbólicos mediante la directiva #define Ejemplo: #define PI 3.141592 #define VALOR 54
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA Constantes enumeradas: permiten asociar un identificador, tal como Color, con una
secuencia de otros nombres, tales como Azul, Verde, Rojo y Amarillo. Las constantes enumeradas permiten crear listas de elementos afines. Un ejemplo típico es una constante enumerada de lista de colores, que se puede declarar como: enum Colores {Rojo, Naranja, Amarillo, Verde, Azul, Violeta} Cuando se procesa esta sentencia, el compilador asigna un valor que comienza en 0 a cada elemento enumerado; así, Rojo equivale a 0, Naranja es 1, etc. El compilador enumera los colores por usted.
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA Constantes declaradas: son como variables: sus valores se almacenan en memoria, pero no se
pueden modificar. Las constantes declaradas utilizan el cualificador const que permite dar nombres simbólicos a constantes a modo de otros lenguajes. El formato general es: const tipo nombre = valor; Ejemplos: const char CARÁCTER=’@’; const int OCTAL=0233; const char CADENA []=”Curso de C”; Las definiciones const especifican tipos de datos, terminan con punto y coma y se inicializan como variables. La directiva #define no especifica tipos de datos, no utiliza el operador de asignación (=) y no termina con punto y coma.
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA Macros: una macro es una operación definida en la directiva #define, al igual que con las constantes definidas. Las
macros pueden definirse con o sin argumento. Una macro sin argumento se procesa igual que una constante definida. En una macro con argumentos, éstos se sustituyen en el texto de sustitución y luego la macro se expande; es decir, el texto de sustitución reemplaza al identificador de la macro y a la lista de argumentos en el programa. Ejemplo: considere la siguiente definición de una macro con un argumento para el área de un circulo: #define PI 3.14159 #define AREA_CIRCULO (x) (PI*(x)*(x)) Siempre que aparezca AREA_CIRCULO (x) en el programa, el valor de x se sustituirá por el x en el texto de sustitución. La constante definida PI se sustituirá por su valor y la macro se expandirá en el programa. Por ejemplo la instrucción: area = AREA_CIRCULO(4); se expande como: area = (3.14159*(4)*(4)); Las constantes definidas y las macros pueden descartarse utilizando las directivas #undef