Programación Estructurada
Programación Estructurada
ALUMNO:
Carlos Hernández CI. 27.182.049
[email protected]
Introducción …………………………………………………….………………..….. 3
Ciclo Mientras y Repetir: sintaxis y métodos para salir del ciclo ……...………..30
Conclusión …………………………………………………….………..…………… 33
Webgrafía ………………………………………...………………….……..……….. 34
Introducción
Sin embargo, algunos lenguajes de programación más antiguos (como Fortran) se apoyaban
en una sola instrucción para modificar la secuencia de ejecución de las instrucciones mediante
una transferencia incondicional de su control (con la instrucción goto, del inglés "go to", que
significa "ir a"). Pero estas transferencias arbitrarias del control de ejecución hacen los
programas muy poco legibles y difíciles de comprender. A finales de los años sesenta, surgió
una nueva forma de programar que reduce a la mínima expresión el uso de la instrucción goto
y la sustituye por otras más comprensibles.
Esta forma de programar se basa en un famoso teorema, desarrollado por Edsger Dijkstra,
que demuestra que todo programa puede escribirse utilizando únicamente las tres estructuras
básicas de control siguientes:
• Secuencia: el bloque secuencial de instrucciones, instrucciones ejecutadas sucesivamente,
una detrás de otra.
• Selección: la instrucción condicional con doble alternativa, de la forma "if condición then
instrucción-1 else instrucción-2".
• Iteración: el bucle condicional "while condición do instrucción", que ejecuta la instrucción
repetidamente mientras la condición se cumpla.
Los programas que utilizan sólo estas tres instrucciones de control básicas o sus variantes
(como los bucles for, repeat o la instrucción condicional switch-case), pero no la instrucción
goto, se llaman estructurados.
3
PROGRAMACIÓN ESTRUCTURADA
Secuencia: Indica que las instrucciones de un programa se ejecutan una después de la otra,
en el mismo orden en el cual aparecen en el programa.
Selección (if y switch): También conocida como la estructura si verdadero - falso, plantea la
selección entre dos alternativas con base en el resultado de la evaluación de una condición;
equivale a la instrucción IF de todos los lenguajes de programación.
Iteración (bucles for y while): También llamada la estructura hacer – mientras - que,
corresponde a la ejecución repetida de una instrucción mientras que se cumple una
determinada condición.
Considerando innecesario y contraproducente el uso de la instrucción de transferencia
incondicional (GOTO), que podría conducir a "código estropajo", que es mucho más difícil de
seguir y de mantener, y era la causa de muchos errores de programación.
Surgió en la década de 1960, particularmente del trabajo de Böhm y Jacopini, y una famosa
carta, «La sentencia goto, considerada perjudicial», de Edsger Dijkstra en 1968 - y fue
reforzado teóricamente por el teorema del programa estructurado, y prácticamente por la
aparición de lenguajes como ALGOL con adecuadas y ricas estructuras de control.
4
2. Estructuras de control
Las estructuras de control, son instrucciones que permiten romper la secuencialidad de
la ejecución de un programa; esto significa que una estructura de control permite que se
realicen unas instrucciones y omitir otras, de acuerdo a la evaluación de una condición. Así
podemos hacer un script que nos salude cada día de la semana de una manera diferente. O
por ejemplo hacer un script que nos pida la contraseña una y otra vez hasta que suministremos
la opción correcta.
1. Selectivas
2. Repetitivas
Las primeras permiten seleccionar un camino a ejecutarse entre dos o más opciones
"por una sola vez"; y las segundas, permiten ejecutar un conjunto de instrucciones "varias
veces" mientras se cumpla una condición.
Al escribir una estructura de control, se deberá tener presente que una correcta
tabulación, permitirá que el programa sea más legible y fácil de comprender. Los lenguajes de
programación, realizan esta tabulación de forma automática, siempre y cuando se escriban
correctamente el inicio y final de cada estructura.
5
Sentencias Selectivas
6
Ejemplo: Realice un programa que verifique si un número es positivo, en caso afirmativo
imprima el mensaje indicando qué es positivo, y réstele 1, y obtenga el residuo del número
dividido para 2.
Respuesta
En este caso, la condición es: num>0; por lo tanto si es la evaluación es verdadera, entonces:
¿qué debe hacer el programa?:
Imprimir "positivo"
num = num - 1
residuo = num % 2
Las tres instrucciones deben ir en la sección afirmativa de la sentencia.
De igual manera, para identificar las instrucciones de la sección falsa, debe preguntarse:
7
Respuesta
En este caso, la condición es: num>0; por lo tanto si es la evaluación es verdadera, entonces:
¿qué debe hacer el programa?:
Imprimir "positivo"
num = num - 1
residuo = num % 2
Las tres instrucciones deben ir en la sección afirmativa de la sentencia.
Si es falso ¿qué debe hacer el programa?:
Imprimir "Negativo"
num = num + 1
IF
La InstrucciónIf,"Si" en pseudocódigo, permite alterar la secuencia seleccionando entre
dos opciones posibles. Esta instrucción puede escribirse de las siguientes formas
SI SIMPLE
En esta forma, los pasos o instrucciones que se encuentran dentro se ejecutan
únicamente cuando la evaluación de la condición sea verdadera.
8
SI COMPLETO (VERDADERO - FALSO)
En esta forma, los pasos o instrucciones que se encuentran entre el inicio y fin de la
estructura, tienen dos secciones:
1. Un conjunto de instrucciones que se ejecutan cuando la evaluación de la
condición sea verdadera
2. Un conjunto e instrucciones que se ejecutan cuando la evaluación de la
condición sea falsa.
SI ANIDADO
Es una modificación del uso de la instrucción "Si", que aprovechando la característica
de anidamiento de las estructuras de control, según la cual es posible que una estructura se
contenga a sí misma como parte de su cuerpo de instrucciones, permitiendo así elegir entre
más de dos opciones.
9
Como puede
observarse en la tabla anterior, esta característica de la instrucción if, permite decidir entre más
de dos posibilidades de respuesta, siendo posible extenderse tantas como sea necesario. Es
necesario aclarar que tanto la parte verdadera como la parte falsa pueden anidar dentro de sí
mismas otra instrucción de tipo if con o sin su correspondiente caso contrario.
SWITCH
La Instrucción Switch, es una alternativa a la instrucción if, y se caracteriza por ofrecer
la posibilidad de elegir entre más de dos opciones. En pseudocódigo, se le conoce de
diferentes formas:
1. En caso de
2. Según sea
Pero al igual que en la instrucción if, el camino a seguir depender del valor que se
evalúe. En esta instrucción no existe una condición explícita en su sintaxis, sin embargo de
acuerdo al lenguaje es posible evaluar un caracter o un número, siendo esta una limitación
que impide la escritura directa de condiciones; por lo que es útil en algunos problemas en los
que se requiere elegir opciones directas. Su sintaxis es la siguiente:
10
Ejemplo Switch Case
11
12
Sentencias Repetitivas
Las estructuras de control repetitivas, son aquellas que permiten ejecutar un conjunto
de instrucciones varias veces, de acuerdo al valor que genere la expresión relacional y/o lógica.
Esto significa que una instrucción repetitiva permite saltar a una instrucción anterior para volver
a ejecutarla.
A las estas estructuras se les conoce también como ciclos o bucles, por su
funcionamiento. Existen 3 estructuras repetitivas:
1. While
2. Do-while
3. For
Las tres instrucciones tienen el mismo fin, y difieren únicamente en su sintaxis, siendo
posible sustituir una solución en la que se utiliza "while", por una en la que se utiliza "do-while"
o "for".
En los diagramas de flujo, un ciclo se representa de la siguiente manera:
13
En la imagen se puede observar que las líneas de flujo, indican el orden a seguir y según
el valor de la condición, continuará ejectuándose el mismo conjunto de instrucciones o saldrá
del ciclo. Entre las tres instrucciones hay pequeñas variaciones de representación gráfica que
serán detalladas en la explicación de uso de cada una de ellas.
While
La instrucción "While", es una estructura de control repetitiva que puede impedir la
ejecución de un conjunto de instrucciones, si la evaluación de la expresión relacional y/o lógica
es falsa. Esto significa que se convierte en repetitiva únicamente cuando la evaluación de la
condición es verdadera.
14
Se lee de la siguiente forma: Mientras la evaluación de la expresión lógica sea verdadera
realice la secuencia de acciones. Esto significa que si la primera vez, que evalúa la expresión
lógica, obtiene un valor "false", entonces la secuencia de acciones no se realizaría nunca, pero
si es verdadera "true" entonces la secuencia de acciones se realizaría varias veces hasta que
el valor de la expresión lógica sea falso. Al llegar a Fin Mientras siempre volverá
automáticamente a la expresión lógica.
Gráficamente se vería así:
15
Do-While
La instrucción "do-while", es otra estructura de control repetitiva que se caracteriza
porque ejecuta un conjunto de instrucciones sin realizar previamente la evaluación de la
expresión relacional y/o lógica. Esto significa utilizando "do-while" la secuencia de acciones se
realizará por lo menos una vez, pese a obtener un valor falso.
Se lee de la siguiente forma: Haga la secuencia de acciones mientras la expresión lógica
sea verdadera. Esto significa que la primera vez la secuencia de acciones se realiza sin haber
verificado la expresión lógica. Si luego de realizar UNA VEZ la secuencia de acciones, se
obtiene un resultado verdadero (true) se repite la secuencia de acciones, y si se obtiene un
falso, continúa con las instrucciones fuera de la estructura repetitiva.
16
FOR
La instrucción "for", es una tercera estructura de control repetitiva, su principal característica
radica en el hecho de que dentro de sÍ misma, constan la inicialización de variables, así como
también las variables de incremento/decremento, necesarias en un ciclo. En este ciclo la
secuencia de acciones se realiza mientras un valor inicial llega a un valor final.
17
3.
Una estructura de decisión es llamada así precisamente porque tiene la funcionalidad de tomar
acciones en base al resultado lógico de una decision, permite que la ejecución de un algoritmo
tome distintos caminos, que llevan a distintos resultados, dependiendo de la condición o
condiciones presentes en la estructura de decisión.
18
Estructura de Decisión Simple: Se utiliza cuando sólo se ejecutan acciones por la alternativa
de verdadero o falso.
19
Concepto de Sintaxis
La palabra sintaxis proviene del término en latín syntaxis, que a su vez deriva de un
vocablo griego que se traduce al español como “coordinar”. Se trata de la rama de la gramática
que ofrece pautas creadas para saber cómo unir y relacionar palabras a fin de elaborar
oraciones y expresar conceptos de modo coherente. En la informática, la sintaxis se entiende
como el grupo de normas que marcan las secuencias correctas de los elementos propios de
un lenguaje de programación.
Las construcciones if, else y elseif permite condicionar la ejecución de uno o varios bloques de
sentencias al cumplimiento de una o varias condiciones.
23
Estructura condicional doble: IF - ELSE- Este tipo de estructura permite implementar
condicionales en los que hay dos acciones alternativas: Si se verifica una determinada
condición, ejecutar un serie de instrucciones (bloque 1). Si no, esto es, si la condición NO se
verifica, ejecutar otra serie de instrucciones (bloque 2). En otras palabras, en este tipo de
estructuras hay una alternativa: se hace una cosa o se hace la otra. En ambos casos, se sigue
por la instrucción siguiente a la estrucutra IF - ELSE
24
La sintaxis y el diagrama de flujo, se muestran en la Figura
Las estructuras condicionales nos permiten ejecutar una sentencia a partir de una
condición, si ésta condición se cumple, entonces se ejecuta la sentencia en el programa, en
caso de no cumplirse dicha condición, se puede hacer otra condición en el programa para que
se cicle, marque error y vuelva a solicitar la información hasta que se cumpla la condición, de
no validarse la condición en la que los datos ingresados sean correctos o que no cumplan con
la condición establecida en el programa, el programa podría tronar.
25
5.Estructuras de control iterativas: Concepto y tipos
Una instrucción iterativa o repetitiva, también conocida como bucle, tiene la misión de
ejecutar las mismas instrucciones de código una y otra vez mientras que se cumpla una
determinada condición.
En la vida diaria existen situaciones que frecuentemente se resuelven realizando una
determinada secuencia de pasos que puede repetirse muchas veces, ejemplo:
• El proceso que seguimos para comer, mientras no se termine la comida.
• El proceso de insertar monedas, hasta que se abone la cantidad necesaria.
• Las operaciones que realizamos para llamar por teléfono, mientras no se logre la
comunicación.
Como se puede observar estos son algoritmos que se hacen cotidianamente, pero
tienen la particularidad de que la ejecución de alguno de sus pasos puede repetirse muchas
veces, mientras no se logre la meta trazada. A este tipo de algoritmo se le conoce como
algoritmos iterativos o repetitivos.
• la estructura while, donde se repite una serie de instrucciones si se cumple una cierta
condición.
• la estructura do-while, donde se ejecuta una serie de intrucciones, para a
continuación repetirse una y otra vez si se cumple una cierta condición.
• la estructura for-to, donde se repite una serie de instrucciones un número
determinado de veces.
While
La instrucción "While", es una estructura de control repetitiva que puede impedir la
ejecución de un conjunto de instrucciones, si la evaluación de la expresión relacional y/o lógica
es falsa. Esto significa que se convierte en repetitiva únicamente cuando la evaluación de la
condición es verdadera.
26
Se lee de la siguiente forma: Mientras la evaluación de la expresión lógica sea verdadera
realice la secuencia de acciones. Esto significa que si la primera vez, que evalúa la
expresión lógica, obtiene un valor "false", entonces la secuencia de acciones no se
realizaría nunca, pero si es verdadera "true" entonces la secuencia de acciones se
realizaría varias veces hasta que el valor de la expresión lógica sea falso. Al llegar a Fin
Mientras siempre volverá automáticamente a la expresión lógica.
27
Do-While
La instrucción "do-while", es otra estructura de control repetitiva que se caracteriza
porque ejecuta un conjunto de instrucciones sin realizar previamente la evaluación de la
expresión relacional y/o lógica. Esto significa utilizando "do-while" la secuencia de acciones se
realizará por lo menos una vez, pese a obtener un valor falso.
28
For
La instrucción "for", es una tercera estructura de control repetitiva, su principal característica
radica en el hecho de que dentro de sÍ misma, constan la inicialización de variables, así como
también las variables de incremento/decremento, necesarias en un ciclo. En este ciclo la
secuencia de acciones se realiza mientras un valor inicial llega a un valor final.
29
6. Ciclo Mientras y Repetir: sintaxis y métodos para salir del ciclo
Un ciclo cuya condición es True parece ser un ciclo infinito (o sea que nunca va a terminar).
¡Pero eso es gravísimo! ¡Nuestros programas tienen que terminar!
Afortunadamente hay una instrucción break, que nos permite salir de adentro de un ciclo (tanto
sea for como while) en medio de su ejecución.
30
En esta construcción:
while <condicion>:
<hacer algo 1>
if <condif>:
break
<hacer algo 2>
El sentido del break es el siguiente:
Se evalúa <condición> y si es falsa se sale del ciclo.
Se ejecuta <hacer algo 1>.
Se evalúa <condif> y si es verdadera se sale del ciclo (con break).
Se ejecuta <hacer algo 2>.
Se vuelve al paso 1.
31
Como se puede ver entonces, es bastante simple, solo hay que notar algunas cosas
interesantes: la primera y más importante es que la variable de control debe ser distinta
en cada ciclo, fíjate que el ciclo externo usa la variable 'i' como variable de control
mientras que el ciclo interno usa la 'j'. También debes notar que en el bloque interno de
instrucciones podrías poner otro ciclo de cualquier tipo y al interior de este otro y así
sucesivamente, cambiando el nombre de la variable de control (usar 'k' por ejemplo)
para evitar mal funcionamiento. Finalmente debes saber que aunque son ciclos
anidados no dejan de ser ciclos independientes en realidad, así que puedes poner las
instrucciones que desees al interior de cualquier de ellos.
32
CONCLUSION
33
WEBGRAFÍA
34