SlideShare une entreprise Scribd logo
1  sur  29
Lenguajes de Programación:
Estructuras de Control
Autor(es): • Mtr. Luis Fernando Aguas
Estructuras básicas
La programación estructurada es una forma de escribir programas de
computadora deforma clara, utilizando únicamente tres estructuras:
secuencia, selección e iteración; siendo innecesario y no
permitiéndose el uso de la instrucción o instrucciones de
transferencia incondicional.
La programación estructurada surge a finales de los años 1960 con el
objetivo de realizar programas confiables y eficientes, y que además
fueran escritos de manera de facilitar su comprensión posterior.
Hoy en día las aplicaciones informáticas son mucho más ambiciosas
que las necesidades de aquellos años, por lo que se desarrollaron
nuevas técnicas, tales como la programación orientada a objetos y el
desarrollo de entornos de programación que facilitan la programación
de grandes aplicaciones.
De todas formas, el paradigma estructurado tiene vigencia en
muchos ámbitos de desarrollo de programas y constituye una buena
forma de iniciarse en la programación de computadoras.
.
Estructuras básicas
El teorema del programa
estructurado, de Böhm-Jacopini,
demuestra que todo programa puede
escribirse utilizando únicamente las
tres instrucciones de control
siguientes:
.
Estructuras básicas
A C C I O N 1
A C C I O N 2
A C C I O N N
2
Condicion
Accion
SINO Condicion
Accion
SI
Accion
NO
1
C o n d ic io n
S i
N o
A c c io n e s
C on d icion N o
A c cio n es
S I
.
Estructuras básicas
El flujo de control de un programa
La expresión flujo de control hace referencia al orden en el que se
ejecutarán las instrucciones de un programa, desde su comienzo hasta
que finaliza. El flujo normal de ejecución es el secuencial. Si no se
especifica lo contrario, la ejecución de un programa empezaría por la
primera instrucción e iría procesando una a una en el orden en que
aparecen, hasta llegar a la última.
Algunos programas muy simples pueden escribirse sólo con este flujo
unidireccional. No obstante, la mayor eficacia y utilidad de cualquier
lenguaje de programación se deriva de la posibilidad de cambiar el orden
de ejecución según la necesidad de elegir uno de entre varios caminos en
función de ciertas condiciones, o de ejecutar algo repetidas veces, sin
tener que escribir el código para cada vez.
Con frecuencia, el programador necesita que el programa no se
comporte sólo de modo secuencial. Por ejemplo, calcular una funcion f(x)
para los X > 0.
.
Estructuras básicas
El flujo de control de un programa
También puede ocurrir que interese que un grupo de instrucciones se
ejecute repetidamente hasta que se le indique que se detenga. Por
ejemplo, calcular el promedio de notas para cada uno de los alumnos de
un curso, o realizar algún cálculo con cada uno de los elementos de un
vector.
Para las dos situaciones planteadas existen dos soluciones: las
sentencias de control selectivas y las repetitivas. Éstas permiten que
el flujo secuencial del programa sea modificado. También cumplen con
este objetivo las sentencias denominadas de invocación o salto.
.
Estructuras básicas
Según lo expresado, las estructuras de decisión simple y doble
permiten seleccionar entre dos alternativas posibles. Sin embargo, la
instrucción SI-ENTONCES puede ser utilizada también en casos de
selección de más de dos alternativas. Esto es posible anidando estas
instrucciones. Es decir, una estructura SI-ENTONCES puede contener a
otra, y esta a su vez a otra. La representación en pseudocódigo es la
siguiente:
SI <condición_1> ENTONCES
< sentencias_1 >
SINO
SI <condición_2> ENTONCES
< sentencias_2 >
SINO
SI <condición_3> ENTONCES
< sentencias_3 >
SINO
.
.
FIN-SI
FIN-SI
FIN-SI
Como se puede observar, el
anidamiento de instrucciones
alternativas permite ir descartando
valores hasta llegar al bloque de
instrucciones que se debe ejecutar.
En las instrucciones SI anidadas, las
instrucciones ENTONCES y FIN-SI se
aplican automáticamente a la
instrucción SI anterior más próxima.
A fin de que las estructuras anidadas
sean más fáciles de leer, es práctica
habitual aplicar sangría al cuerpo de
cada una.
.
Estructuras básicas
Ejemplo: Un sensor toma (lee) la temperatura ambiente y de
acuerdo al rango en que se encuentre, debe emitir un mensaje.
La escala es la siguiente:
Mayor que 100 “Temperatura muy alta – Mal funcionamiento”
Entre 91 y 100 “Rango normal”
Entre 51 y 90 “Bajo el rango normal”
Menor que 50 “Muy frío – Apague el equipo”
ALGORITMO Sensor
INICIO
LEER temperatura
SI temperatura > 100 ENTONCES
ESCRIBIR “Temperatura muy alta – Mal funcionamiento”
SINO
SI temperatura > 90 ENTONCES
ESCRIBIR “Rango normal”
SINO
SI temperatura > 50 ENTONCES
ESCRIBIR “Bajo el rango normal”
SINO
ESCRIBIR “Muy frío – Apague equipo”
FIN-SI
FIN-SI
FIN-SI
FIN
.
Estructuras básicas
La sentencia IR-A (go to)
La sentencia GO TO pertenece a un grupo de sentencias conocidas
como sentencias de salto (jump). La característica de este grupo es
hacer que el flujo de control salte a otra parte del programa. Otras
sentencias de este grupo son interrumpir o romper (BREAK),
continuar (CONTINUE), volver (RETURN), lanzar (THROW). Las dos
primeras se utilizan generalmente con sentencias de alternativa
múltiple. Para retornar de la ejecución de funciones o métodos se
usa RETURN.
La sentencia GO TO se utilizaba mucho en los primeros lenguajes de
programación porque era la única manera de saltar de una
instrucción del programa a otra.
Esta instrucción consta de una sentencia IR_A y una sentencia
asociada con una etiqueta.
Cuando se ejecuta esta instrucción, se transfiere el control del
programa a la etiqueta asociada.
.
La sentencia IR-A (go to)
La representación en pseudocódigo es la siguiente:
INICIO
.
.
IR_A etiqueta_1
.
.
FIN
etiqueta_1:
. // El flujo salta aquí
El efecto de esta instrucción es transferir sin condiciones el control del programa a la
etiqueta especificada. Es una de las operaciones más primitivas para traspasar el control de
una parte del programa a otra. Sin embargo, su uso produce código inconsistente,
incompleto o complicado de mantener. Justamente por ello en los años 60 y 70, cuando
surgió la programación estructurada, la comunidad informática se expresó a favor de otras
sentencias de control (IF ó bucles FOR y DO-WHILE) en lugar del GOTO.
.
Estructuras básicas
La sentencia IR-A (go to)
Tal creencia está tan arraigada que el GOTO es muy criticado y
desaconsejado por todos los que se dedican a la enseñanza de la
programación.
Si bien la instrucción GOTO puede parecer útil y muy flexible, es
precisamente en esa flexibilidad donde radica su peligro y los motivos de
su obsolescencia.
.
Estructuras básicas
En muchas ocasiones la forma más apropiada de expresar un
algoritmo consiste en la repetición de una misma instrucción de
manera controlada, una cantidad finita de veces determinada de
antemano (al diseñar el programa) o en tiempo de ejecución
(cada vez que se corre el programa).
Por ejemplo, podría ser necesario diseñar un algoritmo similar al
de los cajeros automáticos, que solicite una clave al usuario y
bloquee el acceso en caso de no ingresar la contraseña correcta
luego de tres intentos. O bien, si se desea procesar grupos de
datos ingresados por teclado o leídos desde un archivo, hasta que
no se encuentren más datos.
Las estructuras algorítmicas que permiten realizar operaciones de este
tipo se conocen con el nombre de estructuras repetitivas o iterativas.
Definicion: Las estructuras que repiten una secuencia de
instrucciones un número determinado de veces se
denominan repetitivas o bucles; y se denomina iteración
a la ejecución de cada repetición.
.
Estructuras básicas
Ejemplo
Se desea sumar una lista de números que ingresa desde teclado
(por ejemplo, edades de los alumnos de una clase). El
algoritmo debería ingresar el valor y sumarlo a una variable
SUMA que contenga las sucesivas sumas parciales.
ALGORITMO suma
INICIO
Suma=0
LEER número
Suma = suma + número
LEER número
Suma = suma + número
….
FIN
.
Es evidente que el método no es óptimo, pero el ejemplo sirve para
identificar las instrucciones que se repiten. En este caso, el bucle está
formado por las instrucciones:
LEER número
suma = suma + número
y la cantidad de iteraciones estará relacionada con el número de
alumnos que se procesen durante la ejecución.
Entonces, las dos cuestiones importantes cuando se utilizan
estructuras repetitivas son: ¿qué contiene el bucle? y ¿cuántas veces
se repite?
Las estructuras repetitivas se diferencian en la forma en que se
produce la condición de fin del bucle y deberá utilizarse aquella más
apropiada al problema particular de que se trate.
A continuación, veremos las más usuales:
.
Estructuras básicas
6.3.1 La estructura PARA (for)
Problema: Se desea un programa que muestre en pantalla los
números pares entre 1 y 99.
INICIO
ESCRIBIR 2
ESCRIBIR 4
[…]
ESCRIBIR 96
ESCRIBIR 98
FIN
Se dijo que la computadora es muy hábil para repetir tareas sencillas,
como la del problema. Cuando se necesita que la computadora repita
una operación, con una pequeña variación cada vez, se deben identificar
.
Estructuras básicas
6.3.1 La estructura PARA (for)
Problema: Se desea un programa que muestre en pantalla los
números pares entre 1 y 99.
En este caso, lo que se desea es una secuencia de números pares,
que van desde 2 hasta 98. Estos números pueden expresarse como 2
x k, siendo k un entero que varía entre 1 y 98/2 = 49.
Cuando se conoce exactamente la cantidad de veces que es necesario
repetir una instrucción, la estructura más apropiada para expresarlo
como algoritmo es la estructura PARA. En este caso se puede
escribir:
INICIO
PARA k DESDE 1 HASTA 49
ESCRIBIR k * 2
FIN-PARA
FIN
.
Estructuras básicas
6.3.1 La estructura PARA (for)
Problema: Se desea un programa que muestre en pantalla los
números pares entre 1 y 99.
En este caso, lo que se desea es una secuencia de números pares,
que van desde 2 hasta 98. Estos números pueden expresarse como 2
x k, siendo k un entero que varía entre 1 y 98/2 = 49.
Cuando se conoce exactamente la cantidad de veces que es necesario
repetir una instrucción, la estructura más apropiada para expresarlo
como algoritmo es la estructura PARA. En este caso se puede
escribir:
INICIO
PARA k DESDE 1 HASTA 49
ESCRIBIR k * 2
FIN-PARA
FIN
6.3 Estructuras de repeticion. Bucles
Otra opción sería:
INICIO
PARA i DESDE 2 HASTA 98 INCREMENTO 2
ESCRIBIR i
FIN-PARA
FIN
.
Estructuras básicas
6.3.1 La estructura PARA (for)
Si ahora se solicita:
Problema: Se desea un programa
que muestre en pantalla los
números pares entre 1 y 200.
la solución mantiene su sencillez de expresión:
INICIO
PARA N DESDE N HASTA 200
INCREMENTO 2
ESCRIBIR i
.
6.3.1 La estructura PARA (for)
La estructura PARA en forma general
es:
PARA variable DESDE inicial HASTA final [INCREMENTO incremento]
INSTRUCCIÓN
[…]
INSTRUCCIÓN
FIN-PARA
Donde:
variable es el nombre de una variable de tipo numérico, en particular entero,
definida en el programa, cuyos valores se irán modificando en cada
repetición. Es común utilizar como nombre de esta variable i, que proviene
de la palabra índice (index en inglés), y si se utilizan varias instrucciones
PARA, emplear las letras siguientes del abecedario: j, k, l.
inicial es el valor que toma la variable en la primera repetición.
final es el valor que toma la variable en la última repetición.
.
Estructuras básicas
6.3.2 La estructura MIENTRAS (while…do) y la estructura
HASTA (repeat…until)
En algunos casos no se conoce de antemano la cantidad de veces que
será necesario repetir un conjunto de instrucciones para solucionar el
problema, o bien es conveniente que estas instrucciones sean
repetidas hasta alcanzar una determinada condición (llamada
condición de parada). En estas situaciones se emplean estructuras
repetitivas más generales que PARA, como las estructuras
MIENTRAS y HASTA.
.
Estructuras básicas
6.3.2 La estructura MIENTRAS (while…do) y la estructura HASTA
(repeat…until)
Problema: Se desea un programa que calcule e informe el precio de
una llamada telefónica, a partir del número de minutos ingresado
por el operador, sabiendo que el precio por minuto es de $0,23.
Esta operación debe repetirse cada vez que el operador ingrese
una cantidad de minutos mayor que 0, y detenerse en caso
contrario.
Como se desconoce la cantidad de veces que se repetirá el
cálculo del precio, y tampoco puede solicitarse al operador que
indique este dato al inicio del programa, la estructura PARA no es
apropiada para resolver el problema.
INICIO
LEER minutos
HACER
precio = minutos * 0,23
ESCRIBIR precio
LEER minutos
HASTA minutos <= 0
FIN
.
Estructuras básicas
6.3.2 La estructura MIENTRAS (while…do) y la estructura HASTA
(repeat…until)
Puede cuestionarse que si el operador ingresa un número menor que 0 la
primera vez, el programa mostrará un valor incorrecto y solicitará un
nuevo dato antes de detenerse.
Una solución alternativa sería:
INICIO
LEER minutos
MIENTRAS minutos > 0
precio = minutos * 0,23
ESCRIBIR precio
LEER minutos
FIN-MIENTRAS
FIN
En este caso, el operador puede ingresar un número
menor o igual a cero la primera vez que el programa
le solicita un dato, y el programa se detendrá sin
informar un precio erróneo.
Es importante notar que las condiciones de parada
son diferentes. Existen muchas posibilidades para
expresar la solución a este problema
.
Estructuras básicas
6.3.2 La estructura MIENTRAS (while…do) y la estructura HASTA
(repeat…until)
La estructura MIENTRAS tiene la forma:
MIENTRAS condición
INSTRUCCIÓN
[…]
INSTRUCCIÓN
FIN-MIENTRAS
Al ejecutarse se evalúa condición, y en caso de resultar verdadera se
ejecutan las instrucciones del bloque, mientras condición mantenga su valor
verdadero.
La estructura HASTA toma la forma:
HACER
INSTRUCCIÓN
[…]
INSTRUCCIÓN
HASTA condición
Se dice que MIENTRAS y HASTA son formas más generales de iterar que
.
Estructuras básicas
Problema: Se desea un programa que muestre en pantalla
los números pares entre 1 y 99.
que se resolvió utilizando PARA de la siguiente manera:
INICIO
PARA k DESDE 1 HASTA 49
ESCRIBIR k * 2
FIN-PARA
FIN
también puede expresarse utilizando
MIENTRAS:
INICIO
k = 1
MIENTRAS k <= 49
ESCRIBIR k * 2
k = k + 1
FIN-MIENTRAS
FIN
O utilizando HASTA:
INICIO
k = 1
HACER
ESCRIBIR k * 2
k = k + 1
HASTA k > 49
FIN
.
Estructuras básicas
Instrucción INTERRUMPIR
(BREAK)
Esta instrucción se utiliza cuando se desea terminar un bucle en un
lugar determinado del cuerpo del bucle sin esperar a que este
termine de modo natural por su entrada o su salida. Esta instrucción
corta el ciclo de ejecución, debe ser utilizada con precaución.
Ejemplo:
LEER número
HACER
IF número <= 0 INTERRUMPIR
suma = suma + número
LEER número
HASTA número > 100
.
Estructuras básicas
Instrucción CONTINUAR
(CONTINUE)
Esta instrucción hace que el flujo de ejecución salte el resto de un cuerpo
del bucle para continuar con el siguiente bucle o iteración. Esta
característica suele ser útil en algunas condiciones.
Ejemplo:
PARA i DESDE 0 HASTA 20
SI (i mod 4 = 0 ) ENTONCES
CONTINUAR
FIN-SI
ESCRIBIR i, “ , “
FIN-PARA
.
Estructuras básicas
En un algoritmo puede existir y es muy frecuente que existan 2 o más
bucles. Dependiendo de la forma en que estén dispuestos, estos
pueden ser anidados o independientes.
Decimos que los bucles están anidados cuando están dispuestos de
forma tal que unos son interiores a otros; y los bucles serán
independientes cuando son extremos unos con otros.
Así como se podían anidar estructuras de selección, también es posible
insertar un bucle dentro de otro. Las reglas para construir estructuras
repetitivas anidadas son iguales en ambos casos: la estructura interna
debe estar incluida totalmente dentro de la externa y no puede existir
solapamiento.
.
Estructuras básicas
IND EP EN D IE NTE S AN IDA D AS
PE RM ITID AS Y PR O HIB ID A S
N ID O S C R UZAD O S
SA LIR D EL BU CLE EN TR AR A L BU C LE
.
Estructuras básicas

Contenu connexe

Tendances

Gramatica libre de contexto
Gramatica libre de contextoGramatica libre de contexto
Gramatica libre de contextoDaniel Molina
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Recursividad
RecursividadRecursividad
Recursividadbetzy
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftChuyito Alvarado
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 
Doc. lista de requerimientos ver. 1.0
Doc. lista de requerimientos ver. 1.0Doc. lista de requerimientos ver. 1.0
Doc. lista de requerimientos ver. 1.0luimiguelandrade
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionjorge severino
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de DatosRenny Batista
 
Modelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datosModelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datosFernando Baculima
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de ContextoBrayhan Acosta
 

Tendances (20)

Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
Gramatica libre de contexto
Gramatica libre de contextoGramatica libre de contexto
Gramatica libre de contexto
 
Programación 1: modularización
Programación 1: modularizaciónProgramación 1: modularización
Programación 1: modularización
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Recursividad
RecursividadRecursividad
Recursividad
 
Modelo de entidad relación extendido
Modelo de entidad relación extendidoModelo de entidad relación extendido
Modelo de entidad relación extendido
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoft
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Doc. lista de requerimientos ver. 1.0
Doc. lista de requerimientos ver. 1.0Doc. lista de requerimientos ver. 1.0
Doc. lista de requerimientos ver. 1.0
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos
 
Busqueda por profundidad iterativa
Busqueda por profundidad iterativaBusqueda por profundidad iterativa
Busqueda por profundidad iterativa
 
Algoritmos Paralelos
Algoritmos ParalelosAlgoritmos Paralelos
Algoritmos Paralelos
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de Datos
 
Analisis Semantico
Analisis Semantico Analisis Semantico
Analisis Semantico
 
Modelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datosModelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datos
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 

En vedette

Estructura de control (programación básica)
Estructura de control (programación básica)Estructura de control (programación básica)
Estructura de control (programación básica)cecilia221188
 
Estructuras de Control
Estructuras de ControlEstructuras de Control
Estructuras de ControlAndres Carrera
 
Algoritmia estructuras de control
Algoritmia estructuras de controlAlgoritmia estructuras de control
Algoritmia estructuras de controlFernando Realpe
 
Sintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionSintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionluismart05
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltosRoldan El Gato
 

En vedette (6)

ESTRUCTURAS ALGORITMICAS
ESTRUCTURAS ALGORITMICASESTRUCTURAS ALGORITMICAS
ESTRUCTURAS ALGORITMICAS
 
Estructura de control (programación básica)
Estructura de control (programación básica)Estructura de control (programación básica)
Estructura de control (programación básica)
 
Estructuras de Control
Estructuras de ControlEstructuras de Control
Estructuras de Control
 
Algoritmia estructuras de control
Algoritmia estructuras de controlAlgoritmia estructuras de control
Algoritmia estructuras de control
 
Sintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionSintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacion
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos
 

Similaire à Lenguajes de Programación: Estructuras de Control

estructuras basicas
estructuras basicasestructuras basicas
estructuras basicasrichard
 
Estructuras complejas de datos (Programación estructurada)
Estructuras complejas de datos (Programación estructurada)Estructuras complejas de datos (Programación estructurada)
Estructuras complejas de datos (Programación estructurada)KareliaRivas
 
programación
programaciónprogramación
programaciónlaura2041
 
Programacin estructurada
Programacin estructuradaProgramacin estructurada
Programacin estructuradaRubixita12
 
Pricipios de Programación
Pricipios de Programación Pricipios de Programación
Pricipios de Programación Adolfo Vazcoy
 
Seudocodigos1
Seudocodigos1Seudocodigos1
Seudocodigos1jafp21
 
Introduccion a la programación Parte II
Introduccion a la programación Parte IIIntroduccion a la programación Parte II
Introduccion a la programación Parte IIYelixa Araque Angulo
 
Actividad de Inicio Programación
Actividad de Inicio ProgramaciónActividad de Inicio Programación
Actividad de Inicio ProgramaciónYesicaMendoza18
 
PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓNPROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓNKarol Moreno
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradaMariannis Ortega
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradaMariannis Ortega
 
Lenguaje maquina
Lenguaje maquinaLenguaje maquina
Lenguaje maquinaErnes 28
 
Python_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxPython_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxFedericoMartearena
 
4ta evaluacion, presentacion
4ta evaluacion, presentacion4ta evaluacion, presentacion
4ta evaluacion, presentacionfabiana733179
 

Similaire à Lenguajes de Programación: Estructuras de Control (20)

Estructuras de Control
Estructuras de ControlEstructuras de Control
Estructuras de Control
 
Estructuras de Control
Estructuras de Control Estructuras de Control
Estructuras de Control
 
estructuras basicas
estructuras basicasestructuras basicas
estructuras basicas
 
Estructuras complejas de datos (Programación estructurada)
Estructuras complejas de datos (Programación estructurada)Estructuras complejas de datos (Programación estructurada)
Estructuras complejas de datos (Programación estructurada)
 
Algoritmo utilizando pseudolenguaje
Algoritmo utilizando pseudolenguajeAlgoritmo utilizando pseudolenguaje
Algoritmo utilizando pseudolenguaje
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
programación
programaciónprogramación
programación
 
Programacin estructurada
Programacin estructuradaProgramacin estructurada
Programacin estructurada
 
Pricipios de Programación
Pricipios de Programación Pricipios de Programación
Pricipios de Programación
 
Sophia leonzio tarea4
Sophia leonzio tarea4Sophia leonzio tarea4
Sophia leonzio tarea4
 
Seudocodigos1
Seudocodigos1Seudocodigos1
Seudocodigos1
 
Introduccion a la programación Parte II
Introduccion a la programación Parte IIIntroduccion a la programación Parte II
Introduccion a la programación Parte II
 
Actividad de Inicio Programación
Actividad de Inicio ProgramaciónActividad de Inicio Programación
Actividad de Inicio Programación
 
PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓNPROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Plc crist
Plc cristPlc crist
Plc crist
 
Lenguaje maquina
Lenguaje maquinaLenguaje maquina
Lenguaje maquina
 
Python_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxPython_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptx
 
4ta evaluacion, presentacion
4ta evaluacion, presentacion4ta evaluacion, presentacion
4ta evaluacion, presentacion
 

Plus de Luis Fernando Aguas Bucheli (20)

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
 
P-S2.pptx
P-S2.pptxP-S2.pptx
P-S2.pptx
 
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
EBTS-S1.pptx
 
P-S3.pptx
P-S3.pptxP-S3.pptx
P-S3.pptx
 
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
EBTS-S4.pptx
 
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S4.pptx
 
P-S1.pptx
P-S1.pptxP-S1.pptx
P-S1.pptx
 
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S3.pptx
 
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
EBTS-S2.pptx
 
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S7.pptx
 
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S4.pptx
 
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S2.pptx
 
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S1.pptx
 
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S8.pptx
 
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S6.pptx
 
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S5.pptx
 
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
PDIDTI-S3.pptx
 
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S4.pptx
 
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S3.pptx
 
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx
TIC-S2.pptx
 

Dernier

SEMIOLOGIA DE CABEZA Y CUELLO. Medicina Semiologia cabeza y cuellopptx
SEMIOLOGIA DE CABEZA Y CUELLO. Medicina Semiologia cabeza y cuellopptxSEMIOLOGIA DE CABEZA Y CUELLO. Medicina Semiologia cabeza y cuellopptx
SEMIOLOGIA DE CABEZA Y CUELLO. Medicina Semiologia cabeza y cuellopptxLisetteChuquisea
 
MESOPOTAMIA Y SU ARQUITECTURA 1006/An)cris
MESOPOTAMIA Y SU ARQUITECTURA 1006/An)crisMESOPOTAMIA Y SU ARQUITECTURA 1006/An)cris
MESOPOTAMIA Y SU ARQUITECTURA 1006/An)crisDanielApalaBello
 
como me enamore de ti (1).pdf.pdf_20240401_120711_0000.pdf
como me enamore de ti (1).pdf.pdf_20240401_120711_0000.pdfcomo me enamore de ti (1).pdf.pdf_20240401_120711_0000.pdf
como me enamore de ti (1).pdf.pdf_20240401_120711_0000.pdfleonar947720602
 
Arribando a la concreción II. Títulos en inglés, alemán y español
Arribando a la concreción II. Títulos en inglés, alemán y españolArribando a la concreción II. Títulos en inglés, alemán y español
Arribando a la concreción II. Títulos en inglés, alemán y españolLuis José Ferreira Calvo
 
LAVADO DE MANOS TRIPTICO modelos de.docx
LAVADO DE MANOS TRIPTICO modelos de.docxLAVADO DE MANOS TRIPTICO modelos de.docx
LAVADO DE MANOS TRIPTICO modelos de.docxJheissonAriasSalazar
 
Concepto de Estética, aproximación,Elena Olvieras
Concepto de Estética, aproximación,Elena OlvierasConcepto de Estética, aproximación,Elena Olvieras
Concepto de Estética, aproximación,Elena OlvierasAnkara2
 
271706433-Horacio-Baliero-Casa-en-Punta-Piedras.pptx
271706433-Horacio-Baliero-Casa-en-Punta-Piedras.pptx271706433-Horacio-Baliero-Casa-en-Punta-Piedras.pptx
271706433-Horacio-Baliero-Casa-en-Punta-Piedras.pptxjezuz1231
 
la configuyracion del territorio peruano
la configuyracion del territorio peruanola configuyracion del territorio peruano
la configuyracion del territorio peruanoEFRAINSALAZARLOYOLA1
 
Origen del Hombre- cuadro comparativo 5to Sec
Origen del Hombre- cuadro comparativo 5to SecOrigen del Hombre- cuadro comparativo 5to Sec
Origen del Hombre- cuadro comparativo 5to Secssuser50da781
 
diagrama sinóptico dcerfghjsxdcfvgbhnjdcf
diagrama sinóptico dcerfghjsxdcfvgbhnjdcfdiagrama sinóptico dcerfghjsxdcfvgbhnjdcf
diagrama sinóptico dcerfghjsxdcfvgbhnjdcfDreydyAvila
 
GEODESIA pptx.pdfhhjjgjkhkjhgyfturtuuuhhuh
GEODESIA pptx.pdfhhjjgjkhkjhgyfturtuuuhhuhGEODESIA pptx.pdfhhjjgjkhkjhgyfturtuuuhhuh
GEODESIA pptx.pdfhhjjgjkhkjhgyfturtuuuhhuhmezabellosaidjhon
 
PROCESO ADMINISTRATIVO Proceso administrativo de enfermería desde sus bases, ...
PROCESO ADMINISTRATIVO Proceso administrativo de enfermería desde sus bases, ...PROCESO ADMINISTRATIVO Proceso administrativo de enfermería desde sus bases, ...
PROCESO ADMINISTRATIVO Proceso administrativo de enfermería desde sus bases, ...albertodeleon1786
 
Supremacia de la Constitucion 2024.pptxm
Supremacia de la Constitucion 2024.pptxmSupremacia de la Constitucion 2024.pptxm
Supremacia de la Constitucion 2024.pptxmolivayasser2
 
MODELO DE UNIDAD 2 para primer grado de primaria
MODELO DE UNIDAD 2 para primer grado de primariaMODELO DE UNIDAD 2 para primer grado de primaria
MODELO DE UNIDAD 2 para primer grado de primariaSilvanaSoto13
 
Unitario - Serie Fotográfica - Emmanuel Toloza Pineda
Unitario - Serie Fotográfica - Emmanuel Toloza PinedaUnitario - Serie Fotográfica - Emmanuel Toloza Pineda
Unitario - Serie Fotográfica - Emmanuel Toloza PinedaEmmanuel Toloza
 
presentacion-auditoria-administrativa-i-encuentro (1).ppt
presentacion-auditoria-administrativa-i-encuentro (1).pptpresentacion-auditoria-administrativa-i-encuentro (1).ppt
presentacion-auditoria-administrativa-i-encuentro (1).pptDerekLiberatoMartine
 
ACUERDOS PARA PINTAR EDUCACION INICIAL.docx
ACUERDOS PARA PINTAR EDUCACION INICIAL.docxACUERDOS PARA PINTAR EDUCACION INICIAL.docx
ACUERDOS PARA PINTAR EDUCACION INICIAL.docxlizeth753950
 
CERTIFICADO para NIÑOS, presentacion de niños en la iglesia .pptx
CERTIFICADO para NIÑOS, presentacion de niños en la iglesia .pptxCERTIFICADO para NIÑOS, presentacion de niños en la iglesia .pptx
CERTIFICADO para NIÑOS, presentacion de niños en la iglesia .pptxMaikelPereira1
 
Geometría para alumnos de segundo medio A
Geometría para alumnos de segundo medio AGeometría para alumnos de segundo medio A
Geometría para alumnos de segundo medio APabloBascur3
 
26 de abril teoria exposición. El arte en la
26 de abril teoria exposición. El arte en la26 de abril teoria exposición. El arte en la
26 de abril teoria exposición. El arte en laMIRIANGRACIELABARBOZ
 

Dernier (20)

SEMIOLOGIA DE CABEZA Y CUELLO. Medicina Semiologia cabeza y cuellopptx
SEMIOLOGIA DE CABEZA Y CUELLO. Medicina Semiologia cabeza y cuellopptxSEMIOLOGIA DE CABEZA Y CUELLO. Medicina Semiologia cabeza y cuellopptx
SEMIOLOGIA DE CABEZA Y CUELLO. Medicina Semiologia cabeza y cuellopptx
 
MESOPOTAMIA Y SU ARQUITECTURA 1006/An)cris
MESOPOTAMIA Y SU ARQUITECTURA 1006/An)crisMESOPOTAMIA Y SU ARQUITECTURA 1006/An)cris
MESOPOTAMIA Y SU ARQUITECTURA 1006/An)cris
 
como me enamore de ti (1).pdf.pdf_20240401_120711_0000.pdf
como me enamore de ti (1).pdf.pdf_20240401_120711_0000.pdfcomo me enamore de ti (1).pdf.pdf_20240401_120711_0000.pdf
como me enamore de ti (1).pdf.pdf_20240401_120711_0000.pdf
 
Arribando a la concreción II. Títulos en inglés, alemán y español
Arribando a la concreción II. Títulos en inglés, alemán y españolArribando a la concreción II. Títulos en inglés, alemán y español
Arribando a la concreción II. Títulos en inglés, alemán y español
 
LAVADO DE MANOS TRIPTICO modelos de.docx
LAVADO DE MANOS TRIPTICO modelos de.docxLAVADO DE MANOS TRIPTICO modelos de.docx
LAVADO DE MANOS TRIPTICO modelos de.docx
 
Concepto de Estética, aproximación,Elena Olvieras
Concepto de Estética, aproximación,Elena OlvierasConcepto de Estética, aproximación,Elena Olvieras
Concepto de Estética, aproximación,Elena Olvieras
 
271706433-Horacio-Baliero-Casa-en-Punta-Piedras.pptx
271706433-Horacio-Baliero-Casa-en-Punta-Piedras.pptx271706433-Horacio-Baliero-Casa-en-Punta-Piedras.pptx
271706433-Horacio-Baliero-Casa-en-Punta-Piedras.pptx
 
la configuyracion del territorio peruano
la configuyracion del territorio peruanola configuyracion del territorio peruano
la configuyracion del territorio peruano
 
Origen del Hombre- cuadro comparativo 5to Sec
Origen del Hombre- cuadro comparativo 5to SecOrigen del Hombre- cuadro comparativo 5to Sec
Origen del Hombre- cuadro comparativo 5to Sec
 
diagrama sinóptico dcerfghjsxdcfvgbhnjdcf
diagrama sinóptico dcerfghjsxdcfvgbhnjdcfdiagrama sinóptico dcerfghjsxdcfvgbhnjdcf
diagrama sinóptico dcerfghjsxdcfvgbhnjdcf
 
GEODESIA pptx.pdfhhjjgjkhkjhgyfturtuuuhhuh
GEODESIA pptx.pdfhhjjgjkhkjhgyfturtuuuhhuhGEODESIA pptx.pdfhhjjgjkhkjhgyfturtuuuhhuh
GEODESIA pptx.pdfhhjjgjkhkjhgyfturtuuuhhuh
 
PROCESO ADMINISTRATIVO Proceso administrativo de enfermería desde sus bases, ...
PROCESO ADMINISTRATIVO Proceso administrativo de enfermería desde sus bases, ...PROCESO ADMINISTRATIVO Proceso administrativo de enfermería desde sus bases, ...
PROCESO ADMINISTRATIVO Proceso administrativo de enfermería desde sus bases, ...
 
Supremacia de la Constitucion 2024.pptxm
Supremacia de la Constitucion 2024.pptxmSupremacia de la Constitucion 2024.pptxm
Supremacia de la Constitucion 2024.pptxm
 
MODELO DE UNIDAD 2 para primer grado de primaria
MODELO DE UNIDAD 2 para primer grado de primariaMODELO DE UNIDAD 2 para primer grado de primaria
MODELO DE UNIDAD 2 para primer grado de primaria
 
Unitario - Serie Fotográfica - Emmanuel Toloza Pineda
Unitario - Serie Fotográfica - Emmanuel Toloza PinedaUnitario - Serie Fotográfica - Emmanuel Toloza Pineda
Unitario - Serie Fotográfica - Emmanuel Toloza Pineda
 
presentacion-auditoria-administrativa-i-encuentro (1).ppt
presentacion-auditoria-administrativa-i-encuentro (1).pptpresentacion-auditoria-administrativa-i-encuentro (1).ppt
presentacion-auditoria-administrativa-i-encuentro (1).ppt
 
ACUERDOS PARA PINTAR EDUCACION INICIAL.docx
ACUERDOS PARA PINTAR EDUCACION INICIAL.docxACUERDOS PARA PINTAR EDUCACION INICIAL.docx
ACUERDOS PARA PINTAR EDUCACION INICIAL.docx
 
CERTIFICADO para NIÑOS, presentacion de niños en la iglesia .pptx
CERTIFICADO para NIÑOS, presentacion de niños en la iglesia .pptxCERTIFICADO para NIÑOS, presentacion de niños en la iglesia .pptx
CERTIFICADO para NIÑOS, presentacion de niños en la iglesia .pptx
 
Geometría para alumnos de segundo medio A
Geometría para alumnos de segundo medio AGeometría para alumnos de segundo medio A
Geometría para alumnos de segundo medio A
 
26 de abril teoria exposición. El arte en la
26 de abril teoria exposición. El arte en la26 de abril teoria exposición. El arte en la
26 de abril teoria exposición. El arte en la
 

Lenguajes de Programación: Estructuras de Control

  • 1. Lenguajes de Programación: Estructuras de Control Autor(es): • Mtr. Luis Fernando Aguas
  • 2. Estructuras básicas La programación estructurada es una forma de escribir programas de computadora deforma clara, utilizando únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario y no permitiéndose el uso de la instrucción o instrucciones de transferencia incondicional. La programación estructurada surge a finales de los años 1960 con el objetivo de realizar programas confiables y eficientes, y que además fueran escritos de manera de facilitar su comprensión posterior. Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las necesidades de aquellos años, por lo que se desarrollaron nuevas técnicas, tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones. De todas formas, el paradigma estructurado tiene vigencia en muchos ámbitos de desarrollo de programas y constituye una buena forma de iniciarse en la programación de computadoras.
  • 3. . Estructuras básicas El teorema del programa estructurado, de Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
  • 4. . Estructuras básicas A C C I O N 1 A C C I O N 2 A C C I O N N 2 Condicion Accion SINO Condicion Accion SI Accion NO 1 C o n d ic io n S i N o A c c io n e s C on d icion N o A c cio n es S I
  • 5. . Estructuras básicas El flujo de control de un programa La expresión flujo de control hace referencia al orden en el que se ejecutarán las instrucciones de un programa, desde su comienzo hasta que finaliza. El flujo normal de ejecución es el secuencial. Si no se especifica lo contrario, la ejecución de un programa empezaría por la primera instrucción e iría procesando una a una en el orden en que aparecen, hasta llegar a la última. Algunos programas muy simples pueden escribirse sólo con este flujo unidireccional. No obstante, la mayor eficacia y utilidad de cualquier lenguaje de programación se deriva de la posibilidad de cambiar el orden de ejecución según la necesidad de elegir uno de entre varios caminos en función de ciertas condiciones, o de ejecutar algo repetidas veces, sin tener que escribir el código para cada vez. Con frecuencia, el programador necesita que el programa no se comporte sólo de modo secuencial. Por ejemplo, calcular una funcion f(x) para los X > 0.
  • 6. . Estructuras básicas El flujo de control de un programa También puede ocurrir que interese que un grupo de instrucciones se ejecute repetidamente hasta que se le indique que se detenga. Por ejemplo, calcular el promedio de notas para cada uno de los alumnos de un curso, o realizar algún cálculo con cada uno de los elementos de un vector. Para las dos situaciones planteadas existen dos soluciones: las sentencias de control selectivas y las repetitivas. Éstas permiten que el flujo secuencial del programa sea modificado. También cumplen con este objetivo las sentencias denominadas de invocación o salto.
  • 7. . Estructuras básicas Según lo expresado, las estructuras de decisión simple y doble permiten seleccionar entre dos alternativas posibles. Sin embargo, la instrucción SI-ENTONCES puede ser utilizada también en casos de selección de más de dos alternativas. Esto es posible anidando estas instrucciones. Es decir, una estructura SI-ENTONCES puede contener a otra, y esta a su vez a otra. La representación en pseudocódigo es la siguiente: SI <condición_1> ENTONCES < sentencias_1 > SINO SI <condición_2> ENTONCES < sentencias_2 > SINO SI <condición_3> ENTONCES < sentencias_3 > SINO . . FIN-SI FIN-SI FIN-SI Como se puede observar, el anidamiento de instrucciones alternativas permite ir descartando valores hasta llegar al bloque de instrucciones que se debe ejecutar. En las instrucciones SI anidadas, las instrucciones ENTONCES y FIN-SI se aplican automáticamente a la instrucción SI anterior más próxima. A fin de que las estructuras anidadas sean más fáciles de leer, es práctica habitual aplicar sangría al cuerpo de cada una.
  • 8. . Estructuras básicas Ejemplo: Un sensor toma (lee) la temperatura ambiente y de acuerdo al rango en que se encuentre, debe emitir un mensaje. La escala es la siguiente: Mayor que 100 “Temperatura muy alta – Mal funcionamiento” Entre 91 y 100 “Rango normal” Entre 51 y 90 “Bajo el rango normal” Menor que 50 “Muy frío – Apague el equipo” ALGORITMO Sensor INICIO LEER temperatura SI temperatura > 100 ENTONCES ESCRIBIR “Temperatura muy alta – Mal funcionamiento” SINO SI temperatura > 90 ENTONCES ESCRIBIR “Rango normal” SINO SI temperatura > 50 ENTONCES ESCRIBIR “Bajo el rango normal” SINO ESCRIBIR “Muy frío – Apague equipo” FIN-SI FIN-SI FIN-SI FIN
  • 9. . Estructuras básicas La sentencia IR-A (go to) La sentencia GO TO pertenece a un grupo de sentencias conocidas como sentencias de salto (jump). La característica de este grupo es hacer que el flujo de control salte a otra parte del programa. Otras sentencias de este grupo son interrumpir o romper (BREAK), continuar (CONTINUE), volver (RETURN), lanzar (THROW). Las dos primeras se utilizan generalmente con sentencias de alternativa múltiple. Para retornar de la ejecución de funciones o métodos se usa RETURN. La sentencia GO TO se utilizaba mucho en los primeros lenguajes de programación porque era la única manera de saltar de una instrucción del programa a otra. Esta instrucción consta de una sentencia IR_A y una sentencia asociada con una etiqueta. Cuando se ejecuta esta instrucción, se transfiere el control del programa a la etiqueta asociada.
  • 10. . La sentencia IR-A (go to) La representación en pseudocódigo es la siguiente: INICIO . . IR_A etiqueta_1 . . FIN etiqueta_1: . // El flujo salta aquí El efecto de esta instrucción es transferir sin condiciones el control del programa a la etiqueta especificada. Es una de las operaciones más primitivas para traspasar el control de una parte del programa a otra. Sin embargo, su uso produce código inconsistente, incompleto o complicado de mantener. Justamente por ello en los años 60 y 70, cuando surgió la programación estructurada, la comunidad informática se expresó a favor de otras sentencias de control (IF ó bucles FOR y DO-WHILE) en lugar del GOTO.
  • 11. . Estructuras básicas La sentencia IR-A (go to) Tal creencia está tan arraigada que el GOTO es muy criticado y desaconsejado por todos los que se dedican a la enseñanza de la programación. Si bien la instrucción GOTO puede parecer útil y muy flexible, es precisamente en esa flexibilidad donde radica su peligro y los motivos de su obsolescencia.
  • 12. . Estructuras básicas En muchas ocasiones la forma más apropiada de expresar un algoritmo consiste en la repetición de una misma instrucción de manera controlada, una cantidad finita de veces determinada de antemano (al diseñar el programa) o en tiempo de ejecución (cada vez que se corre el programa). Por ejemplo, podría ser necesario diseñar un algoritmo similar al de los cajeros automáticos, que solicite una clave al usuario y bloquee el acceso en caso de no ingresar la contraseña correcta luego de tres intentos. O bien, si se desea procesar grupos de datos ingresados por teclado o leídos desde un archivo, hasta que no se encuentren más datos. Las estructuras algorítmicas que permiten realizar operaciones de este tipo se conocen con el nombre de estructuras repetitivas o iterativas. Definicion: Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se denominan repetitivas o bucles; y se denomina iteración a la ejecución de cada repetición.
  • 13. . Estructuras básicas Ejemplo Se desea sumar una lista de números que ingresa desde teclado (por ejemplo, edades de los alumnos de una clase). El algoritmo debería ingresar el valor y sumarlo a una variable SUMA que contenga las sucesivas sumas parciales. ALGORITMO suma INICIO Suma=0 LEER número Suma = suma + número LEER número Suma = suma + número …. FIN
  • 14. . Es evidente que el método no es óptimo, pero el ejemplo sirve para identificar las instrucciones que se repiten. En este caso, el bucle está formado por las instrucciones: LEER número suma = suma + número y la cantidad de iteraciones estará relacionada con el número de alumnos que se procesen durante la ejecución. Entonces, las dos cuestiones importantes cuando se utilizan estructuras repetitivas son: ¿qué contiene el bucle? y ¿cuántas veces se repite? Las estructuras repetitivas se diferencian en la forma en que se produce la condición de fin del bucle y deberá utilizarse aquella más apropiada al problema particular de que se trate. A continuación, veremos las más usuales:
  • 15. . Estructuras básicas 6.3.1 La estructura PARA (for) Problema: Se desea un programa que muestre en pantalla los números pares entre 1 y 99. INICIO ESCRIBIR 2 ESCRIBIR 4 […] ESCRIBIR 96 ESCRIBIR 98 FIN Se dijo que la computadora es muy hábil para repetir tareas sencillas, como la del problema. Cuando se necesita que la computadora repita una operación, con una pequeña variación cada vez, se deben identificar
  • 16. . Estructuras básicas 6.3.1 La estructura PARA (for) Problema: Se desea un programa que muestre en pantalla los números pares entre 1 y 99. En este caso, lo que se desea es una secuencia de números pares, que van desde 2 hasta 98. Estos números pueden expresarse como 2 x k, siendo k un entero que varía entre 1 y 98/2 = 49. Cuando se conoce exactamente la cantidad de veces que es necesario repetir una instrucción, la estructura más apropiada para expresarlo como algoritmo es la estructura PARA. En este caso se puede escribir: INICIO PARA k DESDE 1 HASTA 49 ESCRIBIR k * 2 FIN-PARA FIN
  • 17. . Estructuras básicas 6.3.1 La estructura PARA (for) Problema: Se desea un programa que muestre en pantalla los números pares entre 1 y 99. En este caso, lo que se desea es una secuencia de números pares, que van desde 2 hasta 98. Estos números pueden expresarse como 2 x k, siendo k un entero que varía entre 1 y 98/2 = 49. Cuando se conoce exactamente la cantidad de veces que es necesario repetir una instrucción, la estructura más apropiada para expresarlo como algoritmo es la estructura PARA. En este caso se puede escribir: INICIO PARA k DESDE 1 HASTA 49 ESCRIBIR k * 2 FIN-PARA FIN 6.3 Estructuras de repeticion. Bucles Otra opción sería: INICIO PARA i DESDE 2 HASTA 98 INCREMENTO 2 ESCRIBIR i FIN-PARA FIN
  • 18. . Estructuras básicas 6.3.1 La estructura PARA (for) Si ahora se solicita: Problema: Se desea un programa que muestre en pantalla los números pares entre 1 y 200. la solución mantiene su sencillez de expresión: INICIO PARA N DESDE N HASTA 200 INCREMENTO 2 ESCRIBIR i
  • 19. . 6.3.1 La estructura PARA (for) La estructura PARA en forma general es: PARA variable DESDE inicial HASTA final [INCREMENTO incremento] INSTRUCCIÓN […] INSTRUCCIÓN FIN-PARA Donde: variable es el nombre de una variable de tipo numérico, en particular entero, definida en el programa, cuyos valores se irán modificando en cada repetición. Es común utilizar como nombre de esta variable i, que proviene de la palabra índice (index en inglés), y si se utilizan varias instrucciones PARA, emplear las letras siguientes del abecedario: j, k, l. inicial es el valor que toma la variable en la primera repetición. final es el valor que toma la variable en la última repetición.
  • 20. . Estructuras básicas 6.3.2 La estructura MIENTRAS (while…do) y la estructura HASTA (repeat…until) En algunos casos no se conoce de antemano la cantidad de veces que será necesario repetir un conjunto de instrucciones para solucionar el problema, o bien es conveniente que estas instrucciones sean repetidas hasta alcanzar una determinada condición (llamada condición de parada). En estas situaciones se emplean estructuras repetitivas más generales que PARA, como las estructuras MIENTRAS y HASTA.
  • 21. . Estructuras básicas 6.3.2 La estructura MIENTRAS (while…do) y la estructura HASTA (repeat…until) Problema: Se desea un programa que calcule e informe el precio de una llamada telefónica, a partir del número de minutos ingresado por el operador, sabiendo que el precio por minuto es de $0,23. Esta operación debe repetirse cada vez que el operador ingrese una cantidad de minutos mayor que 0, y detenerse en caso contrario. Como se desconoce la cantidad de veces que se repetirá el cálculo del precio, y tampoco puede solicitarse al operador que indique este dato al inicio del programa, la estructura PARA no es apropiada para resolver el problema. INICIO LEER minutos HACER precio = minutos * 0,23 ESCRIBIR precio LEER minutos HASTA minutos <= 0 FIN
  • 22. . Estructuras básicas 6.3.2 La estructura MIENTRAS (while…do) y la estructura HASTA (repeat…until) Puede cuestionarse que si el operador ingresa un número menor que 0 la primera vez, el programa mostrará un valor incorrecto y solicitará un nuevo dato antes de detenerse. Una solución alternativa sería: INICIO LEER minutos MIENTRAS minutos > 0 precio = minutos * 0,23 ESCRIBIR precio LEER minutos FIN-MIENTRAS FIN En este caso, el operador puede ingresar un número menor o igual a cero la primera vez que el programa le solicita un dato, y el programa se detendrá sin informar un precio erróneo. Es importante notar que las condiciones de parada son diferentes. Existen muchas posibilidades para expresar la solución a este problema
  • 23. . Estructuras básicas 6.3.2 La estructura MIENTRAS (while…do) y la estructura HASTA (repeat…until) La estructura MIENTRAS tiene la forma: MIENTRAS condición INSTRUCCIÓN […] INSTRUCCIÓN FIN-MIENTRAS Al ejecutarse se evalúa condición, y en caso de resultar verdadera se ejecutan las instrucciones del bloque, mientras condición mantenga su valor verdadero. La estructura HASTA toma la forma: HACER INSTRUCCIÓN […] INSTRUCCIÓN HASTA condición Se dice que MIENTRAS y HASTA son formas más generales de iterar que
  • 24. . Estructuras básicas Problema: Se desea un programa que muestre en pantalla los números pares entre 1 y 99. que se resolvió utilizando PARA de la siguiente manera: INICIO PARA k DESDE 1 HASTA 49 ESCRIBIR k * 2 FIN-PARA FIN también puede expresarse utilizando MIENTRAS: INICIO k = 1 MIENTRAS k <= 49 ESCRIBIR k * 2 k = k + 1 FIN-MIENTRAS FIN O utilizando HASTA: INICIO k = 1 HACER ESCRIBIR k * 2 k = k + 1 HASTA k > 49 FIN
  • 25. . Estructuras básicas Instrucción INTERRUMPIR (BREAK) Esta instrucción se utiliza cuando se desea terminar un bucle en un lugar determinado del cuerpo del bucle sin esperar a que este termine de modo natural por su entrada o su salida. Esta instrucción corta el ciclo de ejecución, debe ser utilizada con precaución. Ejemplo: LEER número HACER IF número <= 0 INTERRUMPIR suma = suma + número LEER número HASTA número > 100
  • 26. . Estructuras básicas Instrucción CONTINUAR (CONTINUE) Esta instrucción hace que el flujo de ejecución salte el resto de un cuerpo del bucle para continuar con el siguiente bucle o iteración. Esta característica suele ser útil en algunas condiciones. Ejemplo: PARA i DESDE 0 HASTA 20 SI (i mod 4 = 0 ) ENTONCES CONTINUAR FIN-SI ESCRIBIR i, “ , “ FIN-PARA
  • 27. . Estructuras básicas En un algoritmo puede existir y es muy frecuente que existan 2 o más bucles. Dependiendo de la forma en que estén dispuestos, estos pueden ser anidados o independientes. Decimos que los bucles están anidados cuando están dispuestos de forma tal que unos son interiores a otros; y los bucles serán independientes cuando son extremos unos con otros. Así como se podían anidar estructuras de selección, también es posible insertar un bucle dentro de otro. Las reglas para construir estructuras repetitivas anidadas son iguales en ambos casos: la estructura interna debe estar incluida totalmente dentro de la externa y no puede existir solapamiento.
  • 28. . Estructuras básicas IND EP EN D IE NTE S AN IDA D AS PE RM ITID AS Y PR O HIB ID A S N ID O S C R UZAD O S SA LIR D EL BU CLE EN TR AR A L BU C LE