Vous êtes sur la page 1sur 4

ARREGLOS

Un arreglo es un conjunto de valores de un mismo tipo, identificados bajo un mismo


nombre.
Los arreglos pueden ser: Unidimensionales , Bidimensionales o Multidimensionales.
Unidimensionales: formato
tipo nom_array [ tamao];
donde: tamao es una constante que especifica el nmero de elementos del arreglo.
El tamao puede omitirse si:
- se inicializa el arreglo,
- cuando se declara como parmetro formal de una funcin, o
- cuando se hace referencia a un arreglo declarado en otra parte del
programa.
Los elementos del arreglo empiezan en la posicin cero (0).
Ej.
int lista[100];
float X[6] = {0, 0.25, 0. -0.50}; //

0 0.25

int digitos[] = {1,2,3,4,5,6,7,8};


char color [3] = {R, E, D};//
char cadena [4] = RED;//

R
R

Ej.

int lista[100];
int k, a;
a= lista[1] + lista[99];
k=50;
lista[k] += 1;

Ej.

void main(){
int x[10];
int t;
for(t=0; t<10; t++)
{ x[t] =t;
printf(\n x[ %d ] = %d, t, x[t]);
}
}

Ej.

void main(){
char letra[80];
int c;
for(c=0; c<80; c++)

gets(letra)

-0.2

\0

letra[c] = getchar();
for(c=0; c<80; c++)
putchar(toupper(letra[c] ));
}

puts(letra)

Ejemplo:
#include <stdio.h>
#define SIZE 5
void ArreModi(int [], int);
void EleModi(int);
void main(){
int a[SIZE] = {0,1,2,3,4};
int i;
printf("Efectos del paso de un arreglo \n");
printf("Valores Iniciales\n");
for(i=0;i<SIZE; i++)
printf("%3d", a[i]);
ArreModi(a); // paso del arreglo a la funcin
printf("\n Valores del Arreglo Modificado \n");
for(i=0;i<SIZE; i++)
printf("%3d", a[i]);
printf("\n Efectos del paso de un elemento\n");
EleModi(a[3]); // paso de un elemento a la funcin
printf("\n El valor de a[3] es %d \n ", a[3]);
}
void ArreModi(int b[], int size)
{int j;
for(j=0;j<SIZE; j++)
b[j]*=2;
}
void EleModi(int e)
{ printf ("Valor de a[3] modificado en la funcion %d \n ", e *=2);
}

Cuando se lee un vector de tipo char no es necesario que el nombre sea precedido por el &
char nombre[41];
scanf(%s, nombre) ;

ARREGLOS BIDIMENSIONALES :
tipo nom_array[exp1][exp2] ;
o

formato para un arreglo de dos dimensiones

tipo nom_array[][exp2];
Ej.

int a[2][3];
char b[12][5];
int c[][3] = {10,12,14,16,18,20}; // son almacenados por fila
int valores[3][4]= {{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};

Ej.

void main(){
int B[5][2];
int n, i;
printf(Introduzca 10 elementos\n);
for(n=0,n<5;n++)
for(i=0; i<2; j++)
scanf(%d, &B[n][i] );
printf(\n Datos de Entrada \n);
for(n=0; n<5;n++)
{ printf(\n Datos de la fila %d \n,n);
for(i=0; i<2;i++)
printf(%3d ; B[n][i]);
}
}

El lenguaje C no realiza comprobacin de contornos en los arrays. Se debe a que fue


diseado para reemplazar la codificacin en lenguaje ensamblador en muchas situaciones,
as que el le deja esa tarea al programador.

PASO DE ARREGLOS A FUNCIONES


Al pasar un arreglo a una funcin , el nombre del arreglo debe aparecer solo, es decir sin
ndices ( si va a pasar todo el arreglo).
Ej.
void main(){
float lista[100];
flota media(int , float [] ); // prototipo de la funcin
:
med = media(n, lista);
:
}
float media (int a, float x[] )
{ : // cuerpo de la funcin
}
Ej. // si es un arreglo de dos dimensiones
float lista[10][10];
float media(in, float[][10]); // prototipo de la funcin

:
med = media(n, lista);
:
float media(int a, float x[][10])
{ :
}

Ejemplo:
#include <stdio.h>
void printArray(int [ ][3]);
void main()
{int array1[2][3]= {{1,2,3},{4,5,6}},
array2[2][3]= {1,2,3,4,5},
array3[2][3]= {{1,2},{4}};
printf("Valores del array1 por fila:\n");
printfArray(array1); //llamada al metodo con el arreglo array1
printf("Valores del array2 por fila:\n");
printfArray(array2); //llamada al metodo con el arreglo array2
printf("Valores del array3 por fila:\n");
printfArray(array3); //llamada al metodo con el arreglo array3
}
void printArray(int a[][3])
{int i, j;
for(i=0; i<2; i++)
{for(j=0;j<3; j++)
printf("%d ", a[i][j]);
printf("\n");
}
}

Vous aimerez peut-être aussi