PIENSA Y TRABAJA
DEFINICION DE ARREGLOS
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, etc. El tipo de elementos almacenados en el arreglo puede ser cualquier tipo de dato de C, incluyendo estructuras definidas por el usuario, como se describirá más tarde. Normalmente el arreglo se utiliza para almacenar tipos como char, int o float. Un arreglo puede contener, por ejemplo, la edad de los alumnos de una clase, las temperaturas de cada día de un mes en una ciudad determinada, o el número de personas que residen en cada una de las 17 comunidades autónomas españolas. Cada item del arreglo se denomina elemento.
Al igual que con cualquier tipo de variable, 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 tamaño o longitud del arreglo. Para indicar al compilador el tamaño o longitud del arreglo se debe hacer seguir al nombre, el tamaño encerrado entre corchetes. La sintaxis para declarar un arreglo de una dimensión determinada es:


ARREGLOS UNIDIMENSIONALES
Los arreglos vistos anteriormente se conocen como arreglos unidimensionales (una sola dimensión) y se caracterizan por tener un solo subíndice. Estos arreglos se conocen también por el término listas. Los arreglos multidimensionales son aquellos que tienen más de una dimensión y, en consecuencia, más de un índice. Los arreglos más usuales son los de dos dimensiones, conocidos también por el nombre de tablas o matrices. Sin embargo, es posible crear arreglos de tantas dimensiones como requieran sus aplicaciones, esto es, tres, cuatro o más dimensiones.
El sistema para localizar un elemento será a través de las coordenadas representadas por su número de fila y su número de columna (a, b).
Los elementos de los arreglos se almacenan en memoria de modo que el subíndice más próximo al nombre del arreglo es la fila y el otro subíndice, la columna. En la tabla 8.1 se representan todos los elementos y sus posiciones relativas en memoria del arreglo, int tabla [4][2], suponiendo que cada entero ocupa 2 bytes
EJEMPLO ARREGLO UNIDIMENSIONAL
PSEUDOCODIGO
Practica 34
//librerias
//Arreglos unidimensionales. Práctica 34
Entero principal() Inicio
Entero datos[10], i
//Llena el arreglo con elementos
desde(i←0; i<=9; inc i) Inicio
imprimir("Dame el elemento", i)
leer(datos[i]) Fin
//Muestra los elementos del arreglo en sentido inverso
desde(i←9; i>=0; dec i)
imprimir("El elemento es ", i, datos[i])
regresa 0 Fin
CÓDIGO
Practica 34
#include<stdio.h>
#include<stdlib.h>
//Arreglos unidimensionales. Práctica 34
int main() {
int datos[10], i;
//Llena el arreglo con elementos
for(i=0; i<=9; i++){
printf("Dame el elemento %d\n", i);
scanf("%d", &datos[i]); }
//Muestra los elementos del arreglo en sentido inverso
for(i=9; i>=0; i --)
printf("El elemento %d es %d\n", i, datos[i]);
return 0;}

ARREGLO DE MÁS DE DOS DIMENSIONES
Un arreglo tridimensional se puede considerar como un conjunto de arreglos bidimensionales combinados juntos para formar, en profundidad, una tercera dimensión. El cubo se construye con filas (dimensión vertical), columnas (dimensión horizontal) y planos (dimensión en profundidad). Por consiguiente, un elemento dado se localiza especificando su plano, fila y columna. Una definición de un arreglo tridimensional equipos es:
int equipos[3][15][10];
EJEMPLO DE MATRICES
PSEUDOCODIGO
// Práctica 39
Principal
Inicio
Entero matriz[4][4], i, j
Desde (j ← 0; j <= 3; inc j)
Desde (i ← 0; i <= 3; inc i)
Inicio
Imprimir (“Dame el elemento i, j del arreglo bidimensional”)
Leer(matriz[i][j])
Fin
Desde(j ← 0; j<=3; inc j)
Desde (i ← 0; i <= 3; inc i)
Inicio
Imprimir (“El elemento i, j es matriz[i][j]”)
Fin
Fin
CÓDIGO
// Práctica 39
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int matriz[4][4], i, j;
//Práctica 39. Llena arreglo
for(j=0; j<=3; j++)
for(i=0; i<=3; i++){
printf(“Dame el elemento %d,%d del arreglo bidimensional\n”,i,j);
scanf(“%d”,&matriz[i][j]); }
//Muestra arreglo
for(i=0; i<=3; i++)
for(j=0; j<=3; j++) {
printf(“El elemento %d, %d es %d \n”, i, j, matriz[i][j] ); }
return 0; }

PASO DE CADENAS COMO PARÁMETROS
Las cadenas se declaran como los restantes tipos de arreglos. El operador postfijo [ ] contiene el tamaño máximo del objeto. El tipo base, naturalmente, es char, o bien unsigned char
El tipo unsigned char puede ser de interés en aquellos casos en que los caracteres especiales presentes puedan tener el bit de orden alto activado. Si el carácter se considera con signo, el bit de mayor peso (orden alto) se interpreta como bit de signo y se puede propagar a la posición de mayor orden (peso) del nuevo tipo.
EJEMPLO DE CADENAS
PSEUDOCODIGO
//Práctica 45
//librerias
define TAM 10
entero principal() Inicio
caracter letra[TAM] entero c
desde(c←0;c<TAM; inc c)
letra[c] ←getchar()
desde(c←0;c<TAM; inc c)
poner carácter(para poner (letra[c]))
sistema("PAUSA") Fin
CÓDIGO
#include<stdio.h> //Práctica 45
#include<ctype.h>
#define TAM 10
int main() {
char letra[TAM];int c;
for(c=0;c<TAM;++c)
letra[c]=getchar();
for(c=0;c<TAM;++c)
putchar(toupper(letra[c]));
system("PAUSE");}
