Está en la página 1de 23

Unidad 3

Acciones
Estructuradas

2023
Acciones

Lectura
Simples Asignación
Escritura

Acciones
Secuencia
Estructuradas Selección
(estructuras de Iteración
control)
Flujo de Control
¿Qué es el flujo de control?
Se llama flujo de control al orden en el que se ejecutan las
acciones en un algoritmo , en términos de lenguajes de
programación se dice que es el orden en que se ejecutan las
instrucciones de un programa.
En un algoritmo las acciones siempre se ejecutan
secuencialmente, una detrás de otra, en orden de aparición, de
izquierda a derecha y de arriba abajo, que es el flujo natural, a
menos que el flujo de control se vea modificado por
una estructura de control.
Secuencia
Una secuencia está representada por un conjunto de acciones que se
ejecutan en forma consecutiva, una sola vez.
En este caso el orden de ejecución coincide con el orden físico en que se
representan las acciones.

El siguiente esquema representa esta estructura:

Acción 1
Acción 2

Acción n
Secuencia
Ejemplo
Algoritmo numero
entero superficie( entero largo, entero ancho )
Comienzo
entero sup
Secuencia sup= largo*ancho
retorna(sup)
fin

Comienzo //----Algoritmo principal----


entero l, a
Secuencia leer l, a
escribir" la superficie del rectángulo es ", superficie (a,l)
Fin
Selección
Una selección es una acción estructurada que provoca
la ejecución de una acción entre acciones
alternativas.
Las estructuras de selección o alternativa utilizadas
son:
 Simple

 Doble

 Múltiple
Selección o Alternativa Doble
F V
Acciones b Condición Acciones a

El seudocódigo para esta estructura es: Ejemplo:


Entero Calculo( entero a, entero c,)
Comienzo
Si (<condición>) entero b
Entonces Si (a != 0)
< acción simple o estructurada > Entonces
b = a *c
Sino Sino
< acción simple o estructurada > b=0
finsi
Finsi retorna (b)
fin
Selección o Alternativa Simple
V Acciones a
Condición

El seudocódigo para esta estructura es: Ejemplo:


Entero Calculo( entero a, entero c,)
Si (<condición>) Comienzo
Entonces entero b
< acción simple o estructurada > b=0
Finsi Si (a != 0)
Entonces
b = a *c
finsi
retorna (b)
fin
Anidamiento de Selección
Cuando una estructura de control que se coloca dentro de otra estructura de control se dice
que esta anidada.
Ejemplo:
void Mensaje (real actual, real anterior, real subtotal)
comienzo
real recargo, descuento
Si (actual > (anterior + 100))
Entonces
recargo= subtotal * 0.20 // calculo de porcentaje subtotal*20/100
Escribir “El usuario debe pagar un recargo de ”, recargo
Escribir “Importe Subtotal Energía ”, subtotal + recargo
Sino
Si (actual  anterior - 100)
Entonces
descuento = subtotal * 0.15 // calculo de porcentaje subtotal*15/100
Escribir “El usuario tiene un descuento de ”, descuento
Escribir “Importe Subtotal Energía ”, subtotal - descuento
Sino
Escribir “NO corresponde bonificación ni recargo, su importe es”, subtotal
Finsi
Finsi
fin
Anidamiento de Selección
Obsérvese la llaves que conectan el inicio y terminación en las estructuras
Si - finsi del subprograma Mensaje, permiten observar gráficamente si
es correcto o no el anidamiento.
Es correcto si las llaves no se cortan entre si, significa que la estructura se
inicia y se termina por completo en otra, de lo contrario hay un error.

Correcto No Correcto
si si
si si
finsi
finsi
finsi finsi
Selección o Alternativa Múltiple
e

Valor 1 Valor 2 ... Valor n De otro modo

Acción 1 Acción 2 ... Acción n Acción b

Su seudocódigo es el siguiente: Donde:


Segun (e) e es el nombre de expresión de control o selector y
valor 1: acción 1 puede ser una variable o expresión, debe ser ordinal,
valor 2: acción 2 valores enteros, caracter, pero no reales ni cadenas.
: valor 1, valor 2 son los valores (etiquetas) que
valor n: acción n puede tomar e.
de otro modo: acción b de otro modo, valor distinto a la secuencia de
posibles valores previstos que puede tomar la
finsegun variable e.
Selección o Alternativa Múltiple
Ejemplos
Segun (xcodigo) Segun (mes)
„A‟: total= ximp *1.05 1,3,5,7,8,10,12 : dia =31
„B‟: total= ximp *1.07 2 : dia =28
„C‟..´F´: total= ximp *1.08 4, 6,9,11: dia =30
„G‟, „J‟, „K‟,: total= ximp *1.09 finsegun
„M‟: total= ximp *1.06
de otro modo: Escribir “ Se ingreso mal el código”
finsegun
Según (opci)
„C‟ ,‟c‟ : Escribir “ Su saldo es “, saldo
„E‟, ‟e‟ : Extraer(saldo)
„D‟, ‟d‟: Deposito(saldo)
„T‟, ‟t‟ : Escribir “ Ud. Ingresó finalizar transacción “
de otro modo: Escribir “ Código incorrecto, intente nuevamente ”
Finsegun
Iteración
 Las acciones estructuradas
iterativas o repetitivas, se utilizan
cuando se debe repetir la
ejecución de una o más acciones.

 Para referirse a las acciones


iterativas se usan los términos
ciclo o bucle.

 Se clasifican en :
 Para - finpara

 Mientras - finmientras

 Hacer - mientras
Estructura Para - FinPara
v = vi

V Incrementa v
v ≤ vf Cuerpo del Ciclo

El seudocódigo que representa esta estructura es: Donde:


Para v desde vi hasta vf  v variable que controla el
acción 1 < acción simple o estructurada > ciclo o variable de control
acción 2 < acción simple o estructurada >  vi variable que contiene el
. Cuerpo del ciclo valor inicial de la variable v
.  vf variable que contiene el
acción 3 < acción simple o estructurada > valor final de la variable v
FinPara

En esta estructura, se conoce con anticipación el número de veces que se


ejecutará el ciclo. Por ello se dice que el ciclo se ejecuta una cantidad
determinada de veces.
Estructura Para - FinPara
Comienzo
Entero i, Ct, Cc,
Real Pi, diametro, altura, sup,Vol
Constante Pi= 3.14159
Ct=0
Cc=0
Para i desde 1 hasta 20000
Leer diametro, altura
sup = pi* (diametro/2 ) *(diametro/2)
Si ((( sup- 50)> 0.05 ) o (( sup- 50) < -0.05))
Entonces Escribir “ Tapa defectuosa”
Ct= Ct+1
FinSi
Vol= Pi* (diametro/2 ) *(diametro/2) *altura
Si ( ( Vol- 600)> 0.5) o ( ( Vol- 600)<- 0.5))
Entonces Escribir “ Recipiente defectuoso”
Cc= Cc+1
FinSi
FinPara
Escribir “Detectadas ”, Ct, “ tapas defectuosas Porcentaje ”, Ct*100/ 20000
Escribir “Detectados ”, Cc, “ cilindros defectuosos Porcentaje ”, Cc*100/ 20000
Fin
Estructura Para - FinPara
Algoritmo Calculo Algoritmo NumDivisores
void Triple (entero xvi, entero xvf) void Divisor (entero XN)
Comienzo Comienzo
entero c entero c
Para c desde xvi hasta xvf Para c desde 1 hasta XN
Si ((c resto 2) == 0) Si ((N resto c) == 0)
Entonces Escribir “el triple de”, c , “es” , c*3 Entonces Escribir c
Finsi FinSi
FinPara FinPara
retorna() retorna()
Fin Fin
Comienzo //--Algoritmo principal–
Comienzo //--Algoritmo principal-- entero N,K
entero vi, vf Leer K
vi=200 // se inicia el valor inicial y final Para c desde 1 hasta K
vf=440 Leer N
Triple (vi, vf) Divisor (N/2)
fin finpara
fin
Estructura Para – FinPara
con Paso
La variable de control de la estructura puede cambiar aumentar su valor o
disminuirlo con la clausula
Paso <valor>
Si crece en un valor mayor a la unidad se especifica en Paso el valor de incremento.
Si decrece , además de indicar el valor (que será un numero negativo), el vi debe ser
mayor al vf
Para j desde 1 hasta 10 con Paso 2 Para j desde 10 hasta 1 con Paso -2
Escribir "El valor de j es: ", j Escribir "El valor de j es: ", j
FinPara FinPara
Salida: Salida:
El valor de j es: 1 El valor de j es: 10
El valor de j es: 3 El valor de j es: 8
El valor de j es: 5 El valor de j es: 6
El valor de j es: 7 El valor de j es: 4
El valor de j es: 9 El valor de j es: 2
Estructura Mientras - FinMientras
El seudocódigo asociado es:

F Mientras (<condición> )
Condición acción 1 < acción simple o estructurada >
acción 2 < acción simple o estructurada >
Cuerpo
acción 3 < acción simple o estructurada >
V del
Ciclo .
Cuerpo del Ciclo .
acción n < acción simple o estructurada
FinMientras

 En esta estructura, no se conoce con anticipación el número de veces


que se ejecutará el ciclo. Por ello se dice que el ciclo se ejecuta cero o
más veces.
 Se utiliza una condición en la que interviene una variable centinela
para controlar la ejecución.
 El valor que indica fin de datos se lo denomina valor centinela.
Estructura Mientras - FinMientras
Algoritmo Multiplo
Comienzo
entero numero
Escribir “ Ingresar un número positivo, finalizar con 0”
Leer numero // Lectura Anticipada Condición: (numero  0)
Mientras ( numero  0 ) Variable centinela: numero
Valor centinela: 0
Si ((numero resto 5) == 0)
Cuerpo Entonces Escribir numero
del Finsi
Ciclo Escribir “ Ingresar un número positivo, finalizar con 0”
Leer numero
FinMientras
Fin
Estructura Mientras - FinMientras
Algoritmo Control
Comienzo
entero d, c
booleano b
b = verdadero
d=0
Leer c
Mientras ( (c * 5 - 15 < > 0 ) y (b==verdadero))
d=d+2
Si (d - 7 < 2)
Entonces Escribir “El valor de d es:”, d
Escribir d + c
Sino b=falso
finsi
Leer c
Fin mientras
Escribir “valor de d es:”, d
Fin
Estructura Hacer - Mientras

El seudocódigo que caracteriza esta acción estructurada es:

Hacer
acción 1 < acción simple o estructurada > Ciclo
Cuerpo acción 2 < acción simple o estructurada >
del . V
Ciclo
. V Condición
acción 3 < acción simple o estructurada >
F
Mientras(<condición>)

 En esta estructura iterativa, el número de veces que se


ejecuta el conjunto de acciones depende del valor de verdad
de la condición que se evalúa al final del ciclo.
 El cuerpo del ciclo se ejecuta 1 o más veces.
Estructura Hacer - Mientras
real Promedio (real a, real b)
Comienzo
real resultado
resultado= a+b/2
retorna (resultado)
fin

Comienzo //----Algoritmo principal----


real n1,n2, p
Hacer
Leer n1,n2
p = Promedio (n1,n2)
Escribir "el promedio es: " p
Mientras (p <= 10)
Fin
Bucles Anidados
Se pueden anidar las distintas estructuras iterativas con la restricción que la estructura interna debe
estar totalmente incluida en la externa, evitando solapamientos.
El funcionamiento, para el caso de dos bucles anidados es el siguiente: por cada iteración del bucle
exterior, se ejecuta completamente el interno. Se continúa de la misma manera hasta que el
bucle exterior completa las iteraciones.
El mismo criterio rige para más de dos bucles anidados.

Los siguientes anidamientos son válidos:

Mientras ( condición 1) Hacer


Para M desde 5 hasta 45 Para j desde 15 hasta 1 con Paso -1

Mientras ( condición 1)
FinPara
Fin Mientras Fin Mientras

FinPara

Mientras (condición 2)

También podría gustarte