You are on page 1of 14

Problema N5 Estructuras

Repetitivas
DEFINICION DEL PROBLEMA.
Construir un algoritmo que permita ingresar nmeros hasta que se ingrese el
nmero 0, finalmente se deber indicar el mayor nmero ledo.

ANALISIS DEL PROBLEMA.


Qu es?
3 12 5 9 0 21 2 0
12 21

Generalizando?
3 12 5 9 0 21 2 0
1 2 3 4 Fin 1 2 Fin
Mayor 12 Mayor 21

Esto significa que?

Debo leer una cantidad desconocida de nmeros hasta que se ingrese el nmero
cero, finalmente debo indicar cual fue el nmero mayor ledo.

1
Problema N5 Estructuras
Repetitivas

Entrada Proceso Salida

Variables: Procesos: Variables:


X1, mayor
X2, Repetir proceso hasta leer
X3, nro. 0.
Xn,,
0 Consultar si cada nmero
ledo es el mayor que el
ltimo mayor leido.

2
Problema N5 Estructuras
Repetitivas
DISEO DEL ALGORITMO:
ALGORITMO busca_mayor1 ALGORITMO busca_mayor2
ENTRADAS: ENTRADAS:
numero : integer; numero : integer;
SALIDAS: SALIDAS:
mayor : integer; mayor : integer;
VARIABLES: VARIABLES:
{ EsPrimero: integer;
{
printf(Ingrese primer Nmero:)
EsPrimero = 1
scanf(mayor)
do
do printf(Ingrese Nmero:)
printf(Ingrese Nmero:)
scanf(numero)
scanf(numero)
if( EsPrimero = 1 OR numero > mayor)
if( numero > mayor)
{ mayor = numero
{ mayor = numero}
EsPrimero = 0 }
while (numero != 0)
while (numero != 0)
printf (mayor)
printf (mayor)
}
}

3
Problema N5 Estructuras
Repetitivas

VERIFICACION MANUAL DEL ALGORITMO:

Datos de prueba: ALGORITMO busca_mayor1


ENTRADAS:
numero : integer;
3 12 5 9 0 SALIDAS:
mayor : integer;
numero mayor VARIABLES:
{
printf(Ingrese primer Nmero:)
12 3
scanf(mayor)
do
5 12 printf(Ingrese Nmero:)
scanf(numero)
9 if( numero > mayor)
{ mayor = numero}
while (numero != 0)
0 printf (mayor)

}
12 4
Problema N5 Estructuras
Repetitivas
VERIFICACION MANUAL DEL ALGORITMO:

Datos de prueba:
ALGORITMO busca_mayor2
ENTRADAS:
3 9 5 12 0 numero : integer;
SALIDAS:
mayor : integer;
numero mayor EsPrimero
VARIABLES:
EsPrimero: integer;
3 3 1
{
9 9 0 EsPrimero = 1
do
5 printf(Ingrese Nmero:)
12
scanf(numero)
if( EsPrimero = 1 OR numero > mayor)
12
{ mayor = numero
EsPrimero = 0 }
0 while (numero != 0)

} printf (mayor)

12 5
Problema N6 Estructuras
Repetitivas
DEFINICION DEL PROBLEMA.
Construir un programa que permita leer una cantidad conocida de
nmeros, finalmente indique el menor nmero ingresado.

ANALISIS DEL PROBLEMA.


Qu es?
Leer 6 nmeros
3 4 5 7 2 10
El menor numero ledo es el 2

Generalizando?

Debo consultar la cantidad de nmeros a leer, luego leer los nmeros


reteniendo el menor de ellos.

6
Problema N6 Estructuras
Repetitivas

Entrada Proceso Salida

Procesos: Variables:
Variables:
menor
cantidad Leer cantidad de nmeros
X1, a leer
X2,
X3, Repetir proceso la
Xn cantidad de veces
indicada.

Leer numeros reteniendo


el menor cada vez

Indicar el menor nmero


ledo.
7
Problema N6 Estructuras
Repetitivas
DISEO DEL ALGORITMO:
ALGORITMO busca_menor
ENTRADAS:
num, cantidad : integer;
SALIDAS:
menor : integer;
VARIABLES:
i : integer;

{
printf(cantidad de nmeros a leer)
scanf(cantidad)
for (i=1; i<=cantidad; i= i+1)
{
printf(Ingrese numero )
scanf(num)
if (i=1 OR num< menor)
{menor = num}
}
printf(menor N = ,menor)
8
}
Problema N6 Estructuras
Repetitivas
Datos de prueba:
ALGORITMO busca_menor
ENTRADAS:
4 5 3 7 2 10 num, cantidad : integer;
SALIDAS:
menor : integer;
num menor i cantidad VARIABLES:
6 i : integer;
4 4 1

5 3 2
{
3 2 3 printf(cantidad de nmeros a leer)
scanf(cantidad)
7 4
for (i=1; i<=cantidad; i= i+1)
{
2 5 printf(Ingrese numero )
scanf(num)
10 6
if (i=1 OR num< menor)
7 {menor = num}
}

} printf(El menor nmero ledo es ,menor)


menor N = 2 9
Problema N7 Estructuras
Repetitivas
DEFINICION DEL PROBLEMA.
Construir un algoritmo que permita ingresar nmeros hasta que se ingrese una
condicin de termino. Finalmente se deber indicar el mayor nmero ledo y la
cantidad de veces que se ingres.

ANALISIS DEL PROBLEMA.

Qu es?

3 1 2 5 9 5 9 9 8 1 2 0
El 9 y se ingres 3 veces..

Esto significa que?

Debo leer una cantidad desconocida de nmeros hasta que se ingrese el


nmero cero que asumo como condicin de trmino (necesariamente el cero no
puede ser un dato valido en el anlisis). Finalmente debo indicar cual fue el
nmero mayor ledo y las veces que se ingreso.

10
Problema N7 Estructuras
Repetitivas

Entrada Proceso Salida

Variables: Procesos: Variables:


X1, Mayor
X2, Repetir proceso hasta leer Veces
X3, nro. 0.
Xn,,
0 Consultar si cada nmero
ledo es mayor que el
ltimo mayor leido.

De ser el mayor
guardarlo y contarlo.

11
Problema N7 Estructuras
Repetitivas
DISEO DEL ALGORITMO ALTERNATIVA 2:
ALGORITMO busca_cuenta_ mayor2
ENTRADAS: num : integer;
SALIDAS: mayor, veces : integer;
VARIABLES: Esprimero: integer;
{
Esprimero = 1
do
printf(Ingrese Nmero:)
scanf(num)
if( Esprimero = 1 OR num > mayor)
{ mayor = num
veces = 1
Esprimero = 0
}
else
{ if (num = mayor)
{ veces = veces + 1}
}
while (num != 0)
printf (mayor, veces) 12
}
Problema N7 Estructuras
Repetitivas
DISEO DEL ALGORITMO:
ALGORITMO busca_cuenta_ mayor2
ENTRADAS:
num : integer;
SALIDAS:
mayor, veces : integer;
VARIABLES:
EsPrimero: integer;
{
EsPrimero = 1
do
printf(Ingrese Nmero:)
scanf(num)
if( EsPrimero = 1 OR num >= mayor)
{
if( EsPrimero = 1 OR num > mayor) { veces = 1}
if( num = mayor) { veces = veces +1}
mayor = num
EsPrimero = 0 }
while (num != 0)
printf (mayor, veces)
} 13
Problema N7 Estructuras
Repetitivas
VERIFICACION MANUAL DEL ALGORITMO:
Datos de prueba: 3 1 2 5 4 5 9 9 8 9 0
num mayor veces EsPrimero
{
Esprimero = 1
3 3 1 1
do
printf(Ingrese Nmero:)
1 5 1 0 scanf(num)

2 9 2 0 if( Esprimero = 1 OR num > mayor)


{ mayor = num
5 1 veces = 1
0
Esprimero = 0
}
4 2 else
{ if (num = mayor)
5 3 { veces = veces + 1}
}
9 while (num != 0)
printf (mayor, veces)
9 }
8

9 9 3
0 14

You might also like