You are on page 1of 21

29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b.

ESTRUCTURAS DE CONTROL

[1-2022] PROGRAMACION I - SA

Área personal
/ Mis cursos
/ [1-2022] INF120-SA
/ Inicio
/ Conocimientos previos

Conocimientos previos
Por hacer: Completa la actividad hasta el final
Por hacer: Recibir una calificación

Descripción de la lección

Número de respuestas correctas: 35 ×

Su calificación actual es 100.0 sobre 100 ×

Ha obtenido 35 punto(s) sobre 35 hasta ahora.

2.b. ESTRUCTURAS DE CONTROL

2.b.1
Secuencia
Dada una lista de instrucciones <instrucción 1>
<instrucción 2> ... <instrucción n> la estructura de SECUENCIA permite
la ejecución de dicha
lista en el orden en que aparecen las instrucciones, es
decir, se ejecuta primero la instrucción <instrucción 1> luego
la instrucción <instrucción
2>, y por último se ejecuta la
instrucción <instrucción n> La forma general de la
secuencia es:

<instrucción1>

<instrucción2>

.
.

<instrucción n>

Una secuencia de instrucciones es llamada generalmente BLOQUE DE INSTRUCCIONES.

2.b.1.1 Ejemplos de secuencia.


Aplicando la metodología de programación presentada en este curso, encontrar los algoritmos que permiten resolver los siguientes
problemas:

Dado el radio de un círculo, calcular su área.

Dialogo

Objetos Conocidos Un número que representa el radio de un circulo


Objetos Desconocidos Un número que representa el área de un circulo.
Condiciones El número buscado corresponde al área del círculo con radio igual al número dado.
ESPECIFICACIÓN

Entradas r Î Reales, (r es el radio del círculo).


Salidas a Î Reales, (a es el área del círculo).
Condiciones a = p * r2
DISEÑO
https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 1/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

Primera Iteración:

Inicio
PASO 1.leer el valor del radio del círculo

PASO 2.calcular el área del círculo

PASO 3.escribir el área del círculo

Fin

Iteración Final:

PI = 3.1415926 /* se define la constante pi */

r: real /*se define la variable para el radio del círculo*/

a : real /* se define la variable para el área del círculo */

leer( r ) /* se lee el radio */

a := PI * cuadrado( r ) /* se calcula el área */

escribir( "El área es: ”, a ) /* se escribe el resultado */

Prueba de escritorio.

Este algoritmo cuenta con seis (6) líneas, las tres primeras (1-3) , son para definir las variables y constantes usadas y las últimas tres (4-
6), son las instrucciones que son aplicadas sobre dichos datos. De esta manera la prueba de escritorio se debe realizar solamente
sobre las tres últimas líneas, teniendo en cuenta los valores para las constantes y las variables.

LINEA r a ENTRADA SALIDA


4 5.0 5.0
5 78.53981
6 El área es: 78.53981
Un granjero tiene una cantidad X de animales de dos tipos: conejos y gansos. Si la cantidad de patas total de los animales Y es
conocida, ¿cuántos conejos y cuantos gansos tiene el granjero?

Dialogo

Objetos Conocidos La cantidad total de animales X y la cantidad de patas totales Y.


Objetos Desconocidos La cantidad de conejos y la cantidad de gansos.
La suma de los conejos y los gansos es igual a X. La suma de los patas de los conejos (cuatro
Condiciones
por cada uno) y de los gansos (dos por cada uno) es igual a Y.
ESPECIFICACIÓN

Entradas X, Y Î Naturales, (X es el total de animales, Y es el total de patas).


Salidas C, G Î Naturales, (C es el número de conejos, G es el número de gansos).
Condiciones X = G + C, Y = 2*G + 4*C
Aplicando un poco de álgebra a las condiciones anteriores, para expresar las variables de salida C y G en términos de las variables
de entrada X y Y, se tiene que:

G= (4*X - Y)/2, C = (Y - 2*X)/2

Diseño

Primera Iteración:

Inicio
PASO 1.Leer las entradas

PASO 2.Realizar el cálculo

PASO 3.escribir los resultados

Fin
Segunda Iteración:

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 2/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

Inicio
PASO 1.Leer las entradas

PASO 1.1.Leer el número total de animales

PASO 1.2. Leer el número total de patas

PASO 2.Realizar el cálculo

PASO 2.1.Calcular el número de gansos

PASO 2.2.Calcular el número de conejos

PASO 3.escribir los resultados

PASO 3.1.escribir el número de gansos

PASO 3.2.escribir el número de conejos

Fin
Iteración Final:

x: entero /* se define la variable para el número total de animales */

y: entero /* se define la variable para el número total de patas de los animales */

g: entero/*se define la variable para el número de gansos*/

c: entero/*se define la variable para el número de conejos*/

leer( x) /* lee el número total de animales */

leer( y) /* lee el número total de patas de los animales */

g:=(4*x - y)/2 /* calcula el número de gansos */

c :=(y - 2*x)/2 /* calcula el número de conejos */


escribir( "Cantidad de gansos:”, g)

escribir( "Cantidad de conejos:”, c)

Prueba de escritorio.

Este algoritmo cuenta con diez (10) líneas, las cuatro primeras (1-4), son para definir las variables usadas y las últimas seis (5-10) son las
instrucciones que son aplicadas sobre dichos datos. De esta manera la prueba de escritorio se debe realizar solamente sobre las
líneas (5-10), teniendo en cuenta los valores para las variables.

LINEA x y g c ENTRADA SALIDA


5 50 50
6 140. 140
7 30
8 20
9 Cantidad de gansos: 30
10 Cantidad de conejos: 20
2.b.2 SELECCIÓN

La estructura de SELECCION permite la ejecución de un bloque de instrucciones o de otro dependiendo del valor de una expresión
lógica denominada CONDICION. La forma general de la selección es:

si (condición) entonces

<bloque instrucciones 1>

sino

<bloque de instrucciones 2>

fin_si

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 3/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

Donde, <condición> es la expresión lógica que se evalúa para determinar el bloque de instrucciones a ejecutar, <bloque
instrucciones 1> es el conjunto de instrucciones que se ejecuta si la condición evalúa a verdaderoy <bloque instrucciones 2> es el
conjunto de instrucciones que se ejecuta si la condición evalúa a falso.

5.2.1
Ejemplos de selección.

Dados
un número entero entre  100  y  999 determinar si es capicua o no lo es. Un número capicua si se lee igual al derecho y al
revés. Por
ejemplo, 101 es palíndrome
(al derecho se lee 101 y al revés se
lee 101), mientras que 203 no lo es (al derecho se lee 203 y al revés se lee 302).

Diálogo 

OBJETOS DESCONOCIDOS Un Texto.


OBJETOS CONOCIDOS Un número entero entre 100 y 999.
CONDICIONES El Texto debe indicar si el número ingresado es capicua o no lo es.
ESPECIFICACIÓN

ENTRADAS n : Enteros, (n es el número ingresado).


Texto : Cadenas, (Texto es una cadena de caracteres indicando si el número es o no
SALIDAS
Capicua).
Texto ="Es palíndrome ” si n = c, "No es palíndrome” en otro caso
CONDICIONES
con u = las unidades de n y c = las centenas de n

Diseño.

Primera Iteración:

Inicio
PASO 1.Leer el número.

PASO 2.Determinar si es palíndrome o no.

PASO 3.escribir el texto resultado.

Fin

Segunda Iteración:

Inicio
PASO 1.Leer el número.

PASO 2.Determinar si es palíndrome o no

PASO 2.1. Calcular las unidades del número

PASO 2.2. Calcular las decenas del número.

PASO 2.3.Calcular el texto resultado.

PASO 3. escribir el texto resultado.

Fin

Iteración Final:

n: entero /* se define la variable para el número */

u: entero /* se define la variable unidades del número*/

c: entero /*se define la variable centenas del número*/

texto: cadena /* define la variable para el texto */

leer( n ) /* lee el número */


u := n mod 10 /* calcula las unidades del número */

c := ( n / 100 ) mod 10 /* calcula las centenas del número */

si (u = c) entonces

texto :="es palíndrome” /* el número es palíndrome */

sino

texto := "no es palíndrome” /* el número no es palíndrome */

fin_si

escribir( "El número ”)

escribir( texto )

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 4/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

Prueba de escritorio

Este algoritmo cuenta con trece (13) líneas, las cuatro primeras (1-4), son para definir las variables usadas y las últimas nueve (5-13)
son las instrucciones que son aplicadas sobre dichos datos. De esta manera la prueba de escritorio se debe realizar solamente sobre
las líneas (5-13), teniendo en cuenta los valores para las variables.

Primer prueba de escritorio

LINEA n u c texto ENTRADA SALIDA


5 404 404
6 4
7 4
8 La condición es evaluada a verdadero, por lo tanto se pasa a la línea 9, la siguiente línea al entonces de la selección en
ejecución.
9 es palíndrome
10 Se salta hasta el fin_si de la selección en ejecución, es decir, hasta la línea 12
12 Se salta a la siguiente línea.
13 El número es palíndrome
Segunda prueba de escritorio

LINEA n u c texto ENTRADA SALIDA


5 725 404
6 7
7 5
8 La condición es evaluada a falso, por lo tanto se pasa a la línea 11, la siguiente línea al sino de la selección en ejecución.
11 no es palíndrome
12 Se salta a la siguiente línea.
13 El número no es palíndrome
Dados tres números enteros calcular el máximo.

Dialogo

OBJETOS DESCONOCIDOS Tres números enteros.


OBJETOS CONOCIDOS Un número entero.
CONDICIONES El número buscado es el máximo de los tres números dados.
ESPECIFICACIÓN

ENTRADAS A, B, C Î Enteros, (A es el primero número, B es el segundo número y C es el tercer número).


SALIDAS Mayor Î Enteros, (Mayor es el máximo de los tres números dados).
A>B>C  -> Mayor A

A<B >C -> Mayor B


CONDICIONES

A<B<C ->Mayor C

Diseño

Primera Iteración:

Inicio
PASO 1.Leer los tres números

PASO 2.Determinar cual es el máximo

PASO 3.escribir el máximo

Fin

Segunda Iteración:

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 5/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

Inicio
PASO 1.Leer los tres números

PASO 1.1.Leer el primer número

PASO 1.2. Leer el segundo número

PASO 1.3. Leer el tercer número

PASO 2.Determinar cual es el máximo Si el primer número es mayor o igual a los otros dos
números el primero es el máximo.Si no es así y si el segundo número es mayor o igual a los
otros dos números el segundo es el máximo.De otra manera, se tiene que el tercer
número es el máximo.

PASO 3. escribir los resultados

Fin

Iteración Final:

a : entero /* se define la variable para el primer número */

b : entero /* se define la variable para el segundo número */

c : entero /*se define la variable para el tercer número */

mayor : entero /*se define la variable para el máximo */

leer( a ) /* lee el primer número */

leer( b ) /* lee el segundo número */

leer( c ) /* lee el tercer número */

si a > b & a > c entonces

mayor := a /* el máximo es a pues es mayor que b y c */

sino

si b > a & b > c entonces

mayor := b /* el máximo es b pues es mayor que a y c */

sino

mayor := c /* sino es ni a ni b entonces es c */

fin_si

fin_si

escribir( "El máximo de los tres es: ”, mayor )

Prueba de escritorio

Este algoritmo cuenta con diecisiete (17) líneas, las cuatro primeras (1-4), son para definir las variables usadas y las últimas trece (5-17)
son las instrucciones que son aplicadas sobre dichos datos. De esta manera la prueba de escritorio se debe realizar solamente sobre
las líneas (5-17), teniendo en cuenta los valores para las variables.

Primer prueba de escritorio

LINEA a b c mayor ENTRADA SALIDA


5 50 50
6 140 140
7 30 30
8 La condición es evaluada a falso, por lo tanto se pasa a la línea 11, la siguiente al sino de la selección en ejecución.
11 La condición es evaluada a verdadero, por lo tanto se pasa a la línea 12, la siguiente línea al entonces de la selección en
ejecución.
12 140
13 Se salta hasta el fin_si de la selección en ejecución, es decir, hasta la línea 15
15 Se salta a la siguiente línea.
16 Se salta a la siguiente línea.
17 El máximo de los tres es: 140

Segunda prueba de escritorio

LINEA a b c mayor ENTRADA SALIDA


5 90 90
6 -50 -50
7 70 70
8 La condición es evaluada a verdadero, por lo tanto se pasa a la línea 9, la siguiente al entonces de la selección en
ejecución.

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 6/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

12 90
13 Se salta hasta el fin_si de la selección en ejecución, es decir, hasta la línea 16
16 Se salta a la siguiente línea.
17 El máximo de los tres es: 90
Tercer prueba de escritorio

LINEA a b c mayor ENTRADA SALIDA


5 20 20
6 10 10
7 30 30
8 La condición es evaluada a falso, por lo tanto se pasa a la línea 11, la siguiente al sino de la selección en ejecución.
11 La condición es evaluada a falso, por lo tanto se pasa a la línea 14, la siguiente línea al sino de la selección en
ejecución.
14 30
15 Se salta a la siguiente línea.
16 Se salta a la siguiente línea.
17 El máximo de los tres es: 30
Como se puede apreciar en los ejemplos anteriores, una selección puede contener (en cualquiera de sus dos bloques de
instrucciones), lecturas, escrituras, asignaciones u otras selecciones.

Generalmente, cuando en la especificación de un problema se tiene una variable especificada de la siguiente forma:

<expresión 1> si <condición 1>

<expresión 2> si <condición 2>

<variable> = .....

<expresión n> si <condición n>

<expresión final> en otro caso

Esta especificación se puede representar mediante el siguiente algoritmo:

si<condición1> entonces

<variable> := <expresión 1>

sino

si <condición 2>entonces

<variable> := <expresión 2>

sino

...............

sino
si <condición n>entonces

<variable>:= <expresión n>

sino

<variable> := <expresión final>

fin_si

..............

fin_si

fin_si

2.b.3 Estructura de selección múltiple.

Mientras que las Estructuras de Selección Anidadas sirven para el mecanismo general de toma de decisiones, las Estructuras de
Selección Múltiple proporcionan una manera muy práctica para seleccionar entre un conjunto de opciones predefinidas.

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 7/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

seleccionar<opción> hacer

caso <constante_1>:

<bloque instrucciones 1>

caso <constante_2>:

<bloque instrucciones 2>

...............

caso <constante_n>:

<bloque instrucciones n>

caso <por defecto>:

<bloque instrucciones>

fin_seleccionar

Las Estructuras de Selección Múltiple operan de la siguiente manera:

Primero se evalúa la expresión de cambio.


El valor resultante se compara contra cada etiqueta case constante de valor entero.
En una estructura de Selección Múltiple, todas las etiquetas Caso deben ser distintas, el control se transfiere a la que coincide, o a
por defecto, si ninguna coincide.
No hay una coincidencia secuencial, caso por caso, al momento de la ejecución.
El control se transfiere directamente.
Si la etiqueta de caso opcional por defecto no es dada y si nada coincide, la ejecución de la selección múltiple se completa con
éxito.
El siguiente control se transfiere a una etiqueta de caso, las instrucciones en la etiqueta seleccionada y todas las instrucciones bajo
otras etiquetas de caso después de ésta, se ejecutarán en secuencia. A este comportamiento se le llama caída total y hace que
la estructura de Selección Múltiple sea muy diferente de una estructura de Selección Anidada.
En cada etiqueta de caso puede haber cero, una o más instrucciones. Esto permite que varias etiquetas de caso precedan a un
grupo de instrucciones, lo que lo hace conveniente para ciertas situaciones.
También fin_caso puede utilizarse para salir de la estructura de Selección Múltiple. A menudo es el último elemento de cada Caso
para evitar caídas completas. Al evitar éstas, pierde importancia el orden en que se dan las etiquetas de caso (pero se sugiere ser
ordenado).

Para evitar toda clase de confusiones se recomienda la Estructura de Selección Múltiple de la siguiente forma:

seleccionar < opción> hacer

caso <constante_1>:

<bloque instrucciones 1>

fin_caso

caso <constante_2>:

<bloque instrucciones 2>

fin_caso

...............

caso <constante_n>:

<bloque instrucciones n>

fin_caso

caso <por defecto>:

<bloque instrucciones>

fin_caso

fin_seleccionar

Ejemplo de Selección múltiple.

Una persona selecciona una transacción en un cajero automático

Análisis del problema

Objetos Desconocidos Que transacción desea realizar el usuario


Objetos Conocidos Los números correspondientes a las transacciones disponibles en el cajero.
Condiciones El cajero debe ejecutar la transacción seleccionada por el usuario.

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 8/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

Especificación

n E Enteros entre 1 y 5, (n es el número ingresado por el usuario para seleccionar la


Entradas
transacción).
Salidas Ejecución de una Transacción .
El numero n seleccionado por el usuario debe corresponder a la transacción seleccionada
Condiciones
por el usuario

Diseño

Primera División:

Inicio
PASO 1.Leer el número.

PASO 2.Determinar la transacción y Ejecutarla.

Fin

Segunda División:

Inicio
Paso 1. Leer el número.

Paso 2. Determinar la transacción

Paso 2.1. si es 1

Paso 2.1.1. Ejecutar la transacción 1

Paso 2.1.2. Salir

Paso 2.2. si es 2

Paso 2.2.1. Ejecutar la transacción 2

Paso 2.2.2. Salir

Paso 2.3. si es 3

Paso 2.3.1. Ejecutar la transacción 3

Paso 2.3.2. Salir

Paso 2.4. si es 4

Paso 2.4.1. Ejecutar la transacción 4

Paso 2.4.2. Salir

Paso 2.5. si es 5

Paso 2.5.1. Ejecutar la transacción 5

Paso 2.5.2. Salir

Paso 2.5. si no esta en el rango

Paso 2.5.1. Salir

Fin
División Final:

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 9/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

n: entero /* se define la variable para la selección del usuario*/

leer (n) /* lee el número de la transacción seleccionada*/

seleccionar n hacer

caso 1:

<consignación>

fin_caso

caso 2:

<retiro>

fin_caso

caso 3:

<pago de servicios>

fin_caso

caso 4:

<cambio de clave>

fin_caso

caso 5:

<consulta de saldo>

fin_caso

fin_seleccionar

2.b.4   Repetición
Las estructuras de repetición, permiten la ejecución repetida de una lista o secuencia de instrucciones (también llamada bloque de
instrucciones). El número de veces que el bloque de instrucciones se ejecutará se puede especificar de manera explícita o a través
de una condición que indica cuando se ejecuta de nuevo o cuando no. A cada ejecución del bloque de instrucciones se le conoce
como una iteración.

Existen cuatro tipos principales de sentencias de repetición:

Ciclo mientras
Ciclo repita-HASTA
Ciclo para

A continuación se describe cada una de ellas. 

2.b.4.1 Ciclo mientras

El CICLO MIENTRAS ejecuta un bloque de acciones 'mientras' que una condición dada se cumpla, es decir, cuando la condición
evalúa a verdadero. La condición es evaluada antes de ejecutar el bloque de acciones y si la condición no se cumple, el bloque no
se ejecuta. De esta manera es que el número de repeticiones del bloque de acciones sea cero, pues, si la condición la primera vez
evalúa a falso, el bloque no será ejecutado alguna vez. La forma general del ciclo mientras es la siguiente:

  mientras (condición) hacer

       <bloque de instrucciones>

  fin_mientras

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 10/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

Donde, (condición)es la condición que determina si el bloque de acciones<bloque>es ejecutado o no. Si la condición evalúa a
verdadero el bloque es ejecutado y si evalúa a falso no es ejecutado. Después de ejecutar el bloque de acciones se vuelve a
evaluar la condición.

Escribir en pantalla los números del uno al tres

a=1

mientras (a<=3) hacer

       Escribir a," "

fin_mientras

4.1.1.1
Ejemplos.
Ejemplo 1. Dado un número natural n se desea calcular la suma de los números naturales desde 1 hasta n.

Diálogo:

Objetos Conocidos un número natural.

Objetos Desconocidos Un número natural.

Condiciones El número buscado es la suma de los naturales empezando en cero hasta el número dado.
ESPECIFICACIÓN:

Entradas n Î Enteros, (n es el número dado).

suma Î Enteros, (suma es la suma de los primeros n números naturales).

Salidas

Condiciones

Diseño:

Primera Iteración:

1. Leer el número

2. Recorrer los números desde el cero hasta el número dado e irlos sumando.

3. escribir la suma

Iteración Final:

n: entero /* se define la variable para el número */

suma: entero /* se define la variable para la suma */

i: entero /* se define la variable para recorrer los números entre 0 y n */

escribir( "Ingrese el número: ” )

leer(n ) /* lee el primer número */

suma :=0 /* inicia la suma en cero */

i :=0 /* empieza la variable que recorre los números en 0 */

mientras (i <=n) hacer

suma:= suma + i /* en cada iteración suma el número i */

i := i + 1 /* incrementa la variable en 1 para tomar el siguiente número en la próxima


iteración */

fin_mientras

escribir( "La suma es: ”, suma )

Prueba de escritorio:

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 11/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

LINEA n i suma ENTRADA SALIDA

4         Ingrese el número:

5 5     5  

6     0    

7   0      

8 La condición es evaluada a verdadero, por lo tanto se ejecuta el bloque de acciones del


ciclo, es decir, pasa a la línea 9.

9     0    

10   1      

11 Se salta hasta la línea que contiene la condición del ciclo mientras en ejecución, es decir,
hasta la línea 8

8 La condición es evaluada a verdadero, por lo tanto se ejecuta el bloque de acciones del


ciclo, es decir, pasa a la línea 9.

9     1    

10   2      

11 Se salta hasta la línea que contiene la condición del ciclo mientras en ejecución, es decir,
hasta la línea 8

8 La condición es evaluada a verdadero, por lo tanto se ejecuta el bloque de acciones del


ciclo, es decir, pasa a la línea 9.

9     3    

10   3      

11 Se salta hasta la línea que contiene la condición del ciclo mientras en ejecución, es decir,
hasta la línea 8

8 La condición es evaluada a verdadero, por lo tanto se ejecuta el bloque de acciones del


ciclo, es decir, pasa a la línea 9.

9     6    

10   4      

11 Se salta hasta la línea que contiene la condición del ciclo mientras en ejecución, es decir,
hasta la línea 8

8 La condición es evaluada a verdadero, por lo tanto se ejecuta el bloque de acciones del


ciclo, es decir, pasa a la línea 9.

9     10    

10   5      

11 Se salta hasta la línea que contiene la condición del ciclo mientras en ejecución, es decir,
hasta la línea 8

8 La condición es evaluada a verdadero, por lo tanto se ejecuta el bloque de acciones del


ciclo, es decir, pasa a la línea 9.

9     15    

10   6      

11 Se salta hasta la línea que contiene la condición del ciclo mientras en ejecución, es decir,
hasta la línea 8

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 12/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

8 La condición evalúa a falso, por lo tanto no se ejecuta el bloque de acciones del ciclo y este
termina, es decir, pasa a la línea 12, la línea siguiente a la línea del fin_mientras del ciclo.

12         La suma es: 15

 Ejemplo 2. Calcular el máximo común divisor de dos números naturales, distintos de cero.

Dialogo:

Objetos Conocidos dos números naturales.

Objetos Desconocidos Un número natural.

Condiciones El número buscado es el máximo común divisor de los números conocidos.


ESPECIFICACIÓN:

Entradas a, b E Enteros, (a, b  son los números dados).


 

Salidas mcd E Enteros, (mcd es el máximo común divisor de los números dados). 
 

Condiciones mcd = max { 1< k < min{a,b} | a mod k = 0 & b mod k = 0} 

Diseño:

Primera Iteración:

1. Leer los números.

2. Calcular el máximo

3. escribir el máximo

Segunda Iteración:

1. Leer los números.

Leer el primer número


Leer el segundo número

2. Calcular el máximo común divisor de los números dados.

Determinar el mínimo de los dos números dados.


Recorrer los números desde el uno hasta el mínimo de los dos números e ir determinando si cada número cumple la propiedad de
dividir a los números dados. El número mayor es el máximo común divisor.

3. escribir el máximo común divisor.

Iteración Final:

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 13/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

a: entero /* se define la variable para el primer número */

b: entero /* se define la variable para el segundo número */

mcd: entero /* se define la variable para el mcd */

min: entero /* se define la variable para el mínimo */

k: entero /* se define la variable para recorrer los números entre 1 y min */

escribir( "Ingrese el primer número: ” )

leer( a ) /* lee el primer número */

escribir( "Ingrese el segundo número: ” )

leer( b ) /* lee el segundo número */

si (a < b) entonces /* se calcula el mínimo de los números */

 min := a

sino

min := b

fin_si

k := 1 /* empieza la variable que recorre los números en 1 */

mientras (k <= min) hacer

si (a mod k = 0 & b mod k = 0) entonces

mcd := k

fin_si

k:= k + 1/* incrementa la variable en 1 para tomar el siguiente número en la próxima


iteración */

fin_mientras

escribir( "El máximo común divisor es: ”, mcd )

Prueba de escritorio:

LINEA a b min k mcd ENTRADA SALIDA

6             Ingrese el  primer


número:

7 8         8  

8             Ingrese el segundo
número:

9   6       6  

10 La condición evalúa a falso, se pasa a la línea siguiente al sino, es decir, a la línea 13.

11     6        

12 Se salta a la línea siguiente al fin_si, es decir, a la línea 15

15       1      

16 La condición evalúa a verdadero (1<=6), luego se ejecuta el bloque de acciones del ciclo
mientras.

17 La condición evalúa a verdadero, se ejecuta la línea siguiente al entonces, línea 18.

18         1    

19 Se salta a la siguiente línea al fin_si, línea 21.

21       2      

22 Se retorna a la línea de inicio del ciclo mientras, línea 16

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 14/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

16 La condición evalúa a verdadero (2<=6), luego se ejecuta el bloque de acciones del ciclo
mientras.

17 La condición evalúa a verdadero, se ejecuta la línea siguiente al entonces, línea 18.

18         2    

19 Se salta a la siguiente línea al fin_si, línea 21.

21       3      

22 Se retorna a la línea de inicio del ciclo mientras, línea 16

16 La condición evalúa a verdadero (3<=6), luego se ejecuta el bloque de acciones del ciclo
mientras.

17 La condición evalúa a falso, se ejecuta la línea siguiente al sino, línea 20.

21 Se salta a la siguiente línea al fin_si, línea 21.

21       4      

22 Se retorna a la línea de inicio del ciclo mientras, línea 16

16 La condición evalúa a verdadero (4<=6), luego se ejecuta el bloque de acciones del ciclo
mientras.

17 La condición evalúa a falso, se ejecuta la línea siguiente al sino, línea 20.

21 Se salta a la siguiente línea al fin_si, línea 21.

21       5      

22 Se retorna a la línea de inicio del ciclo mientras, línea 16

16 La condición evalúa a verdadero (5<=6), luego se ejecuta el bloque de acciones del ciclo
mientras.

17 La condición evalúa a falso, se ejecuta la línea siguiente al sino, línea 20.

21 Se salta a la siguiente línea al fin_si, línea 21.

21       6      

22 Se retorna a la línea de inicio del ciclo mientras, línea 16

16 La condición evalúa a verdadero (6<=6), luego se ejecuta el bloque de acciones del ciclo
mientras.

17 La condición evalúa a falso, se ejecuta la línea siguiente al sino, línea 20.

21 Se salta a la siguiente línea al fin_si, línea 21.

21       7      

22 Se retorna a la línea de inicio del ciclo mientras, línea 16

16 La condición evalúa a verdadero (7<=6), luego no se ejecuta el bloque de acciones del ciclo
mientras y se salta a la línea siguiente al fin_mientras, línea 23

17 La condición evalúa a falso, se ejecuta la línea siguiente al sino, línea 20.

23             El máximo común divisor


es: 2

2.b.4.2 Ciclo repita-HASTA

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 15/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

El CICLO REPITA-HASTA es similar al ciclo MIENTRAS, la diferencia esta en que el bloque de acciones se ejecuta nuevamente si la
condición evalúa a falso y no se ejecuta más si evalúa a verdadero. Sobra advertir que el bloque de acciones se ejecuta por lo
menos una vez. La forma general del ciclo repita-HASTA es la siguiente:

repita

  <bloque de
instrucciones>

 
hasta(condición)

Donde, <bloque> es el bloque de acciones ejecutado y (condición) es la condición que determina si el bloque es ejecutado de
nuevo no. Si la condición evalúa a falso el bloque es ejecutado de nuevo y si evalúa averdadero no es ejecutado. Después de
ejecutar el bloque de acciones se evalúa la condición.

Escribir en pantalla la suma parcial de los numeros del uno al tres

n=1

sum=0

repita

       sum=sum+n

        n=n+1

hasta(n=3)

Ejemplos.

Ejemplo 1. Desarrollar un
programa que lea una serie de datos hasta que se ingrese el dato 0 y calcule su
suma.

Dialogo:

Objetos Conocidos Una serie de números.

Objetos Desconocidos Un número.

El número buscado es la suma de los números conocidos, el último número leído debe ser
Condiciones
cero (0.0).
ESPECIFICACIÓN:

Entradas a1, a2, ..., an E Reales (aies el i-esimo número leído).

Salidas resp E Reales, (resp es la suma de los números leídos).

resp = a1 + a2 + ...,. + an la suma de los números leídos


Condiciones
 an = 0.0   El último número leído es cero.

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 16/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

Diseño:

Primera Iteración:

Iniciar resultado en cero

repita

1. Leer número

2. Acumular número

Hasta que número sea igual a cero.

escribir resultado

Iteración Final:

n:entero

suma: entero

suma := 0

repita

escribir("Ingrese el número:”)

leer( n )

suma := suma + n

hasta (n = 0 )

escribir("La suma es:”, suma)

Ejemplo 2. El problema de calcular la suma de los números naturales desde 1 hasta n, se puede solucionar usando el ciclo repita-
HASTA , a continuación se describe el algoritmo solución:

n: entero

suma: entero

i: entero

leer( n )

suma := 0

i := 1

repita

suma := suma + i

i := i + 1

hasta (i > n )

escribir( "La suma es:”, suma )

2.b.4.3 Ciclo para

El CICLO PARA permite la ejecución repetida de un conjunto de acciones. El número de veces que el bloque es ejecutado esta
determinado por los valores que puede tomar una variable contadora (de tipo entero), en un rango definido por un límite inferior
(inclusive) y un límite superior (inclusive). Después de ejecutar el bloque de acciones en cada iteración, la variable contadora es
incrementada en uno (1) automáticamente y en el momento en que la variable sobrepasa el límite superior el ciclo termina.

El valor final de la variable contadora depende mucho del lenguaje de programación utilizado, por lo tanto, no es recomendable
diseñar algoritmos que utilicen el valor de la variable contadora de un ciclo para, después de ejecutar el mismo. De la definición de
ciclo para se puede inferir que el bloque de acciones no se ejecuta alguna vez si el límite inferior es mayor al límite superior y que si el
límite superior es mayor o igual al límite superior, el número de veces que el conjunto de acciones se ejecutará es igual a uno más el
límite superior menos el límite inferior. La forma general del ciclo para es la siguiente:

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 17/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

para(variable) := <lim inf> hasta (lim sup)


hacer 

        <bloque de instrucciones>

fin_para

Donde <variable> es la variable contadora del ciclo, la cual debe ser de tipo entero,<lim inf >es el valor inicial que toma la variable
contadora, <lim sup> es el valor final que puede tomar la variable contadora y <bloque>es el bloque de acciones que es ejecutado
en cada iteración, mientras la variable contadora no sobrepase el límite superior. En cada iteración, después de ejecutar el bloque,
la variable contadora es incrementada (1).

Ejemplos.

Ejemplo 1. Calcular las


primeras tres filas de la tabla de multiplicar de un número.

Dialogo:

Objetos Conocidos Un número.


 

Objetos Desconocidos Tres números.


 

Los  números buscados son el resultado de multiplicar un número conocido, por los números
Condiciones
entre uno y tres.

Especificación:

Entradas n E Enteros ( n es el número dado).

Salidas a1, a2, a3 E Enteros, (ai es el i-esimo múltiplo del número dado).

Condiciones ai = n * i para i=1  .. 3

Diseño:

Primera Iteración:

Leer el número a calcularle la tabla de multiplicar Para los números entre uno y tres calcular el múltiplo del número

Iteración Final:

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 18/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

n: entero

a: entero

i: entero escribir("Ingrese el número a calcularle la tabla de multiplicar:”)


leer( n )
para (i :=1 hasta 3) hacer

a := n * i

escribir(n)

escribir("*”)

escribir( i)

escribir( "=”)

escribir( a)

escribir(cambioLinea)

fin_para

escribir("Termino...”)

Prueba de escritorio:

LINEA n I A ENTRADA SALIDA


Ingrese el
número a
4         calcularle
la tabla de
multiplicar:
5 3     3  
6   1      
Como es la primera
vez que llega a esta
línea, se asigna en
la variable
contadora el límite
inferior. Ahora se
comprueba si la
variable contadora
         
es menor o igual al
límite superior. En
este caso es cierto
entonces se ejecuta
el bloque de
acciones del ciclo
para, es decir, se
pasa a la línea
7     3    
8         3*1=3
9   2      
Se incrementa la
variable contadora
y se vuelve a la
         
línea de inicio del
ciclo para, es decir,
línea 6.

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 19/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

Se comprueba si la
variable contadora
es menor o igual al
límite superior. En
este caso es cierto
6        
entonces se ejecuta
el bloque de
acciones del ciclo
para, es decir, se
pasa a la línea 7.
7     6    
8         3*2=6
9   3      
Se incrementa la
variable contadora
y se vuelve a la
         
línea de inicio del
ciclo para, es decir,
línea 6.
La variable
contadora es
6 menor que el límite        
superior se pasa a la
línea 7
7     9    
8         3*3=9
9   4      
Se incrementa la
variable contadora
y se vuelve a la
         
línea de inicio del
ciclo para, es decir,
línea 6.
La variable
contadora no es
menor que el límite
6 superior se pasa a la        
línea siguiente al
fin_para, es decir, a
la línea 10.
10         Termino...

Ejemplo 2.El problema de calcular la suma de los números naturales desde 1 hasta n, se puede solucionar usando el ciclo para, a
continuación se muestra el algoritmo solución:

n: entero

suma: entero

i: entero

leer( n )

suma := 0

para (i := 1 hasta n) hacer

suma := suma + i

fin_para

escribir( "La suma es:”)

escribir( suma)

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 20/21
29/3/22, 16:45 [1-2022] INF120-SA: Conocimientos previos : 2.b. ESTRUCTURAS DE CONTROL

Example 1.-  Realize un programa que me permita encontrar la SUMATORIA de los NUMEROS PARES,entre CERO(0) y n, donde "n" es
un numero leido desde teclado.

Example 2.-  Realize un PROCESO que me permita encontrar la SUMATORIA de los NUMEROS PARES,entre CERO(0) y n, donde "n" es un
numero leido desde teclado.

Example 3.-  Realize un PROCESO que me permita encontrar la SECUENCIA los NUMEROS PARES,entre CERO(0) y n, donde "n" es un
numero leido desde teclado.

Siguiente->Programacion Estructurada

Ha alcanzado el 43% de esta lección


43%

◄ Cronograma

Ir a...

Bibliografía ►

Resumen de retención de datos


Descargar la app para dispositivos móviles
Reiniciar tour para usuario en esta página

https://virtual.uagrm.edu.bo/pregrado/mod/lesson/view.php 21/21

You might also like