You are on page 1of 22

ARREGLOS EN C++

Prof. Oscar Tinoco G.

Arreglos o Vectores
Los arreglos son series de elementos (variables) del
mismo tipo ubicados consecutivamente en la
memoria y pueden ser referenciados individualmente
agregando un ndice a un nombre nico.
Por ejemplo, un arreglo que contiene 5 valores enteros de tipo
int llamado billy podra representarse as:

Como cualquier otra variable, un arreglo debe


ser declarado antes de ser usado. Una
declaracin tpica de un arreglo en C++ es:

tipo nombre [cantidad_elementos];

Definicin
Definicin:

Un7 arreglo es una coleccin ordenada de


elementos de un mismo tipo. Ordenada
significa que cada elemento tiene una
ubicacin determinada dentro del arreglo y
debemos conocerla para accederlo.
Edad
1
9
2
10
Elemento
3
6
Componen
4
8
ndice
5
10

Declaracin de un Arreglo
Declaracin de un arreglo
float talla[25];
Tamao (rango)
nombre
tipo

Inicializacin de arreglos

Cuando se declara un arreglo de alcance local (dentro


de una funcin), si no se especifica lo contrario, no ser
inicializado, as que su contenido es indeterminado
hasta que se almacene algn valor dentro de l.

Adems, cuando se declara un arreglo, se tiene la


posibilidad de asignar valores iniciales a cada uno de
sus elementos usando llaves { }. Por ejemplo:
int billy [5] = { 16, 2, 77, 40, 12071 };
C++ incluye la posibilidad de dejar los corchetes vacos,
[], siendo el tamao del arreglo definido por el nmero
de valores incluidos dentro de las llaves { }:
int billy [] = { 16, 2, 77, 40, 12071 };

Acceso a valores arreglo

Siguiendo con el ejemplo previo en el


cual Arreglo tena 5 elementos de tipo
int, el nombre que se puede usar para
referenciar cada elemento es:

Por ejemplo, para almacenar el valor 75 en el


tercer elemento:
billy[3]=75

Definicin de vector

Conjunto de datos homogneos


Tipificacin:

Elemento: Cada uno de las unidades que forman el


vector

Rango: Cantidad de elementos que contiene


ndice: Nmero identificativo del elemento

12

01

22

56

32

09

Rango = 10

8
3

Resumen

Declaracin
int datos[3];

Inicializacin
int datos[3] = {1,4,8};

Acceso a los elementos


datos[0] = a;
a = datos[2];
b = a * datos[N-1] - 5;

Entrada :
cin>>datos[0];

Salida :
cout<< datos[0]);

ndice

Elemento

Inicio

i, n: enteros

Ejemplo 1
ingresar los 12
sueldos a un arreglo
denominado Sueldos

Sueldos[i]: real

Sueldos[i]

Inicio

#include <iostream.h>
#include <conio.h>
main()
{
int i, n;
float Sueldos[100];
cout << "Ingrese tamanio arreglos"<<endl;
cin>> n;
for ( i=1; i<= n; i++)
{
cout<< "Ingrese sueldo:";
cin>> Sueldos[i];
}
getche();
}

#include <iostream>
using namspace std;
main()
{
int i, n;
float Sueldos[100];
cout << "Ingrese tamanio arreglos"<<endl;
cin>> n;
for ( i=1; i<= n; i++)
{
cout<< "Ingrese sueldo:";
cin>> Sueldos[i];
}
cout<<endl<< "Elementos del arreglo Sueldos"<< endl;
for ( i=1; i<= n; i++)
{
cout<< Sueldos[i]<<endl;
}
return 0;
}

Ejemplo 2: Programa que genera un vector, denominado


numeros, para almacenar 10 nmeros enteros ledos
desde teclado y lo visualiza una vez creado.
#include <iostream.h>
main () {
int numeros[10], i;
for (i=0;i< 10;i++) {
cout<<"\n Introduce un numero ";
cin>>numeros[i];
}
for (i=0;i<10;i++)
cout<< i+1<<"\t"<< numeros[i]<<endl;
system("pause");
}

Ejercicio 1
Escribir un programa que llene y
muestre un arreglo con los nmeros
comprendidos entre 0 y 20 divisibles
por 3.

#include <iostream>
main()
{
int i,A[100],k=0, tope;
k=1;
for(i=1;i<=20;i++) {
if(i%3==0){
A[k]=i;
k++;}
}
tope=k;
for(k=1;k<tope;k++) {
cout<<A[k]<<endl;
}
return 0;
}

Ejercicio 2
a) Ingresar n valores a un arreglo y luego
mostrar el promedio de ellos y todos los
valores que son mayores que dicho
promedio. El valor de n debe ser
ingresado por teclado
b) Repetir el ejercicio anterior, pero esta
vez mostrar los nmeros pares y la
posicin del primer par ingresado

#include <iostream>
main()
{
int n, A[100], i,s=0;
float prom;
cout<<"Ingrese el valor de n: ";
cin>>n;
cout<<"Ingrese nro: "<<endl;
cout<<"Nros mayores que el promedio "<<endl;
for (i=1;i<=n;i++)
for (i=1;i<=n;i++)
{
{
cin>>A[i];
if(A[i]>prom)
s=s+A[i];
cout<<A[i]<<endl;
}
prom=s*1.0/n;
}
cout<<"Promedio "<<prom<<endl; return 0;
}

main()
{
int n, A[100], i,pos,s=0,k=0;
float prom;
cout<<"Ingrese el valor de n: ";
cin>>n;
cout<<"Ingrese nro: "<<endl;
for (i=1;i<=n;i++)
{
cin>>A[i];
s=s+A[i];
}
prom=s*1.0/n;
cout<<"Promedio "<<prom<<endl;
cout<<"Nros pares: "<<endl;
for (i=1;i<=n;i++)
{
if(k>1)
if(A[i]%2==0){
cout<<"Primer par ingresado en posicion: "<<pos<<endl;
k++;
else
if(k==1)
cout<<" Ninguno es par"<<endl;
pos=i;
cout<<A[i]<<endl;}
return 0;
}
}

Ejercicio 3
La Gerencia de Ventas de una empresa le
ha encargado a usted almacenar las
ventas totales obtenidas en cada mes del
ao, en un arreglo denominado Ventas.
a) Mostrar las ventas mensuales
b) Mostrar el mes con la mayor venta y el
mes con la menor venta
c) Mostrar el promedio de ventas

Ejercicio 4
Escribe un programa que dado un arreglo A de
tamao N tal que todos sus elementos son 0 o
1, encuentre otro arreglo B de tamao N, tal
que la suma vectorial de dichos arreglos sea un
vector C, en el que todas sus componentes
tienen magnitud 1.

#include <iostream.h>
main()
{
int i,A[100],B[100],C[100];
cout<<"Ingrese nro: "<<endl;
for(i=1;i<=10;i++) {
cin>>A[i];
}
for(i=1;i<=10;i++) {
C[i]=1;
}
for(i=1;i<=10;i++) {
B[i]=C[i]-A[i];
cout<<i<<" A[i] "<<A[i]<<" + B[i] "<<B[i]<<" = "<<C[i]<<endl;
}
system("PAUSE");
}

Arreglos bidimensionales

Se pueden describir como tablas de doble entrada.


Por ejemplo si jimmy representa un arreglo bidimensional de 3 por 5 con valores de tipo int. La
forma de declarar un arreglo de este tipo es: int jimmy [3][5];

La forma de referenciar al elemento de la segunda fila (fila nmero 1) y cuarta columna


(columna nmero 3) es: