Você está na página 1de 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
3
Elemento
6
4
Componen
ndice 8
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

0 1 2 3 4 5 6 7 8 9
12 01 22 56 32 09 4 3

Rango = 10
Resumen
Declaracin
int datos[3];

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

Acceso a los elementos


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

Entrada : Elemento
cin>>datos[0];
Salida :
cout<< datos[0]);
Inicio

i, n: enteros

Ejemplo 1
Sueldos[i]: real
ingresar los 12
sueldos a un arreglo
n
denominado Sueldos

Sueldos[i]

Inicio
#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];
}
}
#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]; {
s=s+A[i]; if(A[i]>prom)
} 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){
k++; cout<<"Primer par ingresado en posicion: "<<pos<<endl;
if(k==1) else
pos=i; cout<<" Ninguno es par"<<endl;
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: