Sie sind auf Seite 1von 5

http://ejercicioscpp.blogspot.com/2013/11/ejemplos-de-arrays-en-c.

html
Un array es una coleccin finita de datos del mismo tipo, que se almacenan en
posiciones consecutivas de memoria y reciben un nombre comn.
Ejemplo de array: Supongamos que queremos guardar las notas de los 20
alumnos de una clase. Para ello utilizaremos un array de 20 elementos y en cada
elemento almacenaremos una nota.
Podemos representar grficamente el array de notas de la siguiente forma:
Array notas:

Para acceder a cada elemento del array se utiliza el nombre del array y uno o
ms ndices que indican la posicin que ocupa el elemento dentro del array. Cada
ndice se escribe entre corchetes.
El primer elemento del array ocupa la posicin 0, el segundo la posicin 1, etc.
En un array de N elementos el ltimo ocupar la posicin N-1.
En el ejemplo anterior, notas[0] contiene la nota del primer alumno y notas[19]
contiene la del ltimo
Cmo declarar un array:
Un array se declara de forma parecida a una variable de tipo simple aadindole al
nombre el nmero de elementos que contendr el array.
De forma general, un array se declara as:
tipo_dato nombre_array[elementos1][elementos2]..;
elementos1, elementos2, etc. son los ndices del array. Deben ser nmeros enteros
positivos o expresiones con un resultado entero positivo. Indican el nmero de
elementos del array.
En el ejemplo anterior, el array notas se declara como:
double notas[20];
El array es unidimensional, se llama notas y contiene 20 elementos de tipo double.
Ms ejemplos de declaracin de arrays:
int ventas[10] ; //array llamado ventas que contiene 10 enteros
double grados[20]; //array grados que contiene 20 elementos de tipo double
float precios[30]; //array llamado precios que contiene 30 elementos de tipo float
El nmero de ndices determina la dimensin del array. Si el array tiene solo
un ndice es un array de una dimensin o unidimensional (tambin llamado vector),
si tiene dos ndices es un array de dos dimensiones o bidimensional (tambin
llamados matrices, tablas o arreglos), si tienen tres ndice tridimensional, etc.
Para facilitar la modificacin del programa, el tamao del array se puede declarar
utilizando una constante en lugar de una cantidad entera. Esto hace ms fcil
modificar el programa ya que todas las referencias al tamao mximo del array

(por ejemplo, en bucles for o en definiciones de arrays) pueden ser modificadas


cambiando el valor de la constante.
Por ejemplo, declaracin de 4 arrays A, B, C y D de 10 elementos cada uno de tipo
double usando una constante llamada ELEMENTOS:
const int ELEMENTOS = 10;
double A[ELEMENTOS], B[ELEMENTOS], C[ELEMENTOS], D[ELEMENTOS];
En este caso si se modifica el tamao de los arrays, solo habr que cambiar el valor
de la constante.
Los arrays declarados como locales en una funcin tienen como valores iniciales
valores indeterminados, como ocurre con las variables locales.
La declaracin de un array puede incluir la asignacin de valores iniciales.
La forma general de hacerlo es:
tipo nombre_array[tamao]={valor1,valor2,..,valorn};
Donde valor1 es el valor del primer elemento del array, valor2 el valor del segundo
elemento, y as sucesivamente.
El tamao del array es opcional cuando se asignan valores iniciales en la
declaracin.
Todos los elementos del array que no tienen asignados valores iniciales explcitos,
(sucede cuando un array tienes ms elementos que valores iniciales se han
asignado), sern puestos automticamente a cero.
Ejemplos de asignacin de valores iniciales en la declaracin de un array en C++:
double porcentaje[]={0, 0.3, 7.25, 4.2};
Se declara un array unidimensional llamado porcentaje que contiene 4 elementos
de tipo double. El nmero de elementos no es necesario indicarlo porque se estn
asignando4 valores iniciales. El compilador asume que el array tiene 4 elementos.
int numeros[5]= {1,4,-7,5,9};
Se declara un array unidimensional llamado numeros que contiene 5 elementos de
tipo int. Se indica el nmero de elementos aunque no es necesario hacerlo. Se
estn asignando 5 valores iniciales. El compilador asume que el array tiene 5
elementos.
int digitos[8]= {3,4,2,7};
Se declara un array unidimensional llamado digitos que contiene 8 elementos de
tipo int. Aqu s es necesario indicar el nmero de elementos del array porque solo
se le asignan valores iniciales a los cuatro primeros. El compilador asumira que el
array tiene solo 4 elementos. En este caso los cuatro ltimos elementos del array
que no reciben valores iniciales, toman el valor 0.
digitos[0]=3, digitos[1]=4, digitos[2]=2, digitos[3]=7,
digitos[4]=0, digitos[5]=0, digitos[6]=0, digitos[7]=0
Las
declaraciones
de
arrays
que
hemos
hecho
hasta
ahora
se
llaman declaraciones implcitas: para cada array que se declara hay que indicar
el tipo y la dimensin.
Una alternativa a esto es definir un nuevo tipo de dato para el array asignndole un
nombre, y posteriormente declarar las variables como pertenecientes a ese tipo.
C++ dispone del especificador typedef que permite la creacin de

nuevos tipos de datos.


Los tipos de datos creados con typedef son sinnimos de otros tipos
ya existentes.
Por ejemplo, la siguiente instruccin crea un nuevo tipo de dato
llamado entero, sinnimo de int.

typedef int entero;


A partir de esta instruccin podemos declarar variables enteras as:
entero a, b=3;
Utilizando typedef podemos crear nuevos tipos de datos sinnimos de tipos array.
La forma general de hacerlo es:
typedef tipo_base nombre_nuevo_tipo[dimension];
Ejemplo:
typedefintTvector[30];
Esta instruccin crea un nuevo tipo de dato llamado Tvector. Las variables que se
declaren de este tipo sern arrays de 30 enteros.
Por ejemplo:
Tvector a, b;
Se han declarado a y b de tipo Tvector; a y b son dos arrays de 30 enteros.
Ejemplos de arrays es C++:
Ejemplo 1: programa C++ que accede y modifica los elementos de un array
Los elementos de un array se pueden utilizar igual que cualquier otra variable y se
puede hacer con ellos las mismas operaciones que se pueden hacer con el resto de
variables.
#include <iostream>
using namespace std;
int main ()
{
int n, m = 5;
int a[]={2,8,3,0,4}; //se declara un array de 5 elementos de tipo
//int con esos valores iniciales
n = a[0];
//n = 2
a[0]=a[1]+a[2]; //a[0]= 8 + 3 = 11
a[1]++;
//a[1]= 9
a[n]=m+10;
//a[2]= 15
a[n+1]=7;
//a[3]= 7
if(a[0]>=a[1]) //if(11 >= 9)
a[4]=a[0];
//
a[4]= 11
cout << a[0]<<" "<< a[1]<< " "<< a[2]<< " "<< a[3]<< " "<< a[4];
cout << endl;
system("pause");
}
La salida de este programa es:
11 9 15 7 11
Si se intenta acceder a un elemento que est fuera de los lmites del array (un
elemento con ndice negativo o con un valor del ndice mayor que el que
corresponde al ltimo elemento del array) el compilador no avisa del error. El error
se producir durante la ejecucin si esa posicin de memoria que se intenta acceder
est fuera de la zona de memoria asignada al programa.
Es responsabilidad del programador comprobar que los valores de los ndices
utilizados en los accesos a los elementos del array estn dentro de los lmites del
array.
Ejemplo 2: recorrer un array

Para recorrer un array se utiliza una instruccin iterativa (normalmente una


instruccin for) utilizando una variable entera como ndice que tomar valores
desde el primer elemento al ltimo o desde el ltimo al primero.
El siguiente programa declara un array de 7 elementos de tipo double llamado
notas y le asigna valores iniciales. A continuacin recorre el array, utilizando la
instruccin for, para mostrar por pantalla el contenido del array.
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
int i;
double notas[]={2.3,8.5,3.2,9.5,4,5.5,7.0}; //array de 7 elementos
cout << fixed << setprecision(2);
for(i=0; i<7; i++)
cout << notas[i] << " "; //se muestra cada elemento del array
cout << endl;
system("pause");
}
La salida que muestra este programa es:
2.30 8.50 3.20 9.50 4.00 5.50 7.00
Ejemplo 3: Recorrido de un array. Programa C++ que lee por teclado la nota de los
alumnos de una clase y calcula la nota media del grupo. Tambin muestra los
alumnos con notas superiores a la media.
Este programa declara un array de elementos de tipo float que contendr las notas
de los alumnos.
Se realizan 3 recorridos sobre el array, el primero para asignar a cada elemento las
notas introducidas por teclado, el segundo para sumarlas y el tercero para mostrar
los alumnos con notas superiores a la media.
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
float notas[20];
//array de NUMALUM elementos tipo float
int i = 0;
float suma = 0, media;
// Entrada de datos. Se asigna a cada elemento del array
// la nota introducida por teclado
for (i=0; i<20; i++)
{
cout << "Alumno " << i+1 << " Nota final: ";
cin >> notas[i];
}
// Sumar todas las notas

for (i=0; i<20; i++)


suma = suma + notas[i];
// Calcular la media
media = suma / 20;
// Mostrar la media
cout << fixed << setprecision(2);
cout << endl<< endl << "Nota media del curso: " << media << endl;
// Mostrar los valores superiores a la media
cout << "Listado de notas superiores a la media" << endl;
cout << "--------------------------------------" << endl;
for (i=0; i<20; i++)
if (notas[i] > media)
{
cout << "Alumno numero " << setw(3) << i+1;
cout << " Nota final: " << notas[i] << endl;
}
cout << endl;
system("pause");
}

Das könnte Ihnen auch gefallen