You are on page 1of 9

LX Lenguajes Operativos

Mtro. Juan Miguel Camargo Pulido Pgina 1 de 9


PROBLEMAS REPETITIVOS COMPUESTOS
Recordemos que los problemas repetitivos compuestos son aquellos en los que se emplean varios ciclos.
Frecuentemente encontraremos problemas en donde el cuerpo de un ciclo es otro ciclo. En estos casos
estaremos hablando de un ciclo interno que est anidado dentro de un ciclo externo. Podemos
encontrar muchas combinaciones, dependiendo de si los ciclos tienen un nmero determinado o
indeterminado de iteraciones o si existen ms de dos ciclo anidados.
PROBLEMAS DE EJEMPLO (problemas repetitivos compuestos):
Problema 1
En un supermercado un cajero captura los precios de los artculos que los clientes compran e indica a
cada cliente cul es el monto de lo que deben pagar. Al final del da le indica a su supervisor cunto fue
lo que cobr en total a todos los clientes que pasaron por su caja.
Paso 1.- Definicin del problema
Igual a la redaccin del problema
Paso 2.-Planeacin de la Solucin
Para empezar, podemos visualizar dos ciclo: uno para obtener el total de cada cliente y otro
para obtener el total de lo que el cajero cobr en todo el da.
El ciclo para obtener el total por cliente debe obtener la cantidad de dinero por cada artculo
distinto que compr el cliente para ir acumulando su total y como al llegar a la caja el cliente no
sabe cuntos artculos distintos compr, emplearemos un ciclo con un nmero indeterminado
de iteraciones que llamaremos ciclo del cliente.
Lo que llamaremos ciclo del cajero deber ir acumulando los totales de los clientes para as
obtener el total del cajero. Como no podremos saber cuntos clientes pasarn por la caja se
usar tambin un ciclo con un nmero indeterminado de iteraciones. El algoritmo del ciclo del
cajero debe quedar de la siguiente forma:
1. total del cajero = 0
2. CLIENTE
3. total del cajero = total del cajero + total del cliente
4. PEDIR mas$
5. SI mas$ = NO ENTONCES
IR al paso 6
DE OTRA FORMA
IR al paso 2
6. DESPLEGAR total del cajero
7. FIN
El paso 2 es la llamada a ejecucin del ciclo denominado CLIENTE. Para poder saber el total del
cajero necesitamos ir acumulando los totales de los clientes. Por ello el ciclo del cajero llama a
ejecucin el ciclo del CLIENTE, cuyo algoritmo deber quedar de la siguiente forma:
1. total del cliente = 0
2. ARTICULO
LX Lenguajes Operativos
Mtro. Juan Miguel Camargo Pulido Pgina 2 de 9
3. total del cliente = total del cliente + total del articulo
4. PEDIR mas1$
5. SI mas1$ = NO ENTONCES
IR al paso 6
DE OTRA FORMA
IR al paso 2
6. DESPLEGAR total del cliente
7. FIN
En donde el paso 2 es la llamada a ejecucin del proceso denominado ARTICULO, el cual
constar de los siguientes pasos:
1. PEDIR precio, cantidad
2. total del artculo = preio * cantidad
Se definirn ahora los datos requeridos:
SALIDAS: total de cada cliente, total del cajero
ENTRADAS: precio, cantidad de cada artculo
DATOS ADICIONALES: ninguno
Paso 3.- Algoritmo
De ahora en adelante llamaremos:
p a precio de cada artculo
c a cantidad de cada artculo
tcaj a total del cajero
tcl a total del cliente
ta a total del artculo
mas$ a Variable que determina el fin del ciclo del cajero.
mas1$ a Variable que determina el fin del ciclo del cliente.
C a El proceso CLIENTE
A a El proceso ARTICULO

1. tcaj 0
2. C
3. tcaj tcaj + tcl
4. PEDIR mas$
5. SI mas$ = NO ENTONCES
IR al paso 6
DE OTRA FORMA
IR al paso 2
6. DESPLEGAR tcaj
7. fin
Proceso C:
1. tcl 0
2. A
LX Lenguajes Operativos
Mtro. Juan Miguel Camargo Pulido Pgina 3 de 9
3. tcl tcl + ta
4. PEDIR mas1$
5. SI mas1$ = NO ENTONCES
IR al paso 6
DE OTRA FORMA
IR al paso 2
6. DESPLEGAR tcl
7. FINC
Proceso A:
1. PEDIR ,p, c
2. ta p * c
3. FINA


LX Lenguajes Operativos
Mtro. Juan Miguel Camargo Pulido Pgina 4 de 9
Paso 4.- Diagrama de Flujo
Para resolver este problema se requiri de un ciclo con un nmero indeterminado de iteraciones, el cual
tiene anidado otro ciclo del mismo tipo, que a su vez contiene un pequeo proceso secuencial.


C
tcl 0
A
tcl tcl + ta
mas1$
mas1$ =
NO
tcl
FINC
A
ta p * c
p, c
FINA
INICIO
TCAJ 0
C
tcaj tcaj + tcl
mas$
mas$ =
NO

tcaj
FIN
LX Lenguajes Operativos
Mtro. Juan Miguel Camargo Pulido Pgina 5 de 9
Problema 2
Cinco miembros de un club contra la obesidad desean saber cunto han bajado o subido de peso desde
la ltima vez que se reunieron. Para esto se debe realizar un ritual de pesaje en donde cada uno se pesa
en diez bsculas distintas para as tener el promedio ms exacto de su peso. Si existe diferencia positiva
entre este promedio de peso y el peso de la ltima vez que se reunieron, significa que subieron de peso.
Pero si la diferencia es negativa, significa que bajaron. Lo que el problema requiere es que por cada
persona se imprima un letrero que diga SUBI o BAJ y la cantidad de kilos que subi o baj de
peso.
Paso 1.- Definicin del problema
Igual a la redaccin del problema
Paso 2.-Planeacin de la Solucin
Para solucionar este problema ser necesario utilizar dos ciclos. El primero estar compuesto
por las acciones que se deben efectuar por cada uno de los cinco miembros del club, por lo que
ser necesario utilizar un ciclo con un nmero determinado de iteraciones. Este ciclo estar
compuesto por las siguientes acciones:

1. contador = 1
2. SI contador >5 ENTONCES
IR al paso 3
DE OTRA FORMA
MIEMBRO
contador = contador + 1
IR al paso 2
3. FIN
El segundo ciclo ser el proceso MIEMBRO, el cual contiene las acciones que se realizarn por
cada miembro del club. Dichas acciones estarn representadas por un ciclo con un nmero
determinado de iteraciones, pues ser necesario hacer lo mismo por cada una de las diez
bsculas y por una condicional para determinar si subi o baj de peso. Las acciones que
componen a este proceso son las siguientes:
1. PEDIR promedio de peso anterior
2. suma de pesos = 0
3. contador de bsculas = 1
4. SI contador de bsculas >10 ENTONCES
IR al paso 5
DE OTRA FORMA
BSCULA
contador de bsculas = contador de bsculas + 1
IR al paso 4
5. promedio actual = suma de pesos/10
6. diferencia de pesos = promedio actual promedio de peso anterior
7. SI diferencia de pesos < 0 ENTONCES
DESPLEGAR baj de peso
DE OTRA FORMA
LX Lenguajes Operativos
Mtro. Juan Miguel Camargo Pulido Pgina 6 de 9
DESPLEGAR subi de peso
8. FIN
El proceso BASCULA est formado por las acciones que se llevan a cabo cuando un miembro
llega a una bscula, las acciones que lo componen son las siguientes:
1. PEDIR peso
2. suma de pesos = suma de pesos + peso
Se definirn ahora los datos requeridos:
SALIDAS: el mensaje bajo de peso o 2subi de peso por cada miembro.
ENTRADAS: promedio peso anterior de cada miembro, diez pesos distintos por cada
miembro
DATOS ADICIONALES: Un miembro baj de peso si la diferencia entre el peso anterior y el
promedio de pesos en las diez bsculas es negativo, en caso contrario subi de peso.
Paso 3.- Algoritmo
De ahora en adelante llamaremos:
c a contador de miembros
M a proceso MIEMBRO
pant a promedio de peso anterior
sp a suma de pesos
cb a contador de bsculas
pa a promedio de peso actual
dif a diferencia de pesos
B a proceso BSCULA
pe a peso por bscula

1. c 1
2. SI c>5 ENTONCES
IR al paso 3
DE OTRA FORMA
M
c c + 1
IR al paso 2
3. FIN
Proceso M:
1. PEDIR pant
2. sp 0
3. cb 1
4. SI cb >10 ENTONCES
IR al paso 5
DE OTRA FORMA
B
cb cb +
LX Lenguajes Operativos
Mtro. Juan Miguel Camargo Pulido Pgina 7 de 9
IR al paso 4
5. pa sp/10
6. dif pa pant
7. SI dif < 0 ENTONCES
DESPLEGAR baj de peso
DE OTRA FORMA
DESPLEGAR subi de peso
8. FINM
Proceso B :
1. PEDIR pe
2. sp sp + pe
3. FINB

LX Lenguajes Operativos
Mtro. Juan Miguel Camargo Pulido Pgina 8 de 9
Paso 4.- Diagrama de Flujo
En este problema se emple un ciclo con un nmero determinado de iteraciones, el cual contiene a su
vez un ciclo del mismo tipo seguido de una estructura selectiva simple. El ciclo interno ejecuta un
proceso secuencial.


M
pant
sp 0
cb 1
cb > 10
B
cb cb + 1
pa sp/10
dif pa - pant
dif < 0
subio de
peso
baj de
peso
FINM
INICIO
c 1
c > 5
M
c c + 1

FIN
B
pe
sp sp + pe
FINB
LX Lenguajes Operativos
Mtro. Juan Miguel Camargo Pulido Pgina 9 de 9
Aplicando los primeros cuatro pasos de la Metodologa para la solucin de problemas por
computadora, resuelva los siguientes:
PROBLEMAS PROPUESTOS. (problemas repetiti vos compuestos
1. Simular el comportamiento de un calendario, desplegando da, mes y ao de un ao completo no
bisiesto.
2. Un atleta se ha propuesto recorrer una misma ruta durante un ao, corriendo 6 das a la semana,
para as saber su promedio por semana, por mes y por todo el ao.
3. A lo largo del da un cajero procesa a las personas que llegan a efectuar movimientos bancarios.
Estos movimientos deben ser esencialmente cargos o abonos. Determinar la cantidad total de
dinero obtenida por concepto de cargos y abonos en todo el da, as como un balance que indique si
hubo ms cargos que abonos o viceversa y la diferencia absoluta.
4. Llevar el control de un tablero que registra los puntos de set de un partido de tenis de 5 sets sin
muerte sbita, es decir, que gana el set aquel que llegue a 6 puntos o ms con dos puntos de
ventaja sobre el adversario. Lo que debe imprimir es un mensaje con el nombre del jugador que
gana cada set y el nombre del ganador del partido.
5. Simular el comportamiento de un reloj digital imprimiendo la hora, minuto y segundo en cada
segundo de un da desde las 0:00.00 horas hasta las 23:59:59 horas.

You might also like