Anda di halaman 1dari 19

UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN

ESTRUCTURAS SELECTIVAS

Como hemos tenido ocasión de comprobar, la especificación formal de


algoritmos tiene utilidad real, cuando éstos requieren una descripción más
complicada que una simple secuencia de instrucciones. Uno de estos casos se
produce cuando existen varias alternativas, resultantes de la evaluación de una
determinada condición, como ocurre, por ejemplo, al resolver una ecuación de
segundo grado, donde el procedimiento a seguir es distinto según el discriminante
sea positivo, nulo ó negativo.

Las estructuras selectivas en un programa se utilizan para tomar decisiones, de


ahí que se suelan denominar también estructuras de decisión o alternativas. En
estas estructuras se evalúa una condición, especificada mediante expresiones
lógicas, en función de cuyo resultado, se realiza una opción u otra. En una primera
aproximación, para esta toma de decisiones, podemos pensar en una variable
interruptor o conmutador (switch), que representa un estado y por tanto puede
cambiar de valor a lo largo de la ejecución regulando el paso a una u otra parte del
programa, lo que supone una bifurcación en el flujo del programa, dependiendo del
valor que tome el conmutador.

DIAGRAMA UTILIZADO EN ESTRUCTURAS SELECTIVAS

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
4.1 SELECTIVA SIMPLE.

Se utilizan para tomar decisiones lógicas. Se suelen denominar también


estructuras de decisiones o alternativas. Es estas estructuras se evalúa una
condición y en función del resultado de la misma se realiza una opción u otra. Las
condiciones se especifican usando expresiones lógicas. Su representación en
seudocódigo es:

Si, Condición, entonces, acción, sino, otra acción.

Si: indica el comando de comparación.


Condición: indica la condición a evaluar.
Entonces: precede a las acciones a realizar cuando se cumple la condición.
Acción: Acción o conjunto de acciones que se realiza cuando se cumple la
condición.
Sino: precede a las acciones a realizar cuando no se cumple la condición
Otra acción: Acción o conjunto de acciones que se realizan cuando no se
cumple la condición.

Dependiendo si la comparación es cierta o falsa, se puede realizar una o más


acciones. Para realizar más de una, se puede usar el concepto de bloque (INICIO
FINAL).

Se identifican porque están compuestos únicamente de una condición. La


estructura si entonces evalúa la condición y en tal caso:

Si la condición es verdadera, entonces ejecuta la acción Si.


Si la condición es falsa, entonces no se hace nada.

EL SIGUIENTE DIAGRAMA

DE FLUJO MUESTRA LA

ESTRUCTURA SELECTIVA

SI ENTONCES:

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
EJEMPLO

Construir un algoritmo tal, que dado como dato la calificación de un alumno en


un examen, escriba "Aprobado" en caso que esa calificación fuese mayor que 8.

Salidas: mensaje de aprobado si se cumple la condición.

Entradas: calificación

Datos adicionales: un alumno aprueba si la calificación es mayor que 8

Variables:

Cal = calificación

Algoritmo:

Inicio

Leer (cal)

Si cal > 8 entonces

Escribir ("aprobado")

Fin_si

Fin

DESCRIPCIÓN DEL
EJEMPLO EN UN DIAGRAMA

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
4.2 SELECTIVA DOBLE.

Son estructuras lógicas que permiten controlar la ejecución de varias


acciones y se utilizan cuando se tienen dos opciones de acción, por la naturaleza
de estas se debe ejecutar una o la otra, pero no ambas a la vez, es decir, son
mutuamente excluyentes. La estructura selectiva si entonces/sino permite que el
flujo del diagrama se bifurque por dos ramas diferentes en el punto de la toma de
decisión(es). Si al evaluar la condición (o condiciones) el resultado es verdadero,
entonces se sigue por un camino específico y se ejecuta(n) cierta(s)
operación(es). SI el resultado es falso entonces se sigue por otro camino y se
ejecuta(n) otra(s) operación(es).
Español Inglés
<condición> entonces If <condición> then
<acción S1> <acción S1>
sino else
<acción S2> <acción S2>
Fin_Si End_if

Entonces, si una condición C es verdadera, se ejecuta la acción S1 y si es falsa,


se ejecuta la acción S2.

DIAGRAMA DE CONDICIÓN DOBLE

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
EJEMPLO

Construya un diagrama de flujo tal que dado como dato la calificación de un


alumno en un examen, escriba “Aprobado” si su calificación es mayor o igual que 8
y “reprobado” en caso contrario.
Datos de entrada
Calificación del alumno.
(Definición de variable)
Variable de tipo real que expresa la calificación del alumno.
Resultado esperado o datos de salida:
La palabra “Aprobado” o “Reprobado” según sea el resultado de la evaluación a
la calificación.
(Definición de variable)
No se requieren variables se imprimirá una cadena de caracteres.
Algoritmo
1. Inicio
2. Leer la calificación del alumno. CAL.
3. Evaluar si la calificación es mayor o igual a 8.
3.1. Si la calificación es mayor o igual a 8., imprimir “Aprobado”.
3.2. Si la calificación no es mayor o igual a 8., imprimir “Reprobado”.
4. Fin

Pseudocódigo
Inicio
Leer CAL
Si CAL>=8 entonces
Imprimir “Aprobado”
Sino
Imprimir “Reprobado”
Fin Si
Fin DESCRIPCIÓN DEL EJEMPLO EN
UN DIAGRAMA DE FLUJO

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
4.3 SELECTIVA ANIDADA.

La estructura selectiva anidada es una cadena de estructuras selectivas que se


conectan de la parte else de la actual con la parte if de la siguiente, es decir cuando
después de una decisión se debe tomar otra, después otra y así sucesivamente.

DIAGRAMA DE SELECTIVA ANIDADA PSEUDOCÓDIGO

Las estructuras selectiva anidada es aquella que evalúa una condición si es


verdadera realiza una acción o grupo de acciones y si es falsa ejecuta las demás
instrucciones. En las condiciones se utiliza operadores lógicos.

EJEMPLO

Realizar un DF y codificación de un programa que permita ingresar 4 caracteres


si alguna de ellas es carácter ’s’ ingresar 3 números y luego sumarlos.

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
Pseudocódigo

1) Inicio
2) leer a,b,c,d
3) Si a=’s’ entonces
si ir al paso 4
sino ir al paso 5
4) leer x,y,z
r x+y+z
Imprimir r
5)Si b=’s’ entonces
si ir al paso 6
sino ir al paso 7
6) leer x,y,z
r x+y+z
Imprimir r
7)Si c=’s’ entonces DIAGRAMA DE FLUJO

si ir al paso 8
sino ir al paso 9
8) leer x,y,z
r x+y+z
Imprimir r
9)Si d=5 entonces
si ir al paso 10
10) leer x,y,z
r x+y+z
Imprimir r
11) Fin

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
4.4 SELECTIVA MÚLTIPLE.
La estructura selectiva si múltiple permite que el flujo del diagrama se bifurque
por varias ramas en el punto de la toma de decisión(es), esto en función del valor
que tome el selector. Así si el selector toma el valor 1 se ejecutará la acción 1, si
toma el valor 2 se ejecutará la acción 2, si toma el valor N se realizará la acción N,
y si toma un valor distinto de los valores comprendidos entre 1 y N, se continuará
con el flujo normal del diagrama realizándose la acción N + 1.

DIAGRAMA DE FLUJO DE ESTRUCTURA SELECTIVA MULTIPLE

EL PSEUDOCÓDIGO PARA
ENUNCIAR UNA ESTRUCTURA
MÚLTIPLE

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
EJEMPLO

Construya un diagrama de flujo tal que dado como datos dos variables de
tipo entero, obtenga el resultado de la siguiente función:

Datos de entrada:

Se requiere el valor de V y el valor de NUM

(Definición de variable)

V. Variable de tipo entero que expresa el valor de V dentro de la función. NUM.


Variable de tipo entero que expresa el valor de NUM.

Resultado esperado o datos de salida:

El resultado de la función VAL.

(Definición de variable)

VAL. Variable de tipo real que expresa el resultado de la función realizada.

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
Proceso: (Algoritmo)

1. Inicio
2. Leer el valor de V y NUM.
3. Evaluar el valor de NUM
3.1. Si NUM = 1 entonces realizar la función VAL= 100 * V.
3.2. Si NUM = 2 realizar la función VAL= 100 ** V.
3.3. Si NUM = 3 calcular la función VAL= 100 / V.
3.4. Para cualquier otro valor de NUM asignar a VAL el valor de cero. VAL=0.
4. Imprimir el resultado de la función VAL
5. Fin

DESCRIPCIÓN DEL EJEMPLO EN UN DIAGRAMA DE FLUJO

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
ESTRUCTURAS REPETITIVAS
El computador está especialmente diseñado para aplicaciones en las que una
operación o un conjunto de ellas deben repetirse muchas veces. En este sentido,
definiremos bucle o lazo (loop), como un segmento de un programa cuyas
instrucciones se repiten bien un número determinado de veces o mientras se cumpla
una determinada condición.

Es imprescindible que se establezcan mecanismos para controlar esta tarea


repetitiva, ya que si éstos no existen, el bucle puede convertirse en un proceso
infinito. Así, en el bucle representado por el organigrama, se observa que las
instrucciones incluidas en él se repiten indefinidamente. El mecanismo de control
citado se establece mediante una condición que se comprueba en cada paso o
iteración del bucle. En la Figura 3.11, se coloca una condición tras la lectura de la
variable N (comprobar si su valor es cero), de forma que tenemos la oportunidad de
que el bucle deje de ser infinito, ya que podrá interrumpirse cuando la condición sea
verdadera.

DIAGRAMA DE FLUJO DE ESTRUCTURAS REPETITIVAS

Los procesos que se repiten varias veces en un programa necesitan en muchas


ocasiones contar el número de repeticiones habidas. Una forma de hacerlo es
utilizar una variable llamada contador, cuyo valor se incrementa o decremento en
una cantidad constante en cada repetición que se produzca.
JOSÉ MICHEL MADRIGAL IZQUIERDO
ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
4.5 REPETIR MIENTRAS.

Este ciclo consiste en un conjunto de instrucciones que se repiten mientras se


cumpla una condición. De igual manera que en los condicionales, la condición es
evaluada y retorna un valor lógico, que puede ser verdadero o falso. En el caso del
ciclo mientras las instrucciones contenidas en la estructura de repetición se
ejecutarán solamente si al evaluar la condición se genera un valor verdadero; es
decir, si la condición se cumple; en caso contrario, se ejecutará la instrucción que
aparece después de Fin mientras.

A diferencia de otros ciclos, el ciclo mientras comienza evaluando la expresión


condicional, si el resultado es verdadero se ejecutarán las instrucciones que estén
entre el mientras y el fin mientras, al encontrarse la línea fin mientras se volverá a
evaluar la condición, si se cumple se ejecutarán nuevamente las instrucciones y así
sucesivamente hasta que la condición deje de cumplirse, en cuyo caso, el control
del programa pasa a la línea que aparece después de fin mientras. Si en la primera
pasada por el ciclo mientras la condición no se cumple las instrucciones que están
dentro del ciclo no se ejecutarán ni una sola vez.

Los comentarios efectuados en relación a Mientras.

El número de repeticiones no está prefijado.


El diseño debe aportar una condición de salida válida.
El control del bucle se realiza a través de contadores, acumuladores, etc.

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
EJEMPLO

Un algoritmo para mostrar los números del 1 al 10.

Definición del problema

Mostrar listado de números de 1 a 10.

Análisis del problema


Datos de entrada: ninguno
Datos de salida: número
Proceso: ninguno
Diseño de la solución

Este es un algoritmo muy trivial pero permite revisar la aplicación de la


estructura de repetición Mientras. Lo primero a tener en cuenta es la declaración
e inicialización de la variable: num = 1. En este caso no solo se está declarando
una variable de tipo entero, sino también se está asignando un valor inicial, que
será el primer número mostrado.

La condición o expresión relacional con la cual se implementa el ciclo es num


<= 10, dado que num inicia en 1, la primera vez que se encuentra la instrucción
mientras, la expresión es verdadera, por tanto se ejecutan las instrucciones que
aparecen al interior del ciclo.

Después de haber mostrado el contenido de la variable num, éste cambia, se


incrementa en 1.

EJEMPLO DE REPETIR MIENTRAS

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
4.5 REPETIR HASTA.
Esta estructura es característica de lenguajes como PASCAL, y su uso es muy
sencillo, se especifica un valor de partida (lógicamente) y un valor de parada (por
eso es “hasta”) que es el valor límite hasta el cual se realizara cierta instrucción
utilizando como base el valor de repetición. Esta estructura es manejada por
PASCAL como una estructura aparte, veamos de que forma:

PROGRAM Ciclo_hasta;
VAR
Numero: Integer;
BEGIN
Numero:= 1;
REPEAT
writeln (Numero);
Numero:= Numero + 1;
UNTIL Numero = 50;

Esta estructura se encuentra en cualquier lenguaje de programación, no


necesariamente tal cual se muestra aquí, se utiliza un for o un while, simplemente
se modifica la condición para que no afecte al número de repeticiones. Por
ejemplo con un for:

for (a = 0; a<50; a++)

printf(“Rafa\n”);

Esta sentencia se ejecutara 50 veces, osea hasta el 50.

Como conclusión decir que todo lo necesario para realizar repeticiones se


encuentran con las estructuras while() y for(), solo es cuestión de saber estructurar
las condiciones.

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
EJEMPLO
Calcular el factorial de un número N, usando la estructura repetir.
inicio
leer N
Factorial ←1
I←1
repetir
Factorial← Factorial * I
I ← I+1
hasta_que I > N
escribir “el factorial del número”, N, “es”, Factorial
fin
Las tres estructuras repetitivas son susceptibles de intercambio entre ellas, así
por ejemplo es posible, sustituir una estructura desde, por una mientras; con
incrementos positivos o negativos de la variable índice. En efecto, la estructura
desde con incremento positivo es equivalente a la estructura mientras marcada con
la A), y la estructura desde con incremento negativo es equivalente a la estructura
mientras marcada con la B).

A) v ← vi B) v ← vi
mientras v < = vf hacer mientras v > = vf hacer
<acciones> <acciones>
v ← v + incremento v ← v - decremento
_mientras fin_mientras

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
4.7 REPETIR DESDE.
Los valores inicial y final de la variable de control se determinan antes de que
empiece la repetición y no pueden cambiarse durante la ejecución de la instrucción
Desde. Dentro del cuerpo del bucle Desde, los valores de las variables que
especifican los valores inicial y final pueden cambiar, pero esto no va a afectar al
número de repeticiones. La instrucción del cuerpo del bucle de una instrucción
Desde puede utilizar el valor de la variable de control, pero no debe modificar este
valor. Esta estructura se puede usar únicamente en aquellos casos en que
conocemos el número de veces que se va a realizar el ciclo.

Esta estructura hace el incremento automáticamente y se inicializa en la


instrucción desde.

Realiza la acción o conjunto de acciones, luego evalúa una condición, de resultar


cierta vuelve a realizar la(s) acción(es). Cuando sea falsa se sale del ciclo. Su
sintaxis es:

Do {

Sentencia,

} While ();

La diferencia fundamental, entre el ciclo while y do… while es que en este último,
las sentencias se realizarán por lo menos una vez, en cambio, con while, solo se
cumplirán mientras se cumpla la condición, lo cual puede ser nunca.

EJEMPLO

Programa que imprima una lista de números del 1 al 100(PARA JCREATOR)

1 class fibo { 5 System.out.println(n1+””);

2 public static void main(String args[]){ 6 }while(n1<100);

3 int n1=0; 7}

4 do{ n1++; 8}

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
4.8 ELABORACIÓN DE PROGRAMAS.

Estructuras repetitivas del software PSeint

Dentro del programa PSeint se tienen disponibles a 3 de las estructuras


repetitivas, las cuales son Mientras, Repetir-Hasta y la estructura Para. La
estructura y sintaxis de uso de cada una se explica a continuación.

Mientras
Repetir Hasta
Para
Sintaxis y uso de la instrucción “Mientras”
Repite un bloque de instrucciones (Secuencia_de_acciones) limitada entre el
paso Mientras y paso FinMientraS.

La repetición del bloque de pasos se controla al inicio de la estructura, gracias a


evaluar a una condición lógica CL “Expresion_logica”, cuyo resultado Verdadero o
Falso es aprovechado para determinar si repite o no el bloque.

Al utilizar un lazo Mientras hay que tener cuidado de lo siguiente:

a) Para permitir que el lazo Mientras ejecute al menos una vez su ciclo
de instrucciones, usted debe de asegurarse que su Condición Lógica
se cumpla (inicialmente), sino PSeint ignora a toda el bloque a repetir
dentro de la estructura y continuara con el paso justamente después
del cierre del Mientras.

b) Para que el lazo Mientras pueda repetir el Bucle una o más veces,
asegúrese que en el interior de los pasos del ciclo se modifique/altere
el valor de (por lo menos) una de las variables utilizada en la CL, de
manera que al finalizar el ciclo actual, PSeint evalué de nuevo la CL,
y decida si repetir el Bucle.

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
c) Según la aclaración anterior, si necesita que el lazo finalice (que ya no
se repita de nuevo el ciclo), asegúrese que al volver a evaluar la CL,
está ya no se cumpla.

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
BIBLIOGRAFÍA

JOYANES, L. (2008). Fundamentos de la programación. Algoritmos y


Estructura de Datos, 4ª Edición. Madrid: McGraw-Hill.
DIEGO LLANOS. (2010). Fundamentos de informática y programación. En
Fundamentos de informática y programación(310-314). MEXICO:
GUSTAVO GUILI.
Instituto Tecnologico Superior de la Region Sierra. (12 Noviembre 2013).
ESTRUCTURA SELECTIVA Y REPETITIVA. ITSRS, 1, 48. 09 ABRIL
2019, De PDF Base de datos.

JOSÉ MICHEL MADRIGAL IZQUIERDO


ALGORITMO Y LENGUAJE DE PROGRAMACIÓN
UNIDAD 4: ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN

Anda mungkin juga menyukai