Pseudocódigo
Algoritmo Principal:
INICIO
Asignar.valor.par.impar.CE.suma (par, impar, CE, Suma = entero)
Revisar.fin.datos (haydatos = bolean)
MIENTRAS (continuar) HACER
Obtener.num (num=entero)
SI es.apocaliptico (num) entonces
MOSTRAR (num, “es apocalíptico”)
SI es.par (num) entonces
Par par + 1
Llenar.arreglo (a=tarrent)
SINO
CE CE + 1
SINO
MOSTRAR (num, “no es apocalíptico”)
Revisar.fin.datos (continuar = bolean)
FINMIENTRAS
PROCEDIMIENTO promedio ( suma, promedio: Entero ; CE: VALOR)
MOSTRAR (“el promedio de apocalípticos impares es”, promedio)
ordenar.arreglo.des (a=tarrent ; i , par=entero)
MOSTRAR ( “los 10 Números pares mayores en forma ascendente son ”)
PARA ( i = 1 hasta 10)
MOSTRAR ( a )
FINPARA
FIN
PROCEDIMIENTO Revisar.fin.datos (REF haydatos = boleano)
REPETIR
MOSTRAR (“Desea Ingresar datos? (s/n)”)
INGRESAR (respuesta)
HASTA QUE (respuesta = “s”) o (respuesta = “n”)
SI (respuesta = “s”) entonces
haydatos verdadero
SINO
Haydatos Falso
FINSI
FINPROCEDIMIENTO
Variables Locales: Respuesta (caracter)
Precondiciones: ---- (No hay datos de entrada)
Pos Condiciones: A continuar se le asigna verdadero si el usuario ingresa “s”, sino, si ingresa “n”, continuar se le asigna falso.
PROCEDIMIENTO obtener.num (REF num = entero)
MOSTRAR (“Ingrese un número”)
INGRESAR (num)
FINPROCEDIMIENTO
Variables Locales: ----
Precondiciones: ----
Pos condiciones: Pide al usuario ingresar un número
PROCEDIMIENTO Asignar.valor.par.impar.CE.suma (REF par, impar, CE, suma = entero)
Par 0
Impar 0
CE 0
Suma 0
FINPROCEDIMIENTO
Variables Locales: ----
Precondiciones: ----
Pos Condiciones: Se le asigna 0 a las variables Par, Impar, CE y suma
FUNCIÓN es.par (VALOR num = entero) = Booleano
SI (num resto 2 = 0) entonces
Es verdadero
SINO
Es Falso
FINSI
DEVOLVER (Es)
FINFUNCIÓN
Variables Locales: Es (Booleano)
Pre condiciones: ---
Pos condiciones: Es toma el valor verdadero si el número dividido 2 da resto 0, sino, Es es falso
FUNCIÓN es.epocalíptico (VALOR num = entero) = booleano
Cont 0
a 1
MIENTRAS cont < num HACER
a a * 2
Cont Cont + 1
FINMIENTRAS
Cantseis 0
Res 0
MIENTRAS (a > 1) o (Cantseis < 3) HACER
Res a resto 10
a a div 10
SI(res = 6) entonces
Cantseis cantseis + 1
SINO
Cantseis 0
FINSI
FINMIENTRAS
SI ( cantseis = 3 ) entonces
Es verdadero
SINO
Es falso
FINSI
DEVOLVER (Es)
FINFUNCION
Variables Locales: Cont, Res, Cantseis, a = entero ; Es = Boleano
Pre condiciones: ---
Pos condiciones: “Es” toma el valor de verdadero si cantseis llega al valor 3, sino “Es” toma es valor de falso
PROCEDIMIENTO llenar.arreglo (REF a=tarrent ; i=entero ; VALOR num, par=entero)
DIMENSIÓN a[par]
a num
FINPROCEDIMIENTO
Variables Locales = ---
Precondiciones = par >= 0
Pos Condiciones = Se dimensiona el arreglo a con la cantidad de apocalípticos pares, y después se introduce “num” en el arreglo.
PROCEDIMIENTO ordenar.arreglo.des ( REF a=tarrent ; i = entero ; par=entero)
aux 0
PARA ( i = 1 hasta i < par ) HACER
PARA (x = 1 hasta x < par) HACER
SI ( a[i+1] > a
- ) ENTONCES
a a
- aux
FINPARA
FINPARA
FINPROCEDIMIENTO
Variables Locales = X, aux : entero
Precondiciones = par>=0
Pos Condiciones = Se compara a con a
- , si a es menor a a
- , se cambian de lugar, sino, se pasa al siguiente elemento y se vuelven a comparar.
PROCEDIMIENTO Promedio ( REF = suma, promedio : entero ; VALOR = CE: entero)
suma suma + num
promedio suma /CE
FINPROCEDIMIENTO
Variables Locales = ---
Precondiciones = ---
Pos Condiciones = La variable “suma” va tomando el valor de la suma de los “num” impares ingresados, y al final se obtiene el promedio dividiendo a “suma” por la cantidad de elementos impares, y se le asigna el valor a la variable “promedio”
Gracias