Professional Documents
Culture Documents
Programacin I
Programacin en C
ARREGLOS
Programacin I
ARREGLOS
Concepto de array o arreglo
Un arreglo(lista o tabla) es una secuencia de datos del mismo tipo. Los datos se llaman elementos del arreglo y se numeran consecutivamente 0, 1, 2, 3... . Estos nmeros se denominan valores ndice o subndice del arreglo Estos nmeros localizan la posicin del elemento dentro del arreglo, proporcionando acceso directo al arreglo. El tipo de elementos almacenados en el arreglo puede ser cualquier tipo de dato de C, incluyendo estructuras definidas por el usuario.
Prof. Luciano Beato
Programacin I 3
ARREGLOS
Declaracin de un arreglo
Se debe declarar un arreglo antes de utilizarlo. Un arreglo se declara de modo similar a otros tipos de datos, excepto que se debe indicar al compilador el tamao o longitud del arreglo. Para indicar al compilador el tamao o longitud del arreglo se debe hacer seguir al nombre, del tamao encerrado entre corchetes. La sintaxis para declarar un arreglo de una dimensin determinada es:
tipo nombrearreglo [numeroDeElementos];
Programacin I
ARREGLOS
Ejemplos
int edad[5];
Declara un arreglo de caracteres de tamao MX+1, el primer elemento es buffer[0] y el ltimo buffer[MX ]
Se pueden referenciar elementos del arreglo utilizando frmulas para los subndices. Por ejemplo:
edad[4] buffer[total-5] salario[mes[i]*5]
Programacin I
ARREGLOS
Verificacin del ndice de un arreglo
C, al contrario que otros lenguajes de programacin, no verifica el valor del ndice de la variable que representa al arreglo. El ndice de un arreglo fuera de rango no genera un error en compilacin. Sin embargo los resultados de la ejecucin sern incorrectos. Por ejemplo:
int lista[10]; for (i = 0; i <= 10; i++) suma += lista[i];
Programacin I
ARREGLOS
INICIALIZACIN DE UN ARREGLO
Se deben asignar valores a los elementos del arreglo antes de utilizarlos. El mtodo utilizado, normalmente, es inicializar el arreglo completo en una sola sentencia. Por ejemplo:
int numeros[6] = {10, 20, 30, 40, 50, 60};
Cuando se inicializa un arreglo, el tamao del arreglo se puede determinar automticamente por las constantes de inicializacin. Estas constantes se separan por comas y se encierran entre llaves.
double v[] = {1.0, 3.0, 5.0, 7.0}; Prof. Luciano Beato
Programacin I
ARREGLOS
ARREGLOS DE CARACTERES Y CADENAS
Una cadena de texto es un conjunto de caracteres terminado en caracter nulo, tales como "ABCDEFG". C soporta cadenas de texto utilizando un arreglo de caracteres que contenga una secuencia de caracteres:
char cadena[] = "ABCDEFG";
Es importante comprender la diferencia entre un arreglo de caracteres y una cadena de caracteres. Las cadenas contienen un carcter nulo (\0) al final del arreglo de caracteres. El compilador inserta automticamente un carcter nulo al final de la cadena.
Prof. Luciano Beato
Programacin I 8
ARREGLOS
Cadenas
El medio ms fcil de inicializar un arreglo de caracteres es hacer la inicializacin de la declaracin:
char Cadena[7] = "PALOMA";
No se puede asignar una cadena a un array del siguiente modo: Cadena = "PALOMA";
Programacin I
ARREGLOS
ARREGLOS MULTIDIMENSIONALES
Los arreglos multidimensionales son aquellos que tienen ms de una dimensin y, en consecuencia, ms de un ndice. Los arreglos ms usuales son los de dos dimensiones, conocidos tambin por el nombre de tablas o matrices. La sintaxis para la declaracin de un arreglo de dos dimensiones es:
<tipoElemento> <nombrearreglo> [<NmeroDeFilas<] [<NmeroDeColumnas>]
Programacin I
10
ARREGLOS
Inicializacin de arreglos multidimensionales
La inicializacin consta de una lista de constantes separadas por comas y encerradas entre llaves, como en los ejemplos siguientes:
int tabla1[2][3] = {51, 52, 53, 54, 55, 56};
Programacin I
11
ARREGLOS
Acceso a los elementos de los arreglos bidimensionales
Se puede acceder a los elementos de arreglos bidimensionales de igual forma que a los elementos de un arreglo unidimensional. La diferencia reside en que en los elementos bidimensionales deben especificarse los ndices de la fila y la columna. Ejemplos: tabla[2][3] = 4.5; resistencias[2][4] = 50; ventas = Tabla[1][1]; dia = Semana[3][6]; scanf("%d",&tabla[2][3]); printf("%4d",tabla[1][1]);
Programacin I
12
ARREGLOS
Acceso a elementos mediante bucles
Su sintaxis es:
for (IndiceFila = 0; IndiceFila < NumFilas; ++IndiceFila) for (IndiceCol = 0; IndiceCol < NumCol; ++IndiceCol) Procesar elemento[IndiceFila][IndiceCol];
Programacin I
13
ARREGLOS
ARREGLOS COMO PARMETROS
En C todos los arreglos se pasan por referencia (direccin). C trata automticamente la llamada a la funcin como si hubiera situado el operador de direccin & delante del nombre del arreglo. Dadas las declaraciones:
#define MAX 100 double datos[MAX];
Se puede declarar una funcin que acepte un arreglo de valores double como parmetro con estos prototipos:
double SumaDeDatos(double datos[MAX]); double SumaDeDatos(double datos[], int n);
Programacin I
14
ARREGLOS
Paso de cadenas como parmetros
Cuando una cadena se pasa a una funcin conoce que se ha almacenado el final del arreglo de caracteres cuando lee un valor de 0 en un elemento del arreglo. Las cadenas utilizan siempre un 0 para indicar que es el ltimo elemento del arreglo de caracteres. Este 0 es el carcter nulo del cdigo de caracteres ASCII. Los siguiente prototipos de funciones tienen parmetros cadenas de caracteres:
int buscar(char cad[], char vocal); void concatenar(char * dest, const char*org, int n); Prof. Luciano Beato
Programacin I
15
Programacin en C
Programacin I
16