Vectores


NOTA: para ejecutar los ejemplos siguientes lo hacen  con el comando bash no con sh por que manda error no existen algunas funciones




Primero que todo vamos a definir lo que es un vector el cual es una estructura de datos que permite almacenar  colección de elementos, entonces solo por el hecho que sea que sea una estructura de datos podemos realizar operaciones algoritmicamente hablando como buscar, eliminar y agregar que son las básicas.

Definición o Declaración del vector para esto tenemos 2 formas implícitamente y explicitamente expliquemos cada:

Implícitamente

Es implícitamente por que el vector una vez declarado a su vez es inicializado con sus respectivos valores ejemplo:
                  
vector=("Buenas" "Hola" "Buenos Dias" "Buenas Tardes" "Buenas Noches");

Explícitamente

Es explicitamente por que el vector no requiere que se inicialice una vez se declara, es decir puede ser inicializado en otra función u otra parte donde asi se requiera ejemplo:


vector="";

funcion_inicilizarVector()
{
 vector=$1; # $1 indica que se toma el primer parámetro de la función
}


Bueno una vez conocido como podemos declarar un vector vemos ejemplo de como podemos recorrer los elementos que este contiene:

para esto tenemos que saber como conocer el tamaño del vector es decir cuantos elementos contiene dicho vector y esto lo hacemos con la siguiente linea

${#vector[@]}

y también debemos conocer como accedemos a un elemento especifico que el vector contiene esto lo hacemos con la siguiente linea:

${vector[0]} #en este caso accedemos al primer elemento eso indica el cero si queremos acceder al segundo colocamos uno $1



conocido esto recorramos los elementos con una estructura iterativa como lo es el for vemos el siguiente ejemplo completo:


#!/bin/bash

vector=("Buenas" "Hola" "Buenos Dias" "Buenas Tardes" "Buenas Noches");

for ((i=0;i<${#vector[@]};i++))
     {
        echo ${vector[$i]};
     }
exit 0;

Con el ejemplo anterior podemos mostrar los elementos que el vector contiene.

Veamos ahora el ordenamiento del vector de mayor a menor con el siguiente ejemplo:


#!/bin/bash
vector=("15" "12" "14" "30" "2" "4" "10");

 for ((i=0;i<${#vector[@]};i++))
     {

 for ((j=i;j<${#vector[@]};j++))
     {
     
      a=${vector[$i]};
      b=${vector[$j]};

       if [ $a -le $b ];
          then
              aux=${vector[$i]};
              vector[$i]=${vector[$j]};
              vector[$j]=$aux;
          fi
   
     }

     }


for ((i=0;i<${#vector[@]};i++))
     {
        echo ${vector[$i]};
     }
exit 0;




1 comentario:

  1. Por lo que veo haces un for por cada valor que se una, y uno esta dentro del otro. ¿Esto se debe hacer como lo has hecho tu o Se pueden poner los for por separado?

    ResponderEliminar