TRABAJO DE INVESTIGACIÓN ARREGLOS

30.05.2013 07:23

  

 

          

INSTITUTO TECNOLOGICO DE SALINA CRUZ

 

 

UNIDAD 5. ARREGLOS.

 

5.1. INICIALIZACIÓN Y GENERACIÓN DE ARREGLOS

5.2. ARREGLOS MULTIDIMENSIONALES

5.3. ARREGLOS DE CARACTERES

5.4. UTILIZACIÓN DE ARREGLOS.

 

TRABAJO DE INVESTIGACION DOCUEMENTAL QUE PARA ACREDITAR LA MATERIA DE ALGORITMOS Y PROGRAMACION PRESENTA:

 

Fabián Cruz Raquel

 

TITULAR DE LA MATERIA: M. EN C. SUSANA MONICA ROMAN NAJERA

CARRERA: ING. MECANICA GRUPO: 2 B1

 

 

 

 

 

 

 

 

Introducción……………………………………………………………………………3

Inicialización y generación de arreglos…………………………………………….4

Arreglos multidimensionales………………………………………………………...6

Arreglos de caracteres………………………………………………………………..8

Utilización de arreglos …………………………………………………………….....9

Conclusiones………………………………………………………………………...12

Fuentes de información…………………………………………………………….13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

INTRODUCCION.

En esta unidad hablaremos de arreglos  de una o más dimensiones, de cómo iniciarlos y también sobre su  aplicación.

Arreglos

Un arreglo o array (en ingles) es una colección de variables relacionadas a las que se hace referencia por medio de un nombre común. Otra definición valida es que un arreglo es un conjunto de datos que se almacenan en memoria de manera contigua con el mismo nombre y para diferenciar los elementos de un arreglo se utiliza un índice. En el lenguaje C++ un arreglo se le conoce como un tipo de dato compuesto. Los arreglos pueden tener una o varias dimensiones.

 

Con esta información podemos declarar lo siguiente:

 

 

 

 

 

 

 

 

 

5.1. INICIALIZACIÓN Y GENERACIÓN DE ARREGLOS.

 

 

FIGURA 1.- Declaración de un arreglo.

 

 

Un arreglo en C también se puede inicializar de las siguientes formas:

Crear un arreglo de 3 elementos

Inicializando cada elemento:

int A[]={11,2,8}; ó

int A[3]={11,2,8};

Inicializando todos los elementos con el mismo valor:

int A[3]={0};

 

float arreglo[6];

Representacion grafica de un arreglo de una dimensión

1 arreglo[0]

2 arreglo[1]

3 arreglo[2]

4 arreglo[3]

5 arreglo[4]

6 arreglo[5]

 

 

 

 

 

 

 

 

int arreglo[4][4]

Representación grafica de un arreglo de dos dimensiones

int arreglo[4][4][3]

Representación grafica de

 

 

 

FIGURA 2.-Representacion de un  arreglo de dos dimensiones.

 

 

int arreglo[4][4][3] Representación grafica de un arreglo de tres

Dimensiones

 

 

 

FIGURA 3.-Representacion grafica de un arreglo de tres dimensiones.

 

 

 

5.2. ARREGLOS MULTIDIMENSIONALES.

 

Es una estructura de datos estática y de un mismo tipo de datos, y de longitud fija que almacena datos de forma matricial. De igual forma que los arreglos unidimensionales, el almacenamiento de los datos en la memoria se realiza de forma secuencial y son accedidos mediante índices. Los arreglos multidimensionales son también conocidos como matrices. Por lo tanto se llama matriz de orden "m×n" a un conjunto rectangular de elementos dispuestos en filas "m" y en columnas "n", siendo m y n números naturales. Las matrices se denotan con letras mayúsculas: A, B, C, ... y los elementos de las

mismas con letras minúsculas y subíndices que indican el lugar ocupado: a, b, c, ... Un elemento genérico que ocupe la fila i y la columna j se escribe i,j. Si el elemento genérico aparece entre paréntesis también representa a toda la matriz: A (i,j). Una matriz de orden 3x4 se muestra a continuación, siendo M una matriz de 3 filas y 4 columnas, la representación grafica de sus posiciones sería la siguiente:

 

 

 

Declaración de arreglos multidimensionales

La sintaxis es la siguiente:

tipo_dato identificador [dimensión1] [dimensión2] ... [dimensiónN] ; Donde N es un número natural positivo.

Ejemplo Arreglo de dos dimensiones de orden 2x3.

char m[2][3] ;

   

                     

                     

Declaración

char m[2][3]; // forma una tabla de dos filas y tres columnas

// cada fila es un arreglo de una dimensión

// la declaración indica que hay dos arreglos de una dimensión

 

Nombre del grupo

m → indica la localización del grupo en la memoriaNombre de las filas

m[0] → primera fila → indica la localización de la fila dentro del grupo

m[1] → segunda fila → indica la localización de la fila dentro del grupo      

 

Nombre de los elementos

m[0][0] → primer elemento

m[0][0] m[0][1] m[0][2]

m[1][0] m[1][1] m[1][2]

m[0][1] → segundo elemento

m[0][2] → tercer elemento

m[1][0] → cuarto elemento

m[1][1] → quinto elemento

m[1][2] → sexto elemento

 

Haciendo referencia a algunos elementos obtendríamos lo siguiente:

• m[0][0] = a

• m[1][1] = y

• m[1][2] = 10

• m[0][2] = w

 

Ejemplo.- Llenado de un arreglo de enteros de dimensión 3x2. En este ejemplo el llenado lo realiza el usuario, en otros ejemplos se vera como realizar llenado de matrices mediante asignación automática, cálculos de operaciones, etc.

1. #include <iostream>

2. using namespace std;

3. int main()

4. {

5. int matriz [3][2];

6. int valor;

7. for(int i=0;i<3;i++) // Recorre las filas de la matriz

8. {

9. for(int j=0; j<2;j++) // Recorre las columnas de la matriz

10. {

11. cout<<"Ingrese el valor de la matriz en la posición ["<<i<<","<<j<<"]"<<endl;

12. cin>>valor;

13. matriz[i][j] = valor;

14. }

15. }

16. // Imprimiendo el arreglo en formato matricial

17. for(int i=0;i<3;i++)

18. {

19. cout<<"|";

20. for(int j=0; j<2;j++)

21. {

22. cout<<"\t"<<matriz[i][j]<<"\t";

23. }

24. cout<<"|"<<endl;

25. }

26. return 0;

27.}

 

 

 

5.3. ARREGLOS DE CARACTERES.

Ejemplo de declaración:

char arreglo Cadena[] = "buenas";

Notemos que no hemos especificado índice alguno, el compilador contará la cantidad de letras que tiene la cadena "buenas" (son 6) y agregará uno para incluír el carácter nulo ( '\0' ). El carácter nulo índica la terminación de la cadena, es importante siempre tenerlo en cuenta.

Ejemplo de declaración:

char arregloCadena2[7] = {'b','u','e','n','a','s','\0'}; En esta declaración inicializamos cada uno de los elementos del arreglo de manera individual. Notar que inicializamos explícitamente en el elemento 7 del arreglo al carácter nulo '\0'.

Ejemplo de declaración:

char arregloCadena3[] = "otra cadena";

El arregloCadena3, reservará 12 lugares en memoria, ya que además de los 10 que suman las palabras, hay un espacio y el carácter nulo.

Arreglos y "cin >>"

Podemos utilizar cin >>arregloCadena para asignar a un arreglo (desde el teclado o entrada estandar), pero debemos tener en cuenta que cin >> leerá y asignará hasta detectar el primer carácter en blanco (espacio).

Ejemplo de "cin >>"

char arregloCadena4[25]; cin >> arregloCadena4;Si aquí el usuario introdujera "hace calor" por teclado, el arregloCadena4 almacenaría solamente la cadena "hace" y " calor" se ignoraría por completo. También podría suceder que el usuario ingrese más de 24 carácteres (el último es el nulo) lo que ocasionaría una "Violación de segmento" al tratar de asignar valores por fuera del arreglo, así que el programador debería estar atento al uso de cin >> con arreglos.

 

 

 

 

 

 

5.4. UTILIZACIÓN DE ARREGLOS.

Operaciones con arreglos unidimensionales

Suma y Resta

Los arreglos deben tener el mismo tamaño y la suma se realiza elemento a elemento. Por ejemplo C =

A + B. Donde A, B y C son arreglos de enteros de tamaño 3.

 

/*Extracto de código fuente*/

int A[3],B[3],C[3];

for (int j=0;j<3;j++)

{

A[j] = j*3; // Asignación de valores para arreglo A

B[j] = j-2; // Asignación de valores para arreglo B

C[j]=A[j]+B[j]; // Asignación de valores para arreglo C

}

 

Operaciones con arreglos multidimensionales.

 

En matemáticas, una matriz es una tabla de números consistente en cantidades abstractas que pueden sumarse y multiplicarse. Las matrices se utilizan para describir sistemas de ecuaciones lineales, realizar un seguimiento de los coeficientes de una aplicación lineal y registrar los datos que dependen de varios parámetros. Pueden sumarse, multiplicarse y descomponerse de varias formas, lo que también las hace un concepto clave en el campo del algebra lineal. Las matrices son utilizadas ampliamente en la computación, por su facilidad para manipular información. En este contexto, son la mejor forma para representar grafos, y son muy utilizadas en el cálculo numérico.

 

Propiedades

* Asociativa

Dadas las matrices m×n A, B y C

A + (B + C) = (A + B) + C

* Conmutativa

Dadas las matrices m×n A y B

A + B = B + A

* Existencia de matriz cero o matriz nula

A + 0 = 0 + A = A

* Existencia de matriz opuesta con -A = [-aij]

A + (-A) = 0

Suma y resta

 

Los arreglos deben tener el mismo orden y la suma se realiza elemento a elemento. Por ejemplo sean

A,B y C arreglos de numeros punto flotante de orden 2x3. Entonces la operacion C = A+B seria:

 

 

/*Extracto de código fuente*/

float A[3][3],B[3][3],C[3][3];

for (int i=0;i<2;++)

{

for (int j=0;j<3;j++)

{

A[i][j] = (2*i+1)/3; // Asignación de valores para el arreglo A

B[i][j] = 2*j; // Asignación de valores para el arreglo B

C[i][j]=A[i][j]+B[i][j]; // Asignación de valores para el arreglo C

}

}

 

Producto por un escalar

Dada una matriz A y un escalar c, su producto cA se calcula multiplicando el escalar por cada elemento

de A (i.e. (cA)[i, j] = cA[i, j] ).

Ejemplo

 

 

Propiedades

Sean A y B matrices y c y d escalares.

* Clausura: Si A es matriz y c es escalar, entonces cA es matriz.

* Asociatividad: (cd)A = c(dA)

* Elemento Neutro: 1・A = A

* Distributividad:

o De escalar: c(A+B) = cA+cB

o De matriz: (c+d)A = cA+dA

 

 

 

 

Ejemplo de producto de un escalar por una matriz

Realizar la operación M=2*S donde M y S son arreglos de dimensión dos de orden 2x2.

 

 

 

/*Extracto de codigo fuente*/

float M[2][2], S[2][2];

for (int i=0;i<2;++)

{

for (int j=0;j<2;j++)

{

S[i][j] = i+j; // Asignación de valores para el arreglo S

M[i][j]=2*S[i][j]; // Asignación de valores para el arreglo M

}

}

 

Producto de matrices.

 

El producto de dos matrices se puede definir solo si el numero de columnas de la matriz izquierda es el mismo que el numero de filas de la matriz derecha. Si A es una matriz m×n y B es una matriz n×p, entonces su producto matricial AB es la matriz m×p (m filas, p columnas) dada por:

 

(AB)[i,j] = A[i,1] B[1,j] + A[i,2] B[2,j] + ... + A[i,n] B[n,j] para cada par i y j.

 

 

FIGURA 5.- Producto de matrices.

 

Por ejemplo:

 

 

 

CONCLUSIONES.

 

Bueno en esta unidad 5. Arreglos; estudiamos que  Un es una colección de variables relacionadas a las que se hace referencia por medio de un nombre común.

 

También vimos que existen arreglos unidimensionales, de dos dimensiones y multidimensionales, así como la forma en que se declara cada uno de ellos.

 

 

Los arreglos multidimensionales se observan claramente en forma de matrices, de las cuales podemos hacer operaciones fundamentales como: suma, resta y multiplicación.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FUENTES DE INFORMACION.

 

https://aldeafraypedrodeagreda.files.wordpress.com/2009/12/11-arreglos-multidimensionales.pdf   consultado en línea 15 de mayo de 2013

 

https://www.slideshare.net/javi2401/arreglos-en-c-presentation consultado en línea 15 de mayo de 2013

 

https://codigomaldito.blogspot.mx/2005/11/arreglo-de-caracteres.html consultado en línea 20 de mayo de 2013.