Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD I
PROGRAMACION ESTRUCTURADA
Participante:
Ezequiel González
C.I. 12.045.660
Prof. Alberto Molero
A CI
CI
FIN
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
• 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
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:
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:
repetir
acción
hasta expresión lógica
Fuente:
https://es.wikipedia.org/wiki/Estructuras_de_control
Fuente:
http://di002.edv.uniovi.es/~dani/asignaturas/apuntes-leccion4.PDF
• Simples
Es la que se ejecuta cuando la condición propuesta es verdadera, ejemplo de
ello tenemos
<?php
?>
Pseudo lenguaje
Si (condición) entonces
sentencias...
fin si
En lenguaje C
if ( expresión lógica) {
sentencias....
}
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”);
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
}else{
echo "La condición no se cumple";
}
?>
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.
if (expresión lógica) {
sentencias....
}
else{
sentencias....
}
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…
<?php
}else{
if(1 < 1){
echo "La condición se cumple";
}else{
echo "un else anidado";
}
}
?>
?>
Código C
if ( decisión1 ) {
if ( desición2 ) {
sentencias
}
Sentencias
}
Otro ejemplo:
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
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 );
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);
}
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
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
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.
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>
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"
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
#include “iostream”
Using namespace std;
Int main ( )
{
Int matriz [10 ] [10 ];
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;
}
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.
Int main ( )
{
Int matriz [ 10 ] [ 10 ];
system (“pause”);
return 0;
}
Fuente:
https://www.programarya.com/Cursos/C++/Ciclos/Ciclos-anidados