Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En archivo anexo llamado MODULOS VECTORES presento diversos procedimientos para manipulación de este
tipo de estructura. Creación de un vector con datos leídos, escritura de un vector que ya expliqué en guías
anteriores. Haré la explicación aquí de otros módulos también presentados en el mismo archivo anexo
BUSQUEDA DEL MAYOR ELEMENTO EN UN VECTOR – PROCEDIMIENTO PRIMERA
APROXIMACION
SE ESCOGE CUALQUIER ELEMENTO DEL VECTOR Y SE GUARDA EN UNA VARIABLE
CUALQUIERA, POSTERIORMENTE SE COMPARAN TODOS LOS ELEMENTOS DEL VECTOR CON EL
VALOR DE ESA VARIABLE. SI ALGUN ELEMENTO DEL VECTOR RESULTA MAYOR QUE EL VALOR
DE LA VARIABLE SE MODIFICA EL VALOR DE ESTA VARIABLE Y SE LE ASIGNA COMO VALOR EL
DE ESE ELEMENTO. UNA VEZ RECORRIDO TODO EL VECTOR EN LA VARIABLE AUXILIAR
QUEDARA EL VALOR DEL MAYOR ELEMENTO DEL VECTOR. EJEMPLO:
CANTIDAD DE ELEMENTOS=8 - ASUMAMOS QUE ESTE ES EL VECTOR:
34 67 42 19 2 98 11 13
ARBITRARIAMENTE ESCOJO CUALQUIERA Y GUARDO EN OTRA VARIABLE
CREO=VECTOR[5] » CREO=2 – RECORRO TODO EL VECTOR DESDE POSICION 1 HASTA 8
FOR I=1 TO CANTIDAD DO
IF VECTOR [I] › CREO THEN CREO=VECTOR [I]
VALOR DE I VALOR EN VECTOR IF VALOR DE CREO
2
1 34 CIERTO 34
2 67 CIERTO 67
3 42 FALSO
4 19 FALSO
5 2 FALSO
6 98 CIERTO 98
7 11 FALSO
8 13 FALSO
FIN RECORRIDO EN CREO TENGO EL VALOR DEL MAYOR
CONSIDERACIONES:
1) Al escoger arbitrariamente la posición 5 estoy asumiendo que el vector tiene al menos 5 valores
almacenados, lo cual no necesariamente es cierto. Lo que sí es seguro es que si el vector tiene al menos un
elemento este se almacenará en la primera posición. Con lo cual, el elemento escogido arbitrariamente
como el mayor será el de la posición 1
2) Una vez hecho todo el recorrido podré conocer el valor del mayor elemento pero no conozco que posición
ocupa en el vector, por lo que tendría que hacer un nuevo recorrido para determinar dónde está?. Entonces
se hace necesario, no solo asumir arbitrariamente un valor como el mayor sino también hay que guardar en
otra variable su posición. Escritura destructiva en la variable del valor implicará también cambio en la
variable de la posición.
Incorporando estas consideraciones en el procedimiento queda:
CREO=VECTOR[1] ; POSICION=1
FOR I=1 TO CANTIDAD DO
IF VECTOR [I] › CREO THEN BEGIN
CREO=VECTOR [I]; POSICION=I; END;
VALOR DE I VALOR EN VECTOR IF VALOR DE CREO VALOR DE POSICION
34 1
1 34 FALSO
2 67 CIERTO 67 2
3 42 FALSO
CONTINUACION TEMA ARRAY UNIDIMENSIONAL O VECTOR 2
4 19 FALSO
5 2 FALSO
6 98 CIERTO 98 6
7 11 FALSO
8 13 FALSO
FIN RECORRIDO EN CREO TENGO EL VALOR DEL MAYOR Y EN POSICION SU “POSICION”
ULTIMA CONSIDERACION:
HACIENDO EL RECORRIDO DESDE LA PRIMERA HASTA LA ÚLTIMA POSICION ESTOY HALLANDO
EL MAYOR EN TODO EL VECTOR. ES POSIBLE QUE MI BUSQUEDA NO SEA EN TODO EL VECTOR
SINO EN UN RANGO DE POSICIONES. ENTONCES INCORPORO ESE RANGO COMO PARAMETRO
PARA EL RECORRIDO EN EL VECTOR. POSICION DE ARRANQUE =DESDE, POSICION FINAL=HASTA
Y EL VALOR ARBITRARIO DEL MAYOR SERA INICIALMENTE EL ELEMENTO QUE ESTE EN LA
POSICION DE ARRANQUE – MIRAR EL PROCEDIMIENTO EN ARCHIVO ANEXO LLAMADO
MODULOS VECTORES.
PARAMETROS DEL PROCEDIMIENTO:
ENTRADA: CANTIDAD DE ELEMENTOS DEL VECTOR, EL VECTOR, POSICION INICIAL DE
BUSQUEDA, POSICION FINAL DE BUSQUEDA
SALIDA: LA POSICION DEL MAYOR ELEMENTO EN ESE RANGO DE POSICIONES DADAS
(CANTIDAD,VECTOR,DESDE,HASTA,POSICION)
SI SE INVOCA ASI: (23,A,5,12,ZZ) SE ESTA EJECUTANDO EL MODULO EN UN VECTOR LLAMADO A
QUE TIENE 23 ELEMENTOS , LA BUSQUEDA SE REALIZA DESDE LA POSICION 5 HASTA LA 12 Y LA
POSICION DEL MAYOR EN ESE RANGO DE POSICIONES SE GUARDO EN LA VARIABLE ZZ.
SI QUIERO BUSCAR LA POSICION DEL MAYOR EN:
LA PRIMERA MITAD DEL VECTOR: DESDE=1, HASTA=CANTIDAD DIV 2
LA SEGUNDA MITAD: DESDE=CANTIDAD DIV 2, HASTA =CANTIDAD
EN TODO EL VECTOR: DESDE 1 , HASTA =CANTIDAD
PARA CUALESQUIERA OTROS VALORES DE POSICIONES SOLO LO INDICO RESPETANDO QUE
DESDE DEBE SER UN VALOR MENOR O IGUAL QUE HASTA EN LA EJECUCION DEL MODULO.
SI A ESTE MODULO LE CAMBIO EL OPERADOR DE RELACION MAYOR QUE POR EL DE MENOR
QUE ENTONCES EL RESULTADO SERA HALLAR LA POSICION DEL MENOR ELEMENTO DEL
VECTOR EN UN RANGO DE POSICIONES
OBSERVE QUE SOLO OBTENGO COMO RESULTADO LA POSICION DEL ELEMENTO EN CUESTION
PORQUE CON LA POSICION TENGO DOS INFORMACIONES, CUANTO VALE? Y DONDE ESTA?.
RESULTADO DEL EJEMPLO: POSICION=6 – ENTONCES: DONDE ESTA? EN LA POSICION 6; CUANTO
VALE VECTOR [POSICION] ? BUSQUE EL VALOR DE VECTOR [6] EN EL EJEMPLO. ES EL MAYOR
VALOR???
SUPONGAMOS QUE PARTIENDO DE ESTE VECTOR:
1 2 3 4 5
QUIERO OBTENER ESTE:
5 4 3 2 1
QUE HICE? VOLTEAR EL VECTOR?
1 2 3 4 ….. …… N-3 N-2 N-1 N
Vector resultante, tiene 6 elementos, se deben desplazar los elementos antes de hacer la
17 23 40 56 82 400
inserción