0% encontró este documento útil (0 votos)
101 vistas

Programación Estructurada 1-3

Este documento proporciona información sobre la programación estructurada y las estructuras de control en lenguajes de programación. Explica que la programación estructurada se basa en tres estructuras: secuencia, selección e iteración, y que el teorema del programa estructurado establece que cualquier función computable puede implementarse usando solo estas tres estructuras lógicas. También describe varias estructuras de control comunes como if/else, switch/case, bucles for y while, y explica cómo permiten modificar el flujo de ejecución de un programa

Cargado por

Orlando Ramos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
101 vistas

Programación Estructurada 1-3

Este documento proporciona información sobre la programación estructurada y las estructuras de control en lenguajes de programación. Explica que la programación estructurada se basa en tres estructuras: secuencia, selección e iteración, y que el teorema del programa estructurado establece que cualquier función computable puede implementarse usando solo estas tres estructuras lógicas. También describe varias estructuras de control comunes como if/else, switch/case, bucles for y while, y explica cómo permiten modificar el flujo de ejecución de un programa

Cargado por

Orlando Ramos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 14

República Bolivariana de Venezuela

Ministerio Del Poder Popular Para La Educación

Aldea Bolivariana Mercedes Pérez Freites

Anaco – Estado Anzoátegui.

Programación estructurada

Profesor: Felipe Lara

Alumno: Orlando Ramos C.I:29.564.279

Materia: Algoritmo y Programación

PNF: INFORMATICA

Trayecto: 1-3
Programación estructurada

La programación estructurada es un paradigma de programación orientado a


mejorar la claridad, calidad y tiempo de desarrollo de un programa de
computadora recurriendo únicamente a subrutinas y tres estructuras básicas:
secuencia, selección (if y switch) e iteración (bucles for y while); asimismo, se
considera innecesario y contraproducente el uso de la instrucción de
transferencia incondicional (GOTO), que podría conducir a código espagueti,
mucho más difícil de seguir y de mantener, y fuente de numerosos errores de
programación.

Teorema del programa estructurado

Surgió en la década de 1960, particularmente del trabajo de Böhm y Jacopini,


y un famoso escrito de 1968: «La sentencia goto, considerada perjudicial», de
Edsger Dijkstra. Sus postulados se verían reforzados, a nivel teórico, por el
teorema del programa estructurado y, a nivel práctico, por la aparición de
lenguajes como ALGOL, dotado de estructuras de control consistentes y bien
formadas.

El teorema del programa estructurado 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.

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.
Los científicos de la computación usualmente acreditan el teorema a un
artículo de 1966 escrito por Corrado Böhm y Giuseppe Jacopini. Sin embargo,
David Harel rastreó sus orígenes hasta la descripción de 1946 de la
arquitectura de von Neumann y el teorema de la forma normal de Kleene.

La demostración de Böhm-Jacopini describe cómo construir diagramas de


flujo estructurados a partir de cualquier diagrama de flujo, usando los bits de
una variable entera extra para dar seguimiento a la información que el
programa original representa mediante puntos de entrada en el código. Esta
construcción estuvo basada en el lenguaje de programación P′′ de Böhm. La
demostración de Böhm-Jacopini no esclareció la cuestión sobre cuándo
convendría usar programación estructurada para el desarrollo de software,
en parte porque la construcción ofuscaba el código del programa en lugar de
mejorarlo. Por otro lado, fue el punto de partida para iniciar el debate.
Edsger Dijkstra escribió una importante carta titulada "La sentencia Go To
considerada dañina" en el año 1968. Posteriores estudios agregaron
aproximaciones más prácticas a la demostración de Böhm-Jacopini, que
mantenían o mejoraban la claridad del programa original.

Estructura de Control

Permiten modificar el flujo de ejecución de las instrucciones de un programa.

Con las estructuras de control se puede:

 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)

Todas las estructuras de control tienen un único punto de entrada. Las


estructuras de control se pueden clasificar en: secuenciales, iterativas y de
control avanzadas. Esta es una de las cosas que permiten que la
programación se rija por los principios de la programación estructurada.

Los lenguajes de programación modernos tienen estructuras de control


similares. Básicamente lo que varía entre las estructuras de control de los
diferentes lenguajes es su sintaxis; cada lenguaje tiene una sintaxis propia
para expresar la estructura.

Otros lenguajes ofrecen estructuras diferentes, como por ejemplo los


comandos guardados.

Tipos de estructuras de control

Algunas estructuras de control en el lenguaje Java.

Antecedentes

El término "estructuras de control" viene del campo de la ciencia


computacional. Cuando se presentan implementaciones de Java para las
estructuras de control, nos referimos a ellas con la terminología de la
Especificación del lenguaje Java, que se refiera a ella como instrucciones
modernas.
Ejecución secuencial

Por lo general, las instrucciones se ejecutan una después de la otra, en el


orden en que están escritas, es decir, en secuencia. Este proceso se conoce
como ejecución secuencial,

Transferencia de control

En Java, como en otros lenguajes de programación por excelencia como C y


C++, el programador puede especificar que la siguiente instrucciones a
ejecutarse tal vez no sea la siguiente en secuencia. Esto se conoce como
transferencia de control. Hay que tener en cuenta que la instrucción goto es
una palabra reservada pero no se utiliza ni se recomienda. Un programa bien
estructurado no necesita esta instrucción.1

De selección

Las estructuras de control de selección ejecutan un bloque de instrucciones u


otro, o saltan a un subprograma o subrutina según se cumpla o no una
condición.

Estructura de control

Las estructuras de control, denominadas también sentencias de control,


permiten tomar decisiones y realizar un proceso repetidas veces. Se trata de
estructuras muy importantes, ya que son las encargadas de controlar el flujo
de un programa, según los requerimientos del mismo. canal o proceso que se
puede actualizar
Selección if simple

Se trata de una estructura de control que permite redirigir un curso de acción


según la evaluación de una condición simple, sea falsa o verdadera.

Si la condición es verdadera, se ejecuta el bloque de sentencias ; de lo


contrario, se ejecuta el bloque de sentencias.

IF (Condición) THEN
(Bloque de sentencias 1)
ELSE
(Bloque de sentencias 2)
END IF

Se pueden plantear múltiples condiciones simultáneamente: si se cumple la


(Condición 1) se ejecuta (Bloque de sentencias 1). En caso contrario se
comprueba la (Condición 2); si es cierta se ejecuta (Bloque de sentencias 2), y
así sucesivamente hasta n condiciones. Si ninguna de ellas es cumple se
ejecuta (Bloque de sentencias else).

IF (Condición 1) THEN
(Bloque de sentencias 1)
ELSEIF (Condición 2) THEN
(Bloque de sentencias 2)

.....

ELSEIF (Condición n) THEN


(Bloque de sentencias n)
ELSE
(Bloque de sentencias else)
END IF
Select-Case

Esta sentencia permite ejecutar una de entre varias acciones en función del
valor de una expresión. Es una alternativa a if then else cuando se compara la
misma expresión con diferentes valores.

 Se evalúa la expresión, dando como resultado un número.


 Luego, se recorren los "Case" dentro de la estructura buscando que el
número coincida con uno de los valores.
 Es necesario que coincidan todos sus valores.
 Cuando se encuentra la primera coincidencia, se ejecuta el bloque de
sentencias correspondiente y se sale de la estructura Select-Case.
 Si no se encuentra ninguna coincidencia con ningún valor, se ejecuta el
bloque de sentencias de la sección "Case Else".
Select (Expresión)
Case Valor1
(Bloque de sentencias 1)
Case Valor2
(Bloque de sentencias 2)
Case Valor n
(Bloque de sentencias n)
Case Else
(Bloque de sentencias "Else")
End Select

Estructuras de Decisión

Las sentencias de decisión o también llamadas de CONTROL DE FLUJO son


estructuras de control que realizan una pregunta la cual retorna verdadero o
falso (evalúa una condición) y selecciona la siguiente instrucción a ejecutar
dependiendo la respuesta o resultado.

En algún momento dentro de nuestros algoritmos, es preciso cambiar el flujo


de ejecución de las instrucciones, es decir, el orden en que las instrucciones
son ejecutadas. Muchas de las veces tenemos que tomar una decisión en
cuanto a que se debe ejecutar basándonos en una respuesta de verdadero o
falso (condición).
La ejecución de las instrucciones incluyendo una estructura de control como
el condicional funciona de esta manera:

 Las instrucciones comienzan a ejecutarse de forma secuencial (en orden)


y cuando se llega a una estructura condicional, la cual está asociada a una
condición, se decide qué camino tomar dependiendo siempre del
resultado de la condición siendo esta falsa o verdadera.

 Cuando se termina de ejecutar este bloque de instrucciones se reanuda la


ejecución en la instrucción siguiente a la de la condicional.

Sentencia if

La instrucción if es, por excelencia, la más utilizada para construir estructuras


de control de flujo.

SINTAXIS

Primera Forma

Ahora bien, la sintaxis utilizada en la programación de C++ es la siguiente:

if (condicion)
{
Set de instrucciones
}

siendo "condición" el lugar donde se pondrá la condición que se tiene que


cumplir para que sea verdadera la sentencia y así proceder a realizar el "set
de instrucciones" o código contenido dentro de la sentencia.

Segunda Forma
Ahora veremos la misma sintaxis pero ahora le añadiremos la parte "Falsa"
de la sentencia:

if (condicion)
{
Set de instrucciones //PARTE VERDADERA
}
else
{
Set de instrucciones 2 //Parte FALSA
}

La forma mostrada anteriormente muestra la union de la parte


"VERDADERA" con la nueva secuencia la cual es la parte "FALSA" de la
sentencia de decision "IF" en la cual esta compuesta por el:

else
{
Set de instrucciones 2 //Parte FALSA
}

la palabra "else" o "De lo contrario" indica al lenguaje que de lo contrario al


no ser verdadera o no se cumpla la parte verdadera entonces realizara el "set
de instrucciones 2".

EJEMPLOS DE SENTENCIAS IF...

Ejemplo 1:

if(numero == 0) //La condicion indica que tiene que ser igual a Cero
{
cout<<"El Numero Ingresado es Igual a Cero";
}

Ejemplo 2:

if(numero > 0) // la condicion indica que tiene que ser mayor a Cero
{
cout<<"El Numero Ingresado es Mayor a Cero";
}

Ejemplo 3:

if(numero < 0) // la condicion indica que tiene que ser menor a Cero
{
cout<<"El Numero Ingresado es Menor a Cero";
}

Ahora uniremos todos estos ejemplos para formar un solo programa


mediante la utilización de la sentencia "Else" e introduciremos el hecho de
que se puede escribir en este espacio una sentencia if ya que podemos
ingresar cualquier tipo de código dentro de la sentencia escrita después de
un Else.

Ejemplo 4:

if(numero == 0) //La condicion indica que tiene que ser igual a Cero
{
cout<<"El Numero Ingresado es Igual a Cero";
}
else
{
if(numero > 0) // la condicion indica que tiene que ser mayor a
Cero
{
cout<<"El Numero Ingresado es Mayor a Cero";
}
else
{
if(numero < 0) // la condicion indica que tiene que ser menor
a Cero
{
cout<<"El Numero Ingresado es Menor a Cero";
}
}
}

Sentencia switch
switch es otra de las instrucciones que permiten la construcción de
estructuras de control. A diferencia de if, para controlar el flujo por medio de
una sentencia switch se debe de combinar con el uso de las
sentencias case y break.
Notas: cualquier número de casos a evaluar por switch así como la
sentencia default son opcionales. La sentencia switch es muy útil en los casos
de presentación de menus.
Sintaxis:
switch (condición)
{
case primer_caso:
bloque de instrucciones 1
break;

case segundo_caso:
bloque de instrucciones 2
break;

case caso_n:
bloque de instrucciones n
break;

default: bloque de instrucciones por defecto


}

Ejemplo 1

switch (numero)
{
case 0: cout << "numero es cero";
}

Ejemplo 2

switch (opcion)
{
case 0: cout << "Su opcion es cero"; break;
case 1: cout << "Su opcion es uno"; break;
case 2: cout << "Su opcion es dos";
}

Ejemplo 3

switch (opcion)
{
case 1: cout << "Su opcion es 1"; break;
case 2: cout << "Su opcion es 2"; break;
case 3: cout << "Su opcion es 3"; break;
default: cout << "Elija una opcion entre 1 y 3";
}
Operador condicional ternario

En C/C++, existe el operador condicional ( ?: ) el cual es conocido por su


estructura como ternario. El comportamiento de dicho operador es el mismo
que una estructura if - then - else del lenguaje BASIC (y de la función IIf de
Visual Basic). El operador condicional ?: es útil para evaluar situaciones tales
como:

Si se cumple tal condición entonces haz esto, de lo contrario haz esto otro.

Sintaxis:

( (condicion) ? proceso1 : proceso2 )

En donde, condicion es la expresión que se evalua, proceso1 es la tarea a


realizar en el caso así también se conoce caridad de que la evaluación resulte
verdadera, y proceso2 es la tarea a realizar en el caso de que la evaluación o
negativa resulte falsa.

Ejemplo 1

int edad;
cout << "Cual es tu edad: ";
cin >> edad;
cout << ( (edad < 18) ? "Eres joven aun" : "Ya tienes la mayoría de edad"
);

El ejemplo anterior podría escribirse de la siguiente manera:

int edad;
cout << "Cual es tu edad: ";
cin >> edad;
if (edad < 18) cout << "Eres joven aun";
else cout << "Ya tienes la mayoría de edad";
Ejemplo 2
Vamos a suponer que deseamos escribir una función que opere sobre dos
valores numéricos y que la misma ha de regresar 1 (true) en caso de que el
primer valor pasado sea igual al segundo valor; en caso contrario la función
debe retornar 0 (false).

int es_igual( int a, int b)


{
return ( (a == b) ? 1 : 0 )
}

Estructuras de control iterativas


Las estructuras de control iterativas o de repetición, inician o repiten un
bloque de instrucciones si se cumple una condición o mientras se cumple una
condición.

Do-While

Mientras la condición sea verdadera, se ejecutarán las sentencias del bloque.

Do While (Condición)
(Bloque de sentencias)
Loop

que también puede expresarse:

While (Condición)
(Bloque de sentencias)
wend

Do-until
Se ejecuta el bloque de sentencias, hasta que la condición sea verdadera

Do
(Bloque de sentencias)
Loop Until (Condición)
For-Next
La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de
sentencias cierto número de veces.

 Primero, se evalúan las expresiones 1 y 2, dando como resultado dos


números.
 La variable del bucle recorrerá los valores desde el número dado por la
expresión 1 hasta el número dado por la expresión 2.
 El bloque de sentencias se ejecutará en cada uno de los valores que tome
la variable del bucle.
For (Variable) = (Expresión1) To (Expresión2) STEP (Salto)
(Bloque de sentencias)
Next

También podría gustarte