Está en la página 1de 129

Índice

SESIÓN N° 01: Introducción a la Programación de Computadoras ............................................................. 2


SESIÓN N° 02: Introducción a las Instrucciones de Control e Iterativas ................................................... 10
SESIÓN N° 03: Introducción a los Algoritmos .......................................................................................... 16
SESIÓN N° 04: Introducción a los Diagramas de Flujo ............................................................................. 21
SESIÓN N° 05: Instrucciones Secuenciales en los Diagramas de Flujo .................................................... 26
SESIÓN N° 06: Instrucciones de Control en los Diagramas de Flujo ........................................................ 30
SESIÓN N° 07: Instrucciones Iterativas en Diagramas de Flujo I.............................................................. 36
SESIÓN N° 08: Instrucciones Iterativas en Diagramas de Flujo II ............................................................ 40
SESIÓN N° 09: Anidamiento de Instrucciones en Diagramas de Flujo I ................................................... 44
SESIÓN N° 10: Anidamiento de Instrucciones en Diagramas de Flujo II.................................................. 50
SESIÓN N° 11: Diseño de Instrucciones de Iterativas en Diagramas de Flujo .......................................... 55
SESIÓN N° 12: Revisión de Diagramas de Flujo ....................................................................................... 61
SESIÓN N° 13: Diagramas N-S - Instrucciones Secuenciales ................................................................... 65
SESIÓN N° 14: Diagramas N-S – Instrucciones Condicionales ................................................................ 71
SESIÓN N° 15: Introducción al Pseudocódigo .......................................................................................... 75
SESIÓN N° 16: Instrucciones Condicionales ............................................................................................. 79
SESIÓN N° 17: Instrucciones Iterativas I................................................................................................... 83
SESIÓN N° 18: Instrucciones Iterativas II ................................................................................................. 87
SESIÓN N° 19: Instrucciones Iterativas III ................................................................................................ 91
SESIÓN N° 20: Instrucciones Iterativas IV ................................................................................................ 95
SESIÓN N° 21: Instrucciones Iterativas V ................................................................................................. 99
SESIÓN N° 22: Instrucciones Iterativas VI .............................................................................................. 104
SESIÓN N° 23: Revisión de Pseudocódigo .............................................................................................. 108
SESIÓN N° 24: Introducción a Python .................................................................................................... 113
SESIÓN N° 25: Instrucciones de Control en Python ................................................................................ 118
SESIÓN N° 26: Bucle For en Python ....................................................................................................... 121
SESIÓN N° 27: Bucle While en Python ................................................................................................... 124
SESIÓN N° 28: Instrucciones Pass y With .............................................................................................. 127
Metodología de la Programación Página 2

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 01:

Introducción a la Programación de Computadoras

I
OBJETIVOS

 Conocer los principios básicos para interactuar con las computadoras.


 Aprender cómo seguir una secuencia de órdenes para su uso en la computadora.
 Apreciar las características de interacción con las computadoras.

II
TEMAS A TRATAR

 Introducción.
 Introducción al lenguaje LOGO
 Comandos básicos logo
 ¿Cómo usar MSW LOGO?
 Instrucciones secuenciales
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
El mundo actual está dominado por la tecnología, ese dominio está muy influenciado y
dominado por dos aspectos muy importantes, el primero la electrónica, que es una
ingeniería que constantemente crea y produce objetos que mejoran la calidad de vida y la
forma de hacer las cosas y la segunda es la ingeniería de sistemas que produce y administra
el software que los objetos electrónicos usan para hacer las tareas para las cuales han sido
diseñados.
El objeto electrónico más importante de esta corriente tecnológica es la computadora,
gracias a las capacidades de cálculo de este instrumento el ser humano ha sido capaz de
desarrollar mucha tecnología e inventos, la modernidad y actualidad tecnológica esta
siempre asociado al uso de computadoras. Pero no se trata sólo del uso de las
computadoras, existe un binomio hardware/software necesario para el funcionamiento
idóneo de las computadoras, es así que la estrella en el software son los programas[1].
Los programas de computadora son conjuntos de instrucciones ordenadas y debidamente
estructuradas que nos van a permitir hacer que la computadora lleve a cabo una acción o
un conjunto de tareas.
Al proceso de creación de programas se le llama programación de computadoras, pero este
proceso a pesar de no der difícil ni complicado requiere de cierto tipo de enfoque de parte
del aprendiz, esto debido a que la computadora funciona como una caja negra que recibe
órdenes y las ejecuta en el sentido y dimensión de lo que interpreta como correcto, esto es
sin corregir la forma como se le dieron las ordenes, debido a esto es necesario a que
nosotros antes de aprender a hacer cualquier cosa como aprendices de programación
debemos entender primero que la computadora actúa bajo las ordenes que se le
proporcionan sin hacer ningún tipo de corrección ni alertar de forma clara sobre las
ambigüedades en las órdenes dadas[2].
En esta práctica nosotros empezaremos haciendo uso de un lenguaje de computadora muy
sencillo llamado LOGO, este lenguaje tiene un ambiente interactivo y nos permite entender
lo que hace la computadora de forma directa cuando se le ingresa una orden, el propósito

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 3

en las primeras prácticas es entender la forma como las computadoras actúan con los
programas que les ingresamos.

2. INTRODUCCIÓN AL LENGUAJE LOGO


Es un lenguaje de programación de alto nivel, se deriva del lenguaje LISP, esta diseñado
para que los estudiantes de forma interactiva descubran y aprendan la forma de realizar
ciertas tareas de forma controlada y experimental.
LOGO se basa en un cursor especial llamado tortuga, el cual se desplaza sobre un
lienzo(una pantalla), con su desplazamiento va realizando trazos que demuestran las
ordenes ingresadas por el programador.
LOGO es un lenguaje muy sencillo con órdenes muy simples y fácil de aprender. El MSW
LOGO es la herramienta ideal para aprender a programar computadoras, se pueden
ingresar comandos pertenecientes al lenguaje a través de una línea de comandos y
visualizar en la ventana el resultado de la ejecución de cada uno de ellos[3].

A. EJECUTAR EL MSWLOGO
Para ejecutar al intérprete del lenguaje LOGO debemos hacer clic sobre su icono en el
escritorio de la computadora o en su defecto en la agrupación de programas del botón Inicio.

Figura N° 1: Icono del MSWLOGO.

B. DESCRIPCIÓN DE LAS VENTANAS


Las ventanas se componen de dos áreas diferentes pero a la vez integradas, la primera es
la ventana donde la tortuga realiza los trazos que corresponde a los comandos ingresados
en la línea de comandos, esta característica es la que nos permite apreciar el desempeño
de las ordenes que le vamos dando a la tortuga y lo que nos hace entender mejor la forma
como se debe hacer la programación[2].
Partes de la ventana LOGO
 Barra de título: Contiene el nombre de la aplicación y a su vez los botones de control
de la ventana.
 Barra de menú; Contiene un conjunto de comandos que son aplicables sobre los
elementos y archivos que usamos así como para configurar la tortuga.
 Área de trabajo de la tortuga: En esta zona(turtles playground) la tortuga se desplaza
y realiza los trazos en concordancia con los comandos ingresados por el programador.
 Tortuga: Está representado por un triángulo que se mueve y realiza trazos en el lienzo
en función a las ordenes ingresadas por el programador.
La segunda venta es la ventana de comandos y cuenta con las siguientes partes:
 Línea de comandos: Es el punto donde se ingresan los comandos LOGO, en inglés se
conoce como InputBox.
 Caja de comandos: Es la zona donde los comandos ingresados en la línea de
comandos quedan registrados y se muestran los mensajes de error en caso de haberse
ingresado un comando errad.
 Botones de comando: Son botones a disposición del programador para dar ciertas
órdenes importantes.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 4

Figura N° 2; Ventanas del MSWLOGO.

3. COMANDOS BÁSICOS LOGO


Los comandos logo son básicamente comandos de movimiento y configuración del estado
de la tortuga, aquí veremos los más simples y los que nos permiten demostrar la
interactividad del lenguaje y su entorno.

Comando S Descripción Ejemplo


i
g
l
a
s
FORWARD FD Hace avanzar a la tortuga un número de FORWARD 100
posiciones especificadas hacia adelante. FD 100
BACK BK Hace retroceder a la tortuga un número BACK 100
de posiciones especificadas hacia atrás BK 100
RIGHT RT Hace girar a la derecha a la tortuga un RIGHT 90
número de grados especificado. RT 90
LEFT LT Hace girar a la izquierda a la tortuga un LEFT 90
número de grados especificado. LT 90
CLEARSCREEN CS Limpia la pantalla CLEARSCREEN
CS

Tabla N° 1: Comandos básicos LOGO

4. ¿CÓMO USAR MSW LOGO?


La forma básica de usar LOGO es escribir una secuencia de comandos y luego se mira en
la pantalla los trazos que ha realizado la tortuga, en el siguiente ejemplo dibujaremos un
cuadrado:

FORWARD 100
RIGHT 90
FORWARD 100
RIGHT 90
FORWARD 100
RIGHT 90
FORWARD 100

El código anterior debe ser ingresado línea por línea e inmediatamente se verán los

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 5

resultados en la ventana del MSW LOGO.

Figura N° 3: Programa para dibujar un cuadrado en MSWLOGO

El siguiente código nos dibujará en la pantalla un triángulo equilátero:

right 30
forward 100
right 120
forward 100
right 120
forward 100
hideturtle

La última instrucción es para ocultar la tortuga.

Figura N° 4: Programa para dibujar un triángulo equilátero

El siguiente código dibujará un hexágono en la ventana

cs
forward 100
right 60
forward 100

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 6

right 60
forward 100
right 60
forward 100
right 60
forward 100
right 60
forward 100
hideturtle
La primera instrucción es para borrar la pantalla.

Figura N° 5: Programa para dibujar un hexágono

5. INSTRUCCIONES SECUENCIALES
Con instrucciones secuenciales nos referimos a todo instrucción que se especifica de forma
simple indicando que se realiza una sola acción de forma incondicional, generalmente esta
acción no está ligada a una acción anterior o posterior de forma explícita fuera de la lógica
que el programador pretende incorporar en el programa, tampoco se repite un número de
veces determinado, esta es una sola acción, estas instrucciones siempre son las más
simples del lenguaje de programación[4].

A. INSTRUCCIONES DE DECLARACIÓN DE VARIABLES


Una variable es un nombre o identificador que almacena el valor de un dato, durante la
ejecución del programa el valor almacenado puede variar y al hacerlo el valor del dato
anterior desaparece por el nuevo asignado.

make “a 10
make “a 12

Declaramos la variable a con un valor inicial de 10, luego cambiamos el valor de 10 por el
de 12 y el valor anterior desaparece quedándose con el ultimo asignado.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 7

B. INSTRUCCIONES DE ENTRADA Y SALIDA DE DATOS


Para que un programa sea más flexible debe ser capaz de recibir datos desde fuera del
programa, por ejemplo si ingreso las instrucciones siguientes tendré un cuadrado de lado
de longitud 100.

forward 100
right 90
forward 100
right 90
forward 100
right 90
forward 100
hideturtle

Pero si quiero que el cuadrado tenga de longitud un valor que yo ingrese por teclado debería
hacer algo así.

make "a 0
make "a first questionbox [Ingreso de dato][Ingrese un numero]
forward :a
right 90
forward :a
right 90
forward :a
right 90
forward :a
hideturtle

La posibilidad de ingresar el valor a la variable esta esta o por la instrucción questionbox


que tendrá como titulo [Ingreso de dato] y como prompt o línea de comandos [Ingrese un
numero] el primer valor ingresado será asignado a la variable a, por eso se usa first.
Para mostrar el valor de una variable por pantalla se hace uso de la instrucción label.

label :a

Para mostrar el resultado de una operación.

label 4+5

Para mostrar un mensaje por pantalla se puede hacer de la siguiente forma.

label [hola a todos]

C. INSTRUCCIONES DE OPERACIONES MATEMÁTICAS


Las operaciones matemáticas necesitan de operandos y operadores, cada lenguaje tiene
una forma particular de operadores aunque todas las operaciones básicas se realizan de la
misma forma, las operaciones matemáticas incluyen las aritméticas e primera instancia y
otras como las lógicas o las relacionales[4].

3+4
You don't say what to do with 7

Los resultados de las operaciones deben ser asignados o a un variable o a la salida por
pantalla, de lo contrario el programa nos dice que no sabe qué hacer con el resultado.

make "a 3+4

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 8

label 3+4

Para el primer caso se crea la variable a, a la variable a se le asigna el resultado de la suma.


En el segundo caso mostramos por pantalla la salida del valor resultado de la suma.

make "a 10
make "a :a+10

En este caso se muestra que declaramos una variable a, esta variable recibe un valor inicial
de 10, a continuación al valor de a le sumamos 10, este procedimiento dentro de un bucle
podría implementarse como contador.

make "a 0
make "b 3
make "c 4
make "a :b+:c
label :a

En este ejemplo se declaran las variables a, b y c, luego hacemos que el resultado de la


suma de b y c se almacene en a. Y al final se muestra el resultado almacenado en a en la
ventana.

make "a (:b+:c)/3

En este ejemplo el resultado de la suma se divide entre 3 y se asigna el resultado a la


variable a.

6. RESUMEN
Las instrucciones secuenciales se ejecutan una tras otra en el mismo orden en que fueron
especificadas, se ejecutan de forma incondicional y siguiendo un solo camino, no habiendo
la posibilidad de una ejecución alterna, y solo ejecutan una vez ya que no es posible la
ejecución repetitiva. Por lo general las instrucciones secuenciales están dirigidas a realizar
una sola orden y están en términos de ingreso y salida de datos, declaración y asignación
de valores a variables, operaciones matemáticas, etc. Las variables son nombres que
representan a datos de forma genérica, de esa forma es posible hacer instrucciones de
carácter genérico y no particular.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el MSW LOGO.
4. Probar los comandos utilizados.
5. Realizar las figuras básicas del marco teórico de la práctica.
6. Ejecutar las figuras que se les pida en la práctica.

V
EJERCICIOS

1. Haciendo uso del lenguaje LOGO dibuje una casa en la pantalla.


2. Haciendo uso del lenguaje LOGO dibuje las figuras que el docente le proponga en la pizarra.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 9

VI
CUESTIONARIO

1. ¿Qué es un algoritmo?
2. ¿Qué es un programa?
3. ¿Qué es un lenguaje de programación?
4. ¿Qué es una computadora?
5. ¿Qué es un microprocesador?
6. ¿Qué es una IDE?
7. ¿Cómo se escribe un algoritmo?
8. ¿Cómo se escribe un programa?
9. ¿Cómo se interactúa con la computadora?
10. ¿Cuál es la función del lenguaje de programación?
11. ¿Qué es una instrucción o sentencia?
12. ¿Qué es una instrucción secuencial?
13. ¿Qué es una variable?
14. ¿Qué tipos de instrucciones secuenciales tenemos?
15. ¿Cuáles son las similitudes entre los diferentes tipos de instrucciones secuenciales?
16. ¿Cuáles son las instrucciones secuenciales para ingreso y salida de datos?
17. ¿Cómo asignamos un valor a una variable mediante una instrucción secuencial?
18. ¿Cómo se especifica una instrucción secuencial de operación matemática?
19. ¿Cuál es la función de las variables?
20. ¿cómo visualizamos el valor almacenado por una variable?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 10

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 02:

Introducción a las Instrucciones de Control e Iterativas

I
OBJETIVOS

 Conocer los principios básicos que rigen el uso de las instrucciones control e iterativas.
 Aprender como diseñar instrucciones de control e iterativas en programas.
 Apreciar las características y ventajas provistas por las instrucciones de control e iterativas
a los programas.

II
TEMAS A TRATAR

 Introducción.
 Instrucciones de control
 Instrucciones iterativas
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
La lógica de las instrucciones de control está justificada por la necesidad de establecer
puntos donde las acciones a realizar no sean obligatorias si no por el contrario sean
ejecutadas bajo el cumplimiento de alguna condición, esto nos lleva a pensar que es
necesario contar con algún recurso que nos permita poder hacer que el flujo de ejecución
secuencial de instrucciones en un programa pueda tener caminos paralelos al mismo
tiempo, y la ruta que se siga a través de estos caminos este condicionada al cumplimiento
de ciertos controles, la ruta seguida es solamente una, no pudiéndose seguir dos rutas de
secuencia de instrucciones al mismo tiempo[1].
Es posible incorporar en un programa estos puntos de control, los puntos de control
establecidos están en función de una condición dada, la condición debe ser clara y debe
tener dos posibles estados en el momento de su evaluación, es decir cualquier condición
puede ser falsa o verdadera en función de los valores evaluados, los valores evaluados
deben estar almacenados en variables para hacer flexible la condición.
Las instrucciones de control están estructuradas de tal forma que primero se evalúa el
estado de la condición, una condición generalmente se escribe función de una comparación
entre dos expresiones, el resultado de la comparación sólo puede estar en términos de
verdadero o falso, de ser verdadero una o un bloque de instrucciones se ejecutan, de ser
falso otro bloque o instrucción se ejecuta[2].
La ejecución no está estructurada de la forma única de que si es verdadero se debe ejecutar
una instrucción y si es falso otra instrucción, también es posible estructurarla de tal forma
que si es verdadero se ejecuta una instrucción y si no lo es no se ejecuta nada en lo
absoluto. En este segundo caso se tiene una sola salida de instrucción condicional.
La mayoría de las veces debemos hacer que un conjunto de acciones se repitan una y otra
vez, en esos casos en que las acciones deben ejecutarse un número determinado de veces
es conveniente disponer de un mecanismo que nos permita controlar el numero
determinado de veces en que deba repetirse una acción, a este tipo de instrucción se le
llama instrucción iterativa, repetitiva, de bucle o lazo.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 11

Este tipo de instrucciones es muy útil porque nos permite hacer que una instrucción o un
conjunto de ellas se repita de forma condicionada o a veces incondicional, lo que quiere
decir que el número de veces en que la instrucción deba repetirse es controlada por el
programador en base al tipo de instrucción iterativa que utiliza, algunas veces se hace que
la instrucción repita un grupo de instrucciones un número n de veces en otros caso se hace
la repetición se lleve a cabo mientras que algún evento o condición particular se cumpla.

2. INSTRUCCIONES DE CONTROL
En cualquier lenguaje de programación una instrucción condicional o de control tiene una
estructura muy simple compuesta por la palabra clave que ordena la evaluación de la
condición asociada, esta palabra es el SÍ condicional, en ingles se utiliza como IF, a
continuación se coloca la expresión que denota la condición y luego lo que se hace si es
cierto[3].

A. INSTRUCCIONES DE CONTROL SIMPLES


Una instrucción condicional solo tiene una salida es decir, después de la expresión que se
evalúa para saber si es cierta o falsa solo hay un bloque de instrucciones a ejecutar si la
evaluación da como resultado verdadera[4].

If [true/false condition][action if true]

En este caso If es la palabra clave para la instrucción condicional.


La parte true/false condition es la condición a evaluar y será verdadera o falsa según
los valores de las variables implicadas.
La parte [action if true] se refiere al conjunto de instrucciones que se llevaran a cabo si la
evaluación resultad verdadera, de ser falsa no se hace nada.

make "Angulo 0
make "Angulo first questionbox [Ingreso de dato][Ingrese medida del angulo(45
o 90)]
if :Angulo = 45 [forward 100 right :Angulo
forward 100 right :Angulo
forward 100 right :Angulo
forward 100 right :Angulo
forward 100 right :Angulo
forward 100 right :Angulo
forward 100 right :Angulo
forward 100 right :Angulo ]
hideturtle

B. INSTRUCCIONES DE CONTROL DOBLES


De la misma forma podemos aprovechar cuando se hace una evaluación de condicionales
para hacer alguna acción cuando el resultado es falso para eso se utiliza la instrucción
ifelse.

ifelse [true/false condition][action if true][action if false]

La instrucción ifelse es la utilizada para evaluar expresiones condicionales en lenguaje


LOGO, significa sí condicional y el else significa de la contrario[3].
La parte true/false condition es la condición a evaluar y será verdadera o falsa según
los valores de las variables implicadas.
La parte [action if true] es la parte que se ejecutará si resulta que la evaluación de
la condición es verdadera.
La parte [action if false] es la parte que se ejecutará si resulta que la evaluación de
la condición es falsa.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 12

make "Angulo 0
make "Angulo first questionbox [Ingreso de dato][Ingrese medida del angulo(60
o 72)]
ifelse :Angulo = 45 [forward 100 right 60
forward 100 right 60
forward 100 right 60
forward 100 right 60
forward 100 right 60
forward 100 ]
[forward 100 right 72
forward 100 right 72
forward 100 right 72
forward 100 right 72
forward 100]
hideturtle

3. INSTRUCCIONES ITERATIVAS
La función primordial de las instrucciones iterativas es el no tener que reiterar una orden
que es repetitiva, de esta forma sólo debemos indicar cuantas veces se debe llevar a cabo
y con esa información es posible que se ejecuten las veces indicadas.

A. INSTRUCCIÓN ITERATIVA SIMPLE


Lo más sencillo que se puede especificar como instrucción iterativa es simplemente usar la
palabra clave repeat con el número de veces que se tiene que ejecutar las instrucciones
involucradas especificadas como bloque, estas instrucciones se deben delimitar con
corchetes, una sola instrucción puede ser la que se tenga que ejecutar.

repeat N [instrucciones]

La instrucción es muy simple, se utiliza la palabra clave repeat para indicar el bucle, N
indica el número de veces que debe repetirse la acción y entre corchetes se indican la o las
instrucciones que se repetirán en el orden que deban ejecutarse, el número de veces en
que deba ejecutarse una orden también puede ser indicado mediante una variable[2].

repeat 4 [forward 100 right 90]

En el ejemplo hacemos uso de la instrucción repeat con ella hacemos que se repita 4
veces las instrucciones indicadas entre corchetes.

make "veces 4
repeat :veces [forward 100 right 90]

hideturtle

En este segundo caso tenemos que el número de veces que se ejecuta las instrucciones
entre corchetes esta controlado por el valor que almacene la variable.

make "veces first questionbox [Ingreso de dato][Ingrese n° de veces]


repeat :veces [forward 100 right 90]
hideturtle

En este otro ejemplo el número de veces en que se ejecutan las instrucciones depende del
valor que es ingresado por teclado y almacenado en la variable veces.
La instrucción usada es muy simple y también es posible de anidarla, eso quiere decir que
podemos poner dentro de los corchetes otra instrucción repeat y así hacer que el proceso
de repeat se ejecute varias veces.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 13

repeat 6 [repeat 4 [forward 100 right 90] right 60]

En este caso estamos haciendo que se dibujen 6 cuadrados de lado 100, después de dibujar
cada cuadrado giramos a la derecha 60° y con ello hacemos que se dibujen al costado y no
sobre el cuadrado anterior[4].
En el uso de instrucciones iterativas es muy conveniente el uso de variables para poder
mejorar su desempeño.

make "largo 1
repeat 6 [repeat 360 [forward :largo right 1] make "largo :largo + 0.25]

En este caso se dibuja un circulo de perímetro 360, en las siguientes iteraciones se aumenta
en un 0.25 por vez para cada circulo hasta completar los 6.

B. INSTRUCCIÓN ITERATIVA WHILE


Esta instrucción ejecutará una instrucción o un bloque de instrucciones mientras una
condición sea satisfecha o cierta, cuando esta condición se convierta en falsa se detiene la
repetición.

while [true/false condition][instrucción o bloque de instrucciones]

La palabra clave while indica que el bloque se ejecutará mientras la condición sea cierta
o verdadera.
La parte [true/false condition] es la expresión condicional que debe satisfacerse
para que la instrucción o el bloque de instrucciones se ejecuten.
Finalmente entre corchetes se colocan a las instrucciones o instrucción que se ejecutará
repetitivamente

make "veces first questionbox [Ingreso de dato][Ingrese n° de veces]


while [:veces > 0][forward 100 right 90 make "veces :veces - 1]
hideturtle

En este ejemplo capturamos un valor ingresado por teclado en la variable veces, luego
usamos la variable para construir la expresión condicional indicando que mientras veces
sea mayor que 0 se ejecutarán las instrucciones entre corchetes, en el bloque de
instrucciones se indica lo siguiente, se avanza 100, se gira a la derecha 90 grados y luego
se hace que la variable veces se decremente en 1, eso hace que veces en algún momento
tenga que valer 0, cuando veces sea 0 la condición no se cumplirá y se dejará de ejecutar
el bloque de instrucciones[4].

4. RESUMEN
Las instrucciones condicionales pueden ser simples, dobles o múltiples, en este caso el
lenguaje LOGO puede incorporar las dos primeras, es decir ante la evaluación de una
condición puede tener un bloque de instrucciones para ejecutar si es cierta y nada si es
falsa, en este caso es una condicional simple; cuando se trata de una condicional doble se
tienes dos bloque de acciones a ejecutar, si fuera cierta la primera y si fuera falsa la
segunda, de esta forma siempre se utiliza alguna de las salidas de la instrucción.
Es algo complicado establecer las expresiones que se van a evaluar para la ejecución de
los bloques de instrucciones asociadas con verdadero o falso, pero la forma más simple de
implementar esto es sabiendo cual es el objeto del control, es decir saber que variable o
parámetro es la que determina lo que se está controlando y además debemos tener en
cuenta que algunos valores relacionados deben estar en ciertos rangos, la comparación es
la expresión más común, pero en lenguajes más sofisticados no es la única forma de
determinarlo.
Las instrucciones iterativas tiene la función de hacer que una instrucción o un bloque de
ellas se repitan un número de veces especificado mediante algún mecanismo que les indica

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 14

cuantas veces deben repetirse, lo más simple es indicar el número de veces, de esa forma
la instrucción repeat solo debe indicar cuantas veces se realiza o lleva a cabo una
instrucción o bloque de instrucciones, se ejecuta de forma incondicional y sin impedimentos,
por el contrario existen mecanismos más complicados y sofisticados que hacen que las
instrucciones que deban repetirse estén supeditadas al cumplimiento de una expresión
condicional, eso quiere decir que hacemos uso de una instrucción diferente en este caso
while, que significa que mientras la expresión condicional sea verdadera se ejecutará el
bloque de instrucciones asociado, dentro del bloque de instrucciones debe existir algún
mecanismo que permita que en un momento dado y planificado esta expresión condicional
sea falsa, para que así el bucle no sea infinito.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el programa MSW LOGO.
4. Ingrese los programas descritos en el marco teórico de la práctica y analice los resultados
obtenidos
5. Haciendo uso del lenguaje LOGO escriba un programa que nos permita dibujar un cuadrado
si el lado ingresado es mayor a 100.
6. Haciendo uso del lenguaje LOGO escriba un programa que nos permita dibujar un cuadrado
si el ángulo ingresado por teclado es igual a 90 grados.
7. Haciendo uso del lenguaje LOGO escriba un programa que nos permita dibujar un cuadrado
si el ángulo ingresado por teclado es igual a 90 grados, de lo contrario debe mostrar el
mensaje que el ángulo es incorrecto.
8. Haciendo uso del lenguaje LOGO escriba un programa que nos permita dibujar un cuadrado
si el lado ingresado es mayor a 100, de lo contrario debe dibujar un rectángulo haciendo
dos lados la mitad del lado ingresado.
9. Haciendo uso del lenguaje LOGO escriba un programa que nos permita dibujar un
pentágono o un hexágono dependiendo del ángulo ingresado.
10. Ingrese los programas descritos en el marco teórico de la práctica y analice los resultados
obtenidos.
11. Haciendo uso del lenguaje LOGO dibuje un pentágono en la pantalla usando la instrucción
repeat.
V
EJERCICIOS

1. Haciendo uso del lenguaje LOGO dibuje un circulo en la pantalla.


2. Haciendo uso del lenguaje LOGO dibuje un aspa de molino en la pantalla.
3. Haciendo uso del lenguaje LOGO dibuje las figuras que el docente le proponga en la pizarra.

VI
CUESTIONARIO

1. ¿Qué es una instrucción de control?


2. ¿Cuántos tipos de instrucciones de control existen?
3. ¿Cuáles son las instrucciones de control simples?
4. ¿Cuáles son las instrucciones de control dobles?
5. ¿Qué es una expresión condicional?
6. ¿Cuántos valores puede asumir como resultado una expresión condicional?
7. ¿Cómo se construye una expresión condicional?
8. ¿Qué es una instrucción iterativa?
9. ¿Cómo funciona la instrucción repeat?
10. ¿Cuáles son los elementos de la instrucción repeat?
11. ¿Cómo se anidan instrucciones iterativas?

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 15

12. ¿Cómo funciona la instrucción while?


13. ¿Cuáles son los elementos de la instrucción while?
14. ¿Qué diferencias existen entre repeat y while?
15. ¿Qué necesita la instrucción while para finalizar?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 16

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 03:

Introducción a los Algoritmos

I
OBJETIVOS

 Introducir al alumno en la creación y especificación de algoritmos.


 Emplear los patrones de especificación de procesos más comunes.
 Diferenciar los algoritmos de los procesos simples.
 Diseñar instrucciones repetitivas que permita la ejecución de procesos repetitivos.

II
TEMAS A TRATAR

 Introducción
 ¿Qué es un algoritmo?
 Modelos computacionales
 Programas: Algoritmos para ser ejecutados por un ordenador
 ¿Qué instrucciones ejecuta un ordenador?
 Traductores e intérpretes
 Lenguajes interpretados vs. lenguajes compilados

III
MARCO TEORICO

1. INTRODUCCIÓN
Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones
que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para
crear programas que controlen el comportamiento físico y lógico de una máquina, para
expresar algoritmos con precisión, o como modo de comunicación humana. Está formado
de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el
significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba,
se depura, se compila y se mantiene el código fuente de un programa informático se le
llama programación.
También la palabra programación se define como el proceso de creación de un programa
de computadora, mediante la aplicación de procedimientos lógicos, a través de los
siguientes pasos: [5]
 El desarrollo lógico del programa para resolver un problema en particular.
 Escritura de la lógica del programa empleando un lenguaje de programación específico
(codificación del programa)
 Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
 Prueba y depuración del programa.
 Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y
'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación
y a otros más, como por ejemplo el HTML. (lenguaje para el marcado de páginas web que
no es propiamente un lenguaje de programación sino un conjunto de instrucciones que
permiten diseñar el contenido y el texto de los documentos) [5] [1].
Permite especificar de manera precisa sobre qué datos debe operar una computadora,
cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada
gama de circunstancias[5]. Todo esto, a través de un lenguaje que intenta estar

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 17

relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje
Léxico. Una característica relevante de los lenguajes de programación es precisamente que
más de un programador pueda usar un conjunto común de instrucciones que sean
comprendidas entre ellos para realizar la construcción del programa de forma
colaborativa[2].

2. ¿QUÉ ES UN ALGORITMO?
Es un conjunto finito de instrucciones que se deben seguir para resolver un problema. No
obstante, desde el punto de vista de la programación de ordenadores, la definición del
algoritmo como la especificación de una serie de pasos, es incompleta. Debe observarse
que los ordenadores son equipos que tienen limitaciones físicas en cuanto a capacidad de
almacenamiento y procesamiento. Por consiguiente debemos refinar un poco más nuestra
definición de algoritmo para hacerla aplicable de manera efectiva en el ámbito de la
informática.

A. DEFINICIÓN:
Un algoritmo se entiende como una sucesión finita de pasos que debe cumplir las siguientes
especificaciones [6]:
 Cada paso del algoritmo debe estar bien definido: Esto significa que la definición de un
paso debe ser suficientemente clara, para que una persona pueda entenderla y
realizarla. Si bien no se puede dar un criterio determinístico para decidir si un paso está
bien definido, debemos apelar al sentido común para decidir que un paso está
especificado sin ambigüedades. [6]
 Un algoritmo debe tener un principio y un fin: Un programa es un algoritmo escrito con
un objetivo: conseguir un resultado. No tiene sentido crear un programa que espere ~
segundos (infinitos segundos) y luego escriba en pantalla "Hola Mundo!", del mismo
modo que un algoritmo debe tener un principio bien definido (tampoco tiene sentido el
algoritmo "haz nada, y luego escribe Hola Mundo!"). [6]

3. MODELOS COMPUTACIONALES
Un modelo computacional es un modelo matemático en las ciencias de la computación que
requiere extensos recursos computacionales para estudiar el comportamiento de un
sistema complejo por medio de la simulación por computadora. El sistema bajo estudio es
a menudo un sistema complejo no lineal para el cual las soluciones analíticas simples e
intuitivas no están fácilmente disponibles. En lugar de derivar una solución analítica
matemática para el problema, la experimentación es hecha con el modelo cambiando los
parámetros del sistema en la computadora, y se estudian las diferencias en el resultado de
los experimentos. Las teorías de la operación del modelo se pueden derivar/deducir de
estos experimentos de computacionales.[6][3]
Ejemplos de modelos de computacionales comunes son modelos de el pronóstico del
tiempo, modelos del Earth Simulator, modelos de simulador de vuelo, modelos de
plegamiento molecular de proteínas, y modelos de red neural.[6]

4. PROGRAMAS: ALGORITMOS PARA SER EJECUTADOS POR


UN ORDENADOR
Un ordenador o computadora está, desde que se enciende hasta que se apaga totalmente,
ejecutando un algoritmo. Por lo general, estos algoritmos, escritos para que los entienda
una máquina, terminan siendo vagos y confusos para la mayoría de quienes no han
estudiado programación. Una máquina no puede entender "escribe Hola Mundo!" porque
no sabe lo que es "escribe" ni lo que es una letra o un espacio, ni lo que es una pantalla.
En cambio, puede entender "mov eax, 0x23afb31" (escribir en la dirección de memoria eax
el número 0x23afb31), aunque nosotros no. Un ordenador es solo un circuito electrónico,
no funciona a base de magia ni nada por el estilo[4][6].
Debido a lo difícil que es escribir en lenguaje máquina, e incluso en ensamblador, se crearon
diferentes lenguajes de programación, más o menos parecidos al inglés actual y a cómo se

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 18

redacta un algoritmo. Estos lenguajes proveen de cosas tan complejas para una máquina
como los bucles for. Los compiladores se encargan de traducir esos ficheros al lenguaje
ensamblador que corresponda, el ensamblador de traducirlos a lenguaje máquina y el
enlazador de juntar todo ese código máquina en un solo archivo, el programa. Y el
microprocesador, se encarga de ir encendiendo o apagando transistores según lo que le
diga el código máquina. Es fácil entender el lenguaje de alto nivel en comparación al
lenguaje maquina pero de la evolución surgieron.

5. ¿QUÉ INSTRUCCIONES EJECUTA UN ORDENADOR?

A. LENGUAJE DE MÁQUINA
Cada tipo de microprocesador contiene un conjunto de instrucciones que realizan ciertas
operaciones sobre una o más palabras de bits; las instrucciones van también codificadas
en bits. No queremos hacer aquí una discusión sobre arquitectura de ordenadores, por lo
que con esto debe valer por ahora. [6][4].
Se entiende que escribir sólo con dos teclas, el 0 y el 1, es incómodo. Históricamente, a la
hora de diseñar un algoritmo para que el ordenador ejecutara, se escribía mediante unas
etiquetas mnemotécnicas; éste fue el origen del lenguaje ensamblador. Por ejemplo quizás
en una cierta arquitectura la instrucción de borrado de memoria (Memory Clear, en inglés)
corresponda al código 010. Pronto surgieron programas que leían, siguiendo el ejemplo,
MC, y lo sustituían por 010. [6]

B. LENGUAJE ENSAMBLADOR
El código máquina tenía dos grandes inconvenientes para los programadores: [6]
 El primero es que se trata de unas instrucciones difíciles de recordar ya que no guardan
relación con la operación que se está realizando. [6]
 El segundo inconveniente es que puede haber, y de hecho hay, diferencias entre las
instrucciones de un procesador a otro. [6]
Todo esto ha llevado a "poner nombre" a las instrucciones de código máquina de manera
que a una secuencia concreta de bits que realiza una operación se le pone un nombre
sencillo que identifique la operación. Esta traducción a un lenguaje más sencillo para las
personas resulta en una mayor comodidad para el programador, además el proceso de
traducción inverso de lenguaje ensamblador a código máquina puede ser realizado por un
sencillo programa. [6]

C. LENGUAJES DE ALTO NIVEL


Sobre este lenguaje ensamblador inicial se fueron construyendo otros lenguajes de
programación de más alto nivel; esto significa que ocultan ciertos aspectos de manera que
el programador no se ha de preocupar sobre si en la máquina que quiere que se ejecute el
algoritmo el MC corresponde a la instrucción 101 o 010. Se produce, por tanto, una
abstracción de datos, muy deseable para poder utilizar el trabajo de otros para avanzar un
paso más en vez de tener que "reinventar la rueda", como se suele decir. Estos textos en
los que se codifican los algoritmos son los códigos fuente; siguen las reglas sintácticas de
un determinado lenguaje de programación. Existen numerosos lenguajes de programación,
y se utiliza uno u otros según sus características se adecúen más o menos a la resolución
de nuestro problema.

6. TRADUCTORES E INTÉRPRETES
Tras la escritura del algoritmo, un compilador o un intérprete (otros programas)
transformarán el texto en código máquina que el procesador es capaz de ejecutar.
Toda esta abstracción permite resolver problemas alejados de sumar números binarios,
como pueden ser la consulta de esta misma enciclopedia o jugar a un videojuego en 3D.

7. LENGUAJES INTERPRETADOS VS. LENGUAJES

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 19

COMPILADOS
Los lenguajes interpretados nacen como respuesta a la dificultad de manejo de los
compilados. Un lenguaje compilado es sólo apto para un sistema operativo o formato de
ejecutable (en Linux y Unix System V es ELF, en Windows o incluso en BSD es muy
diferente), y es tedioso de manejar: para comprobar bugs o errores el computador debe:[7]
 Compilar cada uno de los ficheros de código.
 Ensamblarlos en ficheros objeto.
 Enlazar los ficheros objeto.
 Volverlos a ensamblar.
Todo eso no es gran derroche de recursos para un ordenador medio actualmente, pero dura
sus 10 o 15 segundos. En cambio, con un lenguaje interpretado, el programa intérprete
analiza el fichero de código y lo va ejecutando en tiempo real, sin compilarlo ni ensamblarlo.
Otra de las ventajas de los lenguajes interpretados es que son multiplataforma: un programa
en Perl, por ejemplo, no debe ser compilado dos veces (una para Unix y otra para Windows).
Con que haya diferentes versiones del intérprete en cada uno de esos ordenadores,
específicamente compilados para ellos, basta. [7]
Sus desventajas:
 Consume muchos recursos de memoria, sobre todo RAM. [7]
 Se depende del intérprete: si no tienes instalado el intérprete que corresponda, no
podrás ejecutar el programa. [7]
Ejemplos de lenguajes interpretados son PHP, Perl, Python, Tcl/Tk, BASIC, LISP (en
algunas de sus versiones). [7]

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el Procesador de textos o en su defecto con el Editor de textos y escriba los
algoritmos siguientes:
4. Elaborar un algoritmo para subir las escaleras desde un primer hasta un segundo piso.
5. Elaborar un algoritmo que nos permita subir las escaleras desde un piso X hasta un piso
X+1.
6. Revisar los dos algoritmos anteriores y hacerlos más genéricos desde un punto de vista de
implantación que nos permita subir o bajar las escaleras desde cualquier piso hacia
cualquier piso.
7. Revisar los dos algoritmos anteriores y hacerlos más genéricos desde un punto de vista de
implantación para que nos permita subir o bajar por el ascensor desde cualquier piso, hacia
cualquier piso.

V
EJERCICIOS

1. Elaborar un algoritmo que nos permita lavar una pila de platos de tamaño N.
2. Elaborar un algoritmo que nos permita entregar N cartas en las direcciones respectivas.
3. Al algoritmo anterior agregarle las instrucciones necesarias para que el algoritmo haga la
entrega certificada de cartas.
4. Elaborar un algoritmo que nos permita repartir una baraja de cartas a 5 jugadores (5 naipes
a cada uno) por vez.
5. Elaborar un algoritmo que nos permita servir sopa de una olla.
6. Elaborar un algoritmo que nos permita subir las escaleras de un piso n a un pis n+1.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 20

VI
CUESTIONARIO

1. ¿Qué es un algoritmo?
2. ¿Qué es un lenguaje de programación?
3. ¿Qué es el lenguaje ensamblador?
4. ¿Qué es el lenguaje de máquina?
5. ¿Qué es la semántica?
6. ¿Qué es la sintaxis?
7. ¿Qué es una instrucción?
8. ¿Cómo se ejecutan las instrucciones por la computadora?
9. ¿Cómo se especifican las instrucciones que ordenan la repetición del mismo proceso varias
veces?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995
[5] http://ofimatica05.blogspot.com
[6] https://es.wikibooks.org/wiki/Fundamentos_de_programaci%C3%B3n/Algoritmos_y_progr
amas
[7] https://www.programarya.com/Cursos/Fundamentacion/Algoritmos-y-Programas

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 21

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 04:

Introducción a los Diagramas de Flujo

I
OBJETIVOS

 Comprender los procesos de codificación en computación.


 Utilizar un lenguaje de programación para la codificación
 Hacer uso de los recursos de programación en la codificación de aplicaciones o productos.

II
TEMAS A TRATAR

 Introducción.
 Características
 Ventajas de los diagrama de flujo
 Tipos de diagramas de flujos
 Símbolos

III
MARCO TEORICO

1. INTRODUCCIÓN
Un diagrama de flujo es una representación gráfica de un algoritmo. Se utiliza en disciplinas
como la programación, la economía, los procesos industriales y la psicología cognitiva.
Estos diagramas utilizan símbolos con significados bien definidos que representan los
pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los
puntos de inicio y de término[1].

2. CARACTERÍSTICAS
Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término.
Además, todo camino de ejecución debe permitir llegar desde el inicio hasta el término.[5]
Las siguientes son acciones previas a la realización del diagrama de flujo: [5]
 Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar
presentes el dueño o responsable del proceso, los dueños o responsables del proceso
anterior y posterior y de otros procesos interrelacionados, otras partes interesadas.
 Definir qué se espera obtener del diagrama de flujo.
 Identificar quién lo empleará y cómo.
 Establecer el nivel de detalle requerido.
 Determinar los límites del proceso a describir.
Los pasos a seguir para construir el diagrama de flujo son : [5]
 Establecer el alcance del proceso a describir. De esta manera quedará fijado el
comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso
previo y el final la entrada al proceso siguiente.
 Identificar y listar las principales actividades/subprocesos que están incluidos en el
proceso a describir y su orden cronológico.
 Si el nivel de detalle definido incluye actividades menores, listarlas también.
 Identificar y listar los puntos de decisión.
 Construir el diagrama respetando la secuencia cronológica y asignando los

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 22

correspondientes símbolos.
 Asignar un título al diagrama y verificar que esté completo y describa con exactitud el
proceso elegido.

3. VENTAJAS DE LOS DIAGRAMA DE FLUJO


 Favorecen la comprensión del proceso a través de mostrarlo como un dibujo. El cerebro
humano reconoce fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias
páginas de texto.
 Permiten identificar los problemas y las oportunidades de mejora del proceso. Se
identifican los pasos redundantes, los flujos de los re-procesos , los conflictos de
autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.
 Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan,
facilitando a los empleados el análisis de las mismas.
 Son una excelente herramienta para capacitar a los nuevos empleados y también a los
que desarrollan la tarea, cuando se realizan mejoras en el proceso[2]. [5]

4. TIPOS DE DIAGRAMAS DE FLUJOS


 Formato vertical: En él el flujo o la secuencia de las operaciones, va de arriba hacia
abajo. Es una lista ordenada de las operaciones de un proceso con toda la información
que se considere necesaria, según su propósito[4].
 Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de izquierda a
derecha.
 Formato panorámico: El proceso entero está representado en una sola carta y puede
apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita su
comprensión, aun para personas no familiarizadas. Registra no solo en línea vertical,
sino también horizontal, distintas acciones simultáneas y la participación de más de un
puesto o departamento que el formato vertical no registra.
 Formato Arquitectónico: Describe el itinerario de ruta de una forma o persona sobre el
plano arquitectónico del área de trabajo. El primero de los flujogramas es eminentemente
descriptivo, mientras que los utilizados son fundamentalmente representativos.
 Reglas para dibujar un diagramas de flujo. [5]

5. SÍMBOLOS
Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin
embargo, algunos símbolos especiales pueden también ser desarrollados cuando sean
requeridos. Algunos símbolos estándares, que se requieren con frecuencia para diagramar
programas de computadora se muestran a continuación[6] [3]:

Inicio o fin del programa

Pasos, procesos o líneas de instrucción de programa de computo

Operaciones de entrada y salida

Toma de decisiones y Ramificación

Conector para unir el flujo a otra parte del diagrama

Cinta magnética

Disco magnético

Conector de pagina

Líneas de flujo

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 23

Display, para mostrar datos

Envía datos a la impresora

Observación: Para obtener la correcta elaboración de los símbolos, existen plantillas. Las
puedes conseguir en Papelerías.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el Programa DFD:
a) Cargar de los archivos ejemplo el archivo decimal.binario.dfd

Figura N° 6: Programa DFD 1.0

b) Utilice la herramienta de depuración para verificar como lleva a cabo los procesos el
diagrama de flujo(trace).

Figura N° 7: Depuración con DFD.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 24

4. Revisar los valores que gestiona el diagrama en las diferentes variables mediante la
herramienta de inspección(depuración).

Figura N° 8: Inspección de valores de variables en la depuración.

5. Elaborar un diagrama de flujo que nos permita mostrar en la pantalla el mensaje


‘bienvenidos’.
6. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar un texto y luego
mostrarlo por pantalla.

V
EJERCICIOS

1. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar dos números
enteros por teclado y luego mostrar el resultado de su suma por pantalla.
2. Elaborar un diagrama de flujo en el programa DFD que nos permita pedir el nombre del
usuario y luego mostrar un saludo personalizado al usuario.
3. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar dos cadenas
de caracteres y luego mostrar la unión de las mismas por pantalla.

VI
CUESTIONARIO

1. ¿Qué es un diagrama de flujo?


2. ¿Cuáles son los elementos gráficos de un diagrama de flujo?
3. ¿Cómo se indica el inicio del algoritmo en el diagrama de flujo?
4. ¿Cómo se conectan las figuras en el diagrama de flujo?
5. ¿Cuáles son las reglas de construcción para los diagramas de flujo?
6. ¿Cómo se especifica una operación o proceso en un diagrama de flujo?
7. ¿Cómo se muestran datos desde un diagrama de flujo?
8. ¿Cómo se ingresan datos a un diagrama de flujo?
9. ¿Cómo se asignan datos a una variable en un diagrama de flujo?
10. ¿Cómo se indica el final del algoritmo en el diagrama de flujo?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 25

[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995
[5] http://es.calameo.com/books/0011878956b80385caf43
[6] http://www.monografias.com/trabajos70/introduccion-diagrama-flujo/introduccion-
diagrama-flujo.shtml

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 26

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 05:

Instrucciones Secuenciales en los Diagramas de Flujo

I
OBJETIVOS

 Comprender los procesos de codificación de instrucciones secuenciales en los algoritmos.


 Utilizar las instrucciones secuenciales en la codificación de algoritmos.
 Hacer uso de los recursos de programación en la codificación de aplicaciones o productos.

II
TEMAS A TRATAR

 Introducción.
 Concepto
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
En un diagrama de flujo las instrucciones secuenciales son el tipo de instrucción más simple
que hay, las instrucciones secuenciales implican la ejecución de una sola acción, esta
acción esta desligada de pre o post condiciones y se lleva a cabo por una sola vez, las
instrucciones secuenciales pueden estar agrupadas por bloques y estos bloques pueden
estar subordinados a otros tipos de instrucción, pero una instrucción secuencial nunca
puede tener instrucciones subordinadas, una instrucción secuencial es en si una sola
expresión sin ligazones estructurales adicionales[1].
Las instrucciones secuenciales son de varios subtipos, es decir tenemos varios tipos de
instrucciones, como: de entrada y salida, de asignación, de declaración, de operaciones
matemáticas, etc.
Las instrucciones secuenciales pueden tener otros tipos de naturaleza más específicas
según el lenguaje de programación usado, en cada caso hay que tener en cuenta la forma
de implementación de acuerdo al lenguaje[2].

2. CONCEPTO
Una instrucción en un diagrama de flujo es secuencial si las instrucciones se ejecutan una
tras otra, a modo de una secuencia lineal, es decir que una instrucción no inicia su ejecución
mientras que no finaliza la anterior, ni hace que se bifurque el flujo del programa, ni genera
ningún tipo de repetición autónoma independiente de cualquier otra instrucción[3].

A. INSTRUCCIONES DE ENTRA Y SALIDA DE DATOS


Las instrucciones de entrada y salida de datos son para permitir que nuestro diagrama de
flujo(algoritmo) reciba datos del usuario y puede mostrar resultados al usuario durante la
ejecución del programa, de esta forma el algoritmo es mucho más flexible, pues no está
restringido a trabajar con valores previamente definidos dentro de él, sino con valores que
podrá recibir del mundo exterior[4].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 27

Para nuestro trabajo haremos uso del programa DFD 1.0, en este programa algunas figuras
para la interacción son algo diferentes al formato normal.

Figura N° 9: Figura para ingreso y salda de datos, en DFD solo se puede ingresar datos.

Para los diagramas de flujo normales se puede usar la primera figura (con relleno), pero en
el programa la figura que representa el ingreso de datos es la que tiene en su interior la
variable A, el valor ingresado acabará almacenado en dicha variable.

Figura N° 10: Figura para salida de datos, en DFD se muestra en pantalla.

Para mostrar el contenido de una variable como el caso de A o para mostrar mensajes,
como se muestra en la figura los mensajes deben estar acotados por apostrofes.

B. INSTRUCIONES SECUENCIALES DE ASIGNACIÓN


Las instrucciones secuenciales sirven para asignarle valores a las variables, o en su defecto
para agregarle valores a una variable fruto de una operación matemática, que se verán
posteriormente.

Figura N° 11: Instrucción de asignación

El rectángulo representa la ejecución de operaciones, así como también se puede usar para
la asignación de valores a las variables.

C. INSTRUCCIONES SECUENCIALES DE OPERACIONES


MATEMÁTICAS
Para las operaciones matemáticas se usa la misma figura rectangular, siempre la operación
se hace de derecha a izquierda, es decir al terminar la operación el resultado se asigna al
valor a la izquierda[4].

Figura N° 12: Figura para operaciones matemáticas

Se realiza una sola operación que llevará a un solo resultado almacenado en una sola
variable.

3. RESUMEN
Las instrucciones secuenciales son las instrucciones más simples de formular, se refieren

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 28

a una sola acción independiente e individual, se ejecutan incondicionalmente y no se repiten


a menos que expresamente se duplique la instrucción.
Son de varios subtipos como ingreso y salida de datos, de asignación y de operaciones
matemáticas.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el Programa DFD.
4. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar los lados de
un cuadrado y mostrar en pantalla su área.
5. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar los lados de
un cuadrado y mostrar en pantalla su perímetro.
6. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar las bases de
un trapecio y luego mostrar en pantalla su área.
7. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar un texto y luego
mostrarlo por pantalla.

V
EJERCICIOS

1. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar los datos de
un círculo y mostrar en pantalla su área.
2. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar los datos de
un círculo y mostrar en pantalla su perímetro.

VI
CUESTIONARIO

1. ¿Qué es una instrucción secuencial en un diagrama de flujo?


2. ¿Cuáles son los tipos de instrucciones secuenciales?
3. ¿Cómo se diseña una instrucción secuencial?
4. ¿Cuándo se usa una instrucción secuencial?
5. ¿Cómo ingresan valores a un algoritmo?
6. ¿Dónde quedan almacenados los valores ingresados al algoritmo?
7. ¿Cómo se muestran mensajes del algoritmo en la pantalla?
8. ¿Cómo se asignan datos a una variable en un diagrama de flujo?
9. ¿Cómo se muestra el valor de una variable por pantalla en un diagrama d flujo?
10. ¿Cómo se especifica una operación matemática en un diagrama de flujo?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 29

[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y


programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 30

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 06:

Instrucciones de Control en los Diagramas de Flujo

I
OBJETIVOS

 Introducir al alumno en la creación y especificación de condicionales simples, dobles y


múltiples.
 Aplicar la evaluación condicional.
 Diferenciar los condicionales simples, dobles, múltiples y los anidamientos.
 Diseñar instrucciones condicionales simples, dobles y anidadas.

II
TEMAS A TRATAR

 Introducción.
 Control de flujo simple
 Control de flujo doble
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
Un diagrama de flujo posee una secuencia de ejecución específica, algunas veces es
necesario especificar rutas alternativas de ejecución, las cuales se encuentran delineadas
de forma paralela y exclusiva, para tomar una decisión sobre que ruta seguir en el diagrama
para su ejecución es necesario implantar en su secuencia una instrucción con la capacidad
de evaluar condiciones, este tipo de instrucciones son las instrucciones de control de flujo,
estás instrucciones de control son de tipo, simple, doble y múltiple[1].
Las instrucciones condicionales simples únicamente permiten la realización de una acción
o proceso si la expresión evaluada es verdadera, cuando esta es falsa simplemente no se
hace nada más y se sigue con la siguiente instrucción la cual es independiente de la
condicional; pero a veces es necesario o es posible aprovechar dicha evaluación y ejecutar
alguna instrucción o proceso subordinada a la condicional cuando la evaluación de la
expresión es falsa, en esos casos estamos hablando de condicionales dobles, los cuales
son muy útiles para controlar el flujo de ejecución en una secuencia de instrucciones.
Adicionalmente es posible tener condicionales múltiples, este tipo de condicionales
funcionan de manera algo distinta evaluando el valor de un elemento y siguiendo una ruta
exclusiva y a parte de las demás en función del valor que esta tenga[2].

2. CONTROL DE FLUJO SIMPLE


Una instrucción condicional simple evalúa una expresión que únicamente puede tener dos
resultados. VERDADERO (TRUE) o FALSO (FALSE). La expresión a evaluar está en
función muchas veces de comparaciones lógicas como “>” ó “<”, para este tipo de
expresiones también se utilizan también conectores lógicos como AND (Y) y OR (O), para
evaluar dichas expresiones se siguen las reglas del algebra de Boole, siempre los únicos
dos resultados posibles serian verdadero o falso. Una instrucción de control de flujo simple
únicamente tiene una acción o proceso asociado que llevara a cabo en caso de que el
resultado de la expresión sea VERDADERO, en caso de que dicha expresión sea FALSO

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 31

no lleva a cabo ninguna acción y ejecuta la siguiente instrucción especificada[3].

Figura N° 13: Instrucción condicional en Diagrama de flujo

Para agregar una condicional al diagrama haga clic sobre el icono.

Figura N° 14: Insertar instrucción condicional

Luego haga clic sobre el punto del diagrama donde se quiere insertar dicha figura.

Figura N° 15: Instrucción condicional insertada

Luego haga doble clic sobre la condicional e ingrese la expresión lógica a evaluar.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 32

Figura N° 16: Ingreso de expresión condicional

Luego agregue una figura de asignación o del tipo que necesite y especifique la actividad
que debe ser realizada.

Figura N° 17: Instrucción condicional insertada con expresión condicional

3. CONTROL DE FLUJO DOBLE


Una instrucción de control de flujo doble tiene dos acciones o procesos asociados que
llevara a cabo en caso de que el resultado de la expresión, si este es VERDADERO lleva a
cabo el proceso asociado a este resultado y no el otro, en caso de que sea FALSO, se
realiza el proceso asociado a esta alternativa. Es decir el flujo sigue un solo camino[4].

INICIO

NO
CONDICION

SI

BLOQUE BLOQUE

FIN

Figura N° 18: Instrucción condicional doble

Para agregar una condicional al diagrama haga clic sobre el icono.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 33

Figura N° 19: Seleccionar instrucción condicional

Luego haga clic sobre el punto del diagrama donde se quiere insertar dicha figura.

Figura N° 20: Insertar instrucción condicional

Luego haga doble click sobre la condicional e ingrese la expresión lógica a evaluar.

Figura N° 21: Insertar expresión condicional

Luego agregue una figura de asignación o del tipo que necesite y especifique la actividad
que debe ser realizada, esto se hace en cada rama de la condicional.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 34

Figura N° 22: Instrucción condicional doble, con dos caminos a seguir

Los condicionales múltiples no se pueden implementar de forma directa para conseguirlo


debemos anidar los condicionales simples y dobles.

4. RESUMEN
Para construir una instrucción de control se debe tener en cuenta que se está estableciendo
un punto de control y que el algoritmo se bifurcará en ese punto, luego debemos establecer
la expresión condicional que ejerce el control, es decir la condición que se debe cumplir
para que la rama de verdadero se ejecute, o en su defecto la rama de falso, establecer esta
expresión es quizá el aspecto más complicado, solo debemos enfocarnos en la materia del
control, en base a comparaciones entre los parámetros de control y las variables
involucradas.
Existen dos tipos básicos de instrucciones, las simples que tienen una sola salida cuando
es verdadero, es decir de ser falso no se hace nada, y las dobles que son de doble salida,
se hace algo al ser la condición verdadera y otra cosa diferente al ser falsa.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el Programa DFD:
4. Diseñe un diagrama que nos permita saber cuál es el mayor entre dos números enteros
ingresados por teclado.
5. Elaborar un programa que nos permita averiguar si un número entero ingresado es positivo.
6. Elaborar un diagrama que nos permita saber si un número ingresado por teclado es par.
7. Elaborar un diagrama de flujo que nos permita saber si una letra es una vocal.
8. Elaborar un programa que nos permita saber si un carácter ingresado es una letra.
9. Ejecute el programa DFD y diseñe un diagrama que nos permita saber cuál es el mayor y
el menor entre dos números enteros ingresados por teclado.
10. Elaborar un programa que nos permita averiguar si un número entero ingresado en positivo
o negativo.

V
EJERCICIOS

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 35

1. Modifique el diagrama del punto 4 para que se muestre por pantalla si es mayor, es menor
o son iguales usando condicionales sucesivos.
2. Modifique el diagrama anterior para que el mismo que se muestre al mayor y al menor entre
tres números utilizando una variable adicional y estructurando una sucesión de
condicionales.
3. Modifique el diagrama anterior para que se muestre si los 3 números ingresados son
iguales.
4. Modifique el diagrama del punto 5 para saber si el valor ingresado es positivo, negativo o
cero utilizando condicionales sucesivos.
5. Elaborar un diagrama de flujo que nos permita hacer la conversión entre grados centígrados
a grados Fahrenheit y viceversa.
6. Modifique el diagrama del punto 9 para que se muestre por pantalla si es mayor, es menor
o son iguales, anidando condicionales dobles.
7. Modifique el diagrama anterior para que el mismo que se muestre al mayor y al menor entre
tres números, anidando condicionales dobles.
8. Modifique el diagrama anterior para que se muestre si los 3 números ingresados son
iguales.
9. Modifique el diagrama del punto 10 para saber si el valor ingresado es positivo, negativo o
cero.
10. Elaborar un diagrama de flujo que nos permita hacer la conversión entre grados centígrados
a grados Fahrenheit y viceversa.

VI
CUESTIONARIO

1. ¿Qué es un diagrama de flujo?


2. ¿Qué es una estructura de control?
3. ¿Cómo se diferencian una condicional simple de una condicional doble?
4. ¿Cuándo se debe usar una condicional simple y cuándo una doble?
5. ¿Qué es una estructura condicional múltiple?
6. ¿Cómo se anidan instrucciones condicionales?
7. ¿Cuándo se deben anidar las estructuras condicionales?
8. ¿Qué es el álgebra de Boole?
9. ¿Qué es una expresión lógica?
10. ¿Cómo actúa el conector lógico AND?
11. ¿Cómo actúa el conector lógico OR?
12. ¿Qué sucede si el resultado de la expresión lógica es falso?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 36

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 07:

Instrucciones Iterativas en Diagramas de Flujo I

I
OBJETIVOS

 Introducir al alumno en el diseño, creación y especificación instrucciones iterativas tipo for.


 Aplicar los bucles for de forma iterativa y repetitiva.
 Diferenciar a la instrucción for de los demás tipos de bucles.
 Diseñar bucles for.

II
TEMAS A TRATAR

 Introducción.
 Bucle for
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
Un bucle o ciclo, en programación, es una sentencia que se realiza repetidas veces a un
trozo aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse.
Generalmente, un bucle es utilizado para hacer una acción repetida sin tener que escribir
varias veces el mismo código, lo que ahorra tiempo, deja el código más claro y facilita su
modificación en el futuro. El bucle y los condicionales representan la base de la
programación estructurada. Es una evolución del código ensamblador, donde la única
posibilidad de iterar un código era establecer una sentencia jump (que en los lenguajes de
programación fue sustituida por el "ir a" o GOTO) [5].
La instrucción iterativa for es una instrucción diseñada con la perspectiva que el
programador establezca una progresión de ejecución desde un valor inicial hasta un valor
final, se considera que se sabe a priori cuantas veces se va a ejecutar pero nada impide
hacer de un bucle una ejecución repetitiva indeterminada de veces[2].

2. BUCLE FOR
En muchas ocasiones se conoce de antemano el número de veces que se desean ejecutar
las acciones de un bucle. En estos casos en el que el número de iteraciones es fijo, se debe
usar la estructura desde o para (for en inglés).[6]
La estructura FOR ejecuta las acciones del cuerpo del bucle un número especificado de
veces y de modo automático controla el número de iteraciones o pasos a través del cuerpo
del bucle[3]. [6]
La representación del FOR en los diagramas de flujo se hace con los iconos IF: [6]

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 37

INICIO A=0

NO NO
CONDICIÓN A<=10

SI SI

PROCESO 1 PROCESO 1

PROCESO N PROCESO N

INCREMENTO A=A+1

Figura N° 23: Instrucción iterativa

Dónde:
INICIO: Representa a la inicialización de la variable de control con el valor donde se
inicializa el ciclo.
CONDICIÓN: Representa a la expresión lógica que controla la ejecución del siguiente ciclo.
INCREMENTO: Representa a la expresión matemática que modifica al valor de la variable
de control para que en algún momento la expresión lógica de la condición sea falsa[4].
Al usar la aplicación DFD se tiene un icono especial, después de agregar la figura se debe
especificar la variable, el inicio, la finalización y el incremento.

Figura N° 24: Instrucción iterativa for

Luego se agregan todos los procesos a realizar subordinados al ciclo for, estos están antes
de la figura de cierre. Este bloque de procesos es de una naturaleza amplia y repetirán su
accionar mientras la condición sea verdadera.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 38

Figura N° 25: Instrucción iterativa for implementada

3. RESUMEN
Las instrucciones iterativas poseen un mecanismo de repetición controlado de instrucciones
subordinadas a éstas, es decir que debemos aplicar la repetición a un conjunto diferente de
instrucciones o a una instrucción individual, el número de veces en que la instrucción debe
repetirse depende de las condiciones establecidas en la expresión condicional de la
instrucción, esto quiere decir que el número de veces se debe pensar en función de una
progresión de ejecuciones sucesivas de la misma instrucción o el mismo bloque,
generalmente se ha establecido un límite de ejecuciones y para llegar a ese límite debe
existir un mecanismo interno que nos lleve al término de éste. Las instrucciones
condicionales son de diferentes tipos, la instrucción for es un tipo de instrucción con un
mecanismo de repetición fija cuando ha sido establecido, tiene un mecanismo de progresión
incorporado, pero aun así se puede utilizar para un número de repeticiones no conocidas a
priori.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el Programa DFD:
4. Diseñe un diagrama que nos permita ingresar 10 números enteros y luego mostrar su
sumatoria utilizando un bucle for.
5. Elaborar un diagrama de flujo que muestre los números impares entre 0 y 10 utilizando un
bucle for.
6. Elaborar un diagrama de flujo que nos permita hallar el promedio de los 10 primeros
números pares utilizando un bucle for.
7. Elaborar un diagrama de flujo que nos permita hallar el factorial de un número ingresado
por teclado utilizando un bucle for.
8. Ejecute el programa DFD y diseñe un diagrama que nos permita ingresar números enteros
mientras estos sean menores a 100 y luego mostrar su sumatoria utilizando un bucle for.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 39

9. Elaborar un diagrama de flujo que muestre los números impares entre 15 y 35 .


10. Modifique el diagrama anterior para que se muestren únicamente los múltiplos de 3
utilizando un bucle for.
11. Elaborar un diagrama de flujo que nos permita ingresar notas de alumnos y mostrar sus
promedios por pantalla, el número de notas y de alumnos es determinada en la ejecución
del programa utilizando un bucle for.
12. Elaborar un diagrama de flujo que nos permita hallar el promedio de los 10 primeros
números pares utilizando un bucle for.

V
EJERCICIOS

1. Modifique el diagrama del punto 3 para que se pueda definir por teclado la cantidad de
números a ingresar utilizando un bucle for.
2. Modifique el diagrama del punto 4 para que se muestren los números impares entre un
límite inferior y un límite superior definidos por teclado utilizando un bucle for.
3. Crear un diagrama de flujo para que nos muestre la serie Fibonacci hasta un número
ingresado por teclado utilizando un bucle for.
4. Elaborar un diagrama de flujo que nos permita invertir un número entero de 6 cifras
utilizando un bucle for.

VI
CUESTIONARIO

1. ¿Qué es un bucle?
2. ¿Cómo controlamos la ejecución de un bucle?
3. ¿Qué es un bucle for?
4. ¿Qué tipo de expresión controla el bucle for?
5. ¿Cómo se establece la inicialización de un bucle for?
6. ¿Cómo se establece la finalización del bucle for?
7. ¿Cómo finaliza abruptamente un bucle for?
8. ¿Qué es una variable contador?
9. ¿Qué es una variable acumulador?
10. ¿Qué es un bucle infinito?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995.
[5] http://buclesrepeat.blogspot.pe/
[6] http://es.slideshare.net/alvarezsan/algoritmos-tecnico-en-desarrollo-de-software

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 40

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 08:

Instrucciones Iterativas en Diagramas de Flujo II

I
OBJETIVOS

 Introducir al alumno en la creación y especificación instrucciones de bucle while.


 Aplicar los bucles while de forma iterativa y repetitiva.
 Diferenciar las instrucciones while de los demás tipos de bucles sus ventajas y
desventajas.
 Diseñar bucles while.

II
TEMAS A TRATAR

 Introducción.
 Bucle while.
 Resumen.

III
MARCO TEORICO

1. INTRODUCCIÓN
Un bucle o ciclo, en programación, es una sentencia que se realiza repetidas veces a un
trozo aislado de código o bloque subordinado, hasta que la condición asignada a dicho
bucle deje de cumplirse. Generalmente, un bucle es utilizado para hacer una acción repetida
sin tener que escribir varias veces el mismo código, lo que ahorra tiempo, deja el código
más claro y facilita su modificación en el futuro[1]. El bucle y los condicionales representan
la base de la programación estructurada. Es una evolución del código ensamblador, donde
la única posibilidad de iterar un código era establecer una sentencia jump (que en los
lenguajes de programación fue sustituida por el "ir a" o GOTO) [2].
Las instrucciones tipo while ejecutan una o un bloque de instrucciones “mientras”la
expresión condicional asociada sea verdadera, al convertirse en falsa se finaliza la
ejecución y se abandona la instrucción y se continua con la siguiente, este tipo de
instrucción tiene una estructura de funcionamiento para hacer un número de repeticiones
no necesariamente determinado[3].

2. BUCLE WHILE
La estructura repetitiva hacer mientras (en inglés DO WHILE) es aquella en que el cuerpo
del bucle se repite mientras se cumple una determinada condición. Al dejar cumplirse la
expresión lógica utilizada se deja de ejecutar el ciclo; pero en este caso la evaluación de la
expresión se hace al final del bucle.
Las estructuras iterativas de este tipo se ejecutan 1 o más veces, la naturaleza de este
comportamiento está sustentado en la necesidad de ejecutar incondicionalmente un bloque
de instrucciones por lo menos una vez, de esta forma si la expresión llega a ser falsa en la
primera ejecución ya se ejecuta una segunda vez[4].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 41

INICIO A=0

PROCESO1 PROCESO1

PROCESON-1 PROCESON-1

MECANISMO DE A=A+1
TERMINACIÓN

SI SI
CONDICIÓN A < 10

NO NO

Figura N° 26: instrucción iterativa while

Dónde:
INICIO: Representa a la inicialización que permitirá que la expresión lógica evaluada sea
verdadera dependiendo del contexto de la solución del problema.
CONDICIÓN: Representa a la expresión lógica que controla la ejecución del siguiente ciclo.
MECANISMO DE TERMINACIÓN: Representa a la expresión matemática o instrucción que
modifica al resultado de la expresión lógica para que esta sea falsa y así abandone el ciclo.
Al usar la aplicación DFD se tiene un icono especial, después de agregar la figura se debe
especificar la expresión lógica que controla el ciclo, el inicio debe ser especificado por el
diseñador de acuerdo al contexto del problema, la finalización está en función de cuando la
expresión se haga falsa y el mecanismo de terminación son las instrucciones que harán que
el bucle finalice en determinado momento[4].

Figura N° 27: Instrucción iterativa while implementada

Luego se agregan todos los procesos a realizar subordinados al ciclo while, estos están
antes de la figura de cierre. Este bloque de procesos es de una naturaleza amplia y
repetirán su accionar mientras la condición especificada sea verdadera.

3. RESUMEN
Las instrucciones iterativas poseen un mecanismo de repetición controlado de instrucciones

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 42

subordinadas a éstas, es decir que debemos aplicar la repetición a un conjunto diferente de


instrucciones o a una instrucción individual, el número de veces en que la instrucción debe
repetirse depende de las condiciones establecidas en la expresión condicional de la
instrucción, esto quiere decir que el número de veces se debe pensar en función de una
progresión de ejecuciones sucesivas de la misma instrucción o el mismo bloque,
generalmente se ha establecido un límite de ejecuciones y para llegar a ese límite debe
existir un mecanismo interno que nos lleve al término de éste. Las instrucciones
condicionales son de diferentes tipos, la instrucción while es un tipo de instrucción con un
mecanismo de repetición variable diseñado por el programador, cuando ha sido establecido,
tiene un mecanismo de progresión incorporado que permite la finalización.
La instrucción while y do..while por el contrario son mecanismos de repetición variable
pues su ejecución está diseñada mientras la expresión condicional sea verdadera.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el Programa DFD:
4. Diseñe un diagrama que nos permita ingresar 10 números enteros y luego mostrar su
sumatoria usando la instrucción while.
5. Elaborar un diagrama de flujo que muestre los números impares entre 0 y 10 usando la
instrucción while.
6. Elaborar un diagrama de flujo que nos permita hallar el promedio de los 10 primeros
números pares usando la instrucción while.
7. Elaborar un diagrama de flujo que nos permita hallar el factorial de un número ingresado
por teclado usando la instrucción while.
8. Ejecute el programa DFD y diseñe un diagrama que nos permita ingresar números enteros
mientras estos sean menores a 100 y luego mostrar su sumatoria usando la instrucción
while.
9. Elaborar un diagrama de flujo que muestre los números impares entre 15 y 35 usando la
instrucción while.
10. Modifique el diagrama anterior para que se muestren únicamente los múltiplos de 3 usando
la instrucción while.
11. Elaborar un diagrama de flujo que nos permita ingresar notas de alumnos y mostrar sus
promedios por pantalla, el número de notas y de alumnos es determinada en la ejecución
del programa usando la instrucción while.
12. Elaborar un diagrama de flujo que nos permita hallar el promedio de los 10 primeros
números pares usando la instrucción while.

V
EJERCICIOS

1. Modifique el diagrama del punto 3 para que se pueda definir por teclado la cantidad de
números a ingresar usando la instrucción while.
2. Modifique el diagrama del punto 4 para que se muestren los números impares entre un
límite inferior y un límite superior definidos por teclado usando la instrucción while.
3. Crear un diagrama de flujo para que nos muestre la serie Fibonacci hasta un número
ingresado por teclado usando la instrucción while.
4. Elaborar un diagrama de flujo que nos permita invertir un número entero de 6 cifras usando
la instrucción while.
5. Elabore los programas usando for, while y do while.

VI
CUESTIONARIO

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 43

1. ¿Qué es un bucle?
2. ¿Qué tipo de expresión controla el bucle?
3. ¿Cómo controlamos la ejecución de un bucle?
4. ¿Qué es un bucle while?
5. ¿Cuántas veces se puede ejecutar un bucle while?
6. ¿Cómo controlamos la ejecución de un bucle while?
7. ¿Qué formas de terminar un bucle while existen?
8. ¿Cómo se establece la inicialización de un bucle while?
9. ¿Cómo finaliza abruptamente un bucle while?
10. ¿Qué es un bucle infinito?
11. ¿Qué diferencias existen entre un bloque do while, while y un bucle for?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 44

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 09:

Anidamiento de Instrucciones en Diagramas de Flujo I

I
OBJETIVOS

 Introducir al alumno en la creación y especificación de instrucciones de control anidadas.


 Aplicar los anidamientos de instrucciones de control para solucionar problemas de control
de flujo de instrucciones.
 Diseñar bloques anidados eficientes y eficaces.

II
TEMAS A TRATAR

 Introducción.
 Anidamientos de instrucciones de control simple.
 Anidamientos de instrucciones de control doble
 Resumen.

III
MARCO TEORICO

1. INTRODUCCIÓN
En las anteriores ocasiones se han utilizado instrucciones de control simples y dobles para
alterar el flujo de ejecución de instrucciones en un diagrama de flujo, especialmente en una
decisión, ahora lo que vamos a hacer es colocar instrucciones de control anidadas, es decir
unas dentro de otras para poder agregar más expresiones condicionales que restringen la
ejecución de una instrucción particular, a este proceso de diseño de diagramas de flujo se
le llama anidamiento de instrucciones y nos sirve para poder establecer un control de flujo
más complejo y estricto, en algunos casos es posible establecer el flujo de esta forma para
poder simplificar las expresiones de control que se diseñan con conectores lógicos tipo
&(and), poder hacer este tipo de anidamientos nos permite una simplificación muy
estructurada de las condiciones[1].
Las instrucciones de control sean simples, dobles o múltiples se pueden anidar entre si y
con otros tipos de instrucción, no existe límite para este tipo de especificaciones[2].

2. ANIDAMIENTOS DE INSTRUCCIONES DE CONTROL SIMPLE


Una instrucción de control simple se puede anidar de forma reiterada una y otra vez sin
ninguna restricción, lo que implica que para que la condición interna de la instrucción de
control más interna sea verdadera deben ser verdaderas todas las condiciones de todas las
instrucciones de control previas, si esto no sucede no se puede llegar a ejecutar dicha
instrucción. Al establecer anidamientos en instrucciones de control estaos haciendo que un
conjunto de condiciones sean evaluadas previamente a la ejecución de una instrucción
determinada, no existe un límite sobre el número de instrucciones de control que pudieran
ser anidadas de forma sucesiva[3].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 45

Figura N° 1: Anidamiento de instrucciones simples

En el ejemplo anterior sólo se anidan 2 instrucciones de control, ahora haremos el mismo


proceso con más instrucciones para demostrar su funcionamiento.

Figura N° 2: Anidamiento de instrucciones de control simples sucesivamente

Nada impide que dentro de una instrucción de control simple no existan otras instrucciones
adicionales junto con una o varias otras instrucciones de control.

Figura N° 3: Anidamiento de instrucciones de control y otras

El proceso de diseño nos indica siempre una solución a un problema planteado, no existen
soluciones únicas pero si soluciones ideales, se pueden hacer uso de expresiones
condicionales con el uso de conectores lógicos, en el caso del conector lógico and se puede
hacer que una estructura anidada de instrucciones de control lo represente[4].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 46

Figura N° 4: Comparación entre anidamiento y conector lógico

3. ANIDAMIENTO DE INSTRUCCIONES DE CONTROL DOBLES


Una variante de la instrucción de control simple es la instrucción de control doble, la cual
posee dos salidas una para cuando la expresión lógica al ser evaluada resulta verdadera y
otra cuando resulta falsa, la diferencia es grande con el tipo anterior, las instrucciones en
este caso se pueden anidar por el camino del verdadero o del falso.

Figura N° 5: Anidamientos con instrucciones de control dobles

La utilización de instrucciones de control dobles no implica que se tenga que colocar


anidamientos en ambas salidas, puede ser que se tome una sola salida y la otra salida
quede vacía.

Figura N° 6: Instrucciones dobles con salidas vacías

Al igual que en el caso anterior es posible también agregar otro tipo de instrucciones al
anidamiento, sin que tengan que ser estas instrucciones de control.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 47

Figura N° 7: Anidamientos de instrucciones de control dobles con otras instrucciones

Los anidamientos en instrucciones de control dobles se pueden hacer sucesivamente en


varios niveles.

Figura N° 8: Anidamientos de instrucciones de control doble sucesivas.

Se aprecia claramente que las salidas de cada decisión están dadas en función si la
evaluación de la expresión condicional fue verdadera o falsa, es decir que no siempre s.e
va a llegar a la parte más interna de la estructura de esta forma nosotros tenemos las salidas
estructuradas en función de los valores de las variables empleadas, claramente se puede
apreciar que existe una salida que deja de lado la otra rama de la condicional.
Tal como sucedía con las instrucciones condicionales simples las dobles también pueden
contener instrucciones condicionales simples y viceversa. Las salidas se aprecian
claramente en el gráfico, es necesario ver que la secuencia de ejecución debe estar clara
en la mente del programador, la más mínima mala interpretación nos dará una idea muy
herrada de cómo debe d ejecutarse el algoritmo en todos los casos y con todos los posibles
conjuntos de valores que las variables podrán asumir para la ejecución del programa.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 48

Figura N° 9: combinación de condicionales dobles y simples.

4. RESUMEN
Las instrucciones de control ya sean simples, dobles o múltiples pueden ser anidadas y en
el proceso se puede establecer condiciones o expresiones condicionales más complejas y
estrictas, no debemos olvidar que dichas expresiones se establecen para condicionar que
sea ejecutado una secuencia de instrucciones de diversa índole incluyendo instrucciones
de control, el aplicar anidamientos nos permite mayor control y diversidad de opciones en
la ejecución de instrucciones, las opciones de ejecución serán más específicas y los
resultados de la ejecución de un programa serán más claros. Las instrucciones dobles
pueden tener las dos salidas con condicionales anidados o tal vez solo una, siendo en este
caso siempre la salida del verdadero, además de anidar instrucciones de control podemos
anidar instrucciones de otro tipo y a la vez más de una instrucción, todo depende del diseño
del algoritmo que estemos haciendo.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el Programa DFD:
4. Crear una carpeta que se llame Metodología de la Programación y dentro de ella una que
se llame Práctica Nº 09 dentro de la carpeta Mis Documentos.
5. Ejecutar el Programa DFD:
6. Nombrar los archivos como se indica en el archivo Actividades N° 09 que se adjunta y
asegurarse de almacenarlos en la carpeta Práctica Nº 09 al momento de crearlos.
7. Realizar las acciones indicadas en el archivo adjunto.
8. Al finalizar la práctica de be guardar todos sus archivos, ya sea en su memoria USB o por
correo electrónico y luego eliminar los archivos del equipo y vaciar la papelera de reciclaje.

V
EJERCICIOS

1. Diseñar un diagrama de flujo que nos permita ingresar números enteros en 7 variables y a
continuación con instrucciones de control dobles anidadas mostrar al número mayor
ingresado por pantalla.
2. Modifique el diagrama anterior para que se muestre por pantalla al mayor y al menor de los
números ingresados.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 49

VI
CUESTIONARIO

1. ¿Qué es anidamiento?
2. ¿Cuándo se anidan instrucciones?
3. ¿Las instrucciones secuenciales se pueden anidar?
4. ¿Cómo se anidan las instrucciones condicionales simples?
5. ¿Cuántos niveles de anidamiento se pueden hacer con instrucciones condicionales
simples?
6. ¿Qué tipo de instrucciones se pueden anidar dentro de una condicional simple?
7. ¿Cuántas instrucciones se pueden colocar en un mismo nivel de anidamiento con
condicionales simples?
8. ¿Cómo se anidan las instrucciones condicionales dobles?
9. ¿Cuántos niveles de anidamiento se pueden hacer con instrucciones condicionales dobles?
10. ¿Qué tipo de instrucciones se pueden anidar dentro de una condicional doble?
11. ¿Cuántas instrucciones se pueden colocar en un mismo nivel de anidamiento con
condicionales dobles?
12. ¿Cuándo se deja una salida vacía en anidamientos con condicionales dobles?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 50

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 10:

Anidamiento de Instrucciones en Diagramas de Flujo II

I
OBJETIVOS

 Introducir al alumno en la creación y especificación de instrucciones iterativas anidadas.


 Aplicar los anidamientos de instrucciones iterativas para solucionar problemas de control de
flujo de instrucciones.
 Diseñar bloques anidados eficientes y eficaces.

II
TEMAS A TRATAR

 Introducción.
 Anidamientos de instrucciones iterativas.
 Anidamientos de instrucciones de control en instrucciones iterativas.
 Resumen.

III
MARCO TEORICO

1. INTRODUCCIÓN
El anidamiento de instrucciones no se remite tan solo a instrucciones de control, también
es posible anidar instrucciones iterativas entre sí, o con otras instrucciones que crean o
generan bloques de instrucciones dependientes, esto quiere decir que no hay anidamiento
en instrucciones secuenciales, ya que por su simplicidad de ser una sola línea esto no es
posible; sin embargo esto nos conduce a tener instrucciones iterativas o de bucle anidadas,
por la necesidad de hacer que un proceso se realice n*n veces, o por el contrario también
es posible anidar instrucciones de control dentro de instrucciones iterativas lo que nos lleva
a que el control se ejecute n veces[1].
La necesidad de este tipo de procesos es resultado de la cantidad de operaciones que son
necesarias de llevar a cabo para la resolución de un problema, cada nivel de anidamiento
lleva a la ejecución del proceso por n veces, en el caso de las instrucciones iterativas, por
cada nivel de anidamiento estaremos agregando otras n veces de ejecución que en la
cuenta final se multiplican a los anteriores niveles, debemos basar el numero de niveles en
la cantidad de veces que se necesite el proceso teniendo en cuenta los incios y finales de
cada bucle anidado[2].

2. ANIDAMIENTOS DE INSTRUCCIONES ITERATIVAS


Se puede colocar un bucle dentro de otro bucle cuando las instrucciones son del mismo tipo
de instrucción iterativa o cuando son de tipos diferentes, no hay restricciones en los
anidamientos para el número de veces en que estas pueden ser incluidas dentro de otras o
para los tipos de instrucción que puedan ser anidadas.
Se muestra un ejemplo con la anidación de instrucciones para(for):

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 51

Figura N° 10: Anidamiento de instrucciones iterativas for

En el ejemplo anterior se muestra dos instrucciones para(for) anidadas que mostrarán por
pantalla las tablas de multiplicar; la instrucción para(for) por defecto obliga a especificar el
inicio del proceso, que en estos caso está supeditado al valor inicial asignados a las
variables x y z, la progresión y su forma de crecimiento, que aquí se da en crecimiento de
1 en 1 y la condición para la finalización determinada por el valor final de 9 y 10 en cada
caso[3].
El mismo ejemplo anterior lo mostraremos con el doble anidamiento de las instrucciones
mientras(while):

Figura N° 11: Anidamiento de instrucciones iterativas while

En las instrucciones mientras(while) el esquema cambia, no es exigencia iniciar el proceso


por lo cual el programador debe recordar especificar el inicio, la condición de finalización se
usa como en el para(for), y dentro del bloque de la instrucción se coloca un mecanismo que
haga progresar la ejecución hacia la finalización de la instrucción. Si se olvida colocar
cualquiera de estos tres elementos la instrucción no funcionará correctamente[4].
El ejemplo anterior lo repetiremos usando para(for) y mientras(while) anidados:

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 52

Figura N° 12: Anidamiento de instrucciones for y while

El proceso anterior se puede hacer de forma inversa colocando la instrucción para(for) l


interior de la instrucción mientras(while), el resultado es muy similar por no decir el mismo,
se debe cuidar siempre la forma como se inicia y evoluciona la instrucción mientras(while).

Figura N° 13: Comparación entre anidamiento y conector lógico

3. ANIDAMIENTO DE INSTRUCCIONES DE CONTROL EN


ITERATIVAS
Una forma muy operativa de obtener bloques de código muy funcionales es anidar en
instrucciones iterativas instrucciones de control simples y dobles, debemos de tener en
cuenta que es muy posible que podamos alterar el curso de la progresión con la instrucción
condicional y hacer que se ejecute un número mayor de vueltas que el que inicialmente se
programa, así como también podemos hacer que el bucle se terminado bajo el cumplimiento
de alguna condición.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 53

Figura N° 14: Anidamientos con instrucciones iterativas y de control dobles

La utilización de instrucciones de control se utiliza para alterar el valor de la variable y hacer


que todo vuelva al valor inicial, de esta forma alteramos el funcionamiento del bucle con la
instrucción de control anidada[4].
El proceso contrario que haga que la instrucción se termine sería el siguiente código:

Figura N° 15: Instrucciones dobles con salidas vacías

Al igual que en el caso anterior la instrucción de control altera el flujo de la instrucción


iterativa haciendo que se termine el bucle[3].

4. RESUMEN
Las instrucciones iterativas se pueden anidar por varios niveles, las instrucciones para(for)
tiene una estructura que les permite controlar las partes que la componen, por lo que solo

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 54

se tiene que completar, en cambio las instrucciones mientras(while) carecen de esta


estructuración por lo que debemos tener mayor cuidado en su diseño; el agrupamiento por
varios niveles de anidamiento; es posible alterar el flujo normal del bucle haciendo uso de
instrucciones de control que reanuden o por el contrario terminen la ejecución del mismo a
pesar de que no fueran diseñadas así.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el Programa DFD:
4. Crear una carpeta que se llame Metodología de la Programación y dentro de ella una que
se llame Práctica Nº 10 dentro de la carpeta Mis Documentos.
5. Ejecutar el Programa DFD:
6. Nombrar los archivos como se indica en el archivo Actividades N° 10 que se adjunta y
asegurarse de almacenarlos en la carpeta Práctica Nº 10 al momento de crearlos.
7. Realizar las acciones indicadas en el archivo adjunto.
8. Al finalizar la práctica de be guardar todos sus archivos, ya sea en su memoria USB o por
correo electrónico y luego eliminar los archivos del equipo y vaciar la papelera de reciclaje.

V
EJERCICIOS

1. Diseñar un diagrama de flujo que nos permita ingresar números enteros en 7 variables y a
continuación con instrucciones de control dobles anidadas mostrar al número mayor
ingresado por pantalla.
2. Modifique el diagrama anterior para que se muestre por pantalla al mayor y al menor de los
números ingresados.

VI
CUESTIONARIO

1. ¿Qué es anidamiento?
2. ¿Cuándo se anidan instrucciones?
3. ¿Cuántos niveles de anidamiento se pueden hacer con instrucciones iterativas?
4. ¿Qué tipo de instrucciones se pueden anidar dentro de una instrucción iterativa?
5. ¿Cuántos niveles de anidamiento se pueden hacer con instrucciones iterativas?
6. ¿Cuántas instrucciones se pueden colocar en un mismo nivel de anidamiento de
instrucciones iterativas?
7. ¿Cómo se puede alterar el flujo de una instrucción iterativa con instrucciones condicionales?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 55

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 11:

Diseño de Instrucciones de Iterativas en Diagramas de Flujo

I
OBJETIVOS

 Introducir al alumno la modificación y gestión de bucles de diferente tipo.


 Aplicar los bucles de diferente forma y estilo.
 Diferenciar los tipos de bucles sus ventajas y desventajas.
 Diseñar bucles infinitos, controlados por banderas y contadores.

II
TEMAS A TRATAR

 Introducción.
 Variable contador
 Variable acumulador
 Variable interruptor
 Variable interruptor múltiple
 Bucle infinito
 Bucles controlados por centinela
 Bucles controlados por banderas

III
MARCO TEORICO

1. INTRODUCCIÓN
En las anteriores ocasiones se han usado los bucles bajo una forma un tanto parametrada,
es decir siempre se ha diseñado de forma evidente una inicialización, un control de
expresión, un proceso que haga que en algún momento la expresión condicional se haga
falsa[1].
Pero en la programación los bucles actúan bajo muchos tipos diferentes de estrategias, es
así que se diseñan de forma que sean controlados de diferentes formas especiales, esto es
necesario para satisfacer los requerimientos de operación del programa final que usará
dicha codificación, en esta práctica aprenderemos más sobre ello, es decir como diseñar
bucles y como usar variables para el control de ejecución así como otros tipos de
instrucción.

2. VARIABLE CONTADOR
Una variable contador es la que se incrementa o decrementa con cada vuelta al ciclo o
repetición del bucle, esta variable se define al principio del algoritmo, o con anterioridad al
bloque de la instrucción iterativa y posteriormente se inicializa con el valor que marcará el
inicio del bucle, este valor puede ser 0, 1 o alguno que marque el inicio o tal vez el valor
final esperado si se diseña para ir en progresión inversa, luego en cada vuelta se le
incrementa o decrementa en 1, o en el valor determinado por el programador para cumplir
con el proceso esperado, para que de esa forma llegue a un valor final. Estas variables son
muy útiles ya que siempre queremos controlar el número de veces que se repitió un ciclo y
ese valor es útil en muchas circunstancias[2].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 56

A=0

PROCESO1

A=A+1

PROCESON

SI
A<10

NO

Figura N° 28: Variable contador

3. VARIABLE ACUMULADOR
Una variable acumulador almacena una serie de adiciones o sumas sucesivas constantes
hechas dentro de un bucle, es decir en cada vuelta del ciclo la variable agrega una nueva
cantidad a las que ya tiene sumada, podríamos equiparar a este tipo de variables con el
resultado de una sumatoria de valores, de esta forma almacenamos el valor de la suma
vuelta tras vuelta y al final tenemos una sumatoria final en resultado almacenada en la
variable utilizada para este propósito, este tipo de variable es similar al contador con la única
diferencia que no es una progresión constante si no un grupo de cantidades diferentes en
cada vez[3].

A=0

PROCESO1

SU = SU + B

PROCESON

SI
A<10

NO

Figura N° 29: Variable acumulador

4. VARIABLE INTERRUPTOR
Estos tipos de variables se crean para almacenar únicamente dos valores, o en algunas
ocasiones especiales un número determinado y formateado de valores, que pueden ser 1
ó 0, cuando se trata de dos valores o en su defecto verdadero o falso, estos valores están
asociados a la realización o no de un proceso, es decir la variable toma ese valor como un
indicativo que llevo a cabo algo. Estas variables también reciben el nombre de switch o
banderas. Para los casos en los que se toman más de dos valores este tipo de variables
toma un conjunto de valores determinado y cada uno de los valores tiene un significado
muy particular y asociado a la naturaleza del programa, este tipo de significado es
proporcionado por el programador y no guarda relación con otras situaciones ajenas al
programa[4].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 57

F=0

PROCESO1

NO
F=0

SI

F=1

SI
F=0

NO

Figura N° 30: Variable switch

5. VARIABLE INTERRUPTOR MÚLTIPLE


Si la variable switch toma más de dos valores actúa como interruptor múltiple, cada uno de
sus estados está asociado a un valor específico, este significado depende de los valores
que haya establecido el programador.

F=0

PROCESO1

NO
X=0

SI

F=3 NO

SI

F=2

F=0
SI

NO

Figura N° 31: Variable switch múltiple

6. BUCLE INFINITO
Por definición un bucle debe contener condiciones que establezcan cuándo empieza y
cuándo acaba, de manera que, mientras las condiciones se cumplan, ejecute una secuencia
de código de manera repetitiva en función de como ha sido diseñada hasta completar el
ciclo de ejecución[3].
En el caso de ciclo infinito, como la condición de finalización no se alcanza, el bucle sigue
ejecutando el segmento de código indefinidamente. Es por eso que al establecer la variable
de control en la expresión lógica que controla la ejecución del bucle se debe especificar
claramente cuando llega a su fin el bucle. En el ejemplo siguiente la variable A nunca será

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 58

mayor a 10.

A=0

PROCESO1

B=A+1

PROCESON

SI
A<10

NO

Figura N° 32: Bucle infinito

7. BUCLES CONTROLADOS POR CENTINELA


Para este caso el bucle es diseñado desde el punto de vista que el ciclo se terminará al
tomar un valor específico la variable de control, dentro del bucle debe existir algún
mecanismo que haga esto posible. Generalmente esto se hace capturando un valor para la
variable o haciendo que una operación o proceso le dicho valor. En el ejemplo cuando se
ingrese un valor para A mayor o igual a 10 se acaba el bucle.

PROCESO1

INGRESAR A

PROCESON

SI
A<10

NO

Figura N° 33: Bucle controlado por centinela

8. BUCLES CONTROLADOS POR BANDERAS


Otra estrategia es hacer que el bucle se finalice al adoptar la variable de control un valor
específico como 1 o 0, a este tipo de variables se les conoce como interruptores, banderas,
flags o switchs, el valor es asignado según el cumplimiento de una condición interna dentro
del bucle o también es ingresado por teclado, este mecanismo hace que la repetición del
bucle se haga un número indeterminado de veces[4].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 59

PROCESO1

INGRESAR A

PROCESON

SI
A=0

NO

Figura N° 34: Bucle controlado por switch

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el Programa DFD:
4. Diseñar un diagrama de flujo que halle la serie fibonacci hasta un valor ingresado por
teclado usando la estrategia del centinela.
5. Diseñar un diagrama de flujo que descomponga un número entero en sus factores, el
número es ingresado por teclado y el programa termina su ejecución al ingresar 0, use la
estrategia del centinela.
6. Usando la técnica de la variable switch diseñar un diagrama de flujo que permita el ingreso
de N números enteros y halle el promedio de los pares y los impares por separado.
7. Diseñar un diagrama de flujo que muestre los primeros N números primos, utilizando un
bucle infinito.

V
EJERCICIOS

1. Elaborar un diagrama de flujo que nos permita ingresar 4 números enteros y luego mostrar
el mínimo común múltiplo, para ello use variables switch.
2. Modifique el diagrama anterior para que halle el mcm de N números enteros.
3. Crear un diagrama de flujo para que nos muestre la el máximo común divisor de tres
números haciendo uso de bucles infinitos.
4. Use la técnica del centinela para hallar el factorial de un número entero ingresado por
teclado, haga la progresión de forma inversa.

VI
CUESTIONARIO

1. ¿Qué es un bucle infinito?


2. ¿Cómo se puede controlar la ejecución de un bucle infinito?
3. ¿En qué consiste la técnica del centinela?
4. ¿Cuándo es útil usar la técnica del centinela?
5. ¿Cómo se implementa la técnica del centinela?
6. ¿Cómo se pueden utilizar contadores y acumuladores como centinelas?
7. ¿Qué es una variable switch?
8. ¿Cómo se utiliza una variable switch en un bucle?

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 60

9. ¿Cómo se controla un bucle con un contador?


10. ¿Qué diferencias existen la técnica del centinela y la variable interruptor?
11. ¿Qué diferencias existen entre un contador y un acumulador?
12. ¿Cómo se construyen bucles infinitos sin expresiones condicionales?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 61

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 12:

Revisión de Diagramas de Flujo

I
OBJETIVOS

 Hacer que el alumno tenga mayor practica en la especificación de algoritmos con diagramas
de flujo.
 Aplicar las instrucciones y los anidamientos en diagramas de flujo.
 Diseñar bucles infinitos, controlados por banderas y contadores.

II
TEMAS A TRATAR

 Introducción.
 Concepto de Diagrama de Flujo.
 Características comunes
 Ventajas de los diagramas de flujo
 Tipos de diagramas de flujo
 Simbología y significado
 Conclusiones

III
MARCO TEORICO

1. INTRODUCCIÓN
Los diagramas de flujo son una manera de representar visualmente el flujo de datos a través
de sistemas de tratamiento de información. Los diagramas de flujo describen que
operaciones y en que secuencia se requieren para solucionar un problema dado[1].
El diagrama de flujo es la representación gráfica del algoritmo o proceso. Se utiliza en
disciplinas como la programación, la economía, los procesos industriales y la psicología
cognitiva. Estos diagramas utilizan símbolos con significados bien definidos que
representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas
que conectan los puntos de inicio y de fin de proceso[1].

2. CONCEPTO DE DIAGRAMA DE FLUJO


Los diagramas de flujo (o flujogramas) son diagramas que emplean símbolos gráficos para
representar los pasos o etapas de un proceso. También permiten describir la secuencia de
los distintos pasos o etapas y su interacción.
Las personas que no están directamente involucradas en los procesos de realización del
producto o servicio, tienen imágenes idealizadas de los mismos, que pocas veces coinciden
con la realidad[2].
La creación del diagrama de flujo es una actividad que agrega valor, pues el proceso que
representa está ahora disponible para ser analizado, no sólo por quienes lo llevan a cabo,
sino también por todas las partes interesadas que aportarán nuevas ideas para cambiarlo y
mejorarlo[3].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 62

3. CARACTERÍSTICAS COMUNES
Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término.
Además, todo camino de ejecución debe permitir llegar desde el inicio hasta el término.
Las siguientes son acciones previas a la realización del diagrama de flujo:
 Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar
presentes el dueño o responsable del proceso, los dueños o responsables del proceso
anterior y posterior y de otros procesos interrelacionados, otras partes interesadas.
 Definir qué se espera obtener del diagrama de flujo.
 Identificar quién lo empleará y cómo.
 Establecer el nivel de detalle requerido.
 Determinar los límites del proceso a describir.
Los pasos a seguir para construir el diagrama de flujo son:
 Establecer el alcance del proceso a describir. De esta manera quedará fijado el
comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso
previo y el final la entrada al proceso siguiente.
 Identificar y listar las principales actividades/subprocesos que están incluidos en el
proceso a describir y su orden cronológico.
 Si el nivel de detalle definido incluye actividades menores, listarlas también.
 Identificar y listar los puntos de decisión.
 Construir el diagrama respetando la secuencia cronológica y asignando los
correspondientes símbolos.
 Asignar un título al diagrama y verificar que esté completo y describa con exactitud el
proceso elegido.

4. VENTAJAS DE LOS DIAGRAMAS DE FLUJO


Los diagramas de flujo ofrecen ventajas como las siguientes:
 Favorecen la comprensión del proceso al mostrarlo como un dibujo. El cerebro humano
reconoce muy fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias
páginas de texto.
 Permiten identificar los problemas y las oportunidades de mejora del proceso. Se
identifican los pasos, los flujos de los re-procesos, los conflictos de autoridad, las
responsabilidades, los cuellos de botella, y los puntos de decisión.
 Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan,
facilitando a los empleados el análisis de las mismas.
 Son una excelente herramienta para capacitar a los nuevos empleados y también a los
que desarrollan la tarea, cuando se realizan mejoras en el proceso.
 Al igual que el pseudocódigo, el diagrama de flujo con fines de análisis de algoritmos de
programación puede ser ejecutado en un ordenador, con un Ide como Free DFD.

5. TIPOS DE DIAGRAMAS DE FLUJO


Formato vertical: En él, el flujo o la secuencia de las operaciones, va de arriba hacia abajo.
Es una lista ordenada de las operaciones de un proceso con toda la información que se
considere necesaria, según su propósito[4].
Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de izquierda a
derecha.

6. SIMBOLOGÍA Y SIGNIFICADO
Se tiene símbolos como los siguientes:
 Óvalo o Elipse: Inicio y término (Abre y/o cierra el diagrama).
 Rectángulo: Actividad (Representa la ejecución de una o más actividades o
procedimientos).
 Rombo: Decisión (Formula una pregunta o cuestión).
 Círculo: Conector (Representa el enlace de actividades con otra dentro de un
procedimiento).
 Triángulo boca abajo: Archivo definitivo (Guarda un documento en forma permanente).

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 63

 Triángulo boca arriba: Archivo temporal (Proporciona un tiempo para el almacenamiento


del documento).

7. CONCLUSIONES
Los diagramas de flujo son una herramienta valiosa para la mejora de los procesos,
permiten detectar las actividades que agregan valor y aquéllas que son redundantes o
innecesarias[4].
También son de gran utilidad durante el desarrollo de la documentación de los Sistemas de
Gestión, pues proveen una descripción de los procesos y un detalle de las operaciones
mucho más amigable que los procedimientos e instructivos basados en texto.
Contribuyen a resolver uno de los principales problemas, que es la resistencia del personal
a emplear los documentos como referentes para el desempeño de las tareas. Una copia
ampliada del diagrama de flujo al alcance de los operadores del proceso facilita la consulta
y promueve la creatividad. Es conveniente emplear programas específicos para la
confección de los diagramas de flujo. En general, estos programas son de manejo sencillo
y facilitan notablemente la tarea.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el Programa DFD:
4. Diseñar un diagrama de flujo que halle la serie fibonacci hasta un valor ingresado por
teclado usando la estrategia del centinela.
5. Diseñar un diagrama de flujo que descomponga un número entero en sus factores, el
número es ingresado por teclado y el programa termina su ejecución al ingresar 0, use la
estrategia del centinela.
6. Usando la técnica de la variable switch diseñar un diagrama de flujo que permita el ingreso
de N números enteros y halle el promedio de los pares y los impares por separado.
7. Diseñar un diagrama de flujo que muestre los primeros N números primos, utilizando un
bucle infinito.

V
EJERCICIOS

1. Elaborar un diagrama de flujo que nos permita ingresar 4 números enteros y luego mostrar
el mínimo común múltiplo, para ello use variables switch.
2. Modifique el diagrama anterior para que halle el mcm de N números enteros.
3. Crear un diagrama de flujo para que nos muestre la el máximo común divisor de tres
números haciendo uso de bucles infinitos.
4. Use la técnica del centinela para hallar el factorial de un número entero ingresado por
teclado, haga la progresión de forma inversa.

VI
CUESTIONARIO

1. ¿Qué es un bucle infinito?


2. ¿Cómo se puede controlar la ejecución de un bucle infinito?
3. ¿En qué consiste la técnica del centinela?
4. ¿Cuándo es útil usar la técnica del centinela?
5. ¿Cómo se implementa la técnica del centinela?
6. ¿Cómo se pueden utilizar contadores y acumuladores como centinelas?

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 64

7. ¿Qué es una variable switch?


8. ¿Cómo se utiliza una variable switch en un bucle?
9. ¿Cómo se controla un bucle con un contador?
10. ¿Qué diferencias existen la técnica del centinela y la variable interruptor?
11. ¿Qué diferencias existen entre un contador y un acumulador?
12. ¿Cómo se construyen bucles infinitos sin expresiones condicionales?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 65

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 13:

Diagramas N-S - Instrucciones Secuenciales

I
OBJETIVOS

 Aprender el uso de instrucciones de condicionales de diferente tipo.


 Aplicar instrucciones de condicionales de diferentes tipos.
 Diferenciar entre los diferentes tipos de instrucciones condicionales según su necesidad.

II
TEMAS A TRATAR

 Introducción.
 Algoritmo
 Diagramas de Nassi – Schneiderman
 Estructuras secuenciales
 Estructuras condicionales

III
MARCO TEORICO

1. INTRODUCCIÓN
Elaborar programas de computadora implica desarrollar algunas técnicas que se adquieren
con el tiempo, el pseudocódigo, los diagramas de flujo y los diagramas ns son una forma
de aprender a diseñar programas de computadora de forma fácil y comprensible, en
especial los diagramas ns ayudan a estructurar el código de una forma muy fácil es una
forma simple de aprender a crear programas de computadora haciendo uso de un número
de recursos bastante fácil y simple, los diagramas ns utilizar cajones de diferente diseño
para crear sus diagramas y expresar los algoritmos que luego se convertirán en programas,
una de las principales ventajas de los diagramas ns es que cuenta con un número reducido
de figuras que permiten crear programas de forma simple y ocupando poco espacio en el
papel por el contrario de los diagramas de flujo tienden a ser engorrosos por las flechas y
por los caminos que van bifurcándose ocupando demasiado espacio sobre la superficie
donde son diseñados[1].
Los algoritmos nos han permitido elaborar esquemas resolución de problemas paso a paso
Es decir de forma secuencial con ellos en los diagramas de flujo de manera gráfica hemos
descrito una forma de enfocar la solución de un problema paso a paso. en las sesiones
anteriores hemos hecho uso, de los diagramas de flujo para esquematizar la solución con
la estructura de un programa de computadora de forma básica, los diagramas de flujo como
herramienta nos permiten estructurar nuestras ideas y ordenar las instrucciones de forma
secuenciada y esquematizado además la secuencia del flujo de la ejecución del algoritmo
dado, sin embargo para algunas personas resulta complicado y estructurar las ideas que
permitan dar solución a un problema por lo que otro tipo de estructuras qué nos permiten
idealizar algoritmos son los diagramas ns también conocidos como diagramas de Chapín.
Dichos diagramas nos permiten de una manera simple y fácil y a la vez gráfica estructurar
ordenadamente nuestras ideas a la hora de crear un programa y con ello dar solución a un
problema planteado los diagramas ns ofrecen la ventaja de no poseer flechas de orientación
sino más bien utilizar rectángulos estructurados que fluye de arriba hacia abajo lo que para
algunas personas se ve como más simple y más explícito a la hora de entender un
algoritmo[2].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 66

2. ALGORITMO
Se considera bajo el término de algoritmo a cualquier conjunto de pasos ordenados y
estructurados que ha sido elaborado bajo un conjunto de reglas que nos permiten dar
solución a un problema de forma precisa o con instrucciones precisas que no permiten ni
ambigüedad ni duda mi duda cada paso dentro del algoritmo se conoce como una
instrucción cada una de las instrucciones es escrita de forma precisa sin ambigüedad ni
imprecisión[3].
Se conoce como algoritmo a un conjunto secuencial de pasos que tienen un orden lógico
de ejecución y tienen a la vez una ejecución exacta que nos dará siempre el mismo
resultado.
Los algoritmos tienen por contenido un conjunto de especificaciones que explican la
realización de un proceso en particular los procesos pueden ser largos o pequeños pero
siempre es conveniente desfragmentar en pequeñas partes dicho proceso para hacerlo más
fácil de diseñar y más entendible al diseñador[4].
Es importante aprender a crear algoritmos porque así podemos especificar más claramente
y de forma muy programática los sucesos o las acciones que deben llevarse a cabo para
ejecutar cualquier proceso esto nos lleva a dominar completamente el proceso y a poder
cambiar y rediseñar algunas partes para mejorar y optimizar dicho proceso al diseñar un
algoritmo no debemos dejar ninguna ningún tipo de instrucción de forma ambigua ni trivial
es necesario que las instrucciones sean especificadas de forma correcta completa y sin
ambigüedades.

3. CARACTERÍSTICAS DE UN ALGORITMO
Los algoritmos para ser considerado como tal deben cumplir con algunas reglas específicas:
Precisión el algoritmo debe tener instrucciones claras Y sin ambigüedades las cuales se
deben desarrollar en un orden estricto yo vencer a un orden lógico.
Proceso definido los algoritmos desarrollan o implementan la solución algún problema
determinado los cuales deben tener un conjunto de datos de entrada instrucciones que
definan claramente cuáles son los pasos a seguir los algoritmos deben tener algunas
características especiales para ser considerado como la precisión, los algoritmos deben
desarrollarse en un orden lógico estricto que represente una secuencia natural del proceso
que está reflejando.
Bien definido los algoritmos son la esquematización de un proceso que estamos tratando
de automatizar los pasos que se han programado son los únicos que ejecutará el
computador cuando el algoritmo se transforma en un programa.
Finito los pasos incluidos dentro de un algoritmo deben ser de un número limitado y pequeño
para que el proceso que estamos tratando de representar en automatización sea
comprensible para la persona que lo programas hay para las personas que lo ejecutan.
Representación formal cualquier persona debe ser capaz de leer un algoritmo ya que es
como un lenguaje que representa cómo es que se tiene que llevar a cabo un proceso en
específico,
Corrección los algoritmos deben estar completos en todas sus líneas y en todas sus
estructuras para que así puedan representar adecuadamente el proceso que deben llevarse
a cabo de forma automatizada por una computadora,
Eficiencia los algoritmos deben representar los procesos que están tratando de automatizar
de la forma más eficiente posible ahorrando la mayor cantidad de recursos y de tiempo, en
la vida cotidiana uno puede encontrar muchas formas de algoritmos cualquier proceso
cíclico formal y repetitivo puede ser considerado un algoritmo o puede ser representado por
tal.
Los algoritmos son una forma de automatizar los procesos que diariamente realizamos y
así simplificar la vida de los humanos ahorrando tiempo y esfuerzo en cumplir tareas
repetitivas y tediosas[4].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 67

4. DIAGRAMAS NS
Los diagramas ns son una forma gráfica de representar algoritmos tienen una combinación
Por una parte de las especificaciones tal cómo se hace en el pseudocódigo y de los objetos
gráficos al estilo de un diagrama de flujo sin ser tan tedioso ni tan complejo en su confección
es ventajoso frente a los diagramas de flujo ya que no ocupa tanto espacio cuando los
algoritmos son grandes no es demasiado engorroso construirlo y es fácil de seguir el flujo
de los procesos ya que se hace de forma descendente de arriba hacia abajo son los
siguientes:
 Instrucciones secuenciales Cómo inició fin leer y escribir asignación de operaciones
Matemáticas.
 Instrucciones condicionales como la decisión simple la decisión doble y la decisión
múltiple.
 Instrucciones cíclicas como mientras, para y hasta.

A. ESTRUCTURAS SECUENCIALES
Como estructuras secuenciales en cualquier tipo de algoritmo tenemos las operaciones de
lectura de datos las operaciones para visualizar datos en pantalla las operaciones
Matemáticas, las asignaciones de valores a variables las declaraciones de variables etc.

B. DEFINICIÓN
Las instrucciones secuenciales son aquellas que siguen una secuencia ordenada de
ejecución y no son estructuradas, es decir que no existen instrucciones subordinadas: la
declaración de variables, asignación, instrucción Leer e instrucción Escribir.
Debemos tener en cuenta que los algoritmos trabajan con datos, los datos se ingresan y
luego ellos se procesan, finalmente los datos se convierten en información y se muestran
por pantalla y se entregan al ejecutor del programa.

C. DECLARACIÓN DE VARIABLES
Declarar variables significa que los identificadores que almacenaran datos son introducidos
formalmente al programa, dichos identificadores y nombres asocian posiciones de memoria
con nombres del programa, es importante definir una forma o manera estándar de
declaración pensando en la compatibilidad de los diferentes lenguajes. Ejemplo:

Entero: edad
Real: estatura, peso, sueldo
Cadena: nombre, dirección

Es una buena práctica declarar las variables al inicio de un algoritmo, rutina y proceso.
Declarar variables en cualquier punto a pesar que es posible no es aconsejable, debido a
que se pierde el orden y adicionalmente en la mayoría de los lenguajes de programación el
ámbito de vigencia de la variable está supeditado al bloque de declaración[4].

D. ASIGNACIÓN
Asignar un valor a una variable significa que almacenaremos un dato en un espacio de
memoria asignado al identificador o nombre que estamos usando, las asignaciones
permiten entregar los datos de derecha a izquierda, en los algoritmos frecuentemente se
usan flechas para indicar como se mueve el valor de derecha a izquierda y queda
almacenado en la variable a la izquierda la operación no elimina el dato si está en una
variable a la derecha. Una expresión de asignación tiene la forma:

Variable = expresión

En donde la expresión puede estar formada por una constante, valor, por un conjunto de

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 68

valores y operadores o por una función.


Ejemplos:

Edad = 10
Estatura = 1.80
Resultado = 2*3

Donde edad y resultado son variables de tipo entero y estatura de tipo real que se supone
declaradas previamente.
La asignación tiene tres componentes, una variable, el signo igual o una flecha que apunta
a la izquierda y la expresión cuyo valor se asigna a la variable. La variable se encontrará a
la izquierda siempre del símbolo igual o la flecha, mientras que la expresión siempre estará
a la derecha. Ejemplos:

Entero: X, Y
X = 10
Y = X * 2 + 8

En este ejemplo, la variable Y contendrá el valor 28.

E. INSTRUCCIÓN LEER
La instrucción LEER especifica que se ingresa datos desde teclado estándar a una variable
LEER captura el dato y lo almacena en la variable, el dato quedará almacenado bajo el
formato de la variable. En diagrama N-S la instrucción de entrada se representa así:

Leer <lista de identificadores de variables>

Ejemplo:

Leer a, b

Donde "a" y "b" son las variables que recibirán los valores y que deben haberse declarado
previamente.

F. INSTRUCCIÓN ESCRIBIR
La instrucción ESCRIBIR nos permite enviar datos y mensajes desde la memoria hacia un
dispositivo de salida como la pantalla o la impresora. La información que se envía puede
ser constante es decir valores fijos o también el contenido de variables.

Escribir <lista de constantes y variables>

Ejemplo:

Escribir a, b

Figura N° 16: Diagrama NS

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 69

5. RESUMEN
Las instrucciones secuenciales son tan iguales como al de los otros tipos de métodos de
diseños de algoritmos y lenguajes de programación, se debe tener en cuenta que los
diagramas N-S, son una mezcla de diagramas de flujo y pseudocódigo, esto hace que sea
un poco más sencillo que sea más estructurado y que no hayan problemas de diseño y de
flujo de instrucciones.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecute el programa MS Word.
4. Construya los siguientes algoritmos aplicando los diagramas N-S en el programa MS Word:
a) Aceptar un número por teclado y que se muestre por pantalla si es positivo.
b) Ingresar dos números y que se muestre al mayor por pantalla.
c) Ingresar dos números y que se muestre al mayor y al menor por pantalla.
d) Modifique el programa anterior para que se muestre al mayor de 3 números
e) Modifique al algoritmo anterior para que muestre al mayor de 4 números.
f) Modifique al algoritmo anterior para que muestre al mayor de 5 números.
g) Elaborar un diagrama de flujo que haga el descuento en una compra de acuerdo al
siguiente criterio, si el cliente compra por un valor de 10, no hacer descuentos, si el
cliente gasta entre 11 y 20 descontar 10%, si el cliente gasta exactamente 30 recibe
un descuento de 30%.

V
EJERCICIOS

1. Elaborar un algoritmo en Diagramas N-S para que se muestre por pantalla al menor, al
mayo o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en Diagramas N-S que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.
3. Modifique el algoritmo anterior para que se muestre por pantalla la opción elegida.

VI
CUESTIONARIO

1. ¿Qué es un diagrama N-S?


2. ¿Qué es una instrucción?
3. ¿Qué es una instrucción secuencial?
4. ¿Qué es una instrucción de selección?
5. ¿Qué tipos de expresiones de selección existen?
6. ¿qué diferencia existe entre una condicional simple y una doble?
7. ¿Cuándo se debe usar una condicional doble y cuándo una simple?
8. ¿Qué es una condicional múltiple?
9. ¿Cuándo se debe usar una condicional múltiple?
10. ¿Cuándo debemos anidar instrucciones condicionales?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 70

[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 71

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 14:

Diagramas N-S – Instrucciones Condicionales

I
OBJETIVOS

 Aprender el uso de instrucciones de condicionales de diferente tipo.


 Aplicar instrucciones de condicionales de diferentes tipos.
 Diferenciar entre los diferentes tipos de instrucciones condicionales según su necesidad.

II
TEMAS A TRATAR

 Introducción.
 Algoritmo
 Diagramas de Nassi – Schneiderman
 Estructuras secuenciales
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
Los algoritmos nos han permitido elaborar esquemas resolución de problemas paso a paso
Es decir de forma secuencial con ellos en los diagramas de flujo de manera gráfica hemos
descrito una forma de enfocar la solución de un problema paso a paso. en las sesiones
anteriores hemos hecho uso, de los diagramas de flujo para esquematizar la solución con
la estructura de un programa de computadora de forma básica, los diagramas de flujo como
herramienta nos permiten estructurar nuestras ideas y ordenar las instrucciones de forma
secuenciada y esquematizado además la secuencia del flujo de la ejecución del algoritmo
dado, sin embargo para algunas personas resulta complicado y estructurar las ideas que
permitan dar solución a un problema por lo que otro tipo de estructuras qué nos permiten
idealizar algoritmos son los diagramas ns también conocidos como diagramas de Chapín.
Dichos diagramas nos permiten de una manera simple y fácil y a la vez gráfica estructurar
ordenadamente nuestras ideas a la hora de crear un programa y con ello dar solución a un
problema planteado los diagramas ns ofrecen la ventaja de no poseer flechas de orientación
sino más bien utilizar rectángulos estructurados que fluye de arriba hacia abajo lo que para
algunas personas se ve como más simple y más explícito a la hora de entender un
algoritmo[1].

2. ESTRUCTURAS CONDICIONALES
Las estructuras de decisión, se pueden llamar estructuras condicionales, de control o
también llamadas de selección, nos permiten que el algoritmo pueda tomar diferentes
caminos es decir que en determinados puntos el algoritmo siga un camino dependiendo de
una condición que bajo un contexto es verdadero y bajo otro es falso, la selección alternativa
evita que se siga un trayecto[2]. Se pueden manejar tres tipos de decisiones: simple, doble
y múltiple.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 72

G. DECISIÓN SIMPLE Y DOBLE


Una estructura condicional es simple, cuando solo especifica un camino de acción cuando
el resultado es verdadero, no existe camino para el falso.
En diagramas N-S el símbolo para representar una decisión es el siguiente:
Ejemplos:

Figura N° 17: Diagrama de flujo

Figura N° 18: Diagrama NS

Las condicionales dobles por el contrario tienen ambas salidas consideradas con
instrucciones sucesivas[3]:

Figura N° 19: Diagrama de flujo

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 73

Figura N° 20; Diagrama NS con decisión doble

H. DECISIÓN MÚLTIPLE
La forma como se ejecuta una decisión múltiple es tomando una variable que puede tomar
un numero finito de alternativas[4]. En diagrama N-S la estructura de selección múltiple tiene
la forma:

3. RESUMEN
Las condicionales tienen la función principal de que el código se ejecute o no según los
resultados de evaluaciones o el valor de las variables usadas en el control del flujo, de esta
forma vamos a controlar la ejecución de bloques de instrucciones y vamos a diferenciar
correctamente los procesos que deben ser ejecutados según un estado, por lo mismo los
diferentes tipos de condicionales se usan de formas diversas según las características que
se quieren ejecutar con el algoritmo, es importante tener presente que lo que buscamos
siempre será ejecutar el código por caminos de forma alternativa y excluyente.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecute el programa PseInt.
4. Construya los siguientes algoritmos aplicando los diagramas N-S en el programa PseInt:
a) Aceptar un número por teclado y que se muestre por pantalla si es positivo.
b) Ingresar dos números y que se muestre al mayor por pantalla.
c) Ingresar dos números y que se muestre al mayor y al menor por pantalla.
d) Elaborar un diagrama de flujo que haga el descuento en una compra de acuerdo al
siguiente criterio, si el cliente compra por un valor de 10, no hacer descuentos, si el
cliente gasta entre 11 y 20 descontar 10%, si el cliente gasta exactamente 30 recibe
un descuento de 30%.
e) El diagrama de flujo anterior escribirlo en diagramas N-S.
f) Convierta el diagrama de flujo directamente a diagrama N-S, luego compararlo con
lo que hizo.

V
EJERCICIOS

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 74

1. Elaborar un algoritmo en Diagramas N-S para que se muestre por pantalla al menor, al
mayo o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en Diagramas N-S que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.
3. Modifique el algoritmo anterior para que se muestre por pantalla la opción elegida.

VI
CUESTIONARIO

1. ¿Qué es un diagrama N-S?


2. ¿Qué es una instrucción?
3. ¿Qué es una instrucción secuencial?
4. ¿Qué es una instrucción de selección?
5. ¿Qué tipos de expresiones de selección existen?
6. ¿qué diferencia existe entre una condicional simple y una doble?
7. ¿Cuándo se debe usar una condicional doble y cuándo una simple?
8. ¿Qué es una condicional múltiple?
9. ¿Cuándo se debe usar una condicional múltiple?
10. ¿Cuándo debemos anidar instrucciones condicionales?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 75

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 15:

Introducción al Pseudocódigo

I
OBJETIVOS

 Introducir al alumno en la codificación de algoritmos en pseudocódigo


 Desarrollar la lógica del alumno basada en instrucciones similares a la de programación.
 Conocer adecuadamente las instrucciones de tipo secuencial.

II
TEMAS A TRATAR

 Introducción.
 Pseudocódigo
 instrucciones secuenciales en pseudocódigo
 Ventajas del pseudocódigo sobre los diagramas de flujo

III
MARCO TEORICO

1. INTRODUCCIÓN
Los diagramas de flujo son muy útiles para aprender la lógica de la programación, sin
embargo carecen de un pequeña característica que hace que tengamos que aprender más
con otros recursos, los programas son implementados en lenguajes de programación que
no guardan mucha relación con elementos gráficos, sino más bien con expresiones de
lenguaje natural con reglas especiales, por lo que para hacernos una mejor idea en el
desarrollo de la lógica de programación tendremos que hacer uso de recursos de
descripción de la codificación diferentes, a este tipo de recursos se le conoce como
pseudocódigo, y es muy útil porque se utiliza lenguaje natural con características de reglas
similares a los lenguajes de programación convencionales, este tipo de recurso lo
utilizaremos con un intérprete de pseudocódigo que nos permitirá ejecutar los programas
hechos en pseudocódigo[1].

2. PSEUDOCÓDIGO
El pseudocódigo (falso lenguaje) es una descripción de alto nivel de un algoritmo que
emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de
lenguajes de programación, como asignaciones, ciclos y condicionales. Es utilizado para
describir algoritmos en libros y publicaciones científicas, y como producto intermedio
durante el desarrollo de un algoritmo.
El pseudocódigo está pensado para facilitar a las personas el entendimiento de un
algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una
implementación. Programadores diferentes suelen utilizar convenciones distintas, que
pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo,
el pseudocódigo en general es comprensible sin necesidad de conocer o utilizar un entorno
de programación específico, y es a la vez suficientemente estructurado para que su
implementación se pueda hacer directamente a partir de él [2].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 76

3. INSTRUCCIONES SECUENCIALES EN PSEUDOCÓDIGO


Las instrucciones en secuenciales en pseudocódigo son muy sencillas, las instrucciones se
siguen en una secuencia fija que normalmente viene dada por el número de renglón. Es
decir que las instrucciones se ejecutan de arriba hacia abajo. Las instrucciones se ejecutan
dependiendo de la condición dada dentro del algoritmo.

I. DEFINICIÓN DE DATOS DEL PSEUDOCÓDIGO


La definición de datos se da por supuesta, sobre todo en las variables sencillas, si se emplea
formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera del
algoritmo, y naturalmente cuando empleemos el pseudocódigo para definir estructuras de
datos, esta parte la desarrollaremos adecuadamente[5].
Para hacer más didáctica la práctica usaremos la definición siguiente para definir cualquier
variable, asignándole 0 a la variable que después usaremos, en el programa que usaremos
se finaliza la instrucción con punto y coma(;).

A <- 0;

J. LECTURA DE DATOS
La lectura de datos significa que los datos digitados desde teclado se direccionan y
almacenan en una variable, la cual corresponde al tipo de dato que se está manipulando,
se expresa con la palabra reservada Leer y luego se indica la variable que capturará los
datos, si se ingresarán datos para más de una variables es necesario separar las variables
con comas(,);

Leer A;
Lee A,B;

K. ESCRITURA DE EXPRESIONES
Para escribir expresiones utilizamos el comando escribir, es necesario recalcar que
después de dicha instrucción es necesario especificar lo que se escribe en pantalla, ya sea
una variable o una expresión distinta[4];

Escribir lista_de_expresiones;
Escribir A;

L. ASIGNAR VALORES O EXPRESIONES A VARIABLES


Para darle una valor a una variable se utiliza un símbolo de asignación este difiere entre
diferentes estilos, que pueden ser; =, <- ó :=. Por ejemplo, la instrucción "reemplace el valor
de la variable x por el valor de la variable y" puede ser representado como: “asigne a x, el
valor de y”

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 77

4. VENTAJAS DEL PSEUDOCÓDIGO SOBRE LOS DIAGRAMAS


DE FLUJO
 Ocupan mucho menos espacio en el desarrollo del problema.
 Permite representar de forma fácil operaciones repetitivas complejas.
 Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación
formal.
 Si se siguen las reglas de identación se puede observar claramente los niveles en la
estructura del programa.
 En los procesos de aprendizaje de los alumnos de programación, estos están más
cerca del paso siguiente (codificación en un lenguaje determinado, que los que se
inician en esto con la modalidad Diagramas de Flujo).
 Mejora la claridad de la solución de un problema.[6]

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecute el programa PSeInt y elabore los siguientes algoritmos:
a) Ingresar 4 números y mostrarlos en orden inverso por pantalla.
b) Ingresar sus nombres y apellidos por separado y mostrarlos juntos por pantalla.
4. Ingresar 4 números reales y luego mostrar por pantalla su promedio y su sumatoria.

V
EJERCICIOS

1. Elaborar un algoritmo en pseudocódigo flujo que nos permita visualizar en pantalla un menú
de opciones.
2. Modifique el algoritmo anterior para que se muestre por pantalla la opción elegida.

VI
CUESTIONARIO

1. ¿Qué es un algoritmo?
2. ¿Qué es el pseudocódigo?
3. ¿Qué elementos tiene el pseudocódigo?
4. ¿Qué tipos de instrucciones existen en la programación estructurada?
5. ¿Qué es una instrucción secuencial?
6. ¿Qué es una instrucción de control?
7. ¿Qué tipos de instrucciones secuenciales tenemos?
8. ¿Cómo se declara una variable?
9. ¿Cómo se le asigna el valor a una variable?
10. ¿Cómo se declara una constante?
11. ¿Cuáles son las ventajas del pseudocódigo sobre los diagramas de flujo?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 78

[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995.
[5] https://es.wikipedia.org/wiki/Pseudoc%C3%B3digo
[6] http://documents.mx/documents/el-pseudocodigo.html

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 79

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 16:

Instrucciones Condicionales

I
OBJETIVOS

 Aprender el uso de instrucciones de condicionales de diferente tipo.


 Aplicar instrucciones de condicionales de diferentes tipos.
 Diferenciar entre los diferentes tipos de instrucciones condicionales según su necesidad.

II
TEMAS A TRATAR

 Introducción.
 Estructuras condicionales
 Anidamiento de estructuras condicionales

III
MARCO TEORICO

1. INTRODUCCIÓN
Al igual que en los diagramas de flujo las instrucciones que nos permiten tomar diferentes
rutas o caminos en la ejecución del algoritmo son indispensables para poder realizar
algunas tareas, en especial cuando queremos que el código o las instrucciones se ejecuten
condicionadas a ciertos parámetros, es indispensable tener en cuenta que en pseudocódigo
existen tres tipos de estructuras condicionales o de selección: las simples, las dobles y las
múltiples, este tipo de estructuras están más acorde con la forma como se especifican en
los lenguajes de programación los algoritmos planteados para crear programas, debemos
tener en cuenta que los lenguajes de programación hacen uso .de este tipo de estructura
con diferencias muy pequeñas en su forma de empleo[1].

2. ESTRUCTURAS CONDICIONALES
En la redacción del pseudocódigo se utiliza tres tipos de instrucciones condicionales, las
condicionales simples, las condicionales dobles y las condicionales múltiples.

A. ESTRUCTURAS CONDICIONAL O SELECTIVA SIMPLE


Las instrucciones selectivas representan instrucciones que pueden o no ejecutarse, según
el cumplimiento de una condición P o expresión lógica[2].

Si <expresion_logica> Entonces
acciones_por_verdadero
FinSi

La condición P es una expresión booleana. Instrucciones1 es ejecutada sólo si la condición


es verdadera.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 80

Si x=y Entonces
x<-a+1;
FinSi

B. ESTRUCTURA CONDICIONAL O SELECTIVA DOBLE


(ALTERNATIVA)
La instrucción selectiva realiza una instrucción de dos posibles, según el cumplimiento de
una condición P o expresión lógica.

Si expresion_logica Entonces
acciones_por_verdadero
Sino
acciones_por_falso
FinSi

La condición P es una variable booleana o una función reducible a booleana (lógica,


Verdadero/Falso). Si esta condición es cierta se ejecuta Instrucciones1, si no es así,
entonces se ejecuta Instrucciones2.

Si x=y Entonces
x<-y;
Sino
y<-x;
FinSi

C. ESTRUCTURA CONDICIONAL O SELECTIVA MÚLTIPLE


También es común el uso de una selección múltiple que equivaldría a anidar varias
funciones de selección, este tipo de instrucción evalúa el valor de la variable y según su
valor toma un camino entre los mostrados como opciones[3]:

Segun variable_numerica Hacer


opcion_1:
secuencia_de_acciones_1
opcion_2:
secuencia_de_acciones_2
opcion_3:
secuencia_de_acciones_3
De Otro Modo:
secuencia_de_acciones_dom
FinSegun

La estructura se podría codificar de esta forma:

Leer x;
Segun x Hacer
1:
x<-1;
2:
x<-2;
3:
x<-3;
De Otro Modo:
x<-5;
FinSegun
Escribir x;

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 81

3. ANIDAMIENTO DE ESTRUCTURAS CONDICIONALES


Algunas veces la ejecución de una acción depende no de una condición si no de un conjunto
de condiciones, cuando esto sucede es posible hacer uso tanto de conectores lógicos como
de anidamiento de estructuras condicionales, esto se hace para tener un control más simple
sobre la ejecución[4]

Si x=y Entonces
Si expresion_logica Entonces
acciones_por_verdadero
Sino
acciones_por_falso
FinSi
Sino
Si expresion_logica Entonces
acciones_por_verdadero
Sino
acciones_por_falso
FinSi
FinSi

En el anterior ejemplo se muestra una condicional, de ser verdadera la expresión lógica se


ingresa por la ruta del Entonces, aquí se encuentra una segunda instrucción condicional y
por la misma ruta del verdadero podrían haber muchas más, lo que implicaría que para
ejecutar un bloque o una instrucción se tendrían que satisfacer como verdaderas todas las
instrucciones condicionales se hayan puesto.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecute el programa PSeInt.
4. Construya los siguientes algoritmos en el programa PSeInt:
a) Ingresar un número por teclado y luego muestre por pantalla el valor absoluto del
número ingresado.
b) Ingresar dos números y que se muestre la suma por pantalla.
c) Ingresar dos números y que se muestre el área del rectángulo por pantalla.
d) Modifique el programa anterior para que se muestre al área de cuadrado.
e) Modifique al algoritmo anterior para que muestre al mayor de 4 números.
f) Modifique al algoritmo anterior para que muestre al volumen del cubo.

V
EJERCICIOS

1. Elaborar un algoritmo en pseudocódigo para que se muestre por pantalla al menor, al mayo
o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en pseudocódigo que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.

VI
CUESTIONARIO

1. ¿Qué es una instrucción secuencial?


2. ¿Qué tipos de expresiones secuenciales existen?
3. ¿Cómo se declaran variables?

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 82

4. ¡Cómo se declaran constantes?


5. ¿Qué diferencia existe entre una instrucción de ingreso y una de salida?
6. ¿Cómo se ingresan datos a una variable?
7. ¿Cómo se extrae un dato de una variable?
8. ¿Cómo se usa una instrucción de asignación?
9. ¿Cómo se usan las instrucciones de operaciones aritméticas?
10. ¿Cuándo usamos la asignación?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 83

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 17:

Instrucciones Iterativas I

I
OBJETIVOS

 Introducir al alumno la modificación y gestión de bucles de diferente tipo.


 Aplicar los bucles de diferente forma y estilo.
 Diferenciar los tipos de bucles sus ventajas y desventajas.
 Diseñar bucles infinitos, controlados por banderas y contadores.

II
TEMAS A TRATAR

 Introducción.
 Estructuras iterativas
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
Al diseñar algoritmos es necesario algunas veces hacer anidamientos de instrucciones, es
decir debemos colocar una instrucción dentro de otra, este tipo de procesos hace que la
complejidad de la solución diseñada aumente y de alguna manera el programador deba
tener más cuidado en la construcción de estructuras de programación, sin embargo al
dominar estas técnicas nos hace diseñar código más potente y útil que al final nos darán
una mayor versatilidad y provecho en su aplicación. En si muchas veces debemos anidar
las instrucciones unas dentro de otras para conseguir una extensión de la operatividad, esto
hace que un simple condicional tenga más opciones de decisión o que una bucle pueda
ejecutarse una mayor numero de veces[1].

2. ESTRUCTURAS ITERATIVAS
Las instrucciones iterativas representan la ejecución de una instrucción o de un bloque de
instrucciones en más de una vez. Es decir que su número consecutivo es ejecuciones es
de uno o más, dependiendo claro de la estructura y naturaleza de la condición.

M. BUCLE MIENTRAS
El bucle(ciclo) mientras(while) se repite mientras la condición P sea cierta, si al llegar por
primera vez al bucle mientras la condición es falsa, el cuerpo del bucle no se ejecuta ni una
sola vez, si es verdadera ingresa al bloque de instrucciones dentro del bucle y las ejecuta
una y otra vez, en cada inicio de ciclo se verifica primero que la expresión condicional P es
verdadera, de serlo se ejecuta el ciclo una vez más, de ser falsa se abandona el bucle
mientras y se continua con la instrucción inmediatamente posterior[2].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 84

Figura N° 35: Diagrama de flujo de instrucción mientras

En el programa PSeInt debemos elegir el icono que representa a la instrucción y rellenar en


la construcción de la instrucción los elementos faltantes para su funcionamiento.

Figura N° 36: Instrucción mientras en PSeInt.

Mientras expresion_logica Hacer


secuencia_de_acciones
FinMientras

Donde:
 {expresion_logica}: complete aquí la condición que se debe evaluar para realizar
una iteración.
 {secuencia_de_acciones}: complete aqui la lista de instrucciones que desea
repetir mientras la condición {expresion_logica} sea verdadera. Recuerde que
debe incluir aquí alguna acción que pueda modificar dicha condición.
Para construir adecuadamente bloques while o mientras se debe tener en cuenta que la
condición debe estar preparada de tal forma que sea cierta al comenzar el bucle y debe
dejar de ser verdadera en alguna parte del proceso para poder abandonar el bucle[3].

leer a;
Mientras a<10 Hacer
Escribir a;
a<-a+1;
FinMientras

En el ejemplo anterior se ingresa un valor a la variable a, si este valor es mayor o igual a


10 el bucle no se va a ejecutar porque la expresión lógica es falsa; por el contrario si fuera

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 85

menor la expresión lógica es verdadera e ingresaría al bucle mientras, al sumar 1 en cada


ejecución de ciclo el valor de la variable a se incrementa y en un momento dado el valor
almacenado por la variable a será igual a 10, en ese momento la expresión lógica será falsa
y no se ejecutará otra vez un ciclo y se abandonará el bucle para ejecutar la instrucción
inmediatamente siguiente al bucle[4].

2. INSTRUCCIONES MIENTRAS ANIDADAS


Con este pseudocódigo se puede desarrollar cualquier algoritmo que:
 Tenga un único punto de inicio.
 Tenga un número finito de posibles puntos de término.
 Haya un número finito de caminos, entre el punto de inicio y los posibles puntos de
término.

3. RESUMEN
Las estructuras iterativas a mientras requieren de un inicio o inicialización donde la variable
d control debe tener un valor que permita que el bucle se pueda ejecutar al inicio, la
condición con esta misma variable de control que nos permita que el bucle pueda ejecutarse
el número de veces para el cual fue diseñado, y finalmente el mecanismo que hará que la
condición que gobierna el bucle se vuelva falsa.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecute el programa PSeInt.
4. Construya los siguientes algoritmos en el programa PSeInt:
a) Aceptar un número por teclado y que se muestre por pantalla si es positivo.
b) Ingresar dos números y que se muestre al mayor por pantalla.
c) Ingresar dos números y que se muestre al mayor y al menor por pantalla.
d) Modifique el programa anterior para que se muestre al mayor de 3 números
e) Modifique al algoritmo anterior para que muestre al mayor de 4 números.
f) Modifique al algoritmo anterior para que muestre al mayor de 5 números.
g) Elaborar un diagrama de flujo que haga el descuento en una compra de acuerdo al
siguiente criterio, si el cliente compra por un valor de 10, no hacer descuentos, si el

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 86

cliente gasta entre 11 y 20 descontar 10%, si el cliente gasta exactamente 30 recibe


un descuento de 30%.

V
EJERCICIOS

1. Elaborar un algoritmo en pseudocódigo para que se muestre por pantalla al menor, al mayo
o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en pseudocódigo que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.

VI
CUESTIONARIO

1. ¿Qué es una instrucción de iterativa o de bucle?


2. ¿Qué tipos de instrucciones iterativas existen?
3. ¿Qué es la instrucción iterativa mientras?
4. ¿Cómo se implementa la instrucción iterativa mientras?
5. ¿Cuántas veces como mínimo se ejecuta la instrucción mientras?
6. ¿Cuándo la instrucción mientras no se ejecuta ni una sola vez?
7. ¿Cuándo la instrucción mientras no deja de ejecutarse nunca?
8. ¿Qué debe tener la instrucción mientras para dejar de ejecutarse?
9. ¿Qué elementos debe tener la instrucción iterativa mientras para ejectarse?
10. ¿Cuándo debemos anidar instrucciones condicionales?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 87

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 18:

Instrucciones Iterativas II

I
OBJETIVOS

 Introducir al alumno la modificación y gestión de bucles de diferente tipo.


 Aplicar los bucles de diferente forma y estilo.
 Diferenciar los tipos de bucles sus ventajas y desventajas.
 Diseñar bucles infinitos, controlados por banderas y contadores.

II
TEMAS A TRATAR

 Introducción.
 Estructuras iterativas
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
Al diseñar algoritmos es necesario algunas veces hacer anidamientos de instrucciones, es
decir debemos colocar una instrucción dentro de otra, este tipo de procesos hace que la
complejidad de la solución diseñada aumente y de alguna manera el programador deba
tener más cuidado en la construcción de estructuras de programación, sin embargo al
dominar estas técnicas nos hace diseñar código más potente y útil que al final nos darán
una mayor versatilidad y provecho en su aplicación. En si muchas veces debemos anidar
las instrucciones unas dentro de otras para conseguir una extensión de la operatividad, esto
hace que un simple condicional tenga más opciones de decisión o que una bucle pueda
ejecutarse una mayor numero de veces[1].

2. ESTRUCTURAS ITERATIVAS
Las instrucciones iterativas representan la ejecución de una instrucción o de un bloque de
instrucciones en más de una vez. Es decir que su número consecutivo es ejecuciones es
de uno o más, dependiendo claro de la estructura y naturaleza de la condición.

A. BUCLE PARA
El bucle(ciclo) para(for) es una estructura repetitiva que se ejecuta de preferencia un
número determinado de veces, en la instrucción se establece un punto de inicio y un límite
que determina el final de las iteraciones, en la mayoría de los lenguajes de programación la
progresión es fija y controlada a través de variables que forman parte de la estructura del
bucle, se utiliza de preferencia cuando se sabe el número de veces que dará vueltas el
proceso[2].

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 88

Figura N° 37: Diagrama de flujo de la instrucción para

En el programa PSeInt debemos elegir el icono que representa a la instrucción y rellenar en


la construcción de la instrucción los elementos faltantes para su funcionamiento.

Figura N° 38: Instrucción para en PSeInt.

Para variable_numerica<-valor_inicial Hasta valor_final Con Paso paso Hacer


secuencia_de_acciones
FinPara

Donde:
 {variable_numerica}: Es la variable de control del bucle para, la que
determina cuantas vueltas ejecuta.
 {valor_inicial}: establece el valor inicial donde la variable de control
inicia su ejecución.
 {valor_final}: Establece el limite hasta donde llega la variable de
control en su progresión de iteraciones.
 {paso}: determina la dimensión de la progresión de la variable de control
en cada iteración.
 {secuencia_de_acciones}: especifica el conjunto de instrucciones que se
van a ejecutar en cada iteración.
Para construir adecuadamente bloques for o para se debe tener en cuenta que el limite
inicial y final deben estar establecidos de forma adecuada así como la progresión, de forma
tal que se pueda ejecutar el bucle.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 89

Proceso para_que_no_ejecuta
definir i Como Entero;
Para i<-10 Hasta 5 Con Paso 1 Hacer
Escribir i;
FinPara
FinProceso

En el ejemplo anterior se establece como valor inicial para la variable de control i, el valor
de 10, se define como valor máximo el 5, y el paso en que debe progresar la variable de
control 1, el bucle para no se ejecuta debido a que el valor inicial es mayor que el fianl y la
progresión avanza de 1 en 1[3].

Proceso para_que_no_ejecuta
definir i, a, b Como Entero;
leer a;
leer b;
Para i<-a Hasta b Con Paso 1 Hacer
Escribir i;
FinPara
FinProceso

En este último ejemplo depende del ingreso de valores a las variables a y b, si a resulta ser
mayor que b nunca se ejecutará el bucle debido a que la progresión es de 1 en 1, lo mismo
sucede si son iguales[4].

3. INSTRUCCIONES PARA ANIDADAS


Con este pseudocódigo se puede desarrollar cualquier algoritmo que:
 Tenga un único punto de inicio.
 Tenga un número finito de posibles puntos de término.
 Haya un número finito de caminos, entre el punto de inicio y los posibles puntos de
término.

4. RESUMEN
Las estructuras iterativas para requieren de un inicio o inicialización y un límite establecido
donde la variable de control debe tener un valor que permita que el bucle se pueda ejecutar
al inicio, la progresión debe permitir que la variable de control itere progresivamente y de
forma fija des el limite inicial hasta el límite final.
Un bucle para es ideal para ejecutar un proceso o un conjunto de instrucciones un número
determinado y ya conocido de veces, la variable de control que usemos nos ayudará a
control ese número de iteraciones que deben ser ejecutadas.

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 90

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecute el programa PSeInt.
4. Construya los siguientes algoritmos en el programa PSeInt:
a) Aceptar un número por teclado y que se muestre por pantalla si es positivo.
b) Ingresar dos números y que se muestre al mayor por pantalla.
c) Ingresar dos números y que se muestre al mayor y al menor por pantalla.
d) Modifique el programa anterior para que se muestre al mayor de 3 números
e) Modifique al algoritmo anterior para que muestre al mayor de 4 números.
f) Modifique al algoritmo anterior para que muestre al mayor de 5 números.
g) Elaborar un diagrama de flujo que haga el descuento en una compra de acuerdo al
siguiente criterio, si el cliente compra por un valor de 10, no hacer descuentos, si el
cliente gasta entre 11 y 20 descontar 10%, si el cliente gasta exactamente 30 recibe
un descuento de 30%.

V
EJERCICIOS

1. Elaborar un algoritmo en pseudocódigo para que se muestre por pantalla al menor, al mayo
o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en pseudocódigo que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.

VI
CUESTIONARIO

1. ¿Qué es una instrucción de iterativa o de bucle?


2. ¿Qué tipos de instrucciones iterativas existen?
3. ¿Qué es la instrucción iterativa para?
4. ¿Cómo se implementa la instrucción iterativa para?
5. ¿Cuántas veces como mínimo se ejecuta la instrucción para?
6. ¿Cuándo la instrucción para no se ejecuta ni una sola vez?
7. ¿Cuándo la instrucción para no deja de ejecutarse nunca?
8. ¿Qué debe tener la instrucción para para dejar de ejecutarse?
9. ¿Qué elementos debe tener la instrucción iterativa para para ejecutarse?
10. ¿Cuándo debemos anidar instrucciones condicionales?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 91

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 19:

Instrucciones Iterativas III

I
OBJETIVOS

 Introducir al alumno la modificación y gestión de bucles de diferente tipo.


 Aplicar los bucles de diferente forma y estilo.
 Diferenciar los tipos de bucles sus ventajas y desventajas.
 Diseñar bucles infinitos, controlados por banderas y contadores.

II
TEMAS A TRATAR

 Introducción.
 Estructuras iterativas
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
Al diseñar algoritmos es necesario algunas veces hacer anidamientos de instrucciones, es
decir debemos colocar una instrucción dentro de otra, este tipo de procesos hace que la
complejidad de la solución diseñada aumente y de alguna manera el programador deba
tener más cuidado en la construcción de estructuras de programación, sin embargo al
dominar estas técnicas nos hace diseñar código más potente y útil que al final nos darán
una mayor versatilidad y provecho en su aplicación. En si muchas veces debemos anidar
las instrucciones unas dentro de otras para conseguir una extensión de la operatividad, esto
hace que un simple condicional tenga más opciones de decisión o que una bucle pueda
ejecutarse una mayor numero de veces[1].

2. ESTRUCTURAS ITERATIVAS
Las instrucciones iterativas representan la ejecución de una instrucción o de un bloque de
instrucciones en más de una vez. Es decir que su número consecutivo es ejecuciones es
de uno o más, dependiendo claro de la estructura y naturaleza de la condición[2].

A. BUCLE REPETIR
El bucle(ciclo) repetir…hasta(repeat … until) es una estructura repetitiva que se ejecuta un
número indeterminado de veces, se diferencia de las anteriores debido a que primero se
ejecuta por lo menos una vez y luego se vuelve a ejecutar una o más iteraciones en función
del cumplimiento de la condición formulada, la instrucción o bloque de instrucciones
subordinado se repite hasta que la condición o expresión lógica de control sea verdadera,
esto es completamente inverso a la instrucción Mientras[2].
Dentro de las instrucciones subordinadas se debe tener diseñado un mecanismo de
finalización del bucle que lleve a que la condición de control sea verdadera cuando se tenga
que finalizar el bucle. Es necesario recalcar que la ejecución del bucle se lleva a cabo por
lo menos una vez aun así la condición sea verdadera y no se vuelva a ejecutar el bucle,

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 92

todo lo contrario a lo que ocurre con mientras que se ejecuta sólo si la condición es
verdadera[3].

Figura N° 39: Diagrama de flujo de la instrucción repetir

En el programa PSeInt debemos elegir el icono que representa a la instrucción y rellenar en


la construcción de la instrucción los elementos faltantes para su funcionamiento.

Figura N° 40: Instrucción REPETIR en PSeInt.

Repetir
secuencia_de_acciones
Hasta Que expresion_logica

Donde:
 {secuencia_de_acciones}: Aquí se coloca una o mas instrucciones que se
deban ejecutar repetidas veces en función de si la {expresion_logica}
es falsa. Dentro de estas instrucciones debe existir algún mecanismo que
convierta en veradera la {expresion_logica} para finalizar la ejecución
del bucle.
 expresion_logica}: es una expresión condicional que controlará la
ejecución del bucle, si es falsa se ejecutará el bucle, si es verdadera
se finaliza la ejecución.
Para construir adecuadamente bucles repetir…hasta o repeat … until se debe tener en
cuenta que bucle se ejecuta siempre por lo menos una vez, que las siguientes iteraciones
se darán si la expresión lógica que controla el bucle es falsa y que al volverse verdadera se

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 93

finaliza el bucle[4].

Proceso repite_una_sola_vez
Definir a Como Entero;
Repetir
a <- 10;
Hasta Que a = 10
FinProceso

En el ejemplo anterior se establece como expresión de control a que la variable a sea igual
a 10, la instrucción subordinada asigna 10 a la variable a, por lo que solo se ejecutará una
vez.

Proceso repite_una_sola_vez
Definir a Como Entero;
Definir f como Logico;
f <- verdadero;
Repetir
a <- 10;
Hasta Que f
FinProceso

Si nos fijamos en el último ejemplo el bucle estaba preparado para que no se vuelva a
repetir, es decir si hubiera sido un bucle mientras no debería ejecutarse[4].

3. INSTRUCCIONES REPETIR…HASTA ANIDADAS

Con este pseudocódigo se puede desarrollar cualquier algoritmo que:


 Tenga un único punto de inicio.
 Tenga un número finito de posibles puntos de término.
 Haya un número finito de caminos, entre el punto de inicio y los posibles puntos de
término.

4. RESUMEN
Las estructuras iterativas para requieren de un inicio o inicialización y un límite establecido
donde la variable de control debe tener un valor que permita que el bucle se pueda ejecutar
al inicio, la progresión debe permitir que la variable de control itere progresivamente y de

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 94

forma fija des el limite inicial hasta el límite final. Un bucle repetir…hasta es ideal para
ejecutar un proceso o un conjunto de instrucciones un número indeterminado de veces, el
cual puede ejecutarse una sola vez de forma incondicional, la variable de control que
usemos nos ayudará a control ese número de iteraciones que deben ser ejecutadas.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecute el programa PSeInt.
4. Construya los siguientes algoritmos en el programa PSeInt:
a) Ingresar números, que se muestren por pantalla si son positivos, finaliza con 0.
b) Ingresar dos números y que se muestre al mayor por pantalla, finaliza al ingresar 0.

V
EJERCICIOS

1. Elaborar un algoritmo en pseudocódigo para que se muestre por pantalla al menor, al mayor
o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en pseudocódigo que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.

VI
CUESTIONARIO

1. ¿Qué es una instrucción de iterativa o de bucle?


2. ¿Qué tipos de instrucciones iterativas existen?
3. ¿Qué es la instrucción iterativa repetir…hasta?
4. ¿Cómo se implementa la instrucción iterativa repetir…hasta?
5. ¿Cuántas veces como mínimo se ejecuta la instrucción repetir…hasta?
6. ¿Cuándo la instrucción repetir…hasta se ejecuta una sola vez?
7. ¿Cuándo la instrucción repetir…hasta no deja de ejecutarse nunca?
8. ¿Qué debe tener la instrucción repetir…hasta para dejar de ejecutarse?
9. ¿Qué elementos debe tener la instrucción iterativa para para ejecutarse?
10. ¿Cuándo debemos anidar instrucciones condicionales?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 95

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 20:

Instrucciones Iterativas IV

I
OBJETIVOS

 Aplicar los bucles de diferente forma y estilo.


 Diferenciar los tipos de bucles sus ventajas y desventajas.
 Diseñar bucles infinitos, controlados por banderas y contadores.

II
TEMAS A TRATAR

 Introducción.
 Bucle Para controlado por contador
 Bucle mientras controlado por contador
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
En el diseño de algoritmos es necesario algunas veces hacer control de la ejecución de una
instrucción iterativa basándonos en un número de veces de la repetición del bucle, el
número de veces de la repetición del bucle juega diferentes propósitos de acuerdo al
problema y al enfoque que el programador provea para la solución, existe una técnica que
se llama control de bucle basado en un contador, donde una variable de control es usada
como contador del número de veces en que el bucle es repetido[1]. Los controles están
asociados a una expresión lógica de comparación, la cual actúa en función del número de
veces que el contador registra que se ejecutó el bucle. Esto es en función de la instrucción
iterativa usada ya que es necesario la inicialización de la variable contador de acuerdo al
contexto del bloque de código[1].

2. BUCLE PARA CONTROLADO POR CONTADOR


En el bucle para se debe establecer con una variable contador, la ventaja en este caso
radica en que dicha variable es parte estructural de la instrucción, adicionalmente la
expresión lógica que controla la progresión es también parte estructural de la instrucción,
pero a pesar de eso se pueden cometer el mismo tipo de errores en su implantación que se
cometen con las otras instrucciones iterativas, El establecer la inicialización de la variable
contador dentro del bucle para hace que luego de cada vuelta se vuelva a inicializar esto
hará que nunca termine[2].

Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
Definir suma Como Entero
Definir cantidad Como Entero
Escribir "Ingresar la cantidad de numeros a sumar: "
Leer cantidad
Para varContador <- 1 Hasta cantidad Con Paso 1 Hacer
Escribir "Ingresar dato ", varContador,": "

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 96

Leer dato
suma <- suma + dato
varContador <- 1
Fin Para
Escribir "La sumatoria es: ", suma
FinProceso

En el ejemplo anterior en cada vuelta el valor de varContador vuelve a 1, por lo que nunca
llegará a valer 10[3]. Otro problema es no tener una instrucción que permita el incremento
de la variable contador, al suceder esto nunca llegará al valor final, pero en el bucle para es
solo posible si se decrementa en el cuerpo.

Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
Definir suma Como Entero
Definir cantidad Como Entero
Escribir "Ingresar la cantidad de numeros a sumar: "
Leer cantidad
Para varContador <- 1 Hasta cantidad Con Paso 1 Hacer
Escribir "Ingresar dato ", varContador,": "
Leer dato
suma <- suma + dato
varContador <- varContador - 1
Fin Para
Escribir "La sumatoria es: ", suma
FinProceso

La variable contador siempre debe ser inicializada en el extremo opuesto a el valor final del
control, de lo contrario no se ejecutará ni una sola vez[4].

Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
Definir suma Como Entero
Para varContador <- 10 Hasta 0 Con Paso 1 Hacer
Escribir "Ingresar dato ", varContador,": "
Leer dato
suma <- suma + dato
Fin Para
Escribir "La sumatoria es: ", suma
FinProceso

La inicialización debe hacerse en el valor correcto, en el siguiente ejemplo se ejecuta 11


veces el bucle mientras que en realidad se quería que se hiciese 10.

Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
Definir suma Como Entero
Para varContador <- 0 Hasta 10 Con Paso 1 Hacer
Escribir "Ingresar dato ", varContador,": "
Leer dato
suma <- suma + dato
Fin Para
Escribir "La sumatoria es: ", suma
FinProceso

3. BUCLE MIENTRAS CONTROLADO POR CONTADOR


En el bucle mientras se debe establecer una variable contador para el control, dicha variable
debe inicializarse fuera del bucle, la inicialización se establece en un punto o valor inicial
para la progresión del bucle que al final permita se termine su ejecución, adicionalmente
una instrucción debe permitir que el valor aumente hacia el valor de control que debe tener

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 97

la variable contador. El establecer la inicialización de la variable contador dentro del bucle


mientras hace que luego de cada vuelta se vuelva a inicializar esto hará que nunca
termine[4].

Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
varContador <- 0
Mientras varContador < 10 Hacer
varContador <- 0
Leer dato
Escribir dato
varContador <- varContador + 1
Fin Mientras
FinProceso

En el ejemplo anterior en cada vuelta el valor de varContador vuelve a 0, por lo que nunca
llegará a valer 10.

Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
Mientras varContador < 10 Hacer
varContador <- 0
Leer dato
Escribir dato
varContador <- varContador + 1
Fin Mientras
FinProceso

Otro problema es no tener una instrucción que permita el incremento de la variable contador,
al suceder esto nuca llegará al valor final.

Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
Mientras varContador < 10 Hacer
varContador <- 0
Leer dato
Escribir dato
Fin Mientras
FinProceso

La variable contador siempre debe ser inicializada en el extremo opuesto a el valor final del
control, de lo contrario no se ejecutará ni una sola vez.

Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
varContador <- 11
Mientras varContador < 10 Hacer
Leer dato
Escribir dato
Fin Mientras
FinProceso

La inicialización debe hacerse en el valor correcto, en el siguiente ejemplo solo se ejecuta


9 veces el bucle mientras que en realidad se quería que se hiciese 10.

Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
varContador <- 1
Mientras varContador < 10 Hacer
Leer dato

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 98

Escribir dato
varContador <- varContador + 1
Fin Mientras
FinProceso

4. RESUMEN
Las estructuras iterativas para requieren de un inicio o inicialización y un límite establecido
donde la variable de control debe tener un valor que permita que el bucle se pueda ejecutar
al inicio, la progresión debe permitir que la variable de control itere progresivamente y de
forma fija des el limite inicial hasta el límite final.
Un bucle para es ideal para ejecutar un proceso o un conjunto de instrucciones un número
determinado y ya conocido de veces, la variable de control que usemos nos ayudará a
control ese número de iteraciones que deben ser ejecutadas.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecute el programa PSeInt.
4. Construya los siguientes algoritmos en el programa PSeInt:
a) Aceptar un número por teclado y luego ingresar la cantidad de números que indica
dicho número, sumarlos y mostrar el resultado de la suma por pantalla.

V
EJERCICIOS

1. Elaborar un algoritmo en pseudocódigo para que se ingrese un número por teclado y a


continuación se muestre su factorial por pantalla.
2. Elaborar un algoritmo en pseudocódigo para que se ingrese dos números por teclado y a
continuación se muestre los números primos entre ellos.

VI
CUESTIONARIO

1. ¿Qué es una instrucción de iterativa o de bucle controlada por contador?


2. ¿Cómo se implementa la instrucción iterativa para controlada por contador?
3. ¿Qué elementos debe tener la instrucción iterativa para para ejecutarse?
4. ¿Cómo se implementa la instrucción iterativa mientras controlada por contador?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987.
[3] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 99

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 21:

Instrucciones Iterativas V

I
OBJETIVOS

 Introducir al alumno la modificación y gestión de bucles de diferente tipo.


 Aplicar los bucles de diferente forma y estilo.
 Diferenciar los tipos de bucles sus ventajas y desventajas.
 Diseñar bucles infinitos, controlados por banderas y contadores.

II
TEMAS A TRATAR

 Introducción.
 Bucle mientras controlado por centinela
 Bucle repetir … hasta controlado por centinela
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
Al diseñar algoritmos es necesario algunas veces hacer control de la ejecución de una
instrucción iterativa basándonos en un valor límite, el valor límite juega diferentes propósitos
de acuerdo al problema y al enfoque que el programador provea para la solución, existe
una técnica que se llama control de bucle basado en centinela, donde un valor usado como
límite es usado en forma de constante o asignado a la variable de control[1].
Los controles están asociados a una expresión lógica de comparación, la cual actúa en
función de la naturaleza de la expresión de comparación y al propio mecanismo de la
instrucción iterativa usada[1].

2. BUCLE MIENTRAS CONTROLADO POR CENTINELA


El diseño de un bucle mientras basado en un valor centinela se hace para controlar la
ejecución de un boque de instrucciones mientras el valor usado como centinela no sea
asumido o asignado a la variable de control.

Proceso repite_una_sola_vez
Definir suma Como Entero;
Definir f como Entero;
f <- 0;
Mientras f != 10 Hacer
suma <- suma + f;
Leer f;
FinMientras
Escribir "La sumatoria es: ", suma;
FinProceso

En el ejemplo anterior se ingresan valores por teclado y mientras el valor centinela no sea
ingresado la suma y captura de números continúa, es necesario recalcar que el valor

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 100

centinela debe ser asociado o comparado con la variable de control como constante o en
otra variable que vendría a ser la variable centinela[2].

Proceso repite_una_sola_vez
Definir suma Como Entero;
Definir f como Entero;
f <- 0;
Mientras suma <= 100 Hacer
suma <- suma + f;
Leer f;
FinMientras
Escribir "La sumatoria es: ", suma;
FinProceso

En el ejemplo anterior el valor centinela 100 es una constante numérica, la cual va a


controlar que mientras el valor de la sumatoria sea menor o igual a 100 se ejecutará el bucle
mientras.

Proceso repite_una_sola_vez
Definir suma Como Entero;
Definir f Como Entero;
Definir Centinela Como Entero;
Escribir "Ingrese el valor del centinela: ";
Leer Centinela;
f <- 0;
Mientras suma <= Centinela Hacer
suma <- suma + f;
Leer f;
FinMientras
Escribir "La sumatoria es: ", suma;
FinProceso

Hemos variado el proceso haciendo que una variable Centinela reciba su valor por teclado,
esto hará que el límite sea variable y el bucle más adaptable a otras condiciones.
Otra forma de aplicar esto es haciendo uso de una expresión lógico basada en igual(==),
donde el valor de la variable de control permanece invariable mientras se repita la ejecución
del bucle[2].

Proceso repite_una_sola_vez
Definir suma Como Entero;
Definir f Como Entero;
Definir Centinela Como Entero;
Centinela <- 10;
f <- 10;
Mientras f == Centinela Hacer
suma <- suma + f;
Leer f;
FinMientras
Escribir "La sumatoria es: ", suma;
FinProceso

3. BUCLE REPETIR … HASTA CONTROLADO POR CENTINELA


Para el caso de un bucle repetir… hasta el proceso de diseño lógico es el inverso al
desarrollado para el bucle repetir… hasta, debido esto a que el bucle tiene la condición
lógica inversa. El diseño de un bucle mientras basado en un valor centinela se hace para
controlar la ejecución de un boque de instrucciones hasta que el valor usado como centinela
sea asumido o asignado a la variable de control[3].

Proceso repite_hasta_que
Definir suma Como Entero;
Definir f como Entero;
f <- 0;
suma <- 0;

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 101

Repetir
suma <- suma + f;
Leer f;
Hasta Que f == 10
Escribir "La sumatoria es: ", suma;
FinProceso

En el ejemplo anterior se ingresan valores por teclado y hasta que el valor centinela no sea
ingresado(10) la suma y captura de números continúa, es necesario recalcar que el valor
centinela debe ser asociado o comparado con la variable de control como constante o en
otra variable que vendría a ser la variable centinela[3].

Proceso repite_hasta_que
Definir suma Como Entero;
Definir f como Entero;
f <- 0;
suma <- 0;
Repetir
suma <- suma + f;
Leer f;
Hasta Que suma >= 100
Escribir "La sumatoria es: ", suma;
FinProceso

En el ejemplo anterior el valor centinela 100 es una constante numérica, la cual va a


controlar hasta que el valor de la sumatoria sea mayor o igual a 100 se ejecutará el bucle
repetir…hasta.

Proceso repite_hasta_que
Definir suma Como Entero;
Definir f como Entero;
Definir Centinela Como Entero;
Escribir "Ingrese el valor del centinela: ";
Leer Centinela;
f <- 0;
suma <- 0;
Repetir
suma <- suma + f;
Leer f;
Hasta Que suma >= Centinela
Escribir "La sumatoria es: ", suma;
FinProceso

Hemos variado el proceso haciendo que una variable Centinela reciba su valor por teclado,
esto hará que el límite sea variable y el bucle más adaptable a otras condiciones.
Otra forma de aplicar esto es haciendo uso de una expresión lógico basada en igual(==),
donde el valor de la variable de control espera el valor señalado como centinela para
ejecutar una y otra vez el bloque de instrucciones subordinadas al bucle[4].

Proceso repite_hasta_que
Definir suma Como Entero;
Definir f como Entero;
Definir Centinela Como Entero;
Escribir "Ingrese el valor del centinela: ";
Leer Centinela;
f <- 0;
suma <- 0;
Repetir
suma <- suma + f;
Leer f;
Hasta Que f == Centinela
Escribir "La sumatoria es: ", suma;
FinProceso

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 102

4. RESUMEN
Las estructuras iterativas diseñadas bajo la estrategia de centinela requieren de un inicio o
inicialización y un límite establecido donde la variable de control debe tener un valor que
permita que el bucle se pueda ejecutar al inicio, la progresión debe permitir que la variable
de control itere progresivamente y de forma fija des el limite inicial hasta el límite final.
Un bucle mientras o repetir…hasta son ideales para ejecutar un proceso o un conjunto de
instrucciones un número determinado y ya conocido de veces, la variable de control que
usemos nos ayudará a control ese número de iteraciones que deben ser ejecutadas[4].

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecute el programa PSeInt.
4. Construya los siguientes algoritmos en el programa PSeInt:
a) Aceptar un número por teclado y luego ingresar la cantidad de números que indica
dicho número, sumarlos y mostrar el resultado de la suma por pantalla.

V
EJERCICIOS

1. Elaborar un algoritmo en pseudocódigo para que se ingrese un número por teclado y a


continuación se muestre su factorial por pantalla.
2. Elaborar un algoritmo en pseudocódigo para que se ingrese dos números por teclado y a
continuación se muestre los números primos entre ellos.

VI
CUESTIONARIO

1. ¿Qué es una instrucción de iterativa o de bucle?


2. ¿Qué tipos de instrucciones iterativas existen?
3. ¿Qué es la instrucción iterativa para?
4. ¿Cómo se implementa la instrucción iterativa para?
5. ¿Cuántas veces como mínimo se ejecuta la instrucción para?
6. ¿Cuándo la instrucción para no se ejecuta ni una sola vez?
7. ¿Cuándo la instrucción para no deja de ejecutarse nunca?
8. ¿Qué debe tener la instrucción para para dejar de ejecutarse?
9. ¿Qué elementos debe tener la instrucción iterativa para para ejecutarse?
10. ¿Cuándo debemos anidar instrucciones condicionales?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 103

[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y


programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 104

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 22:

Instrucciones Iterativas VI

I
OBJETIVOS

 Introducir al alumno la modificación y gestión de bucles de diferente tipo.


 Aplicar los bucles de diferente forma y estilo.
 Diferenciar los tipos de bucles sus ventajas y desventajas.
 Diseñar bucles infinitos, controlados por banderas y contadores.

II
TEMAS A TRATAR

 Introducción.
 Bucle para controlado por bandera
 Bucle mientras controlado por bandera
 Bucle repetir…hasta controlado por bandera
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
En las anteriores prácticas hemos realizado el control de los bucles basados en una variable
contador, variable o valor centinela y finalmente veremos cómo se hace con una variable
bandera.
A diferencia de las estrategias anteriores podemos hacer que una variable asuma estados,
es decir verdadero o falso, o en su defecto tres o más estados asociados con el proceso
que estamos realizando, esta estrategia es ideal para trabajar con bucle mientras y repetir
… hasta, pero la usaremos también para bucles para[1].

2. BUCLE PARA CONTROLADO POR BANDERA


Las instrucciones iterativas representan la ejecución de una instrucción o de un bloque de
instrucciones en más de una vez, en este caso una instrucción repetitiva para representa
una ejecución de un número fijo de veces, pero aun así podemos hacer que se ejecute un
número indeterminado de veces, como se muestra a continuación[2].

Proceso repite_hasta_que
Definir suma Como Entero;
Definir f como Entero;
Definir dato como Entero;
Definir Bandera Como Logico;
Bandera <- falso;
f <- 0;
suma <- 0;
dato <- 0;
Para f<-0 Hasta 3 Con Paso 1 Hacer
suma <- suma + dato;
Leer dato;
Si dato > 100 Entonces

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 105

Bandera <- Verdadero;


FinSi
Si Bandera == Verdadero Entonces
f <- 3;
Sino
f <- 0;
FinSi
FinPara
Escribir "La sumatoria es: ", suma;
FinProceso

Como podemos apreciar en el ejemplo anterior forzamos a un bucle para a comportarse


bajo los cánones de un bucle controlado por una variable bandera. Al usar las instrucciones
condicionales dentro del bucle hacemos que el bucle se ejecute indefinidamente[3].

3. BUCLE MIENTRAS CONTROLADO POR BANDERA


Para los bucles mientras el proceso de controlar la ejecución con una variable tipo bandera
es mucho más simple y natural, aquí la variable de control es la misma variable bandera por
lo que la podemos colocar en la estructura del bucle de forma normal4v.

Proceso repite_hasta_que
Definir suma Como Entero;
Definir dato como Entero;
Definir Bandera Como Logico;
Bandera <- falso;
f <- 0;
suma <- 0;
dato <- 0;
Mientras Bandera == Falso Hacer
suma <- suma + dato;
Leer dato;
Si dato > 100 Entonces
Bandera <- Verdadero;
FinSi
FinMientras
Escribir "La sumatoria es: ", suma;
FinProceso

Como se ve en el ejemplo no tenemos que forzar el mecanismo, solo cambiar el valor de la


bandera cuando sea necesario.
La variable puede asumir más de dos estado para representar situaciones diferentes.

Proceso repite_hasta_que
Definir suma Como Entero;
Definir dato como Entero;
Definir Bandera Como Entero;
Bandera <- 0;
suma <- 0;
dato <- 0;
Mientras Bandera == 0 | Bandera == 1 Hacer
suma <- suma + dato;
Leer dato;
Si dato > 100 Entonces
Bandera <- 2;
SiNo
Bandera <- 1;
FinSi
FinMientras
Escribir "La sumatoria es: ", suma;
FinProceso

En este último ejemplo vemos que la variable bandera ejecuta el bucle mientras sean su
valor 0 ó 1. La variable asume tres estados distintos, no hay una relación lógica de los tres
estados por lo corto del código.

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 106

4. BUCLE REPETIR … HASTA CONTROLADO POR BANDERA


El mecanismo es similar que en el bucle mientras, debemos tener en cuenta que la lógica
de funcionamiento es inversa[4].

Proceso repite_hasta_que
Definir suma Como Entero;
Definir dato como Entero;
Definir Bandera Como Entero;
Bandera <- 0;
suma <- 0;
dato <- 0;
Repetir
suma <- suma + dato;
Leer dato;
Si dato > 100 Entonces
Bandera <- 2;
SiNo
Bandera <- 1;
FinSi
Hasta Que Bandera == 2
Escribir "La sumatoria es: ", suma;
FinProceso

5. RESUMEN
Las estructuras iterativas para requieren de un inicio o inicialización y un límite establecido
donde la variable de control debe tener un valor que permita que el bucle se pueda ejecutar
al inicio, la progresión debe permitir que la variable de control itere progresivamente y de
forma fija des el limite inicial hasta el límite final.
Un bucle para es ideal para ejecutar un proceso o un conjunto de instrucciones un número
determinado y ya conocido de veces, pero podemos hacer que el contador que progresa
automáticamente decremente en cada vuelta y se asigne el valor final si la variable de
control de hace falsa.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecute el programa PSeInt.
4. Construya los siguientes algoritmos en el programa PSeInt:
a) Aceptar un número por teclado y luego ingresar la cantidad de números que indica
dicho número, sumarlos y mostrar el resultado de la suma por pantalla, usando el
control con variable bandera.

V
EJERCICIOS

1. Elaborar un algoritmo en pseudocódigo para que se ingrese un número por teclado y a


continuación se muestre su factorial por pantalla, usando el control con variable bandera.
2. Elaborar un algoritmo en pseudocódigo para que se ingrese dos números por teclado y a
continuación se muestre los números primos entre ellos, usando el control con variable
bandera.

VI

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 107

CUESTIONARIO

1. ¿Qué es una instrucción de iterativa o de bucle?


2. ¿Qué tipos de instrucciones iterativas existen?
3. ¿Qué es la instrucción iterativa para?
4. ¿Cómo se implementa la instrucción iterativa para?
5. ¿Cuántas veces como mínimo se ejecuta la instrucción para?
6. ¿Cuándo la instrucción para no se ejecuta ni una sola vez?
7. ¿Cuándo la instrucción para no deja de ejecutarse nunca?
8. ¿Qué debe tener la instrucción para para dejar de ejecutarse?
9. ¿Qué elementos debe tener la instrucción iterativa para para ejecutarse?
10. ¿Cuándo debemos anidar instrucciones condicionales?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 108

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 23:

Revisión de Pseudocódigo

I
OBJETIVOS

 Introducir al alumno la modificación y gestión de bucles de diferente tipo.


 Aplicar los bucles de diferente forma y estilo.
 Diferenciar los tipos de bucles sus ventajas y desventajas.
 Diseñar bucles infinitos, controlados por banderas y contadores.

II
TEMAS A TRATAR

 Introducción.
 Estructuras iterativas
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
Los diagramas de flujo son muy útiles para aprender la lógica de la programación, sin
embargo carecen de un pequeña característica que hace que tengamos que aprender más
con otros recursos, los programas son implementados en lenguajes de programación que no
guardan mucha relación con elementos gráficos, sino más bien con expresiones de lenguaje
natural con reglas especiales, por lo que para hacernos una mejor idea en el desarrollo de la
lógica de programación tendremos que hacer uso de recursos de descripción de la
codificación diferentes, a este tipo de recursos se le conoce como pseudocódigo, y es muy
útil porque se utiliza lenguaje natural con características de reglas similares a los lenguajes
de programación convencionales, este tipo de recurso lo utilizaremos con un intérprete de
pseudocódigo que nos permitirá ejecutar los programas hechos en pseudocódigo[1].

2. PSEUDOCÓDIGO
El pseudocódigo (falso lenguaje) es una descripción de alto nivel de un algoritmo que emplea
una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes
de programación, como asignaciones, ciclos y condicionales. Es utilizado para describir
algoritmos en libros y publicaciones científicas, y como producto intermedio durante el
desarrollo de un algoritmo.

A. INSTRUCCIONES SECUENCIALES
Son aquellas que se ejecutan una después de otra. Se tienen tres tipos de instrucciones
secuenciales: la declaración de variables, asignación, instrucción Leer e instrucción
Escribir[1].
La mayoría de algoritmos actúan sobre un conjunto de datos suministrados por el usuario y
se espera que a partir de dichos valores y desarrollando los procesos programados se genere
información de salida o resultados.

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 109

a) DECLARACIÓN DE VARIABLES
Teniendo en cuenta la compatibilidad con la mayoría de los lenguajes, se recomienda que
desde el diseño del programa se utilice una forma determinada para la declaración de las
variables. Esta consiste en escribir el tipo de datos y la lista de identificadores que se tendrán
de dicho tipo, separando cada identificador por medio de comas (,). Para mejorar la claridad
de la declaración se puede colocar dos puntos (:) para separar el tipo de datos de la lista de
identificadores[2].
Ejemplo:

Entero: edad
Real: estatura, peso, sueldo
Cadena: nombre, dirección

Aunque algunos lenguajes de programación permiten declarar las variables en el momento


en que se las necesita, es aconsejable, en favor de los buenos hábitos de programación,
siempre declarar las variables antes de utilizarlas y el sitio más adecuado es el inicio del
programa o de la función[3].

b) ASIGNACIÓN
Asignar un valor a, una variable equivale a decir que se guarda dicho valor en la posición de
memoria reservado para la variable en mención, debido a esto para realizarlo es necesario
primero haber declarado una variable, con lo cual se reserva un espacio de memoria
suficiente para guardar un dato del tipo especificado[2].

Variable = expresión

Donde la expresión puede estar formada por un valor, por un conjunto de valores y
operadores o por una función.

c) INSTRUCCIÓN LEER
Se utiliza para enviar información desde un dispositivo de entrada de datos hacia la memoria.
En la memoria los datos son ubicados mediante el identificador (nombre de variable) utilizado
como complemento de la instrucción Leer.

Leer <lista de identificadores de variables>

d) INSTRUCCIÓN ESCRIBIR
Permite enviar datos desde la memoria hacia un dispositivo de salida como la pantalla o la
impresora. La información que se envía puede ser constante o también el contenido de
variables.

Escribir <lista de constantes y variables>

B. INSTRUCCIONES CONDICIONALES
En la redacción del pseudocódigo se utiliza tres tipos de instrucciones condicionales, las
condicionales simples, las condicionales dobles y las condicionales múltiples[4].

C. ESTRUCTURAS CONDICIONAL O SELECTIVA SIMPLE


Las instrucciones selectivas representan instrucciones que pueden o no ejecutarse, según el

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 110

cumplimiento de una condición P o expresión lógica.

Si <expresion_logica> Entonces
acciones_por_verdadero
FinSi

La condición P es una expresión booleana. Instrucciones1 es ejecutada sólo si la condición


es verdadera.

Si x=y Entonces
x<-a+1;
FinSi

D. ESTRUCTURA CONDICIONAL O SELECTIVA DOBLE


(ALTERNATIVA)
La instrucción selectiva realiza una instrucción de dos posibles, según el cumplimiento de
una condición P o expresión lógica.

Si expresion_logica Entonces
acciones_por_verdadero
Sino
acciones_por_falso
FinSi

La condición P es una variable booleana o una función reducible a booleana (lógica,


Verdadero/Falso). Si esta condición es cierta se ejecuta Instrucciones1, si no es así, entonces
se ejecuta Instrucciones2.

Si x=y Entonces
x<-y;
Sino
y<-x;
FinSi

E. ESTRUCTURA CONDICIONAL O SELECTIVA MÚLTIPLE


También es común el uso de una selección múltiple que equivaldría a anidar varias funciones
de selección, este tipo de instrucción evalúa el valor de la variable y según su valor toma un
camino entre los mostrados como opciones:

Segun variable_numerica Hacer


opcion_1:
secuencia_de_acciones_1
opcion_2:
secuencia_de_acciones_2
opcion_3:
secuencia_de_acciones_3
De Otro Modo:
secuencia_de_acciones_dom
FinSegun

La estructura se podría codificar de esta forma:

Leer x;
Segun x Hacer
1:
x<-1;

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 111

2:
x<-2;
3:
x<-3;
De Otro Modo:
x<-5;
FinSegun
Escribir x;

F. INSTRUCCIONES ITERATIVAS

a) BUCLE MIENTRAS
El bucle(ciclo) mientras(while) se repite mientras la condición P sea cierta, si al llegar por
primera vez al bucle mientras la condición es falsa, el cuerpo del bucle no se ejecuta ni una
sola vez, si es verdadera ingresa al bloque de instrucciones dentro del bucle y las ejecuta
una y otra vez, en cada inicio de ciclo se verifica primero que la expresión condicional P es
verdadera, de serlo se ejecuta el ciclo una vez más, de ser falsa se abandona el bucle
mientras y se continua con la instrucción inmediatamente posterior.

Mientras expresion_logica Hacer


secuencia_de_acciones
FinMientras

Las instrucciones iterativas representan la ejecución de una instrucción o de un bloque de


instrucciones en más de una vez. Es decir que su número consecutivo es ejecuciones es de
uno o más, dependiendo claro de la estructura y naturaleza de la condición.

b) BUCLE PARA
El bucle(ciclo) para(for) es una estructura repetitiva que se ejecuta de preferencia un número
determinado de veces, en la instrucción se establece un punto de inicio y un límite que
determina el final de las iteraciones, en la mayoría de los lenguajes de programación la
progresión es fija y controlada a través de variables que forman parte de la estructura del
bucle, se utiliza de preferencia cuando se sabe el número de veces que dará vueltas el
proceso.

Para variable_numerica<-valor_inicial Hasta valor_final Con Paso paso Hacer


secuencia_de_acciones
FinPara

c) BUCLE REPETIR
El bucle(ciclo) repetir…hasta(repeat … until) es una estructura repetitiva que se ejecuta un
número indeterminado de veces, se diferencia de las anteriores debido a que primero se
ejecuta por lo menos una vez y luego se vuelve a ejecutar una o más iteraciones en función
del cumplimiento de la condición formulada, la instrucción o bloque de instrucciones
subordinado se repite hasta que la condición o expresión lógica de control sea verdadera,
esto es completamente inverso a la instrucción Mientras.

Repetir
secuencia_de_acciones
Hasta Que expresion_logica

3. RESUMEN
La codificación en pseudocódigo desarrolla en el estudiante la capacidad de abstraer el

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 112

código de una forma más simplificada, y ausente de todas las restricciones léxico sintácticas
que aplica un lenguaje de programación de alto nivel.
Las estructuras iterativas para requieren de un inicio o inicialización y un límite establecido
donde la variable de control debe tener un valor que permita que el bucle se pueda ejecutar
al inicio, la progresión debe permitir que la variable de control itere progresivamente y de
forma fija des el limite inicial hasta el límite final.
Un bucle para es ideal para ejecutar un proceso o un conjunto de instrucciones un número
determinado y ya conocido de veces, la variable de control que usemos nos ayudará a control
ese número de iteraciones que deben ser ejecutadas.

IV
(La práctica tiene una duración de 2 horas) ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecute el programa PSeInt.
4. Construya los siguientes algoritmos en el programa PSeInt:
a) Aceptar un número por teclado y que se muestre por pantalla si es positivo.
b) Ingresar dos números y que se muestre al mayor por pantalla.

V
EJERCICIOS

1. Elaborar un algoritmo en pseudocódigo para que se muestre por pantalla al menor, al mayo
o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en pseudocódigo que nos permita visualizar en pantalla un
menú de opciones, haciendo uso de las condicionales múltiples.

VI
CUESTIONARIO

1. ¿Qué es una instrucción de iterativa o de bucle?


2. ¿Qué tipos de instrucciones iterativas existen?
3. ¿Qué es la instrucción iterativa para?
4. ¿Cómo se implementa la instrucción iterativa para?
5. ¿Cuántas veces como mínimo se ejecuta la instrucción para?
6. ¿Cuándo la instrucción para no se ejecuta ni una sola vez?
7. ¿Cuándo la instrucción para no deja de ejecutarse nunca?
8. ¿Qué debe tener la instrucción para para dejar de ejecutarse?
9. ¿Qué elementos debe tener la instrucción iterativa para para ejecutarse?
10. ¿Cuándo debemos anidar instrucciones condicionales?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw Hill,
1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 113

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 24:

Introducción a Python

I
OBJETIVOS

 Introducir al alumno en la creación y especificación de programas en Lenguaje Python.


 Aplicar las instrucciones de Lenguaje Python para crear aplicaciones.
 Diferenciar las instrucciones de Lenguaje Python de las de pseudocódigo.
 Diseñar programas con Lenguaje Python.
II
TEMAS A TRATAR

 Introducción.
 Usando el intérprete de Python
 El intérprete y su entorno
 Usar Python como una calculadora
 Primeros pasos hacia la programación
 Resumen.
III
MARCO TEORICO

1. INTRODUCCIÓN
El Lenguaje Python es un recurso poderoso para la programación, es simple, fáciol de usar
y tiene a su vez capacidades de abstracción y soporta el paradigma orientado a objetos,
posee gran cantidad de compiladores para diversas plataformas, asu vez el ser simple y
elegante en su estructura y permitir múltiples estructuras de datos lo hace idal para el
scripting por ser interpretado[1]. Python es un lenguaje interpretado, su intérprete posee una
vasta biblioteca de carácter libre a disposición del programador para resolver m últiples
problemas de programación. La programación en Python va en aumento sobre todo por la
simplicidad de abstracción que posee el lenguaje[1].

2. EL INTÉRPRETE DE PYTHON

A. EJECUTANDO EL INTÉRPRETE
En computadoras con la familia de SO Windows, la instalación de Python suele en
encontrarse en C:\Python27, durante la instalación se debe especificar el directorio de
destino y puede que se haya cambiado. Podemos añadir el directorio al path o camino, se
debe ingresar el siguiente comando en el prompt de DOS:

set path=%path%;C:\python34

Para ejecutar el Shell de Python hacer clic en el botón Inicio y luego en Buscar Programas
y archivos escribir Python y al aparecer el Shell darle enter[2]. Para salir del intérprete se
ingresa el carácter de fin de archivo (Control-D en Unix, Control-Z en Windows) en el prompt

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 114

primario. De lo contrario ingresando: quit()[1].

B. EL MODO INTERACTIVO
En este modo se muestra el prompt primario, usualmente tres signos mayor-que (>>>). Antes
de mostrar el prompt primario, el intérprete muestra un mensaje de bienvenida reportando su
número de versión y una nota de copyright:

C:\Users\Alumno>python
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information. >>>

3. EL INTÉRPRETE Y SU ENTORNO

A. CODIFICACIÓN DEL CÓDIGO FUENTE


Los archivos fuente de Python son codificados en UTF-8 por defecto.

B. USAR PYTHON COMO UNA CALCULADORA


Vamos a probar algunos comandos simples en Python

C. NÚMEROS
El intérprete actúa como una simple calculadora; se ingresan expresiones y este escribirá los
valores. La sintaxis es sencilla: los operadores +, -, * y / funcionan como para cualquier
lenguaje; los paréntesis (()) se usan para agrupar[3]. Por ejemplo:

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5 # la división retorna un punto flotante
1.6

La división (/) siempre retorna un punto flotante. En Python, se calcula potencias con **:

>>> 5 ** 2 # 5 al cuadrado
25
>>> 2 ** 7 # 2 a la potencia de 7
128

Con el signo igual (=) se asigna un valor a la variable. Ningún resultado es visto antes del
siguiente prompt:

>>> ancho = 20
>>> largo = 5 * 9
>>> ancho * largo
900

Se produce un error si se usa una variable no “definida” (con un valor asignado).

>>> n # tratamos de acceder a una variable no definida


Traceback (most recent call last):
File "<stdin>", line 1, in <module>

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 115

NameError: name 'n' is not defined

D. CADENAS DE CARACTERES
El lenguaje Python puede tratar cadenas de caracteres o texto, se expresan de distintas
formas. Pueden estar limitadas en comillas simples ('...') o dobles ("...") con el mismo
resultado. \ se usa como secuencia de escape de las comillas[4]:

>>> 'huevos y pan' # comillas simples


'huevos y pan'
>>> 'doesn\'t' # usa \' para escapar comillas simples...
"doesn't"
>>> "doesn't" # ...o de lo contrario usa comillas doblas "doesn't"
>>> '"Si," le dijo.'
'"Si," le dijo.'
>>> "\"Si,\" le dijo."
'"Si," le dijo.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'

Para el intérprete interactivo, la visualización de cadenas está agrupada en comillas y los


caracteres especiales se indican en secuencia de escape con barras invertidas:

>>> '"Isn\'t," she said.'


'"Isn\'t," she said.'
>>> print('"Isn\'t," she said.') "Isn't," she said.
>>> s = 'Primerea línea.\nSegunda línea.' # \n significa nueva línea
>>> s # sin print(), \n es incluído en la salida
'Primera línea.\nSegunda línea.'
>>> print(s) # con print(), \n produce una nueva línea Primera línea.
Segunda línea.

Si no se quiere que los caracteres antepuestos por \ sean interpretados como caracteres
especiales, se puede usar cadenas crudas agregando una r antes de la primera comilla:

>>> print('C:\algun\nombre') # aquí \n significa nueva línea! C:\algun ombre


>>> print(r'C:\algun\nombre') # nota la r antes de la comilla C:\algun\nombre

Las cadenas de caracteres pueden tener múltiples líneas de texto. Por ejemplo:

print("""\ Uso: algo [OPTIONS]


-h Muestra el mensaje de uso
-H nombrehost Nombre del host al cual conectarse """)

Produce la siguiente salida: (nota que la línea inicial no está incluida)

Uso: algo [OPTIONS]


-h Muestra el mensaje de uso
-H nombrehost Nombre del host al cual conectarse
Las cadenas de texto concatenan con +:

>>> # 3 veces 'un', seguido de 'ium'


>>> 3 * 'un' + 'ium'
'unununium'

4. PRIMEROS PASOS HACIA LA PROGRAMACIÓN


Ejemplo de lenguaje Python para la serie de Fibonacci así:

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 116

>>> # Series de Fibonacci:


... # la suma de dos elementos define el siguiente ... a, b = 0, 1 >>> while
b < 10:
... print(b) ... a, b = b, a+b ... 1
1
2
3
5
8

La función print() se usa para escribir el valor de el o los argumentos que se le pasan.

>>> i = 256*256
>>> print('El valor de i es', i)
El valor de i es 65536

El parámetro nombrado end puede usarse para evitar el salto de línea al final de la salida, o
terminar la salida con una cadena diferente:

>>> a, b = 0, 1 >>> while b < 1000:


... print(b, end=',') ... a, b = b, a+b ...
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

5. RESUMEN
El lenguaje de Programación Python es simple, fácil de aprender e interpretado, permite
abstracciones de alto nivel con una gestión de tipos de datos primitivos y agregados. La
simplicidad de su estructura y estilo de codificación permite la construcción de software muy
complejo y útil a la vez.

IV
(La práctica tiene una duración de 2 horas) ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el intérprete del Lenguaje Python.
4. Realice los ejercicios planteados por el docente.
V
EJERCICIOS

1. Modifique el diagrama del punto 3 para que se pueda definir por teclado la cantidad de
números a ingresar usando la instrucción while.
2. Modifique el diagrama del punto 4 para que se muestren los números impares entre un límite
inferior y un límite superior definidos por teclado usando la instrucción while.
VI
CUESTIONARIO

1. ¿Qué es un lenguaje de programación?


2. ¿Cuáles son las principales características del lenguaje de programación Python?
3. ¿Qué es un intérprete?
4. ¿Cómo se ejecuta el intérprete del lenguaje Python?
5. ¿Cómo procesa los datos numéricos el lenguaje Python?
6. ¿Cómo procesa los datos alfabéticos el lenguaje Python?

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 117

7. ¿Cómo las operaciones aritméticas el lenguaje Python?


8. ¿Qué son los tipos de datos integrados?
9. ¿Cuáles son los tipos de datos integrados en el Lenguaje de Programación Python?
10. ¿Qué es una cadena de caracteres?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw Hill,
1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 118

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 25:

Instrucciones de Control en Python

I
OBJETIVOS

 Introducir al alumno en la creación y especificación de programas en Lenguaje Python.


 Aplicar las instrucciones de control en Lenguaje Python para crear aplicaciones.
 Diferenciar las instrucciones de control en Lenguaje Python de las de pseudocódigo.
 Diseñar instrucciones de control con Lenguaje Python.
II
TEMAS A TRATAR

 Introducción.
 Usando el intérprete de Python
 El intérprete y su entorno
 Primeros pasos hacia la programación
 Resumen.

III
MARCO TEORICO

1. INTRODUCCIÓN
El Lenguaje Python es un recurso poderoso para la programación, es simple, fácil de usar y
tiene a su vez capacidades de abstracción y soporta el paradigma orientado a objetos, posee
gran cantidad de compiladores para diversas plataformas, a su vez el ser simple y elegante
en su estructura y permitir múltiples estructuras de datos lo hace ideal para el scripting por
ser interpretado[1].
Python es un lenguaje interpretado, su intérprete posee una vasta biblioteca de carácter libre
a disposición del programador para resolver múltiples problemas de programación.
Las instrucciones condicionales o de control siempre guardan una estructura simple, doble y
múltiple, en casi todos los lenguajes de programación los condicionales se basan en if else,
los condicionales múltiples se diferencian entre algunos lenguajes, la mayoría usa la
instrucción switch pero Python usa otro tipo de estrategia para esto[2].

2. IF ... ELIF ... ELSE


Una sentencia else se puede combinar con una sentencia if. Una sentencia else contiene el
bloque de código que se ejecuta si la expresión condicional en la sentencia if se resuelve a
0 o un valor FALSO.
La sentencia else es una declaración opcional y puede haber como máximo una sola
sentencia else siguiente if.
Sintaxis-

if expression:
statement(s)

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 119

else:
statement(s)

Ejemplo

var1 = 100
if var1:
print "1 - Got a true expression value"
print var1
else:
print "1 - Got a false expression value"
print var1
var2 = 0
if var2:
print "2 - Got a true expression value"
print var2
else:
print "2 - Got a false expression value"
print var2

print "Good bye!".

3. LA SENTENCIA ELIF
La declaración elif le permite comprobar múltiples expresiones de TRUE y ejecutar un bloque
de código tan pronto como una de las condiciones evalúa como TRUE.
Al igual que el otro, la declaración elif es opcional. Sin embargo, a diferencia de los demás,
para los cuales no puede haber a lo sumo una declaración, no puede haber un número
arbitrario de declaraciones elif tras un if[3].
Sintaxis

if expression1:
statement(s)
elif expression2:
statement(s)
elif expression3:
statement(s)
else:
statement(s)

El Core Python no proporciona sentencias switch o de caso como en otros lenguajes, pero
podemos utilizar if..elif ... declaraciones para simular caso del interruptor de la siguiente
manera[4]. Ejemplo

var = 100
if var == 200:
print "1 - Got a true expression value"
print var
elif var == 150:
print "2 - Got a true expression value"
print var
elif var == 100:
print "3 - Got a true expression value"
print var
else:
print "4 - Got a false expression value"
print var

print "Good bye!"

IV

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 120

(La práctica tiene una duración de 2 horas) ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecutar el intérprete del Lenguaje Python.
4. Realice los ejercicios planteados por el docente.

V
EJERCICIOS

1. Modifique el diagrama del punto 3 para que se pueda definir por teclado la cantidad de
números a ingresar usando la instrucción while.
2. Modifique el diagrama del punto 4 para que se muestren los números impares entre un límite
inferior y un límite superior definidos por teclado usando la instrucción while.

VI
CUESTIONARIO

1. ¿Qué es un lenguaje de programación?


2. ¿Cuáles son las principales características del lenguaje de programación Python?
3. ¿Qué es un intérprete?
4. ¿Cómo se ejecuta el intérprete del lenguaje Python?
5. ¿Cómo procesa los datos numéricos el lenguaje Python?
6. ¿Cómo procesa los datos alfabéticos el lenguaje Python?
7. ¿Cómo las operaciones aritméticas el lenguaje Python?
8. ¿Qué son los tipos de datos integrados?
9. ¿Cuáles son los tipos de datos integrados en el Lenguaje de Programación Python?
10. ¿Qué es una cadena de caracteres?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw Hill,
1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995.

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 121

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 26:

Bucle For en Python

I
OBJETIVOS

 Aplicar el bucle for y sus características en el diseño de bucles en un programa.


 Comprender los mecanismos de manejo de bucles a través de la instrucción for.
 Implementar código bien estructurado aplicando la instrucción for.

II
TEMAS A TRATAR

 Introducción.
 Bucle for
 Contadores y acumuladores
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
El bucle for(PARA) o ciclo for es una estructura de programación iterativa en la que podemos
definir el número de veces en se debe repetir un bloque de código subordinado a este.
La principal diferencia de un bucle for con respecto a los bucles MIENTRAS Y REPETIR, es
que puede determinarse al comienzo del bucle cuántas veces se iterará el mismo, lo cual
muchas veces puede redundar en una optimización del código por parte de los compiladores.
Los condicionales constituyen junto con los bucles los pilares de la programación
estructurada, y su uso es una evolución de una sentencia de lenguaje ensamblador que
ejecutaba la siguiente línea o no en función del valor de una condición[1].
El bucle for se ha convertido en el bucle más ampliamente utilizado en la programación, ya
que con la evolución de los lenguajes la mayoría de las condiciones de fin.

2. BUCLE FOR
Un blucle for es una instrucción iterativa que se ejecuta el número n de veces que especifica
la instrucción cada vuelta es una iteración y las instrucciones subordinadas son llamadas
cuerpo del bucle[2].
La sintaxis de un bucle for en Python:
for variable in elemento recorrible (lista, cadena, range, etc.): cuerpo
del bucle

La variable de control se ejecuta con el bucle y el rango se determina en el propio bucle. Por
ejemplo:

from __future__ import print_function


print("Comienzo") for i in [0, 1, 2]: print("Hola ", end = " ") print()

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 122

print("Final")

En el ejemplo anterior, se puede modificar así:

from __future__ import print_function print("Comienzo") for i in [1, 1, 1]:


print("Hola ", end="") print() print("Final")

Si la lista está vacía, el bucle no se ejecuta ninguna vez. Por ejemplo:

from __future__ import print_function print("Comienzo") for i in []:


print("Hola ", end="") print() print("Final")

La variable de control se puede usar para operar dentro del bucle:

print("Comienzo") for i in [3, 4, 5]: print("Hola. Ahora i vale", i, "y su


cuadrado", i ** 2) print("Final")

Las listas de biucles for puede contener cualquier dato la ejecución dura lo que duren los
elementos[3]. Por ejemplo:

print("Comienzo") for i in ["Alba", "Benito", 27]: print("Hola. Ahora i


vale", i) print("Final")

3. CONTADORES Y ACUMULADORES
Son variables que llevan la cuenta de cuantas veces se ejecutó un proceso, se incrementan
de uno en uno o variables que hacen sumatorias[4].

A. CONTADOR
Cuenta en uno es decir le suma uno por cada vuelta:

print("Comienzo") suma = 0 for i in [1, 2, 3, 4]:


suma = suma + i
print("La suma de los números de 1 a 4 es", suma)

4. RESUMEN
Llegados a este punto debemos recordar que, como veremos en los ejemplos, las
excepciones generadas pueden ser de diverso tipo (según el tipo de error), y que también
pueden existir diversos manejadores. De hecho se debe incluir el manejador correspondiente
a cada excepción que se pueda generar.

IV
(La práctica tiene una duración de 2 horas) ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Elaborar un programa en lenguaje Python que nos permita ingresar un número entero y luego
imprima los valores enteros entre 0 y el valor ingresado.

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Metodología de la Programación Página 123

V
EJERCICIOS

1. Diseñar y codificar un programa en Python que compruebe si un número es primo.

VI
CUESTIONARIO

1. ¿Qué es una instrucción iterativa?


2. ¿Qué es una instrucción iterativa for?
3. ¿Cuál es la estructura de una instrucción iterativa for en python?
4. ¿Cómo se diseña un bucle con una instrucción iterativa for?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw Hill,
1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995
.

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 124

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 27:

Bucle While en Python

I
OBJETIVOS

 Aplicar el bucle while y sus características en el diseño de bucles en un programa.


 Comprender los mecanismos de manejo de bucles a través de la instrucción while.
 Implementar código bien estructurado aplicando la instrucción while.

II
TEMAS A TRATAR

 Introducción.
 Bucle while
 Bucles infinitos
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
Las instrucciones iterativas tienen diferentes propósitos, en un caso se requiérela ejecución
de un número determinado de veces y en otros un número variable de veces, cuando se
trata de un número variable de veces existen muchas estrategias como lo vimos en los
pseudocódigos, pero aparte debemos recordar que la estructura tiene tres elementos como
son el control, la progresión y la inicialización.
El bucle while en python es mucho más simple que en otros lenguajes, recordemos que se
hace uso de la indentación para indicar la subordinación del bloque y aparte los dos puntos
seguidos a la expresión de control para indicar el inicio de del bloque subordinado[1].
Dentro del bucle se debe poseer un mecanismo que haga que en el momento preciso o
indicado la condición de ejecución para el bucle sea falsa, para que de esta forma el bucle
termine, si esto no se diseña de esta forma acabaremos teniendo un bucle sin fin. Es posible
también terminar la ejecución de un bucle haciendo uso de la instrucción break.

2. BUCLE WHILE
Un bucle while permite repetir la ejecución de un grupo de instrucciones mientras se cumpla
una condición (es decir, mientras la condición tenga el valor True) [2] .
La sintaxis del bucle while es la siguiente:

while condicion: cuerpo del bucle

Cuando llega a un bucle while, Python evalúa la condición y, si es cierta, ejecuta el cuerpo
del bucle. Una vez ejecutado el cuerpo del bucle, se repite el proceso (se evalúa de nuevo
la condición y, si es cierta, se ejecuta de nuevo el cuerpo del bucle) una y otra vez mientras
la condición sea cierta. Únicamente cuando la condición sea falsa, el cuerpo del bucle no

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 125

se ejecutará y continuará la ejecución del resto del programa.


La variable o las variables que aparezcan en la condición se suelen llamar variables de
control. Las variables de control deben definirse antes del bucle while y modificarse en el
bucle while[3].
Por ejemplo, el siguiente programa escribe los números del 1 al 3:

i = 1 while i <= 3: print(i) i += 1 print("Final")

El ejemplo anterior se podría haber programado con un bucle for. La ventaja de un bucle
while es que la variable de control se puede modificar con mayor flexibilidad, como en el
ejemplo siguiente:

i = 1 while i <= 50: print(i) i = 3*i + 1 print("Final")

Otra ventaja del bucle while es que el número de iteraciones no está definida antes de
empezar el bucle, por ejemplo porque los datos los proporciona el usuario. Por ejemplo, el
siguiente ejemplo pide un número positivo al usuario una y otra vez hasta que el usuario lo
haga correctamente[4]:

numero = int(input("Escriba un número positivo: ")) while numero < 0:


print("¡Ha escrito un número negativo! Inténtelo de nuevo") numero =
int(input("Escriba un número positivo: ")) print("Gracias por su
colaboración")

3. BUCLES INFINITOS
Si la condición del bucle se cumple siempre, el bucle no terminará nunca de ejecutarse y
tendremos lo que se denomina un bucle infinito[3].
Los bucles infinitos deben evitarse pues significan perder el control del programa. Para
interrumpir un bucle infinito, hay que pulsar la combinación de teclas Ctrl+C. Al interrumpir
un programa se mostrará un mensaje de error similar a éste:

Traceback (most recent call last): File "ejemplo.py", line 3, in <module>


print(i) KeyboardInterrupt

Por desgracia, es fácil programar involuntariamente un bucle infinito, por lo que es inevitable
hacerlo de vez en cuando, sobre todo cuando se está aprendiendo a programar.
Estos algunos ejemplos de bucles infinitos:
 El programador ha olvidado modificar la variable de control dentro del bucle y el
programa imprimirá números 1 indefinidamente:

i = 1 while i <= 10: print(i, "", end="")

 El programador ha escrito una condición que se cumplirá siempre y el programa


imprimirá números consecutivos indefinidamente:

i = 1 while i > 0:
print(i, "", end="") i += 1

4. RESUMEN
Un bucle while se diseña en lenguaje python en función del cumplimiento de una expresión
lógica, el valor de esa expresión lógica puede ser true para indicar que dicho bucle se
ejecute siempre y dentro del bucle diseñar un mecanismo de finalización, el mecanismo de
finalización puede ser un contador que al llegar a un límite convierte en falas la expresión
lógica, o el ingreso desde teclado de un valor que hace que la expresión lógica sea falsa, o

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 126

también el resultado de alguna operación ya sea matemática o de otro tipo, también es


posible agregar al bucle una condicional que subordine la instrucción break, la cual termina
la ejecución del bucle, con ella podemos finalizar el bucle en cualquier momento.

IV
(La práctica tiene una duración de 2 horas) ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Elaborar un programa en C++ que nos permita ingresar por de forma sucesiva números
enteros mayores a cero, al finalizar un ingreso el programa debe evaluar el número y
verificar si el número es primo.

V
EJERCICIOS

1. Diseñar y codificar un programa que cree archivos de acceso secuencial en sus diferentes
formas.
2. Diseñe y codifique un programa que nos permita leer y escribir registros de forma secuencial
sobre un archivo de acceso secuencial en sus diferentes formas.

VI
CUESTIONARIO

1. ¿Qué es una instrucción iterativa?


2. ¿Qué elementos debe tener toda instrucción iterativa?
3. ¿Qué es la instrucción iterativa while en python?
4. ¿Cómo evoluciona la instrucción iterativa while en la ejecución de un bloque de código?
5. ¿Cómo se termina la ejecución de un bucle while?
6. ¿Cómo se garantiza que la instrucción while inicie su ejecución?
7. ¿Cuáles son los mecanismos que se usan para que una instrucción while finalice?
8. ¿Qué es un bucle infinito?
9. ¿Cómo se diseña un bucle infinito?
10. ¿En qué casos es útil un bucle infinito?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 127

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 28:

Instrucciones Pass y With

I
OBJETIVOS

 Introducir al alumno la modificación y gestión de bucles de diferente tipo.


 Aplicar los bucles de diferente forma y estilo.
 Diferenciar los tipos de bucles sus ventajas y desventajas.
 Diseñar bucles infinitos, controlados por banderas y contadores.

II
TEMAS A TRATAR

 Introducción.
 Instrucción Pass
 Instrucción With
 Resumen

III
MARCO TEORICO

1. INTRODUCCIÓN
El lenguaje Python trae instrucciones especiales no disponibles en otros lenguajes de
programación más extendidos como C++ o Java, dos de estas instrucciones son pass y
with, dichas instrucciones son introducidas como un aporte y un valor agregado al lenguaje,
es decir para mejorar la facilidad de la tarea de escritura del código.
La instrucción pass se utiliza generalmente para indicar que continúe la ejecución de
instrucciones al siguiente bloque o instrucción, esto se hace debido a que muchas veces no
tenemos bien definido o diseñado el conjunto de operaciones necesarias para completar
una aplicación o programa y la instrucción pass ayuda en las tareas de diseño y
depuración[1].
La instrucción with por el contrario es una instrucción que depende del protocolo de
manejador de contexto, y es aplicable a objetos que lo soportan. Muchas veces al diseñar
rutinas se hace evidente el nexo entre instrucciones, es decir que debemos ejecutar
instrucciones de forma obligatoria porque se ejecutó algo inicialmente, la instrucción with
ejecuta esa instrucción de forma implícita sin necesidad de ser llamada[2].

2. INSTRUCCIÓN PASS
¿Qué es la instrucción o sentencia pass?
Es una instrucción nula que no ejecuta ninguna acción en particular.
A diferencia de un comentario el intérprete no ignora su ejecución, la cual resulta en no
ejecutar nada[3].

A. ¿PARA QUÉ SE USA PASS?


Para indicar que se necesita una declaración sintáctica pero no se requiere de ninguna
acción.

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 128

Al diseñar el código indicamos que en ese punto se escribirá un bloque o instrucción pero
aún no se completa y pass lo reemplaza por el momento.

B. ¿CUÁNDO USAMOS PASS?


Cuando escribimos instrucciones que necesitan acciones pero aún no están diseñadas.
Cuando escribimos una instrucción qué debemos completar pero aún no terminamos.
Para crear una clase mínima.
Para crear un método que aun no tiene cuerpo.

C. ¿CÓMO SE USA LA INSTRUCCIÓN PASS?


for val in sequence:
pass

def function(args):
pass

While True :
... pass # Ocupado - esperar a interrupción de teclado ( Ctrl + C )

class MyEmptyClass:
... pass

def initlog(*args):
... pass # Remember to implement this!
.

3. INSTRUCCIÓN WITH

A. ¿QUÉ ES UNA INSTRUCCIÓN WITH?


La sentencia with se utiliza con objetos que soportan el protocolo de manejador de contexto
y garantiza que una o varias sentencias serán ejecutadas automáticamente. Esto nos ahorra
muchas líneas de código, a la vez que nos garantiza que ciertas operaciones serán
realizadas sin que lo indiquemos explícitamente. Uno de los ejemplos más claros es cuando
leemos un archivo de texto. Al terminar esta operación siempre es recomendable cerrar el
archivo. Gracias a with esto ocurrirá automáticamente, sin necesidad de llamar al método
close()[4].
Un bucle para es ideal para ejecutar un proceso o un conjunto de instrucciones un número
determinado y ya conocido de veces, la variable de control que usemos nos ayudará a
control ese número de iteraciones que deben ser ejecutadas.

IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo


comunicarlo inmediatamente.
2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre
de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca
el mensaje de Inicio de sesión.
3. Ejecute el interprete del Python.
4. Construya los siguientes algoritmos en el programa PSeInt:
a) Aceptar un número por teclado y que se muestre por pantalla si es positivo.
b) Ingresar dos números y que se muestre al mayor por pantalla.
c) Ingresar dos números y que se muestre al mayor y al menor por pantalla.
d) Modifique el programa anterior para que se muestre al mayor de 3 números

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero


Laboratorio de Fundamentos de Programación Página 129

e) Modifique al algoritmo anterior para que muestre al mayor de 4 números.


f) Modifique al algoritmo anterior para que muestre al mayor de 5 números.
g) Elaborar un diagrama de flujo que haga el descuento en una compra de acuerdo al
siguiente criterio, si el cliente compra por un valor de 10, no hacer descuentos, si el
cliente gasta entre 11 y 20 descontar 10%, si el cliente gasta exactamente 30 recibe
un descuento de 30%.

V
EJERCICIOS

1. Elaborar un algoritmo en pseudocódigo para que se muestre por pantalla al menor, al mayo
o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en pseudocódigo que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.

VI
CUESTIONARIO

1. ¿Qué es una instrucción de iterativa o de bucle?


2. ¿Qué tipos de instrucciones iterativas existen?
3. ¿Qué es la instrucción iterativa para?
4. ¿Cómo se implementa la instrucción iterativa para?
5. ¿Cuántas veces como mínimo se ejecuta la instrucción para?
6. ¿Cuándo la instrucción para no se ejecuta ni una sola vez?
7. ¿Cuándo la instrucción para no deja de ejecutarse nunca?
8. ¿Qué debe tener la instrucción para para dejar de ejecutarse?
9. ¿Qué elementos debe tener la instrucción iterativa para para ejecutarse?
10. ¿Cuándo debemos anidar instrucciones condicionales?

VII
BIBLIOGRAFIA Y REFERENCIAS

[1] O. Cairó Battistutti, “Metodología de la programación: Algoritmos, diagramas de flujo y


programas”, 3ra Edición, Ed. México: AlfaOmega, 2002
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1998

Mgter. Ángel Montesinos, Mgter. Manuel Zúñiga Carnero