TEORÍA

 

Vectores (Matrices o arrays)

Los vectores nos permiten almacenar una serie de datos en una única variable. Son como una cajonera en cada uno de cuyos cajones podemos guardar un dato. Todos los datos deben ser del mismo tipo.

Por ejemplo, si queremos almacenar veinte números, con lo que sabemos hasta ahora habríamos diseñado algo similar a:
                                   …

                                   { int numero1,numero2,numero3,numero4…;

                                      printf(“Dame el primer número”);scanf(“%d”,&numero1);

                                      printf(“Dame el segundo número”);scanf(“%d”,&numero2);

                                   …

            En vez de ello podemos, usando un vector, llamar a la variable vector, por ejemplo, numeros, y referirnos al numero[0], al numero[1], al numero[2],, ya sea para introducirlos o, posteriormente, para operar con ellos o mostrarlos en pantalla.
            Un vector se define de forma parecida a los demás tipos de variables: indicamos su tipo, el nombre que le damos, y señalamos a continuación, entre corchetes, el número de elementos que en él vamos a almacenar.

Sintaxis:           tipo nombrevector[nº de posiciones];   donde tipo es cualquiera de los tipos de datos conocidos: entero (int), real (float), o carácter (char).

           - Para introducir un valor en una determinada posición, indicamos esta entre corchetes.

            En el ejemplo se observa que la primera posición es siempre la 0 y no la 1.

           - Podemos definir y asignar valores

Cuando el número de elementos es elevado, lo que se hace es ir introduciendo los datos, o visualizándolos, con la ayuda de un bucle, que haga que una variable (índice), vaya tomando los valores de cada una de las posiciones del vector. Los arrays pueden ser de más de una dimensión. Podemos imaginar un array bidimensional como una tabla con filas y columnas. Por ejemplo, un array bidimensional para introducir los días de la semana sería de 9 columnas  y siete filas, una para cada día. La definición sería:

char semana[7][9]={"lunes","martes","miércoles","jueves","viernes","sábado","domingo"};

 

ORDENACIÓN DE ARRAYS

 Método de la burbuja.

Consiste en ir comparando, desde el primero al penúltimo, cada posición del array con la siguiente. Si están ordenados, se compara el último de los dos con el que le sigue, y así sucesivamente. Al llegar a una pareja que esté desordenada, se intercambian sus valores y se continúa. Cuando llegamos a comparar el penúltimo con el último, si alguna pareja estaba desordenada y hubo que cambiar sus valores, se empieza de nuevo todo el proceso. Se da por concluida la ordenación cuando se recorre toda la lista y no hemos encontrado ninguna pareja desordenada.

ARRAYS DE CARACTERES

    Se declaran se forma similar a los otros tipos de arrays:       char nombrevariable[nºposiciones];

     El compilador introduce automáticamente, en la posición siguiente al último carácter, el carácter nulo \0          Por esta razón es necesario definir una posición más de las que necesitemos.

Para introducir los caracteres, podemos:

-  escribirlos como cadena literal: char nombrearray[]=”cadena”;

en cuyo caso el compilador reserva automáticamente las posiciones necesarias y además incluye al final  el carácter nulo \0

- escribirlos carácter a carácter, entre llaves y separados por comillas sencillas:

     char nombrearray[nºposiciones]={‘carácter1’,’carácter2’,…,’\0’};

 teniendo entonces que reservar el número de posiciones necesario e incluir al final el carácter nulo

- pedirlos al usuario mediante gets(nombrearray), como veremos a continuación en las funciones de cadena.

FUNCIONES DE CADENA

 printf(); Su sintaxis es la misma que vimos al hablar de los tipos entero, real y char:

 gets(); Es la función equivalente a scanf(); Permite introducir la cadena por teclado.

 getch();  y getche();      Ambas funciones fueron estudiadas. Nos permitían tomar pulsaciones del teclado.  Podemos usarlas para ir tomando una cadena carácter a carácter. Habrá que limitar el número de caracteres dependiendo de las posiciones que pusiésemos en la declaración del array, y después del último carácter, hay que meter el carácter nulo.

    Ambas se encuentran en el fichero de cabecera conio.h

Otras funciones de tratamiento de cadenas (strings)

 Todas ellas están incluídas en el fichero de cabecera string.h

 strcat();            Concatena dos cadenas. Sintaxis: strcat(cadenadestino,cadenaorigen);                      

La cadena destino debe ser lo suficientemente grande como para poder contener a la cadena origen, que se pondrá  después del último carácter, si es que lo hay, de la destino

strcmp();          Sintaxis: variable_entera=strcmp(cadena1,cadena2);

Compara dos cadenas, devolviendo:

- 0 si son iguales

- <0 si el código ASCII del carácter diferenciador de la primera cadena es menor que el de la segunda.

- >0 si el código ASCII del carácter diferenciador de la primera cadena es mayor que el de la segunda.

strcpy(); Sintaxis: strcpy(cadenadestino,cadenaorigen);

Copia la cadena origen en la cadena destino. Esta deberá tener el tamaño adecuado para contener a la primera.

strlen();            Sintaxis: variable_entera=strlen(cadena);

Mide la longitud (el nº de caracteres) de una cadena. Los espacios en blanco también son caracteres.

 

 

 

 

  

 

 

 

 

 

 

 

 

Hosted by www.Geocities.ws

1