Professional Documents
Culture Documents
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.
Generalizando?
3 12 5 9 0 21 2 0
1 2 3 4 Fin 1 2 Fin
Mayor 12 Mayor 21
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
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
}
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.
Generalizando?
6
Problema N6 Estructuras
Repetitivas
Procesos: Variables:
Variables:
menor
cantidad Leer cantidad de nmeros
X1, a leer
X2,
X3, Repetir proceso la
Xn cantidad de veces
indicada.
{
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}
}
Qu es?
3 1 2 5 9 5 9 9 8 1 2 0
El 9 y se ingres 3 veces..
10
Problema N7 Estructuras
Repetitivas
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)
9 9 3
0 14