Funcion res = encontrado(b,n,i)
// Función: determina si el valor n está en el array b en las i-1 posiciones indicadas
// Entradas: b array de valores; n el valor a comprobar si está; i indica las posiciones que quiero comprobar
// Salida: valor lógico indicando si lo ha encontrado (verdadero) o no (falso)
Definir res Como Logico
Definir j Como Entero
res <- falso
Para j<-1 Hasta i-1 Hacer
Si b[j]=n Entonces
res <- verdadero
FinSi
FinPara
FinFuncion
Funcion visualizar(b)
// Función: Visualizar el array
// Entradas: b el array de valores
// Salida: Ninguna
Definir j como entero
Para j<-1 Hasta 6 Hacer
Escribir b[j]
FinPara
FinFuncion
funcion intercambiar(a por referencia,b Por Referencia)
// Función: intercambia los valores pasados como argumentos
// Entradas: a y b, valores a intercambiar
// Salida: a con el valor de b y b con el valor de a
Definir c como real
c=a
a=b
b=c
FinFuncion
Funcion ordenar(b)
// Función: ordena array
// Entradas: b el array desordenado
// Salida: b el array ordenado
Definir i,j como entero
Para i=2 hasta 6 hacer
Para j=1 hasta 6-i+1 Hacer
si b[j]>b[j+1] Entonces
intercambiar(b[j],b[j+1])
FinSi
FinPara
FinPara
FinFuncion
Algoritmo Generador_de_primitivas
// Declaración de variables
// i es un contador
// b es el array de 6 elementos
// n será el valor aleatorio obtenido
Definir i,b,n Como Entero
Dimension b[6]
// Proceso que irá determinado valores al azar, si no está en el array lo insertará
// y determinará otro hasta llegar a 6. Si un valor ya está en array se repite la búsqueda
i <- 1
Repetir
n <- azar(49)+1
Si NO encontrado(b,n,i+1) Entonces
b[i] <- n
i <- i+1
SiNo
Escribir 'Valor repetido (',n,')...buscando otro'
FinSi
Hasta Que i>6
ordenar(b)
// visualiza los elementos encontrados
// Una mejora sería que los mostrase ordenados
Escribir 'Los número obtenidos para tu primitiva son...'
visualizar(b)
FinAlgoritmo
Tenemos varios ejemplos de funciones o subprocesos y de los distintos tipos que se han comentado en clase; en algunos casos devuelven un valor (función encontrado), en otro se pasan dos valores por referencia (función intercambiar) y por último, tenemos una función que no devuelve nada ya que solo sirve para visualizar el contenido del array.
Tened en cuenta que en la función ordenar, a la cual le pasamos el array con los seis números no se pasa por referencia ya que en el caso de los arrays no es necesario.
Aquí está el diagrama de flujo del algoritmo principal.
Esta es la función para determinar si un número existe en el array... buscando en el array b, indicando el valor que quiero saber si está o no y hasta que posición quiero que lo busque.
No hay comentarios:
Publicar un comentario