Un arreglo es una colección de posiciones de almacenamiento de datos, del mismo tipo y con
el mismo nombre, pero con una dirección única, o índice. Cada posición del arreglo comúnmente es
llamada elemento del arreglo. Los arreglos se clasifican en unidimensionales y multidimensionales,
aunque hablando de multidimensionales, se usan casi exclusivamente los bidimensionales, ya que el
uso de más índices o dimensiones en un arreglo hacen su uso más complejo, de cualquier forma,
aquí hay una representación de los más comunes:
Arreglo tridimensional
Arreglos unidimensionales
0 5
1 3
Arreglo 2 7 Arreglo Elemento
3 9 Elemento 5 3 7 9 1 0 2 6 9 0
4 1 0 1 2 3 4 5 6 7 8 9
5 0 Direccion
6 2
7 6
8 9
Direccion 9 0
Los arreglos unidimensionales en C se declaran así:
Ejemplo:
int Arreglo[10];
En este ejemplo, se declara el arreglo Arreglo, de tipo entero, con 10 elementos, algo muy
importante que se debe recordar a la hora de trabajar con arreglos, es que sus direcciones o
posiciones de memoria comienzan en 0, es decir, si el arreglo tiene 10 elementos, sus direcciones
serán 0,1,2...9. Ahora bien, si se desea hacer referencia a algún elemento del arreglo, se especifica el
nombre del arreglo y entre corchetes su dirección, y como la dirección de los arreglos es un entero,
también podemos poner como índice una variable, lo cual es muy útil cuando se desea, por ejemplo,
llenar el arreglo con valores leídos por teclado.
Ejemplo:
#include <stdio.h>
#include <stdlib.h>
int i, A[100];
main()
{
clrscr(); /* Borra la pantalla */
printf(“Introduzca los valores para el arreglo...”);
for (i=0; i<100; i++)
scanf(“%d”, &A[I]);
printf(“\nLos valores introducidos son…”);
for (i=0; i<100; i++)
printf(“\n %d”, A[I]);
getch();
}
Matrices
Las matrices son arreglos bidimensionales, y generalmente se conoce a estos índices como
filas y columnas, o utilizando los índices más comunes para matrices en las matemáticas, i,j. Su
representación sería más o menos así:
0,0 Índic
6
Valor
Los índices i,j representan el número de fila y columna, respectivamente, ahora, veamos un
ejemplo:
//Ejemplo1
#include <stdio.h>
#include <stdlib.h>
int i,j, M[3][3];
main()
{
clrscr(); /* Borra la pantalla */
printf("Introduzca los valores para la matriz...\n");
/* Se abren dos ciclos, uno para las filas y uno para las columnas */
for (i=0; i<3; i++)
for (j=0; j<3; j++)
scanf("%d", &M[i][j]);
En este caso, se declara una matriz de 3 * 3, es decir, una matriz de 3 filas y 3 columnas, para
este ejemplo, la matriz se ha llenado usando el método llamado “llenado por fila mayor”, que
consiste en llenar la matriz empezando por llenar filas, mientras que el método “llenado por
columna mayor” consiste en llenar la matriz empezando por las columnas.
Problemas Resueltos :
//Ejercicio 01.-
//Programa que determina el menor valor en un arreglo y su ubicación.
#include<iostream.h>
#include<conio.h>
#include<bcd.h>
#include<math.h>
#define N 60
void main()
{
clrscr();
int A[N],i,n,min=200,pos;
cout<<"programa que determina el menor dato ingresado y su ubicacion: \n";
cout<<"ingrese el numero de elementos:\n";
cin>>n;
cout<<"ingreso de elementos";
for(i=1;i<=n;i++)
{
cin>>A[i];
}
cout<<"\nleyendo el menor dato ingresado";
for(i=1;i<=n;i++)
{
if(A[i]<min)
{ min=A[i];
}
}
cout<<"\nel menor elemento es="<<min;
for(i=1;i<=n;i++)
{
if(min==A[i])
pos=i;
}
cout<<"\nla ubicacion del elemento es ="<<pos;
getch();
}
Inicio
Min = 200
Ingrese de elementos
i=1
A
F
in Leyendo el menor dato ingresado
V
i=1
A i
B
F
i = i +1 in El menor elemento es: ; min;
A i=1
A imin
C
F
i = i +1 in
Min=A i
V
B
i = i +1
A imin
Fos = i
i = i +1
C
//Ejercicio 02.-
//Programa que calcula el producto de las diagonales de una matriz
#include<iostream.h>
#include<conio.h>
#include<math.h>
#define N 8
void main()
{
clrscr();
int A[N][N],i,j,p;
cout<<"Ingresemos la matriz a evaluar\n\n";
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
cout<<"A["<<i<<"]["<<j<<"]= ";
cin>>A[i]
[j];
}
}
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
cout<<A[i]
[j]<<"\t";
}
cout<<"\n";
}
p=1;
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
if(i==j)
{
p=p*A[i][j];
}
}
}