Sunteți pe pagina 1din 27

1 Algoritmo I

ELABORADO POR:
ING. RUTH MARINA DE FLORES

FACULTAD DE INFORMTICA DE INFORMTICA


ASIGNATURA
ALGORITMOS I


UNIDAD III
ESTRUCTURA DE CONTROL


PARTE III
ESTRUCTURA REPETITIVAS
MIENTRAS















E
S
C
U
E
L
A

D
E

I
N
F
O
R
M

T
I
C
A


E
S
C
U
E
L
A

D
E

I
N
F
O
R
M

T
I
C
A


Unidad III: Estructuras de Control Algoritmos I
2 Ing. Ruth Marina Figueroa
ESTRUCTURAS REPETITIVAS

ESTRUCTURAS DE CONTROL ( ALGORTMICAS):
Las estructuras de control de un lenguaje de programacin son mtodos de
especificar el orden en que las instrucciones de un algoritmo se ejecutarn.
Estas estructuras de control son, por consiguiente, fundamentales en los
lenguajes de programacin y en los diseos de algoritmos.
1

Las estructuras de operacin de programas son un grupo de formas de trabajo,
que permiten, mediante la manipulacin de variables, realizar ciertos procesos
especficos que nos lleven a la solucin de problemas.
CLASIFICACIN DE LAS ESTRUCTURAS DE CONTROL ALGORITMICAS:
1. Estructura Secuencial.
Entrada
Proceso
Salida
2. Estructura Condicional.
Selectiva simple (si-entonces / if-then).
Selectiva doble (si-entonces-sino / if-then-else).
Selectiva mltiple (segn_sea, caso de /case).
3. Estructuras Cclicas (Repetitivas).
Estructura mientras (while)
Estructura desde/para (for).
Estructura hacer. . . mientras (do . . . while).
Estructura repetir (repeat).

PARA QUE UN PORGRAMA SE DEFINA COMO PROPIO DEBER CUMPLIR LAS
SIGUIENTES CARACTERSTICAS:
a) Para el control del programa se deben cumplir un punto de entrada y un
punto de salida.
b) No existen bucles o lazos infinitos, esto quiere decir sin fin; todas las
instrucciones son ejecutables.
c) Existen varias alternativas que se pueden seguir desde la entrada hasta la
salida.

1
Capitulo 3 Fundamentos de Programacin Luis Joyanes Aguilar 3 Edicin Ed. Mc Graw Hill
Unidad III : Estructuras de Control Algoritmos I
3 Ing. Ruth Marina Figueroa de Flores

DEFINICIN:
Es muy comn encontrar en algoritmos, operaciones que se deben de ejecutar un
nmero repetido de veces. Si bien las instrucciones son las mismas, los datos
sobre los que operan varan. Este tipo de estructuras, son las que nos permiten
ejecutar varias veces un conjunto determinado de instrucciones, a esta repeticin
se le conoce con el nombre de ciclos.

CONCEPTOS BSICOS.

Estos conceptos bsicos de un programa son fundamentales en las estructuras
repetitivas. Los conceptos ms relevantes son:
a) BUCLES (LAZO).

El bucle o lazo (ciclo), es un segmento de un algoritmo o programa cuyas
instrucciones se repiten un nmero determinado de veces, mientras se cumple
una determinada condicin especfica (existe o es verdadera la condicin).

Tales acciones se llaman Bucles. La accin o acciones del cuerpo del bucle se
denominan iteraciones. Un bucle consta de tres partes:

Decisin: donde se evala la condicin y, en caso de ser cierta, se ejecuta
el...
Cuerpo del bucle: son las instrucciones que queremos ejecutar
repetidamente un cierto nmero de veces.
Salida del bucle: es la condicin que dice cundo saldremos de hacer
repeticiones ("mientras protestes, seguirs fregando platos", en cuanto
dejas de protestar, se acab fregar ms platos).

Bucle Infinito: En este flujograma, el bucle se estar repitiendo
indefinidamente ya que no existe ninguna condicin que nos permita finalizar en
algn momento.

En el flujograma, observa que la flecha que se regresa hacia arriba nos est
indicando que hay que volver a evaluar la expresin. En ese caso como el bucle es
infinito, no se tiene una condicin para terminar y se estar haciendo siempre. En el
siguiente ejemplo, ya se agreg una condicin, la cual nos permitir finalizar la
ejecucin del bucle en el caso en que la condicin se cumpla.

Unidad III: Estructuras de Control Algoritmos I
4 Ing. Ruth Marina Figueroa
Inicio
Suma = 0
Suma = Suma +N
N
Suma
Bucle
1
2
3


Bucle finito
Si tras la lectura de la variable
N se coloca una condicin, el
bucle dejar de ser infinito.

En este diagrama se finalizara
cuando se cumpla la condicin,
esto quiere decir que la ultima
vez que entrara al bucle es
cuando la variable de control de
ciclo llegue a 10


Bucles Repetitivos:
A continuacin, tres diseos de estructuras repetitivas:
A) Las independientes son cuando los bucles se realizan uno primero hasta
que se cumple la condicin y solo en ese caso se entra al bucle B.

B) En los ciclos anidados, al entrar a una estructura de repeticin,
dentro de ella se encuentra otra. La ms interna se termina de realizar
y se contina con la externa hasta que la condicin se cumple.

C) En los bucles cruzados, los cuales no son convenientes de utilizar, se
tiene que iniciamos un bucle y no se ha terminado cuando empezamos
otro, luego utilizamos estructuras goto (saltos) para pasar al bucle
externo y se quedan entrelazados.
Inicio
Fin
A) ANIDADOS A) CRUZADOS
Inicio
A) INDEPENDIENTES
Bucle A
Bucle B
Fin

Inicio
Suma = 0
Suma = Suma +N
Bucle
Suma
Fin
I=1 hasta 10
N

Unidad III : Estructuras de Control Algoritmos I
5 Ing. Ruth Marina Figueroa de Flores

b) CONTADORES.

Un contador es una variable cuyo valor se incrementa o decrementa en una
cantidad fija (incremento) en cada interaccin que se realizan dentro del bucle.
Un contador es un campo de memoria cuyo valor se incrementa en una cantidad
fija, positiva, generalmente asociado a un bucle.

Se utilizan en los siguientes casos:

Para contabilizar el nmero de veces que es necesario repetir una accin
(variable de control de un bucle).
Para contar un suceso particular solicitado por el enunciado del problema
(asociado a un bucle o independiente).
Representa la variable de control del ciclo.
Toma un valor inicial (generalmente 0 1) y se incrementa en la mayora de
veces de los casos.
Est representado generalmente por I, J, K, V.
Toma un valor inicial y se compara con el valor final.


c) ACUMULADORES.

Un acumulador es un campo de memoria cuyo valor se incrementa sucesivas
veces en cantidades variables. Se utiliza en aquellos casos en que se desea
obtener el total acumulado de un conjunto de cantidades, siendo preciso
inicializarlo con el valor cero. Adems, en las situaciones en que hay que
obtener un total como producto de distintas cantidades se utiliza un
acumulador, debindose inicializar con el valor.

TIPOS DE ESTRUTURAS REPETITIVAS:

ESTRUCTURA Mientras.
ESTRUCTURA Hacermientras o RepetirHacer.
ESTRUCTURA desde/para.






Unidad III: Estructuras de Control Algoritmos I
6 Ing. Ruth Marina Figueroa

Estructura Mientras
Se llama Mientras a la estructura algortmica que se ejecuta mientras la condicin
evaluada resulte verdadera. Se evala la expresin booleana y, si es cierta, se ejecuta la
instruccin especificada, llamada el cuerpo del bucle. Entonces se vuelve a evaluar la
expresin booleana, y si todava es cierta se ejecuta de nuevo el cuerpo. Este proceso de
evaluacin de la expresin booleana y ejecucin del cuerpo se repite mientras la
expresin sea cierta. Cuando la respuesta a la condicin sea falsa se contina con la
siguiente instruccin despus de la etiqueta fin mientras. . El conjunto de instrucciones a
ejecutar se encuentra entre las instrucciones Mientras... y fin mientras. De manera
general un algoritmo con una estructura hacer mientras se representa de la siguiente
forma, utilizando las dos diferentes tcnicas algortmicas:
DIAGRAMA DE FLUJO PSEUDOCDIGO

Algoritmo identificador
//Declaracin de variables

Var
Tipos de datos : variables
Const
Identificadores = valor
Inicio

// Entrada de datos

Leer ( )

//Inicializar la variable

Variable = Valor
//Seccin de acciones ejecutables.
Mientras (condicin) Hacer
Acciones
Fin mientras
// Salida de la informacin
Imprimir ( )
Fin
Donde,
Condicin (Expresin booleana): Puede ser cualquiera que arroja un resultado booleano correcto, como en una
instruccin If, y por ello puede admitir condiciones complejas.
Acciones (Sentencias): Son los cdigos a ejecutarse, siempre que la condicin sea verdadera.

FIN
Imprimir al
Impresor
ENTRADA
Tipo de dato: Variable
Identificador = Valor
Inicializar
variable
ENTRADA DE
DATOS
Unidad III : Estructuras de Control Algoritmos I
7 Ing. Ruth Marina Figueroa de Flores
Inicio
NUM = 1
Cuerpo del bucle
Bucle
NO
SI
Fin
Num = Num + 1
NUM > 0

FUNCIN DE LA SENTENCIA MIENTRAS:
Cuando la sentencia Mientras se ejecuta, se evala la condicin. Si se evala a Falso,
ninguna accin se realiza y sigue la sentencia despus del bucle. Si la expresin lgica se
evala a Verdadero, entonces se ejecuta el cuerpo del bucle y se evala de nuevo la
expresin. Este proceso se repite mientras que la expresin lgica permanezca
Verdadera. Despus de cada iteracin, la expresin lgica se evala y se verifica de
nuevo, y si es verdadera, el bucle se repite de nuevo; si cambia de verdadero a falso, la
sentencia Mientras finaliza y prosigue en la siguiente sentencia o acciones del
programa.


REGLAS DE FUNCIONAMIENTO
a) La condicin (expresin lgica) se evala antes y
despus de cada ejecucin del bucle. Si la condicin
es verdadera, se ejecuta el bucle, y si es falsa, el
control pasa a la sentencia siguiente al bucle.
b) Si la condicin se evala a falso cuando se ejecuta
el bucle por primera vez, el cuerpo del bucle no se
ejecutar nunca. En este caso se dice que el bucle
se ha ejecutado cero veces.
c) Mientras la condicin sea verdadera el bucle se
ejecutar. Esto significa que el bucle se ejecutar
indefinidamente a menos que algo en el interior
del bucle modifique la condicin, haciendo que su
valor pase a falso. Si la expresin nunca cambia de valor, entonces el bucle no
termina nunca y se denomina bucle infinito o sin fin (en general, esta situacin
no es deseable).


PRECAUCIONES:
a) La condicin lgica en un bucle Mientras, debe tener un valor la primera vez
que se evala; en caso contrario, el programa abortar al ejecutarse
Mientras.
b) La condicin lgica en un bucle Mientras, debe ser modificada por una
sentencia en el cuerpo del bucle; en caso contrario, el bucle es infinito.
c) Es posible que el cuerpo del bucle no se ejecute nunca. Esto suceder si la
condicin lgica es falsa la primera vez que se evala.
Unidad III: Estructuras de Control Algoritmos I
8 Ing. Ruth Marina Figueroa

MTODOS:
Existen Tres mtodos para controlar o terminar un bucle:
a) Bucle controlado por contador (bucle de conteo)
b) Bucle controlado por condicin.
c) Bucle controlado por Interruptores

A) BUCLE CONTROLADO POR CONTADOR (BUCLE DE CONTEO)
Un bucle controlado por contador es un bucle cuyas iteraciones se controlan por una
variable, cuyo valor representa a un contador. El mecanismo utilizado es una variable de
control del bucle que acta como contador.

UN BUCLE CONTROLADO POR CONTADOR CONSTA DE TRES PARTES,
ADEMS DEL CUERPO Y DE LA CONDICIN DE SALIDA:
Inicializacin de la variable de control del bucle.
Comprobacin del valor de la variable de control del bucle.
Incremento del valor de la variable del control del bucle.

EL FORMATO DE ESTE BUCLE ES:

1. Establece variable contador a un valor inicial.
2. Mientras (variable contador (Operador) valor final) Hacer
Proceso
Incrementar variable contador en 1
3. Fin Mientras

EN EL USO DEL CONTADOR SE DEBEN TENER EN CUENTA AL MENOS TRES FACTORES:
1. El valor inicial.
2. El valor final.
3. El operador relacional utilizado para comparar la terminacin del bucle.

BUCLE CONTROLADO POR CONDICIN.
Los bucles condicionales o controlados por condicin se utilizan cuando no se sabe, a
prioridad, el nmero exacto de iteraciones a realizar. Existen dos tcnicas para realizar
este bucle controlado por condicin:
1. Solicitar al usuario la condicin del bucle.
Este mtodo consiste simplemente en preguntar al usuario si existen ms entradas.
2. valor centinela.
Una centinela es un valor especial utilizado para sealar el final de una lista de
datos. El valor elegido debe ser totalmente distinto de los posibles valores de la
lista, para que se pueda utilizar para sealar el final de la lista.
Se utiliza un bucle
controlado por contador,
cuando se puede anticipar
con antelacin cuntas
iteraciones se deben
ejecutar exactamente.
Cada vez que el cuerpo de
un bucle se ejecuta, el
valor del contador se
incrementa.
Unidad III : Estructuras de Control Algoritmos I
9 Ing. Ruth Marina Figueroa de Flores

EJERCICIOS CONTROLADOS POR CONTADOR:
Ejemplos 1. Disee un diagrama de flujo y Pseudocdigo que imprima los
nmeros del 1 al 100.

Tabla de Variables.
TIPO DE DATOS VARIABLE SIGNIFICADO
Entero I Representa la variable de control de ciclo.
Diseo del algoritmo:
DIAGRAMA DE FLUJO PSEUDOCDIGO
Inicio
Entero: I
I < = 100
I
I = I +1
Falso
Verdadero
Fin
I = 1

Algoritmo Ecribir_Numeros
Var
Entero : I;
Inicio
I = 1
Mientras (I < = 100) Hacer
Imprimir (I)
I = I + 1
Fin Mientras
Fin

Verificacin manual del algoritmo:
I Impresin
1 1
2 2
3 3
. .
. .
. .
100 100

Unidad III: Estructuras de Control Algoritmos I
10 Ing. Ruth Marina Figueroa
Ejemplos 2. Disee un diagrama de flujo y Pseudocdigo que calcule la
suma de los nmeros del 1 al 100.

Tabla de Variables.
TIPO DE DATOS VARIABLE SIGNIFICADO
Entero I Representa la variable de control de ciclo.
Entero Suma Representa la variable que acumula la suma de los 100 nmeros

Diseo del algoritmo:
DIAGRAMA DE FLUJO PSEUDOCDIGO
Inicio
Entero: I, Suma
I < = 100
I = I +1
Falso
Verdadero
Fin
Suma =Suma+I
Suma
Suma = 0
I = 1

Algoritmo Suma_numeros
Var
Entero : I, Suma;
Inicio
I = 1
Suma = 0
Mientras (I < = 100) Hacer
Suma = Suma +I
I = I + 1
Fin Mientras
Imprimir (Suma)
Fin
Verificacin manual del algoritmo:
I Suma = Suma + I
1 Suma = 0 + 1 = 1
2 Suma = 1 + 2 = 3
3 Suma = 3 + 3 = 6
4 Suma = 6 + 4 = 10
. . . . .
. . . . .
100 Suma = 4950 + 100 = 5050
Unidad III : Estructuras de Control Algoritmos I
11 Ing. Ruth Marina Figueroa de Flores
Ejemplos 3. Disee un diagrama de flujo y Pseudocdigo que calcule la suma y
el producto de los nmeros pares comprendidos entre 10 y 30 (ambos incluso).

Tabla de Variables.
TIPO DE DATOS VARIABLE SIGNIFICADO
Entero I Representa la variable de control de ciclo.
Entero Suma Representa la variable que acumula la suma de los nmeros
Entero Producto
Representa la variable que acumula el producto de los
nmeros

Diseo del algoritmo:
DIAGRAMA DE FLUJO PSEUDOCDIGO
Inicio
Entero: I, Suma,
Entero: Producto
I < = 30
I = I + 2
Falso
Verdadero
Fin
Suma =Suma+I
Suma, Producto
Producto=Producto * I
Suma = 0
Producto = 1
I = 10

Algoritmo Suma_Producto
Var
Entero : I, Suma, Producto;
Inicio
I = 10
Suma = 0
Producto = 1
Mientras (I < = 30) Hacer
Suma = Suma + I
Producto = Producto * I
I = I + 2
Fin Mientras
Imprimir (Suma, Producto)
Fin

Verificacin manual del problema:
I Suma Producto
10 10 10
12 24 120
. . .
. . .
30 220 1.12E+14
Se imprimirn los datos que estn sombreados.
Unidad III: Estructuras de Control Algoritmos I
12 Ing. Ruth Marina Figueroa
Ejemplos 4. Disee un diagrama de flujo y Pseudocdigo que lea 100 nmeros
y cuente cuantos de ellos son positivos, negativos o nulos.

Tabla de Variables.
TIPO DE DATOS VARIABLE SIGNIFICADO
Entero I Representa la variable de control de ciclo.
Entero Pos Representa la variable que cuenta los nmeros positivos
Entero Neg Representa la variable que cuenta los nmeros Negativos
Entero Nul Representa la variable que cuenta los nmeros Nulos
Entero Num Representa la variable del numero natural

Diseo del algoritmo:
DIAGRAMA DE FLUJO
Entero: I, Pos, Neg,
Entero : Nul, Num
I < = 100
I = 1, Pos = 0,
Neg = 0, Nul = 0
Digite el
nmero:& Num
Pos = Pos + 1
Num > 0
SI
SI
Num < > 0
Neg = Neg + 1
Nul = Nul + 1
I = I + 1
Falso
Verdadero
Pos, Neg, Nul
Fin
Inicio
NO
NO

Unidad III : Estructuras de Control Algoritmos I
13 Ing. Ruth Marina Figueroa de Flores
PSEUDOCDIGO
Algoritmo Contar_Numeros
Var
Entero : I, Pos, Neg, Nul, Num;
Inicio
I = 1
Pos = 0, Neg = 0, Nul = 0
Mientras (I < = 100) Hacer
Leer (Num)
Si (Num < > 0) Entonces
Si (Num > 0) Entonces
Pos = Pos + 1
Si no
Neg = Neg + 1
Fin si
Si no
Nul = Nul + 1
Fin si
I = I + 1
Fin Mientras

Imprimir (Pos, Neg, Nul)
Fin

Verificacin manual del algoritmo:
I Pos Neg Nul Num
1 0 0 0 2
2 1 -1
3 1 0
4 1 1.5
5 2 -4
6 2 6
7 3 -10
8 3 0
. . 2 .
. . . . .
100 . . . .
Se imprimir los datos que estn sombreados.
Unidad III: Estructuras de Control Algoritmos I
14 Ing. Ruth Marina Figueroa
Ejemplos 5. Calcule el aumento de sueldo para N empleados de una empresa,
bajo el siguiente criterio:
Si el sueldo es menor a $ 650, el aumento es del 15%
Si el sueldo est comprendido entre $ 650 y $1000, el aumento es
del 12%.
Si el sueldo es mayor a $ 1000, el aumento es del 9%

Imprimir lo siguiente:
a) Cdigo del trabajador
b) Nombre completo del trabajador
I. Primero los apellidos.
II. Segundo los nombres.
c) El nuevo sueldo del trabajador
d) El monto total de la nmina, considerando el nuevo sueldo.
e) El monto total de los aumentos
Tabla de Variables.
TIPO DE DATOS VARIABLE SIGNIFICADO
Cadena Codigo Representa el cdigo del empleado.
Cadena Nombre Representa la variable que almacena el nombre completo.
Entero I Representa la variable de control de ciclo.
Entero N Representa la cantidad de empleados de una empresa.
Real Sueldo Representa la variable que almacena el sueldo anterior.
Real Aum Representa el aumento que tiene el empleado.
Real NSueldo Representa la variable del nuevo sueldo del trabajador
Real Nomaum
Representa la variable que acumular todos los aumentos de
los trabajadores.
Real Nomsue Almacenar todos los nuevos sueldos de los trabajadores
Unidad III : Estructuras de Control Algoritmos I
15 Ing. Ruth Marina Figueroa de Flores
Diseo del algoritmo:

DIAGRAMA DE FLUJO
Cadena: Codigo, Apellidos,
Cadena: Nombres, CNombre
Entero : I, N
Real : Sueldo, NSueldo, Aum
Real : Nomaum, Nomsue
I = 1, Nomaum = 0, Nomsue = 0
Inicio
N
I < = N
Codigo, Apellidos,
Nombre, Sueldo
SI
SI
Sueldo < 650
I = I + 1
Falso
Verdadero
Total de aumentos& Nomaum
Total de la nomina& Nomsue
Fin
NO
NO
Aum = Sueldo * 0.15
NSueldo = Sueldo+Aum
Aum = Sueldo * 0.12
NSueldo = Sueldo+Aum
Aum = Sueldo * 0.09
NSueldo = Sueldo+Aum
Codigo & & Cnombre &
Nsueldo
Cnombre = Apellidos & & Nombres
Nomaum = Nomaum + Aum
Nomsue = Nomsue + NSueldo
Sueldo <= 1000

Unidad III: Estructuras de Control Algoritmos I
16 Ing. Ruth Marina Figueroa
PSEUDOCDIGO

Algoritmo Nomina_Empleados
Var
Entero : I, N;
Cadena : Codigo, Apellidos, Nombres, CNombre;
Real : Sueldo, Aum, NSueldo, Nomsue, Nomaum;
Inicio
I = 1
Nomaum = 0, Nomsue = 0
Leer (N)
Mientras (I < = N) Hacer
Leer (Codigo, Apellidos, Nombres, Sueldo)
Si (Sueldo < 650) Entonces
Aum = Sueldo * 0.15
NSueldo = Sueldo + Aum
Si no
Si (Sueldo < = 1000) Entonces
Aum = Sueldo * 0.12
NSueldo = Sueldo + Aum
Si no
Aum = Sueldo * 0.09
NSueldo = Sueldo + Aum
Fin si
Fin si
Cnombre = Apellido & & Nombre
Imprimir (Codigo & & CNombre & & NSueldo)
Nomaum = Nomaum + Aum
Nomsue = Nomsue + NSueldo
I = I + 1
Fin Mientras
Imprimir (Total de aumentos:& Nomaum)
Imprimir (Total de nomina:& Nomsue)
Fin

Unidad III : Estructuras de Control Algoritmos I
17 Ing. Ruth Marina Figueroa de Flores
Verificacin manual del algoritmo:
N = 10
I Codigo Apellidos Nombres Sueldo Aumento NSueldo
1 FR01 Flores Castro Richard Edgardo 1100.0 99.0 1199.0
2 FM02 Figueroa Mata Tiffany Elizabeth 400.0 60.0 460.0
3 CR03 Centeno Lucero Roxana Emilia 550.0 82.5 632.5
4 CJ04 Castro Flores Javier Cristbal 1500.0 135.0 1635.0
5 FC05 Figueroa Cruz Ftima Lizbeth 350.0 52.5 402.5
6 CM06 Mata Figueroa Kelly Elizabeth 650.0 78.0 728.0
7 HP07 Hernndez Paz Genaro Alberto 1000.0 120.0 1120.0
8 PL08 Perdomo Luna Carlos Jos 2000.0 180.0 2180.0
9 OV09 Orantes Villalta Julio Alberto 800.0 96.0 896.0
10 CR10 Contreras de Ruiz Celeste Maria 400.0 60.0 460.0
Total de nominas (Aumento y Nuevo sueldo) $ 963.0 9713.0
Se imprimirn los datos que estn sombreados.


CONTROLADOS POR CONDICIN <BUCLE CONTROLADO POR USUARIO>.
Ejemplos 6. En un supermercado una seora pone en su carrito los artculos que va tomando de los
estantes. La seora quiere asegurarse de que el cajero le cobre bien lo que ella ha comprado, por lo que cada vez
que toma un articulo anota su precio junto con la cantidad de artculos iguales que ha tomado y determina cunto
dinero gastar en ese articulo; a esto le suma lo que ir gastando en los dems artculos, hasta que decide que ya
tom todo lo que necesitaba. Aydale a esta seora a obtener el total de sus compras.
El hecho de ir al supermercado sin una idea fija de lo que se va a comprar nos hace suponer que al entrar a l, no
sabemos el nmero exacto de artculos distintos que vayamos a comprar, por lo que tendremos que usar un ciclo
con un nmero indeterminado de iteraciones, como el hacer mientras utilizando el bucle controlado por
condicin (Bucle controlado por usuario).

Tabla de Variables.
TIPO DE DATOS VARIABLE SIGNIFICADO
Real PrecArt Representa el precio de cada artculo diferente.
Entero NumArt Representa el nmero de artculo.
Real St Representa el subtotal por artculo distinto.
Real TotalCom Representa el total de la compra y es un acumulador.

Unidad III: Estructuras de Control Algoritmos I
18 Ing. Ruth Marina Figueroa
Diseo del algoritmo:
DIAGRAMA DE FLUJO
Cadena: Resp
Entero : NumArt
Real : PrecArt, St, TotalCom
Inicio
Resp
Resp = s or Resp = S
NumArt, PrecArt
Falso
Verdadero
Fin
St = PrecArt * NumArt
Total a cancelar:
&TotalCom
TotalCom = 0
TotalCom = TotalCom + St
Resp
Digite el primer articulo
(s/n):
Hay ms artculos
(s/n):

Unidad III : Estructuras de Control Algoritmos I
19 Ing. Ruth Marina Figueroa de Flores
PSEUDOCDIGO

Algoritmo Supermercado_Compra
Var
Cadena : Resp;
Entero : NumArt;
Real : PrecArt, St, TotalCom ;
Inicio

Escribir (Digite el primer Artculo)
Leer (Resp)

Mientras (Resp = s or Resp = S) Hacer

Escribir (Digite el nmero de artculos:) // Este paso no se realizo en el Diagrama
Leer (NumArt)
Escribir (Digite el precio del artculo:) // Este paso no se realizo en el Diagrama
Leer (PrecArt)
St = PrecArt * NumArt
TotalCom = TotalCom + St

Escribir (Hay ms artculos? (s/n))
Leer (Resp)

Fin Mientras

Imprimir (Total a cancelar: & TotalCom)
Fin

Verificacin manual del algoritmo:

N Resp Numero Artculo Precio Artculo Subtotal Total compra
1 s 2 25.0 50.0 50.0
2 S 1 10.0 10.0 60.0
3 S 4 5.0 20.0 80.0
4 s 7 2.0 14.0 94.0
5 N Se sale del bucle y del programa.
R/ El total que pagara la seora es de: $ 94.0
Unidad III: Estructuras de Control Algoritmos I
20 Ing. Ruth Marina Figueroa
Ejemplos 7. En una tienda de descuento, las personas que van a pagar el importe de su compra llegan a
la caja y sacan una bolita de color, que les dir qu descuento tendrn sobre el total de su compra.
Determinar la cantidad que pagar cada cliente desde que la tienda abre hasta que cierra. Se sabe que si
el color de la bolita es roja, el cliente obtendr un 40% de descuento; si es amarilla, un 25% y si es
blanca, no obtendr descuento.

Anlisis del problema:
En primer lugar podemos determinar que es necesario usar un ciclo, puesto que todos los clientes hacen
repetidamente lo mismo; escoger una bolita y obtener un descuento. Tambin podemos deducir que el
nmero de clientes que se atender es indeterminado, pues no sabemos cuntos clientes van a entrar a la
tienda a lo largo del da; por lo tanto el nmero de iteraciones del ciclo es indeterminado; entonces, la
estructura que corresponde a este problema es el hacer mientras, utilizando el bucle controlado por
usuario.

Salida : Total del descuento
Entradas : Color de las bolitas
La compra sin descuento del cliente
Proceso : Aplicar Formulas.
Si Color de la bola es ROJO entonces
Descuento = La compra * 40%
Total con descuento = Total sin descuento - Descuento
Si no
Si color de la bola es AMARIILA entonces
Descuento = La compra * 25%
Total con descuento = Total sin descuento - Descuento
Si no
Total con descuento = Total sin descuento

El ciclo repetir el proceso hasta que ya no haya ms clientes; por eso despus de cada ejecucin se
encuentra la entrada de una variable alfanumrica cuyo valor deber ser S o NO y la condicin que le
precede llevar a ejecutar una vez el ciclo o le dar trmino.

Tabla de Variables.

TIPO DE DATOS VARIABLE SIGNIFICADO
Cadena Color Representa el color de la bolita
Real Compra Representa el total de la compra, pero sin descuento
Real Des Representa el total de descuento sobre la compra
Real Tcd Representa el total con descuento
Cadena Resp
Representa la variable que recibe un valor de S o NO
dependiendo si hay ms clientes o no.

Unidad III : Estructuras de Control Algoritmos I
21 Ing. Ruth Marina Figueroa de Flores
Diseo del algoritmo:

DIAGRAMA DE FLUJO
Cadena : Resp, Color
Real : Compra, Des, Tcd
Inicio
Resp
Resp = s or Resp = S
Color, Compra
SI
SI
Color = ROJA
Falso
Verdadero
Fin
NO
NO
Des = Compra * 0.4
Des = Compra * 0.25
Total con descuento:&
Tcd
Color = AMARILLA
Tcd = Compra - Des
Tcd = Compra - Des
Tcd = Compra
Resp
Digite el primer cliente
en la tienda(s/n):
Existen ms clientes
(s/n):

Unidad III: Estructuras de Control Algoritmos I
22 Ing. Ruth Marina Figueroa
PSEUDOCDIGO

Algoritmo Descuentos
Var
Cadena : Color, Resp;
Real : Compra, Des, Tcd;
Inicio
Escribir (Digite el primer cliente en la tienda? (s/n):)
Leer (Resp)
Mientras (Resp = s or Resp = S ) Hacer
Leer (Color, Compra)
Si Color = ROJO Entonces
Des = Compra * 0.4
Tcd = Compra - Des
Si no
Si Color = AMARILLO Entonces
Des = Compra * 0.25
Tcd = Compra - Des
Si no
Tcd = Compra
Fin si
Fin si
Imprimir (Total con descuento& Tcd)
Escribir (Existen ms clientes en la tienda? (s/n):)
Leer (Resp)
Fin Mientras
Fin

Verificacin manual del algoritmo:
N Resp Color Compra $ Desc $ Tcd $
1 S ROJO 75.0 30.0 45.0
2 S AMARILLO 50.0 12.5 37.5
3 S BLANCA 80.0 00.0 80.0
4 S AMARILLA 90.0 22.5 67.5
5 N Se sale del bucle y del programa.
Se imprimiran los datos que estn en la ltima columna (sombreados)
BUCLE CONTROLADO POR UN VALOR CENTINELA.
Unidad III : Estructuras de Control Algoritmos I
23 Ing. Ruth Marina Figueroa de Flores
Ejemplos 7. En este ao se han realizados varios gastos, pero no sabemos en realidad cuntos
fueron. Obtener la suma de los gastos que se hicieron, estos datos son expresados de la forma:
Gastos1, Gastos2, ..., -1

Tabla de Variables.

TIPO DE DATOS VARIABLE SIGNIFICADO
Real : SumaGastos //
Representa los gastos efectuados y es un
acumulador.
Real : Gastos //
Representa los gastos que se han realizados durante
este ao.

Diseo del Algoritmo:

DIAGRAMA DE FLUJO PSEUDOCDIGO
Real: Gastos, SumaGastos
Inicio
Gastos
Gastos < > - 1
Falso
Verdadero
Fin
SumaGastos =
SumaGastos + Gastos
SumaGastos
SumaGastos = 0
Gastos


Algoritmo Gastos_Anuales
Var
Real : SumaGastos, Gastos;
Inicio
SumaGastos = 0
Leer (Gastos)
Mientras (Gastos < > -1) Hacer
SumaGastos =SumaGastos + Gastos
Leer (Gasto)
Fin Mientras
Imprimir ( El total gastos:& SumaGastos)
Fin

Verificacin manual del algoritmo:

N Gastos SumaGastos N Gastos SumaGastos
1 2528 0 (Inicio) 4 1850 7628
2 3500 2528 5 150 9478
3 1600 6028 6 -1 9628
Se imprimir el ato que est sombreado.

Unidad III: Estructuras de Control Algoritmos I
24 Ing. Ruth Marina Figueroa
Ejemplos 8. En un estadio se tienen 5 tipos diferentes de localidades, las cuales se identifican por una
clave numrica, que es un valor comprendido entre 1 y 5. Los precios de cada localidad, y los datos
referentes a las ventas de boletos para el prximo partido, se proporcionan como sigue:

Datos:
P1, P2, P3, P4, P5
CLAVE
1
, CANT
1

CLAVE
1
, CANT
1

... ...
-1 -1

Construya el diagrama de flujo y el Pseudocdigo que:
a) Lea los precios.
b) Lea los datos de las ventas de boletos.
c) Imprima para cada venta, la clave, la cantidad y el importe total de los boletos vendidos en
esta venta.
d) Calcule e imprima la cantidad de boletos vendidos de cada tipo.
e) Calcule e imprima la recaudacin total del estadio.

Tabla de Variables.

TIPO DE DATOS VARIABLE SIGNIFICADO
Real
P1, P2, P3,
P4, P5
Representan los precios de las localidades 1, 2, 3, 4, 5,
respectivamente.
Entero CLAVE Representa el tipo de localidad de la venta.
Entero CANT
Representa la cantidad de boletos vendidos de un
cierto tipo de la venta.
Entero
AP1, AP2, AP3,
AP4, AP5
Acumulan el total de boletos vendidos del tipo 1, 2, 3,
4, 5, respectivamente.
Real RECAU Acumula la recaudacin total del estadio.
Real TVCV Almacena el total vendido en cada venta.



Unidad III : Estructuras de Control Algoritmos I
25 Ing. Ruth Marina Figueroa de Flores
Diseo del Algoritmo:

DIAGRAMA DE FLUJO
Real : P1, P2, P3, P4, P5,
Real : RECAU, TVCV.
Entero : AP1, AP2, AP3, AP4,
Entero : AP5, CLAVE, CANT
Inicio
CLAVE, CANT
CLAVE < > - 1 y CANT < > -1
Falso
Verdadero
CLAVE, CANT,
TVCV
AP1 = 0 , AP2 = 0 , AP3 = 0
AP4 = 0 , RECAU = 0
P1, P2, P3, P4, P5
CLAVE
TVCV = P2 * CANT
AP2 = AP2 + CANT
TVCV = P1 * CANT
AP1 = AP1 + CANT
TVCV = P3 * CANT
AP3 = AP3 + CANT
TVCV = P4 * CANT
AP4 = AP4 + CANT
TVCV = P5 * CANT
AP5 = AP5 + CANT
1 2 3 4 5
RECAU = RECAU + TVCV
CLAVE, CANT
Fin
Cantidad Boleto Tipo 1:& AP1
Cantidad Boleto Tipo 2:& AP2
Cantidad Boleto Tipo 3:& AP3
Cantidad Boleto Tipo 4:& AP4
Reacudacin del Etadio:& RECAU

Unidad III: Estructuras de Control Algoritmos I
26 Ing. Ruth Marina Figueroa
PSEUDOCDIGO
Algoritmo ESTADIO_PRECIO
Var
Entero : AP1, AP2, AP3, AP4, AP5, CLAVE, CANT;
Real : P1, P2, P3, P4, P5, RECAU, TVCV;
Inicio
AP1 = 0, AP2 = 0, AP3 = 0, AP4 = 0
Leer (P1, P2, P3, P4, P5)
Leer (CLAVE, CANT)
Mientras ( (CLAVE < > -1) AND (CANT < > -1) ) Hacer
Segun sea (CLAVE)
Caso 1
TVCV = P1 * CANT
AP1 = AP1 + CANT
Caso 2
TVCV = P2 * CANT
AP2 = AP2 + CANT
Caso 3
TVCV = P3 * CANT
AP3 = AP3 + CANT
Caso 4
TVCV = P4 * CANT
AP4 = AP4 + CANT
Caso 5
TVCV = P5 * CANT
AP5 = AP5 + CANT
Fin Segun
Imprimir CLAVE, CANT, TVCV
RECAU = RECAU + TVCV
Leer (CLAVE, CANT)
Fin Mientras
Imprimir (Cantidad de boleto tipo 1:& AP1)
Imprimir (Cantidad de boleto tipo 2:& AP2)
Imprimir (Cantidad de boleto tipo 3:& AP3)
Imprimir (Cantidad de boleto tipo 4:& AP4)
Imprimir (Cantidad de boleto tipo 5:& AP5)
Imprimir (Recaudacin el estadio:& RECAU)
Fin

Unidad III : Estructuras de Control Algoritmos I
27 Ing. Ruth Marina Figueroa de Flores
Verificacin manual del algoritmo:
P1 P2 P3 P4 P5 CLAVE CANT TVCV AP1 AP2 AP3 AP4 AP5 RECAU
7.25 15.80 25.00 50.00 75.00 2 3 0 0 0 0 0 0
3 8 47.40 3 47.40
2 4 200.00 8 247.40
1 6 63.20 7 310.60
4 5 43.5 6 354.10
1 12 250.00 5 604.10
2 8 87.00 18 691.10
5 3 126.40 15 817.50
2 7 225.00 3 1042.50
3 14 110.60 22 1153.10
4 1 350.00 22 1503.10
2 11 50.00 6 1553.10
4 9 173.80 33 1726.90
5 7 450.00 15 2176.90
1 23 525.00 10 2701.90
1 18 166.75 41 2868.65
3 4 130.50 59 2999.15
-1 -1 100.00 26 3099.15

Expresan Cantidades que se imprimen

Estructura Repetitivas Anidadas
As como se pueden encajar estructuras selectivas, tambin se pueden las estructuras repetitivas. Las
estructuras internas deben estar incluidas totalmente dentro de la externa y no puede existir solapadamente.
La representacin grfica se indica:

LOS BUCLES O CICLOS CORRECTOS LOS BUCLES O CICLOS INCORRECTOS

S-ar putea să vă placă și