Guía Arreglos vectores

Anuncio
UNIVERSIDAD TECNOLÓGICA DE LOS ANDES
INGENIERÍA DE SISTEMAS E INFORMÁTICA
FUNDAMENTOS DE PROGRAMACIÓN
DOCENTE: Ing. Ronald Rentería Ayquipa.
ARREGLOS (ARRAYS)
MARCO TEÓRICO:
En clase ya conocimos algunos tipos básicos como por ejemplo los tipos char, int y float. El lenguaje
C++ permite, además, construir estructuras más complejas a partir de estos tipos básicos. Una de las
construcciones que podemos definir son los arreglos o arrays.
ARREGLO
Colección ordenada de elementos de un mismo tipo, que se almacenan en memoria de manera
contigua, que se referencian utilizando un nombre común. Ordenada significa que cada elemento
tiene una ubicación determinada dentro del arreglo (hay un primer elemento, un segundo elemento,
un tercer elemento, y así sucesivamente) y debemos conocerla para accederlo.
Para diferenciar y acceder a un elemento en particular de un arreglo se usa un índice. Estos índices
van después del nombre del arreglo y encerrados por [] (corchetes). El elemento 5° (quinto) de un
arreglo, es representado por el índice [4], ya que los índices comienzan en 0. Esto significa que un
arreglo de 10 elementos tendría los índices del 0 al 9: [0…9]
Una forma de visualizar un arreglo es como un grupo de cajas, una detrás de otra.
MiArreglo
0
1
2
3
4
5
6
7
8
9
índices
Donde cada caja representa un dato del arreglo o un elemento.
En este caso el arreglo tiene el nombre MiArreglo, es de tamaño 10 (contiene 10 cajas) y los índices
*0…9+ indican la posicion de los elementos dentro del arreglo. Así el 1° elemento es accesado
mediante MiArreglo*0+, el 2° elemento mediante MiArreglo*1+, …. , el 10° elemento mediante
MiArreglo[9].
Podemos concluir que un arreglo tiene:



Tamaño: cuantas cajas va a tener, el número de datos o elementos.
Tipo: cual es el tipo de todos los elementos (enteros, reales, etc)
Nombre: es el único nombre bajo el cual vamos a dirigirnos al arreglo.
Un arreglo puede tener una o varias dimensiones. Las dimensiones indican como están organizados
los elementos dentro del grupo. Los arreglos se clasifican de acuerdo a las dimensiones que tengan,
así hay arreglos de una dimensión, de dos dimensiones, de tres dimensiones, etc.
Universidad Tecnológica de los Andes
Fundamentos de Programación
1/6
Ingeniería de Sistemas e Informática
Ing. Ronald Rentería A.
ARREGLOS UNIDIMENSIONALES O VECTORES
Son aquellos que tienen una sola dimensión, se les conoce también como unidimensionales o
vectores.
Arreglo unidimensional con 10 elementos
0
1
2
3
4
5
6
7
8
9
Declaracion de vectores:
Sintaxis:
<tipo> nombre_arreglo[longitud];
Donde:
 tipo= es el tipo de datos del arreglo
 nombre_arreglo= el nombre que le vas a asignar al arreglo
 longitud= el tamaño del arreglo. Cabe destacar que longitud debe ser cualquier
expresión entera constante mayor que cero.
Ejemplos de declaración de vectores:
int unamba[7];
// declara un vector de 7 elementos enteros de nombre unamba
float vector[50];
// declara un vector de nombre vector de 50 elementos tipo float
Manejo de vectores:
Cuando declaramos un arreglo, por ejemplo: int mivector[5]; obtenemos 5 elementos enteros bajo
el mismo nombre (mivector), pero ahora ¿Cómo accedemos a cada uno de estos elementos
individuales del arreglo?

Manipulación de elementos individuales
Usamos el nombre del arreglo seguido del índice que identifica al elemento que se desea acceder:
nombre_arreglo[indice].
En este ejemplo se muestra como asignar valores a los elementos de un vector de forma individual:
int arreglito[4]; // declara un arreglo de 4 enteros llamado arreglito
arreglito[0]=4; // asigna 4 al primer elemento (índice 0)
arreglito[1]=6; // asigna 6 al segundo elemento (índice 1)
arreglito[2]=0; // asigna 0 al tercer elemento (índice 2)
arreglito[3]=15; // asigna 15 al cuarto elemento (índice 3)
El arreglo finalmente quedará lleno de la siguiente manera:
arreglito
4
6
0
15
0
1
2
3
Para imprimir los elementos del arreglo anterior también se acceden a los elementos de la forma
anterior:
Universidad Tecnológica de los Andes
Fundamentos de Programación
2/6
Ingeniería de Sistemas e Informática
cout<<arreglito[0];
cout<<arreglito[1];
cout<<arreglito[2];
cout<<arreglito[3];
Ing. Ronald Rentería A.
// imprime el primer elemento (índice 0)
// imprime el segundo elemento (índice 1)
// imprime el tercer elemento (índice 2)
// imprime el cuarto elemento (índice 3)
Cada elemento del vector es, a todos los efectos, una variable que puede usarse
independientemente de los demás elementos. Así, por ejemplo, un elemento del vector arreglito
puede usarse en una instrucción de entrada, salida o de otro tipo igual que cualquier variable simple
de tipo int:
cout<<”Ingrese un valor”;
cin>>arreglito[1];
// almacena el valor ingresado en el segundo elemento (índice 1)
cout<<arreglito[1];
// imprime el segundo elemento (índice 1)
arreglito[1]= arreglito[1]*2;
// duplica el valor del segundo elemento
cout<<arreglito[1];
// vuelve a imprimir el segundo elemento ahora duplicado
Cuando se quiere llenar, imprimir o recorrer un vector por ejemplo de 20 elementos hacerlo de la
forma anteriormente vista es un proceso muy tedioso, lo mejor es usar un ciclo para llenarlo rápido.

Recorrido de un vector
Una forma habitual de manipular un vector es accediendo secuencialmente a todos sus elementos,
uno tras otro. Para ello, se utiliza un bucle con contador, de modo que la variable contador nos sirve
como índice para acceder a cada uno de los elementos del vector. La estructura más utilizada para
recorrer arreglos es for.
Supongamos, por ejemplo, que tenemos un vector de 10 números enteros declarado como int v[10];
y una variable entera declarada como int i;. Por medio de un bucle, con ligeras modificaciones,
podemos realizar todas estas operaciones:
a. Inicializar todos los elementos a un valor cualquiera (por ejemplo, 0):
for(i=0 ; i<10 ; i++)
// notar el menor estricto (<) para ir de 0 hasta 9
{
v[i]=0; // asigna el valor ‘0’ al vector v en la posición i
}
b. Inicializar todos los elementos con valores introducidos por teclado:
for(i=0 ; i<10 ; i++)
{
cout<<”Ingrese valor para la posicion ”<<i;
cin>>v[i];
// asigna el valor ingresado al vector v en la posición i
}
Universidad Tecnológica de los Andes
Fundamentos de Programación
3/6
Ingeniería de Sistemas e Informática
Ing. Ronald Rentería A.
c. Mostrar todos los elementos en la pantalla:
for(i=0 ; i<10 ; i++)
{
cout<<”El elemento ”<<i<<”es”<<v*i+; // imprime el valor del vector v en la posicion i
}
d. Realizar alguna operación que implique a todos los elementos. Por ejemplo, sumarlos:
suma=0;
for(i=0 ; i<10 ; i++)
{
suma=suma + v[i];
}
EJERCICIOS RESUELTOS
Ejercicio Nº 01:
Hacer un programa que pida 5 valores enteros, los almacene en un vector y luego los muestre en
pantalla.
#include<iostream.h>
#include<conio.h>
void main()
{
int i,valores[5];
//llenar el arreglo con datos del teclado
for(i=0 ; i<5 ; i++)
{
cout<<"Ingrese valor para la posicion "<<i<<"=> ";
cin>>valores[i];
}
//imprimir el arreglo
for(i=0 ; i<5 ; i++)
{
cout<<"El elemento "<<i<<" es "<<valores[i]<<endl;
}
getch();
}
Ejercicio Nº 02:
Hacer un programa que llene un arreglo de 10 elementos con los siguientes valores: 0, 10, 20, 30, …,
90.
Universidad Tecnológica de los Andes
Fundamentos de Programación
4/6
Ingeniería de Sistemas e Informática
Ing. Ronald Rentería A.
#include<iostream.h>
#include<conio.h>
void main()
{
int i,serie[10];
// llena el arreglo con los valores pedidos
for(i=0 ; i<10 ; i++)
{
serie[i]=i*10;
}
// imprime el arreglo con los valores pedidos
for(i=0 ; i<10 ; i++)
{
cout<<serie[i]<<"\t";
}
getch();
}
Ejercicio Nº 03:
Realizar un programa que permita el ingreso de notas de un curso de 12 alumnos. Una vez ingresadas
se debe mostrar la suma y el promedio de las notas del curso.
#include<iostream.h>
#include<conio.h>
void main()
{
int i,notas[12],suma;
float promedio;
// llena el arreglo con las notas
for(i=0 ; i<12 ; i++)
{
cout<<"Ingrese la nota del alumno "<<i<<" #- ";
cin>>notas[i];
}
// cálculo de la suma de las notas
suma=0;
for(i=0 ; i<12 ; i++)
{
suma+=notas[i];
}
// ahora calculamos el promedio
promedio=suma/12.0;
// imprimimos las variables de salida
cout<<"La suma de las notas es: "<<suma<<endl;
cout<<"El promedio de las notas es: "<<promedio;
getch();
}
Universidad Tecnológica de los Andes
Fundamentos de Programación
5/6
Ingeniería de Sistemas e Informática
Ing. Ronald Rentería A.
Ejercicio Nº 04:
Hacer un programa que permita el ingreso de n valores a un arreglo. Una vez ingresados se debe
pedir un valor para buscar en el arreglo e imprimir si fue encontrado en el arreglo o no, en caso de
que fuera encontrado imprimir también su posición.
#include<iostream.h>
#include<conio.h>
void main()
{
int i,A[100],encontrado,n,valor_buscado,posicion;
// llena el arreglo con los valores
cout<<"Ingrese el numero de valores que desea ingresar: ";
cin>>n;
for(i=0 ; i<n ; i++)
{
cout<<"Ingrese el valor "<<i<<" #- ";
cin>>A[i];
}
cout<<"Ingrese el valor que desea buscar: ";
cin>>valor_buscado;
// recorrer el arreglo para buscar el valor
encontrado=0;
// inicializa la variable bandera en 0
for(i=0 ; i<n ; i++)
{
if(A[i]==valor_buscado)
{
encontrado=1;
posicion=i;
}
}
if(encontrado==1)
{
cout<<"El valor "<<valor_buscado<<" se encuentra en la posicion "<<posicion;
}
else
{
cout<<"El valor "<<valor_buscado<<" no se encuentra en el arreglo";
}
getch();
}
EJERCICIOS DE EXTENSIÓN
Modificar los ejercicios 1, 2 y 3 de tal manera que sean para ‘n’ elementos (generalizar).
Universidad Tecnológica de los Andes
Fundamentos de Programación
6/6
Descargar