Está en la página 1de 2

1 /*********************************************************************

2 * Ejemplo de uso de SL.


3 *
4 * Algoritmo que utiliza el metodo de busqueda secuencial (vector).
5 *
6 *********************************************************************/
7 const
8 N = 20
9 // Zona de declaracion de variables.
10 var
11 i, dato_buscado : numerico
12 array : vector [N] numerico
13 inicio
14 // limpiamos la pantalla
15 cls()
16 // zona de inicializacion de variables
17 i=1
18 // ingresamos valores aleatorios al vector
19 mientras (i <= N)
20 {
21 array[i] = random(100)
22 i=i+1
23 }
24
25 // introducimos el valor que deseamos buscar
26 imprimir ("\n Introduzca un valor a buscar: " )
27 imprimir ("\n ")
28 leer(dato_buscado)
29
30 // realizamos la busqueda secuencial en el vector
31 i = busqueda_secuencial(array, dato_buscado)
32
33 // imprimimos los resultados.
34 // si i == 0 es porque nunca encontro el elemento en el vector
35 si (i==0)
36 {
37 imprimir ("\n Elemento no encontrado en el vector " )
38 sino
39 imprimir ("\n Elemento encontrado en la posicion " , i, " del vector" )
40 }
41
42 imprimir ("\n")
43
44 // imprimimos el vector
45 imprimir ("\n Vector: " )
46 imprimir ("\n")
47 imprimir (" ")
48 imprimir_vector(array)
49 fin
50
51 //***********************************************************************************************
52 //******************************** ZONA DE DECLARACION DE FUNCIONES *****************************
53 //***********************************************************************************************
54 // Subrutina busqueda_secuencial: dado un vector de N posiciones y un dato, aplicamos la busqueda
55 // de ese dato a traves del metodo secuencial (no es necesario tener el vector ordenado).
56 subrutina busqueda_secuencial(ref array : vector [N] numerico; dato_buscado : numerico) retorna numerico
57 var
58 j, indiceElemento : numerico
59 encontrado : logico
60 inicio
61 j=1
62 encontrado = FALSE
63 indiceElemento = 0
64 mientras (j <= N and not(encontrado))
65 {
66 si(array[j] == dato_buscado)
67 {
68 encontrado = TRUE
69 indiceElemento = j
70 }
71 j=j+1
72 }
73 retorna(indiceElemento)
74 fin
75
76 // Subrutina imprimir_vector: imprime un vector de N posiciones en pantalla
77 subrutina imprimir_vector(array : vector [N] numerico)
78 var
79 index : numerico
80 inicio
81 index = 1
82 desde index = 1 hasta N
83 {
84 imprimir (array[index])
85 imprimir (" ")
86 }
87 fin
88

También podría gustarte