Fredy Alonzo Rojas Berrospi Lenguaje de Programacin II Debug and Deploy Escribir Cdigo Acceso a datos Uso de Visual Studio .NET Depurar e implantar Crear Interfaz Instituto de Educacin Superior Tecnolgico Privado JUAN BOSCO DE HUNUCO Lenguaje de Programacin II Prof. Fredy A. Rojas Berrospi
- Ejemplos
Introduccin Los Arreglos se definen como una coleccin finita, homognea y ordenada de elementos. Finita: Todo arreglo tiene un lmite, es decir, se debe determinar cul ser el nmero mximo de elementos que podrn formar parte del arreglo. Homognea: Todos los elementos de un arreglo son del mismo tipo (todos enteros, todos reales, etc., pero nunca una combinacin de distintos tipos). Ordenada: Se puede determinar cul es el primer elemento, el segundo, el tercero, y el n-simo elemento.
Un array (lista o tabla) o arreglos es una secuencia de objetos del mismo tipo. Los objetos se llaman elementos del array y se numeran consecutivamente 0, 1, 2, 3 ... El tipo de elementos almacenados en el array puede ser cualquier tipo de dato de C++, incluyendo clases definidas por el usuario. Un array puede contener, por ejemplo, la edad de los alumnos de una clase, las temperaturas de cada da de un mes en una ciudad determinada, o los alumnos de un curso. Cada tem del array se denomina elemento. Los elementos de un array se numeran, como ya se ha comentado, consecutivamente 0, 1, 2, 3,... Estos nmeros se denominan valores ndice o subndice del array. El trmino subndice se utiliza ya que se especifica igual que en matemticas como una secuencia tal como a0, a1, a2 ... Estos nmeros localizan la posicin del elemento dentro del array, proporcionando acceso directo al array.
Si el nombre del array es a, entonces a[0] es el nombre del elemento que est en la posicin 0, a[1] es el nombre del elemento que est en la posicin 1, etc. En general, el elemento i-simo est en la posicin i-1. Este mtodo de numeracin se denomina indexacin basada en cero. Su uso tiene el efecto de que el ndice de un elemento del array es el nmero de pasos desde el elemento inicial a[0] a ese elemento. Por ejemplo, a[3] est a 3 pasos o posiciones del elemento a[0]. De modo que si el array tiene n elementos, sus nombres son a[0], a[1], ... , a[n-1].
Un arreglo puede representarse grficamente como se muestra:
Un arreglo tiene la caracterstica de que puede almacenar a N elementos del mismo tipo y adems permite el acceso a cada uno de estos elementos. As, se distinguen dos partes en los arreglos: Los componentes hacen referencia a los elementos que componen o forman el arreglo. Es decir, son los valores que se almacenan en cada una de sus casillas. Los ndices son los que permiten accesar a los componentes del arreglo en forma individual. Para hacer referencia a un componente de un arreglo se necesita: El nombre del arreglo. El ndice del elemento. En la figura representamos un arreglo y se indican sus componentes y sus ndices. Instituto de Educacin Superior Tecnolgico Privado JUAN BOSCO DE HUNUCO Lenguaje de Programacin II Prof. Fredy A. Rojas Berrospi
Arreglos Unidimensionales o Vectores Un arreglo de una dimensin es una lista de variables, todas de un mismo tipo a las que se hace referencia por medio de un nombre comn. Una variable individual del arreglo se llama elemento del arreglo. Es la estructura natural para modelar listas de elementos iguales.
Los vectores pueden tener datos no numricos, es decir, tipo "caracter". Por ejemplo un vector que representa los pases de Europa:
Cada elemento de un vector se puede procesar como si fuese una variable simple al ocupar una posicin de memoria. As:
NUMEROS[] = 72 Almacena el valor entero o real 72 en la posicin 25. Del vector NUMEROS y la instruccin de salida cout<<NUMEROS[] Visualiza el valor almacenado en la posicin 25, en este caso 72.
*Esta propiedad significa que cada elemento de un vector es accesible directamente y es una de las ventajas ms importantes de usar un vector: almacenar un conjunto de datos.
Declaracin Un arreglo se define indicando el tipo de arreglo, es decir, el tipo de datos de todos los elementos del arreglo, luego se le da un nombre al arreglo y finalmente se le da un tamao.
Instituto de Educacin Superior Tecnolgico Privado JUAN BOSCO DE HUNUCO Lenguaje de Programacin II Prof. Fredy A. Rojas Berrospi
<tipo de dato> nombreArreglo[Tamamao];
Por ejemplo tengo un arreglo de nmeros enteros: int arreglo[4];
En el caso anterior el tipo del arreglo es entero (int). Se le da una dimensin al arreglo que va entre los caracteres '[' y ']', en el caso anterior la dimensin es 4, esto quiere decir que en la memoria se reservaron 4 posiciones para almacenar 4 valores enteros.
Indexacin (Inicializar un Arreglo) Para poder hacer referencia a los elementos del arreglo se utilizan los ndices los cuales comienzan desde cero.
Ejemplo: - Das de la semana - String D[7] entonces elemento por elemento: - D*0+=Lunes - D*1+=Martes - D*2+=Miercoles - D*3+=Jueves - D*4+=Viernes - D*5+=Sabado - D*6+=Domingo
Inicializacin Existen varias maneras de inicializar un arreglo, una manera muy sencilla es poner entre llaves ({ }), los elementos del arreglo separados por comas.
arreglo = {51, 60, 70, 95};
Tambin podemos utilizar la estructura de control for para inicializar los elementos del arreglo
a[] = {5,15,20,25,30}; float b[] = {10.5,20.5,30.5,12.5,50.5} Producto product[] = {celular,calculadora,camara,ipod,usb} a[ ]= 5 a[ ]= 15 Como hay 5 elementos en cada array, a[ ]= 20 automticamente se le asignar 5 espacios de a[ ]= 25 memoria a cada vector. Pero si trato de crear el a[ ]= 30 vector de la forma int a[]; el compilador mostrar un error, porque no se indic el tamao del vector ni tampoco inicializ sus elementos.
Acceso a los elementos de un arreglo Puedo acceder a un elemento por medio de un subndice, por ejemplo si yo quiero acceder al primer elemento tendr que hacerlo de esta manera: int nro = arreglo[0]; Instituto de Educacin Superior Tecnolgico Privado JUAN BOSCO DE HUNUCO Lenguaje de Programacin II Prof. Fredy A. Rojas Berrospi
En la variable nro se almacenara el valor de 51, para acceder al segundo valor: nro = arreglo[1];
En la variable nro se almacenar el valor de 60, y as sucesivamente con los dems elementos.
Si nos damos cuenta tener un arreglo es mucho ms ventajoso que tener definidas 4 variables.
EJEMPLOS
1. Se desea ingresar las notas finales de 10 alumnos de la materia de Introduccin a la programacin, para luego emitir un reporte del promedio de todas las notas.
#include <iostream> Using namespace std;
int main() { const int TAM = 10; int i, promedio=0; int arreglo[TAM]; for(i=0; i < TAM ; i++) { cout<<"Ingrese la nota del estudiante #"<<i+1<<" :\n"; cin>>arreglo[i]; }
for(i=0; i < TAM ; i++) promedio = promedio + arreglo[i];
promedio = promedio / TAM ;
cout<<"El promedio de las notas es: "<<promedio;
system(PAUSE); Return 0; }
2. Que rellene un array con los 100 primeros nmeros enteros positivos y lo muestre en forma ascendente.
#include<iostream> Using namespace std;
int main() { int x, tabla[100];
for (x=0;x<100;x++) { tabla[x]=x+1; }
for (x=0;x<100;x++) { cout<<tabla[x]<<endl; }
system("PAUSE"); return 0; }
3. Que rellene un array con los 100 primeros nmeros enteros positivos y lo muestre en forma descendente.
#include<iostream> Using namespace std;
int main() { int x, tabla[100];
for (x=0;x<100;x++) { tabla[x]=x+1; }
for (x=99;x>=0;x--) { cout<<tabla[x]<<endl; }
system("PAUSE"); return 0; }
4. Que rellene un array con los nmeros primos comprendidos entre 1 y 100 y los muestre en pantalla en orden ascendente. #include <iostream> Using namespace std; int main() { int x,cont,z,i,tabla[100]; i=0; for (x=1;x<=100;x++) { cont=0; for (z=1;z<=x;z++) { if (x%z==0) { cont++; } } if (cont==2 || z==1 || z==0){ tabla[i]=x; i++; } } for (x=0;x<i;x++) cout<<abla[x]<<endl; system("PAUSE");return 0;} Instituto de Educacin Superior Tecnolgico Privado JUAN BOSCO DE HUNUCO Lenguaje de Programacin II Prof. Fredy A. Rojas Berrospi
EJERCICIOS PROPUESTOS
1. Que rellene un array con los nmeros impares comprendidos entre 1 y 100 y los muestre en pantalla en orden ascendente.
2. Que lea 10 nmeros por teclado, los almacene en un array y muestre la suma, resta, multiplicacin y divisin de todos.
3. Que lea 10 nmeros por teclado, los almacene en un array y los ordene de forma ascendente. 4. Que lea 10 nmeros por teclado, 5 para un array y 5 para otro array distinto. Mostrar los 10 nmeros en pantalla mediante un solo array.
5. Que lea 5 nmeros por teclado, los copie a otro array multiplicados por 2 y muestre el segundo array.
6. Que lea 5 nmeros por teclado, los copie a otro array multiplicados por 2 y los muestre todos ordenados usando un tercer array.
7. Que rellene un array con los 100 primeros nmeros pares y muestre su suma.
8. Que lea 10 nmeros por teclado, los almacene en un array y muestre la media.
9. Que mediante un array almacene nmeros tanto positivos como negativos y los muestre ordenados.
10. Hacer un programa que calcule la nota de un alumno en una prueba 10 preguntas de opciones mltiples ('a',...o,'e'). Cada pregunta se evala con dos puntos. Debe inicializa un arreglo con las respuestas correctas. El programa debe mostrar el nombre, el arreglo de respuestas correctas y el arreglo de respuestas del alumno y la nota del alumno.
Instituto de Educacin Superior Tecnolgico Privado JUAN BOSCO DE HUNUCO Lenguaje de Programacin II Prof. Fredy A. Rojas Berrospi
Arreglos Bidimensionales (Matrices) Los arreglos bidimensionales son tablas de valores. Cada elemento de un arreglo bidimensional est simultneamente en una fila y en una columna. En matemticas, a los arreglos bidimensionales se les llama matrices, y son muy utilizados en problemas de Ingeniera. En un arreglo bidimensional, cada elemento tiene una posicin que se identifica mediante dos ndices: el de su fila y el de su columna.
Declaracin La declaracin de un arreglo consiste en establecer las caractersticas del arreglo y sus elementos, por medio de la siguiente sintaxis:
Inicializacin: Un arreglo es un objeto que, cuando es creado por el compilador, se le asignan automticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios: Si el tipo del arreglo es numrico, a sus elementos se les asigna el valor cero. Si el tipo del arreglo es char, a sus elementos se les asigna el valor '\u0000'. Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false. Si el tipo del arreglo es una clase, a sus elementos se les asigna el valor null. Cuando se requiere asignar valores iniciales diferentes de los predeterminados, es posible agrupar las operaciones de declaracin, creacin e inicializacin en una sola instruccin.
<Tipo de Dato> Nombre_Matriz[ Nro. filas ][ Nro. columnas] Instituto de Educacin Superior Tecnolgico Privado JUAN BOSCO DE HUNUCO Lenguaje de Programacin II Prof. Fredy A. Rojas Berrospi
Acceso: Se puede acceder a los valores de los elementos de un arreglo bidimensional a travs del nombre del arreglo y dos subndices. Los subndices deben escribirse entre corchetes y representa la posicin del elemento en el arreglo. As, podemos referirnos a un elemento del arreglo escribiendo el nombre del arreglo y los subndices del elemento entre corchetes. Los valores de los subndices empiezan en cero para el primer elemento, hasta el tamao del arreglo menos uno.
Ejemplo:
int POS[5][10]; // Crea el arreglo posicin , con 50 elementos de tipo entero. int x; POS[ 3, 5] = 3 ; x = POS[ 3, 5] ;