Está en la página 1de 5

PROBLEMA (haga dos soluciones una usando centinela y otra usando bandera)

Disee una solucin que lea un grupo o conjunto de nmeros enteros positivos. Se debe de
imprimir la cantidad de nmeros ingresados, la suma de todos los nmeros y el promedio de los
nmeros ingresados. Adems se requiere que la solucin muestre cul fue el nmero menor, cual
fue el nmero mayor, la cantidad de impares y la cantidad de pares

1. SOLUCIN USANDO CENTINELA


I. PLANTEAMIENTO
Entrada de datos -----> ----> salida de datos
-nmeros enteros positivos -cantidad de nmeros
-valor que detiene el ciclo o centinela (0) -la suma de los nmeros
-promedio de los nmeros
-el nmero menor
-el nmero mayor
-la cantidad de impares
-la cantidad de pares
II. ANALISIS
a. salida
Variables de salida
nombre tipo descripcin
digito entero cantidad de enteros ingresados
variable contador vi=0, vf=?, vc=1
sum real suma de todos los enteros positivos en el conjunto
variable acumulador vi=0.0, vf=?, vc=valor
prom real promedio de los nmeros
menor entero la cantidad menor, vi = 65535
mayor entero la cantidad mayor, vi = 0
impares entero la cantidad de impares
variable contador vi=0, vf=?, vc=1
pares entero la cantidad de pares
variable contador vi=0, vf=?, vc=1
b. entrada
b.1 variables de entrada
nombre tipo descripcin
valor entero contiene los distintos nmeros positivos, o el valor centinela
para finalizar el ciclo (0) .
b.2 constantes.
Nombre tipo descripcin valor
PARAR entero representa el valor del centinela para detener ciclo 0

c. restricciones: valor > 0 || valor == PARAR


d. proceso

PARAR=0 // se le asigna el valor centinela, valor que detiene el ciclo


digito=0
sum=0.0
menor=65535 // se le asigna el valor mas alto para encontrar el menor
mayor=0 // se le asigna el valor mas bajo para encontrar el mayor
impares=0
pares=0
valor=1 // para ingresar primera vez al ciclo se inicia valor con un numero diferente de 0
Mientras( valor != PARAR) // se compara si el valor es diferente del valor centinela
imprimir "digite valor positivo o cero para salir: "
leer valor
Mientras(valor <=0 && valor!=PARAR) // lo contrario de la restriccin
imprimir "error: deber ser positivo o cero para salir: "
leer valor

valor != PARAR? //si el valor ingresado es diferente al centinela se hace el proceso


SI: //en caso contrario no se hace nada
digito++
sum+=valor

Es (valor < menor)?


SI: menor = valor

Es (valor > mayor)?


SI: mayor = valor

Es (valor % 2 == 0)?
SI: pares ++
NO: impares++

//FIN DEL CICLO


//recuerde que cero es falso y cualquier valor diferente de cero es cierto
digito ? //por lo que digito contiene la cantidad ingresada si es cero no se muestra la salida
SI: prom = sum / digito
imprimir digito, sum, prom
imprimir menor, mayor
imprimir pares, impares

NO: imprimir "NO HA DIGITADO NINGUN NUMERO POSITIVO...."


2. SOLUCION USANDO BANDERA
I. PLANTEAMIENTO
entrada de datos -----> ----> salida de datos
-nmeros enteros positivos -cantidad de nmeros
-opcin de continuar (bandera) -la suma de los nmeros
-valores bandera (1 SI 0 NO) -promedio de los nmeros
-el nmero menor
-el nmero mayor
-la cantidad de impares
-la cantidad de pares

II. ANALISIS
a. salida
Variables de salida
nombre tipo descripcin
digito entero cantidad de enteros ingresados
variable contador vi=0, vf=?, vc=1
sum real suma de todos los enteros positivos en el conjunto
variable acumulador vi=0.0, vf=?, vc=valor
prom real promedio de los numeros
menor entero la cantidad menor, vi = 65535
mayor entero la cantidad mayor, vi = 0
imparesentero la cantidad de impares
variable contador vi=0, vf=?, vc=1
pares entero la cantidad de pares
variable contador vi=0, vf=?, vc=1
b. entrada
b.1 variables de entrada
nombre tipo descripcin
valor entero contiene los distintos nmeros positivos, o el valor centinela
para finalizar el ciclo (0)
continuar entero contiene la opcin de continuar (SI=1 NO=0) definidas en
las constantes b.2
b.2 constantes.
nombre tipo descripcin valor
SI entero representa el valor si o cierto para seguir el ciclo 1
NO entero representa el valor no o falso para detener el ciclo 0

c. restricciones: valor > 0


continuar==SI || continuar==NO
d. proceso
SI=1 // SI representa el valor cierto o seguir
NO=0 // NO representa el valor falso o parar
digito=0
sum=0.0
menor=65535 // se le asigna el valor mas alto para encontrar el menor
mayor=0 // se le asigna el valor mas bajo para encontrar el mayor
impares=0
pares=0
continuar = SI // a la variable bandera se le asigna el valor cierto o valor seguir, que es 1
Mientras( continuar == SI )
imprimir "digite valor positivo: "
leer valor
Mientras(valor <=0) // lo contrario de la restriccin
imprimir "error: deber ser positivo: "
leer valor

digito++
sum+=valor

Es (valor < menor)?


SI: menor = valor

Es (valor > mayor)?


SI: mayor = valor

Es (valor % 2 == 0)?
SI: pares ++
NO: impares++

imprimir "Desea continuar: 1 es SI 0 es NO: "


leer continuar
Mientras ( continuar != SI && continuar != NO)
imprimir "Error: debe digitar 1 o 0: "
leer continuar

//FIN DEL CICLO PRINCIPAL

prom = sum / digito


imprimir digito, sum, prom
imprimir menor, mayor
imprimir pares, impares

También podría gustarte