Instituto de Educación Superior Tecnológico Privado
JUAN BOSCO DE HUÁNUCO HUÁNUCO
Lenguaje de Programación II
Crear Interfaz
Escribir Debug and DeployCódigo Uso de Visual Studio .NET
Acceso a datos
Depurar e implantar
Arreglos Unidimensionales Contenido - Arreglos (Arrayas) - Arreglos Unidimensionales - Declaración - Indexación
Fredy Alonzo Rojas Berrospi
Instituto de Educación Superior Tecnológico Privado
- Ejemplos
Introducción Los Arreglos se definen como una colección finita, homogénea y ordenada de elementos. Finita: Todo arreglo tiene un límite, es decir, se debe determinar cuál será el número máximo de elementos que podrán formar parte del arreg lo. Homogénea: Todos los elementos de un arreglo son del mismo tipo (todos enteros, todos reales, etc., pero nunca una combinación de distintos tipos). Ordenada: Se puede determinar cuál 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 día 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 números se denominan valores índice o subíndice del array. El término “subíndice” se utiliza ya que se especifica igual que en matemáticas como una secuencia tal como a0, a1, a2 ... Estos números localizan la posición 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 posición 0, a[1] es el nombre del elemento que está en la posición 1, etc. En general, el elemento i-ésimo está en la posición i-1. Este método de numeración se denomina indexación basada en cero. Su uso tiene el efecto de que el índice de un elemento del array es el númer o 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 gráficamente como se muestra:
Un arreglo tiene la característica de que puede almacenar a N elementos del mismo tipo y además permite el acceso a cada uno de estos elementos. Así, se distinguen dos partes e n 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.
Prof. Fredy A. Rojas Berrospi
Instituto de Educación Superior Tecnológico Privado
Arreglos Unidimensionales o Vectores Un arreglo de una dimensión es una lista de variables, todas de un mismo tipo a las que se hace referencia por medio de un nombre común. 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 numéricos, es decir, tipo "caracter". Por ejemplo un vector que representa los países de Europa:
Cada elemento de un vector se puede procesar como si fuese una variable simple al ocupar una posición de memoria. Así: NUMEROS[] = 72 Almacena el valor entero o real 72 en la posición 25°. Del vector NUMEROS y la instrucción de salida cout<
*Esta propiedad significa que cada elemento de un vector es accesible directamente y es una de las ventajas más importantes de usar un vector: almacenar un conjunto de datos.
Declaración 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 tamaño.
Prof. Fredy A. Rojas Berrospi
Instituto de Educación Superior Tecnológico Privado
nombreArreglo[Tamamaño];
Por ejemplo tengo un arreglo de números enteros: int arreglo[4]; En el caso anterior el tipo del arreglo es entero (int). Se le da una dimensión al arreglo que va entre los caracter es '[' y ']', en el caso anterior la dimensión es 4, esto quiere decir que en la memoria se reservaron 4 posiciones para almacenar 4 valores enteros.
Indexación (Inicializar un Arreglo) Para poder hacer referencia a los elementos del arreglo se utilizan los índices los cuales comienzan desde cero. Ejemplo: - Días 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”
Inicialización 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}; También 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 automáticamente 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 tamaño del vector ni tampoco inicializó sus elementos.
Acceso a los elementos de un arreglo Puedo acceder a un elemento por medio de un subíndice, por ejemplo si yo quiero acceder al primer elemento tendré que hacerlo de esta manera: int nro = arreglo[0]; Prof. Fredy A. Rojas Berrospi
Instituto de Educación Superior Tecnológico Privado
En la variable nro se almacenara el v alor 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 demás elementos.
arreglo[0] arreglo[1] arreglo[2] arreglo[3]
51 60 70 95
Si nos damos cuenta tener un arr eglo es mucho más ventajoso que tener definidas 4 variables.
EJEMPLOS 1. Se desea ingresar las notas finales de 10 alumnos de la materia de Introducción a la programación, para luego emitir un reporte del promedio de todas las notas. #include 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 #"<>arreglo[i]; } for(i=0; i < TAM ; i++) promedio = promedio + arreglo[i]; promedio = promedio / TAM ; cout<<"El promedio de las notas e s: "<
}
Prof. Fredy A. Rojas Berrospi
2. Que rellene un array con los 100 primeros números enteros positivos y lo muestre en forma ascendente.
3. Que rellene un array con los 100 primeros números enteros positivos y lo muestre en forma descendente.
#include Using namespace std;
#include Using namespace std;
int main() { int x, tabla[100];
int main() { int x, tabla[100];
for (x=0;x<100;x++) { tabla[x]=x+1; }
for (x=0;x<100;x++) { tabla[x]=x+1; }
for (x=0;x<100;x++) { cout<
for (x=99;x>=0;x--) { cout<
system("PAUSE"); return 0; }
system("PAUSE"); return 0; }
4. Que rellene un array con los números primos comprendidos entre 1 y 100 y los muestre en pantalla en orden ascendente. #include 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
Instituto de Educación Superior Tecnológico Privado
EJERCICIOS PROPUESTOS 1. Que rellene un array con los números impares comprendidos entre 1 y 100 y los muestre en pantalla en orden ascendente. 2. Que lea 10 números por teclado, los almacene en un array y muestre la suma, resta, multiplicación y división de todos. 3. Que lea 10 números por teclado, los almacene en un array y los ordene de forma ascendente. 4. Que lea 10 números por teclado, 5 para un array y 5 para otro array distinto. Mostrar los 10 números en pantalla mediante un solo array. 5.
Que lea 5 números por teclado, los copie a otro array multiplicados por 2 y muestre el segundo array.
6. Que lea 5 números 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 números pares y muestre su suma. 8. Que lea 10 números por teclado, los almacene en un array y muestre la media. 9. Que mediante un array almacene números 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 múltiples ('a',...o,'e'). Cada pregunta se evalúa 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.
Prof. Fredy A. Rojas Berrospi
Instituto de Educación Superior Tecnológico Privado
Arreglos Bidimensionales Contenido - Arreglos Bidimensionales - Declaración - Inicialización - Ejemplos
Arreglos Bidimensionales (Matrices)
Los arreglos bidimensionales son tablas de valores. Cada elemento de un arreglo bidimensional está simultáneamente en una fila y en una columna. En matemáticas, a los arreglos bidimensionales se les llama matrices, y son muy utilizados en problemas de Ingeniería. En un arreglo bidimensional, cada elemento tiene una posición que se identifica mediante dos índices: el de su fila y el de su columna.
Declaración
La declaración de un arreglo consiste en establecer las características del ar reglo y sus elementos, por medio de la siguiente sintaxis: Nombre_Matriz[ Nro. filas ][ Nro. columnas]
Ejemplo: - Int M[2][2];
- String C[100][10]
- char Mapa[5][6]
- double Suma[5][5]
Inicialización:
Un arreglo es un objeto que, cuando es creado por el compilador, se le asignan automáticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios: Si el tipo del arreglo es numérico , 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 pre determinados, es posible agrupar las operaciones de declaración, creación e inicialización en una sola instrucción. Ejemplo: - int Ubi[2][2] = {{1,2},{3,4}}; - String Nom*3+*2+ = “Hugo”, “Jefe”-,“Paco”, “Operador”-,“Luis”, “Ayudante”--; - float M[2][5]={{1.5,0,4,-6.5,2},{2.3,9,3.5,4.8,6.2}};
Prof. Fredy A. Rojas Berrospi
Instituto de Educación Superior Tecnológico Privado
Acceso:
Se puede acceder a los valores de los elementos de un arreglo bidimensional a través del nombre del arreglo y dos subíndices. Los subíndices deben escribirse entre corchetes y representa la posición del elemento en el arreglo. Así, podemos referirnos a un elemento del arreglo escribiendo el nombre del arreglo y los subíndices del elemento entre corchetes. Los valores de los subíndices empiezan en cero para el primer elemento, hasta el tamaño del arreglo menos uno. Ejemplo: int POS[5][10]; // Crea el arreglo posición , con 50 elementos de tipo entero. int x; POS[ 3, 5] = 3 ; x = POS[ 3, 5] ;
Prof. Fredy A. Rojas Berrospi