Está en la página 1de 33

REPUBLICA BOLIVARIANA DE VENEZUELA,

UNIVERSIDAD NACIONAL EXPERIMENTAL


“RAFAEL MARÍA BARALT”
VICERRECTORADO ACADÉMICO
PROGRAMA DE FORMACION NACIONAL
CARRERA: INGENIERA EN INFORMÁTICA
MATERIA: ALGORITMICA Y PROGRAMACION

UNIDAD I

PROGRAMACION ESTRUCTURADA

Participante:
Ezequiel González
C.I. 12.045.660
Prof. Alberto Molero

Puertos de Altagracia, Junio de 2021


ESQUEMA

1.- TEOREMA DE LA PROGRAMCION ESTRUCTURADA

2.- ESTRUCTURA DE CONTROL

3.- ESTRUCTURA DE DECISION, CONCEPTO, TIPOS Y SINTAXIS


CONDICIONAL, SIMPLES, DOBLES, MULTIPLE, ANIDADAS Y
SELECTIVA

4.- ESTRUCTURA DE CONTROL ITERATIVAS


CONCEPTOS, TIPOS, CICLO MIENTRAS Y REPETIR, SINTAXIS Y
METODOS PARA SALIR DEL CICLO, CICLO PARA SINTAXIS, CICLOS
ANIDADOS
1.- TEOREMA DE LA PROGRAMCION ESTRUCTURADA
Es un resultado en la teoría de lenguajes de programación. Establece
que toda función computable puede ser implementada en un lenguaje de
programación que combine sólo tres estructuras lógicas. Esas tres formas
(también llamadas estructuras de control) específicamente son:
1. Secuencia: ejecución de una instrucción tras otra.
2. Selección: ejecución de una de dos instrucciones (o conjuntos), según
el valor de una variable booleana. Se utiliza la instrucción (if y switch)
3. Iteración: ejecución de una instrucción (o conjunto) mientras una
variable booleana sea 'verdadera'. Esta estructura lógica también se
conoce como ciclo o bucle. Se utiliza la instrucción (bucles for y while)
Este teorema demuestra que la instrucción GOTO no es estrictamente
necesaria y que para todo programa que la utilice existe otro equivalente que
no hace uso de dicha instrucción.
Ahora bien, estos tipos de funciones permite lo siguiente:
1.- Que los programas sean más fáciles de entenderlos.
2.- Permiten que sean leídos de forma secuencial y no es necesario
hacer engorrosos seguimientos en salto de líneas (GOTO) dentro de los
bloques de códigos para intentar entender la lógica.
3.- Permite tener una estructura de los programas es clara, por estar las
instrucciones están más ligadas o relacionadas entre si
4.- Reduce el esfuerzo en las pruebas y depuración permitiendo el
seguimiento de los fallos o errores del programa, esto es posible por
tener una estructura más sencilla y comprensible para poder detectar y
corregir los errores más fácilmente.
5.- Permite la reducción de los costos de mantenimiento
6.- Los programas son más sencillos y rápidos de confeccionar.
7.- Se incrementa el conocimiento de los programadores.
La programación estructurada es posible hacerla en cualquier lenguaje
de programación. Mientras que el teorema dice que las instrucciones de
carácter incondicional no son necesarias. Por lo tanto, siempre habrá un
método de sustituir los GOTO, EXIT y RETURN por otras estructuras de
control.
En la actualidad existen diversas definiciones de la programación
estructurada, pero todas ellas giran en torno al teorema de la estructura, para
un buen entendimiento del mismo realizamos la definición previa de diagrama
propio, programa propio y equivalencia de programas que intervienen en su
enunciado directa e indirectamente.
1.- Diagrama propio: Es aquel que posee un solo punto de entrada y uno solo
de salida.

A CI

2.- Programa propio: Es aquel programa que cumple las siguientes


condiciones:
- Posee un solo inicio y un solo fin.
- Todo elemento del programa es accesible, es decir, existe al menos un
camino desde el inicio al fin que pasa a través de él.
- No posee bucles infinitos.
INICIO

CI

FIN

3.- Equivalencia de programas: Dos programas son equivalentes si realizan,


ante cualquier situación de datos, el mismo trabajo, pero de distinta forma

INICIO
INICIO

A
o

A o

N
N no CI
CI
S
S Es equivalente a
A
B

B
FIN

FIN
Fuente:
https://sites.google.com/site/portafoliodeacarlosmolina/estructuras-de-control
Fuente:
http://www.cienciasfera.com/materiales/informatica/tecnologiainformacion/tema22/11teorema
_de_la_programacin_estructurada.html
Fuente:
file:///C:/Users/Debora%20&%20David/Downloads/programacion-estructurada.pdf

2.- ESTRUCTURA DE CONTROL


Son instrucciones que rompen 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.
También son estructura de control aquellas que permiten modificar el
flujo de ejecución de las instrucciones de un programa.
Ahora bien, con las estructuras de control se realiza lo siguiente usando
las instrucciones correctas:
De acuerdo con una condición, ejecutar un grupo u otro de sentencias
(If-Then-Else)
De acuerdo con el valor de una variable, ejecutar un grupo u otro de
sentencias (Switch-Case)
Ejecutar un grupo de sentencias solo cuando se cumpla una condición
(Do-While)
Ejecutar un grupo de sentencias hasta que se cumpla una condición
(Do-Until)
Ejecutar un grupo de sentencias un número determinado de veces (For-
Next)

Para resolver situaciones, las estructuras de control poseen las


siguientes características:
Una estructura de control tiene un único punto de entrada y un único
punto de salida.
Una estructura de control se compone de sentencias o de otras
estructuras de control.

Estas características ayudan a desarrollar de forma muy flexible todo


tipo de algoritmos, aun cuando solo existen tres tipos fundamentales de
estructuras de control, las cuales se nombran y se desglosan:
• Estructura Secuencial
• Estructura Alternativa
• Estructuras Repetitivas

• ESTRUCTURA SECUENCIAL
Esta estructura es la más sencilla de todas, simplemente indica al
procesador que debe ejecutar de forma consecutiva una lista de acciones (que
pueden ser, a su vez, otras estructuras de control); para construir una
secuencia de acciones basta con escribir cada acción en una línea diferente.
A continuación se muestra una composición secuencial de acciones en
notación algorítmica y su equivalente FORTRAN

leer a read *, a
leer b read *, b
c←a+b c=a+b
escribir c print *, c

Existe una forma alternativa de expresar una estructura secuencial


escribiendo varias acciones en la misma línea pero utilizando el punto y coma,
;, como separador. Sin embargo, esta última notación es desaconsejable
puesto que puede llegar a hacer el código bastante difícil de leer

leer a: leer b read *, a; read *, b


c ← a + b: escribir c c = a + b; print *, c
• ESTRUCTURA ALTERNATIVA
La estructura alternativa permite bifurcar el “flujo” del programa en
función
de una expresión lógica; disponemos de tres estructuras alternativas
diferentes: alternativa simple, alternativa doble y alternativa múltiple.

Estructura Alternativa Simple:


Esta estructura permite evaluar una expresión lógica y en función de dicha
evaluación ejecutar una acción (o composición de acciones) o no ejecutarla;
también se la suele denominar SI-ENTONCES. A continuación, se muestra la
notación algorítmica y FORTRAN para la estructura alternativa simple.

si expresión lógica entonces if (expresión lógica) then


acciones acciones
fin_si end if

En el siguiente ejemplo se calcula la longitud de una circunferencia si el


radio es positivo no nulo:

si radio > 0 entonces if (radio>0) then


longitud ← 2·pi·radio longitud = 2 * pi * radio
fin_si end if

Estructura Alternativa Doble:


La estructura alternativa doble es similar a la anterior con la salvedad de
que en este tipo de estructura se indican acciones no sólo para la rama
“verdadera” sino también para la “falsa”; es decir, en caso de la expresión lógica
evaluada sea cierta se ejecutan una acción o grupo de acciones y en caso de que
sea falsa se ejecuta un grupo diferente. La sintaxis en la notación algorítmica y en
FORTRAN son las que se muestran a continuación:

si expresión lógica entonces if (expresión lógica) then


acciones acciones
si no else
acciones acciones
fin_si end if
En el siguiente ejemplo se calcula la longitud de una circunferencia si el
radio es positivo no nulo y, en caso contrario, se proporciona un mensaje de error:

si radio > 0 entonces if (radio > 0) then


longitud ← 2·pi·radio longitud = 2 * pi * radio
si no else
escribir ‘Radio incorrecto’ print *, ‘Radio incorrecto’
fin_si end if

Estructura Alternativa Multiple:


Esta estructura evalúa una expresión que pueda tomar n valores (enteros,
caracteres y lógicos, pero nunca reales) y ejecuta una acción o grupo de acciones
diferente en función del valor tomado por la expresión selectora.
La sintaxis de esta estructura es la siguiente:

según expresión select case (expresión)


caso valor1: case (valor1)
acción 1 acción 1
caso valor2: case (valor2)
acción 2 acción 2
... ...
caso valor N: case (valor n)
acción n acción n
otro caso: case default
acción acción
fin según end select

En el siguiente ejemplo se proporciona como salida el número de días de un mes


dado:

según mes select case (mes)


caso 1,3,5,7,8,10,12: case (1,3,5,7,8,10,12)
escribir ‘31’ print *, ‘31’
caso 4,6,9,11: case (4,6,9,11)
escribir ‘30’ print *, ‘30’
caso 2: case (2)
escribir ‘28’ print *, ‘28’
otro caso: case default
escribir ‘Mes incorrecto’ print *, ‘Mes incorrecto’
fin según end select
• ESTRUTURAS REPETITIVA
La estructura repetitiva o iterativa permite, como su propio nombre indica,
repetir una acción (o grupo de acciones); dicha repetición puede llevarse a cabo
un número prefijado de veces o depender de la evaluación de una expresión
lógica.
Existen tres tipos de estructuras repetitivas: desde-hasta, mientras y
repetir-hasta

Estructura desde-hasta
Esta estructura permite repetir la ejecución de una acción o de un grupo de
acciones un número determinado de veces; la sintaxis es la siguiente:

desde índice ← inicio hasta fin [con paso valor] hacer do índice = inicio, fin, paso
acción acción
fin desde end do
El funcionamiento de la estructura es el siguiente:

El funcionamiento de la estructura es el siguiente:


• En primer lugar, se asigna a la variable índice el valor de inicio
• El bucle se ejecuta mientras índice no alcance el valor de fin.
• En cada iteración el valor de índice es incrementado según el paso
indicado y se ejecuta la acción o grupo de acciones encerrados en el
bucle.
• En caso de que no se indique ningún paso el que se empleará sera +1

A continuación, se muestran algunos ejemplos

desde n ← 1 hasta 10 hacer do n = 1, 10


escribir n print *, n
fin desde end do

El bucle anterior imprime por pantalla los números del 1 al 10


desde n ← 10 hasta 1 hacer do n=10, 1
escribir n print *, n
fin desde end do

El bucle anterior no se ejecuta nunca puesto que no se puede alcanzar


1 comenzando en 10 y avanzando con paso +1; ¡atención! Un error frecuente
es
pensar que el bucle se ejecuta de forma infinita

desde n!10 hasta 1 con paso –2 hacer do n=10, 1, -2


escribir n print *, n
fin desde end do

Este bucle escribe los números pares de 10 a 2 en orden inverso


Estructura mientras

Estructura Mientras
Esta estructura repite una acción o grupo de acciones mientras una
expresión lógica sea cierta; la sintaxis en la notación algorítmica y en
FORTRAN es la siguiente:

mientras expresión lógica hacer do while (expresión lógica)


acción acción
fin desde end do

Un aspecto muy importante de la presente estructura de control es que


si la expresión lógica es inicialmente falsa el bucle no se ejecuta ni una sola
vez; es decir, la estructura mientras supone que el bucle iterará 0 ó más veces.

A continuación, se muestra un ejemplo que solicita al usuario el radio


de una circunferencia mientras el radio introducido sea incorrecto:

Mientras radio < 0 hacer do while (radio < 0)


Escribir ’radio? ’ print *, ‘Radio?’
Leer radio read *, radio
Fin desde end do
Estructura repetir-hasta
Esta estructura repite una acción o grupo de acciones hasta que una
expresión lógica sea cierta; la sintaxis en la notación algorítmica es la siguiente
(no existe equivalente en FORTRAN pero sí en otros lenguajes de
programación):

repetir
acción
hasta expresión lógica

Un aspecto muy importante de la presente estructura de control es que


la expresión lógica no se evalúa hasta el final con lo cual el bucle se ejecuta al
menos una vez por contraposición a la estructura anterior que podía no
ejecutarse ninguna.

Fuente:
https://es.wikipedia.org/wiki/Estructuras_de_control
Fuente:
http://di002.edv.uniovi.es/~dani/asignaturas/apuntes-leccion4.PDF

3.- ESTRUCTURA DE DECISION, CONCEPTO, TIPOS Y SINTAXIS


CONDICIONAL, SIMPLES, DOBLES, MULTIPLE, ANIDADAS Y SELECTIVA
Esta estructura tiene la funcionalidad de tomar acciones en base al
resultado lógico de una decisión.
Otra definición: Permite seleccionar la próxima sentencia a ejecutarse
sobre la base de una decisión (expresión lógica o variable lógica)
Ahora bien, dicha estructura se divide en tres tipos, Simple, Doble y
Anidadas, que a continuación desglosaremos

• Simples
Es la que se ejecuta cuando la condición propuesta es verdadera, ejemplo de
ello tenemos
<?php

if(2 > 1){


//si 2 es mayor que 1 entonces:

echo "La condición se cumple";

echo "<br />";

echo "El mensaje anterior se muestra si y solo si,


la condición es verdadera";

?>

En otro particular La sentencia if es utilizada para tomar decisiones y su


formato es:

Pseudo lenguaje
Si (condición) entonces
sentencias...
fin si

En lenguaje C
if ( expresión lógica) {
sentencias....
}

La condición se evalúa y si el resultado es “cierto” entonces el conjunto


de instrucciones encerrado entre las llaves se ejecuta.
Si el resultado de la evaluación de la condición es “falso”, entonces no
se ejecutan el bloque de instrucciones.
Ejemplos:

Pseudo código
Si ( hora < 12 )
escribir “Buenos Días”
fin si

En lenguaje C
if ( hora < 12 ) {
printf(“Buenos Días\n”);
}
Tomando en cuenta el anterior ejemplo, Las llaves son opcionales si el bloque
de instrucciones está formado por una sola sentencia

if ( hora < 12 )
printf(“Buenos Días\n”);

A continuación, veremos otro ejemplo:


. Pseudo código
Si ( Nota > 15 ) entonces
Escribir “Estudiante eximido”
Eximidos = Eximidos + 1
fin si

Lenguaje C
if ( Nota > 15 ) {
printf (“Estudiante eximido\n”) ;
Eximidos++;
}

• Dobles
Es la estructura que nos permite tomar un camino diferente si
la condición establecida no es verdadera, para esto haremos uso de la palabra
clave else, que sería como decir sino (o de lo contrario)

<?php

if(1 > 1){


//si 1 es mayor que 1 entonces:

echo "La condición se cumple";

}else{
echo "La condición no se cumple";
}

echo "<br />";

echo "El mensaje anterior se muestra si y solo si,


la condición es verdadera";

?>
Para ampliar este punto, podemos decir que la Estructura de Decisión
Doble permite ejecutar dos conjuntos de sentencias alternativos en función del
resultado de la evaluación de una condición lógica.
Si el resultado es “cierto” se ejecuta un grupo de sentencias.
Si el resultado es “falso” se ejecuta otro grupo de sentencias.

Formato en pseudo código


Si ( decisión ) entonces
sentencias....
Si no
sentencias....
fin si

La sentencia if - else es utilizada para tomar decisiones y su formato es:

if (expresión lógica) {
sentencias....
}
else{
sentencias....
}

A continuación, mostraremos un ejemplo:

if ( Edad < 18 ) {
printf (“Necesita autorizacion\n”);
}
Else {
if ( Edad > 30 ) {
printf (“No aplica\n”);
}
Else {
Printf (“Puede continuar\n”);
}
}
• Anidadas
Este tipo de estructuras nos permite tomar mas de un camino para una
condición y esta estructura puede ser expresada de dos formas, anidando
estructuras, o con el uso de la palabra elseif, lo que podría traducirse como,
sino, si…

A continuación, se presenta un ejemplo utilizando la estructura Anidadas

<?php

if(1 > 1){


//si 1 es mayor que 1 entonces:

echo "La condición se cumple";

}else{
if(1 < 1){
echo "La condición se cumple";
}else{
echo "un else anidado";
}
}

echo "<br />";

echo "El mensaje anterior se muestra si y solo si,


la condición es verdadera";

?>

Se presenta un ejemplo de estructuras de decisión con esta nueva palabra


elseif
<?php

if(1 > 1){


//si 1 es mayor que 1 entonces:

echo "La condición se cumple";

}elseif(1 < 1){


//de lo contrario 1 es menor que 1 entonces:
echo "La condición se cumple";
}else{
//si nada de lo anterior se cumple entonces:
echo "un else anidado";
}

echo "<br />";

echo "El mensaje anterior se muestra si y solo si,


la condición es verdadera";

?>

Podemos colocar una estructura de decisión dentro de otra. A esto se le


denomina anidación.

Notación en pseudo código


Si (condición1) entonces
Si (condición2) entonces
sentencias
fin si
Sentencias
fin si

Código C
if ( decisión1 ) {
if ( desición2 ) {
sentencias
}
Sentencias
}
Otro ejemplo:

Notación en pseudo código


Si ( x > 0 ) entonces
Si ( y < 0.5) entonces
y=a*x
fin si
a=x+y
fin si

Código C
if ( x > 0 ) {
if ( y < 0.5) {
y = a * x;
}
a = x + y;
}

Fuente:
https://phphomeworks.wordpress.com/2012/11/09/estructuras-de-decision/
Fuente:
https://informatica2011ulagos.files.wordpress.com/2011/03/08_estructurasdedecision.pdf

4.- ESTRUCTURA DE CONTROL ITERATIVAS


CONCEPTOS, TIPOS, CICLO MIENTRAS Y REPETIR, SINTAXIS Y
METODOS PARA SALIR DEL CICLO, CICLO PARA SINTAXIS, CICLOS
ANIDADOS

CONCEPTO: Es una secuencia de instrucciones destinada a ejecutarse varias


veces. También es la acción de ejecutar esta instrucción. El objetivo de un
bucle es repetir un bloque de instrucciones varias veces. Según el tipo de
bucle, este bloque se va a repetir un número fijo de veces (n veces) o según
un determinado número de criterios (una prueba de una o varias condiciones),
que ahora conoce muy bien.
TIPOS
1- Estructura For
2- Estructura Do…While
3- Estructura While

1.- Estructura For


Esta estructura de repetición es más utilizada cuando sabemos el
número de repeticiones que deseamos ejecutar.

La notación de esta estructura es sencilla y se detalla a continuación


for ( condición de inicio ; expresión ; acción después de cada iteración )
{
sentencia (s);
}
La condición de inicio quiere decir que podemos inicializar una variable
que vayamos a utilizar dentro el cuerpo de la estructura for.
La expresión nos indica que se seguirá iterando(repitiendo) mientras la
condición sea verdadera.
La acción después de cada iteración viene a ser lo que queremos hacer
variar después de cada iteración, esta variación podría ser un incremento en
la variable definida en la condición de inicio.
Al igual que las demás estructuras de control el cuerpo de la
estructura for lleva llaves si este contiene más de una sentencia o instrucción.
Ejemplo:
Quiero cantar 10 veces la canción del elefante, el código sería algo así:
#include <iostream>
using namespace std;
void main()
{
int i;
for( i = 1 ; i<=10 ; i++)
{
cout<<i<<" elefante(s) se balanceaba(n) sobre la tela de una araña\n”;
cout<<”como veía(n) que resistía(n) fueron a llamar a otro elefante\n ";
}
}

El código anterior emitirá por pantalla 10 veces el mensaje de 1 elefante .......


hasta 10 elefantes......
El ejemplo anterior es muy sencillo pero nos muestra el funcionamiento de la
estructura for.

2- Estructura Do…While
Esta estructura de control es muy parecida a la estructura while lo que
la hace diferente es que siempre ejecuta por lo menos una ves el cuerpo de
la estructura, por eso el do, y luego valida una expresión y en función a este
resultado vuelve a iterar o no.
La notación de esta estructura es como sigue:
do
{

sentencias o instrucciones

}
while ( expresión );

Las estructura do/while lleva punto y coma a diferencia de la estructura while.


Ejemplo:
Un ejemplo para este caso es el siguiente:
Se desea ingresar por lo menos un nombre de un estudiante por teclado hasta
que el usuario presione '0' para salir o cualquier otro número para continuar.
#include <iostream>
using namespace std;

void main()
{
char nom[20]; //Cadena que puede contener 20 caracteres
int rpta=0;
do
{
cout<<"Ingrese el nombre de un estudiante \n";
cin>>nom;
cout<<"Desea continuar ingresando nombres: para salir '0'";
cin>>rpta;
}
while(rpta != 0); }

3- Estructura While
Dicha estructura repite una serie de acciones mientras se cumpla una
condición.
while ( expresión )
{
sentencia (s);
}

La estructura while trabaja de la siguiente manera:


1. Evalúa la expresión o condición
2. Si el resultado de esta evaluación es verdadero la sentencia o
sentencias se ejecutan, es decir, se ejecuta el cuerpo de la estructura.
Luego se vuelve a evaluar la expresión

3. Si el resultado de esta evaluación es falso no se ejecuta la sentencia o


sentencias y sale del ciclo while.
Ejemplo:
Tengo que apagar 10 velas cuando cumpla 10 años, es decir, tengo que soplar
10 veces, entonces el problema escrito en Pseudocódigo sería:
Inicio
edad <- 0
mientras edad != 10 años
soplar vela
edad = edad + 1
Fin Mientras
F
Fuente:
https://www.ediciones-
eni.com/open/mediabook.aspx?idR=2e43d597e4e655d9cb449efca2bc66ca
Fuente:
http://www.omijal.org/pagina_c/its.html

ESTRUCTURA MIENTRAS QUE (while)


Cuando se está diseñando un algoritmo computacional es necesario
repetir de forma controlada un conjunto de instrucciones. Las estructuras
repetitivas también llamadas ciclos permiten repetir una secuencia de
instrucciones un número determinado de veces, al hecho de repetir la
ejecución de una secuencia de acciones se le llama iteración.

Estructura mientras que (while) Forma Lógica


1.-Se evalúa la condicional que existe
dentro del ciclo while, en caso de que la
condición sea verdadera va al #2; en
caso de que la Condicional sea falsa va
al #3.
2.-Ejecuta las instrucciones de la Parte
Verdadera y vuelve al #1.
Termina el ciclo while y continua la
secuencia del programa
3.- Termina el ciclo while y continua la
secuencia del programa.

SINTAXIS

1. while(condición) {
2. //instrucciones ...
3. //actualización de la condición de salida del while
4. }
Ejemplo
Algoritmo que muestra en pantalla los números pares que hay entre el
2 y el 50

ESTRUCTURA PARA (for)


Esta estructura permite ejecutar una serie de instrucciones un número
determinado de veces.

Estructura para (for) Forma Lógica

1.- Iniciativa de una variable


declarada que permite controlar el
ciclo (inicialización).
2.- Se evalúa la condición y si es
verdadera va al #3, si la condición es
falsa va al #5.
3.- Ejecuta las instrucciones que hay
dentro del ciclo.
4.- Incrementa la variable que
controla el ciclo y retorna al #2.
5.- Termina el Ciclo for y continua la
secuencia del programa.
SINTAXIS
1. for (inicialización; condición; incremento)
2. {
3. //instrucciones
4. }
Ejemplo
Algoritmo que muestra en pantalla los números pares que hay entre el
2 y el 50.

ESTRUCTURA HACER – MIENTRAS (do-while)


(Do-While). Al igual que en la estructura while las instrucciones se
ejecutan mientras la condición sea verdadera, pero la condición se
comprueba al final del ciclo, por lo que las instrucciones se ejecutarán al
menos una vez.
Estructura hacer – mientras (do-while) Forma Logica

1. Ejecuta las instrucciones que


hay dentro del ciclo do – while y
va al #2.

2. Evalúa condición del ciclo do


–while, caso de que la condición
sea verdadera retorna al #1; en
caso de que la condición sea
falsa va al #3.

3.
4. Termina el Ciclo do - while y
continua la secuencia del
programa.

SINTAXIS
1. Do {
2. //instrucciones ...
3. //actualización de la condición de salida del while
4. } while(condición);

Fuente:
http://aprende.colombiaaprende.edu.co/sites/default/files/naspublic/curriculosex/n1g10_fproy/
nivel1/programacion/unidad4/leccion1.html

SINTAXIS Y METODOS PARA SALIR DEL CICLO

El ciclo con centinela es muy claro pero tiene un problema: hay dos
lugares (la primera línea del cuerpo y la última línea del ciclo) donde se ingresa
el mismo dato. Si en la etapa de mantenimiento tuviéramos que realizar un
cambio en el ingreso del dato (cambio de mensaje, por ejemplo) deberíamos
estar atentos y hacer dos correcciones iguales.
Sería preferible poder leer el dato x en un único punto del programa. A
continuación, tratamos de diseñar una solución con esa restricción.
Es claro que en ese caso la lectura tiene que estar dentro del ciclo para
poder leer más de un número, pero entonces la condición del ciclo no puede
depender del valor leído, ni tampoco de valores calculados dentro del ciclo.
Pero un ciclo que no puede depender de valores leídos o calculados dentro de
él será de la forma:

• Repetir indefinidamente:

• Hacer algo.

Y esto se traduce a Python como:

while True:

<hacer algo>

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 de Python, break, que nos
permite salir de adentro de un ciclo (tanto sea for como while) en medio de su
ejecución.

En esta construcción
while <condicion>:
<hacer algo 1>
if <condif>:
break
<hacer algo 2>

El sentido del break es el siguiente:

1. Se evalúa <condición> y si es falsa se sale del ciclo.


2. Se ejecuta <hacer algo 1>.
3. Se evalúa <condif> y si es verdadera se sale del ciclo (con break).
4. Se ejecuta <hacer algo 2>.
5. Se vuelve al paso 1.

Diseñamos entonces:
o Pedir dato.
o Si el dato ingresado es el centinela, salir del ciclo.
o Operar con el dato.
Codificamos en Python la solución al problema de los números usando ese
esquema:
def pcn_loop3():
def pcn_loop3():
while True:
x = input("Ingrese un numero ('*' para terminar): ")
if x == '*':
break
elif x > 0:
print "Numero positivo"
elif x == 0:
print "Igual a 0"
else:
print "Numero negativo"

Se ejecuta de la siguiente manera:


>>> pcn_loop3()
Ingrese un numero ('*' para terminar): 25
Numero positivo

Ingrese un numero ('*' para terminar): 0


Igual a 0

Ingrese un numero ('*' para terminar): -5


Numero negativo

Ingrese un numero ('*' para terminar): '*'


>>>

Fuente: https://uniwebsidad.com/libros/algoritmos-python/capitulo-5/como-romper-un-ciclo
Fuente:
https://sites.google.com/site/portafoliodeacarlosmolina/sintaxis-y-metodos-para-salir-del-ciclo

CICLO PARA SINTAXIS


Son un conjunto de estructura de control, donde se encuentra uno o
más ciclo dentro de otro, no teniendo límite alguno para la cantidad de ciclos
anidados

Un Ciclo Anidados funciona de la siguiente manera:


Ellos son usados para llenar matrices (un vector de varias dimensiones)
donde un ciclo recorre cada fila y otro cada columna o viceversa (depende de
lo que necesitemos). De este modo entonces el ciclo externo empieza por la
columna cero y el interno llena cada casilla de la columna cero y luego de la
uno y las dos y así...
Notemos que entonces el ciclo externo (el de las columnas) no avanza
a la siguiente hasta que el ciclo interno no llene todas las casillas de esa
columna (lo cual tiene sentido, pues debe llenarse en orden).
Sintaxis de ciclos anidados:

La sintaxis es sencilla, un ciclo con otro adentro, y lo que nos haga


falta, pues podemos poner varias sentencias adicionales al interior de
cualquiera de los dos ciclos.

for (int i = valor inicial; i < valor final; i ++)


{
/*
….
….
Bloque de instrucciones ….
….
….
/*
for (int j = valor inicial; j < valor final; j ++)
{
/*
….
….
Bloque interno de instrucciones ….
….
….
*/
{

// acá puede haber mas instrucciones


}

Tenemos que tomar en cuenta lo siguiente:


Lo 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'. debemos 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.
Por ultimo debemos 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.
Nota: Aquí no se a hablado de tipos de ciclos, somos libres de anidar
cualquier tipo de ciclo (for, while, do-while) y en cualquier cantidad, por
Ejemplo:
While (condición)
{
/*
Bloque de instrucciones….
/*
For (int i = valor inicial; j < valor final: j++)
{
/*
Bloque interno de instrucciones….
*/
while (condición)
{
/*
Mas instrucciones
*/
}
}
// Acá pueden haber más instrucciones
}

En el ejemplo anterior citado no existen restricciones, de hecho al interior


de cada ciclo puedes poner condicionales y demás estructuras que deseamos o
requerimos.
Veamos entonces un ejemplo funcional para quedar claros.

Ejemplo 1: de ciclos anidados en C++


Vamos a llenar una matriz de 10x10 (diez filas y diez columnas) con los
números del 1 al 100 (1x1 hasta 10x10).

#include “iostream”
Using namespace std;

Int main ( )
{
Int matriz [10 ] [10 ];

For (int i = 0; i < 10; i++) / /ciclo externo


{
/ /Notemos que en un ciclo interno no usamos la variable ‘i’ sino ‘j ‘
/ /Si usaremos i, el comportamiento seria inesperado
for (int j = 0; j < 10; j++) / / Ciclo interno
{
/ / Llenamos la matriz con los números del 1 al 100
matriz [ i ] [ j ] = ( i + 1 ) * ( j + 1 );
/ / ( i + 1) * ( j + 1 ) va desde 1 x 1 hasta 10 x 10 (aunque en desorden)
}
}

System ( “pause” );
Return 0;
}

Ejemplo 2:
En este ejemplo plasmaremos la función complementaria, se recorrerá la
matriz usando ciclos anidados y a mostrar los valores en ésta.
Include “iostream”
Using namespace std;

Int main ( )
{
/ / Supomiendo que tenemos una Matriz llena llamada matriz
for ( int i = 0; i < 10; i ++) / / Ciclo externo
{
/ / Recuerda: En ciclo interno no usamos la variable ‘ i ‘ sino ‘ j ‘
for ( int j = 0; j < 10; j ++) Ciclo interno
{
/ / Mostraremos en pantalla el valor de la fila i columna j
Cout << matriz [ i ] [ j ] << “ \n”;
}
}
system (“pause”);
Return 0;
}

En este ejemplo no funcionaría por sí solo, puesto que aquí recorremos


una matriz que está llena (como se muestra en el primer ejemplo). El código
completo funcional, donde llenamos y luego mostramos la matriz, sería el
siguiente:

A continuación, mostraremos
mostraremos un ejemplo completo funcional
Vamos entonces a juntar ambos códigos para realizar ambas tareas
(recorrer y mostrar la matriz) usando ciclos anidados.

(Observemos el ejemplo en la siguiente página)….


include “iostream”
using namespace std;

Int main ( )
{
Int matriz [ 10 ] [ 10 ];

for (int i = 0; i < 10; i ++) / / Ciclo externo


{
/ / Notemos que en el ciclo interno no usamos la variable “i “sino “j”
/ / Si usamos i, el comportamiento serio inesperado
For (int j = 0; j < 10; j ++) / / Ciclo interno
{
/ / Llenamos la matriz con los números del 1 al 100
matriz [ i ] [ j ] = ( i + 1) * ( j + 1);
/ / ( i + 1) * ( j + 1) va desde 1 x 1 hasta 10 x 10
}
}

for (int 1 = 0; i < 10; i ++) / / Ciclo externo


{
for (int j = 0; j < 10; j ++) / / Ciclo interno
{
/ / Mostraremos por pantalla el valor de la fila i columna j
Cout << matriz [ i ] [ j ] << “\n”;
}
}

system (“pause”);
return 0;
}

Fuente:
https://www.programarya.com/Cursos/C++/Ciclos/Ciclos-anidados

También podría gustarte