ALGORITMOS ARREGLOS

March 29, 2018 | Author: Alan Isai Valdez Castrejon | Category: Array Data Structure, Matrix (Mathematics), Areas Of Computer Science, Technology, Computing


Comments



Description

Arreglos En Lenguaje CArreglo.- Es una colección de variables del mismo tipo que se referencian utilizando un nombre común. Un arreglo consta de posiciones de memoria contigua. La dirección más baja corresponde al primer elemento y la más alta al último. Un arreglo puede tener una o varias dimensiones. Para acceder a un elemento en particular de un arreglo se usa un índice. Arreglos unidimensionales y multidimensionales. En el lenguaje C++ un arreglo se le conoce como un tipo de dato compuesto. Los arreglos pueden tener una o varias dimensiones. El indice es un numero correlativo que indica la posicion de un elemento del arreglo. y cumplen con las mismas reglas de alcance y vida. La sintaxis de la declaración de un arreglo unidimensional es la siguiente: tipo-base identificador[NumElementos] . Observaciones: . al igual que las demás variables deben declararse antes de poder utilizarlas. Los indices en C++ van desde la posicion 0 hasta la posicion tamano – 1. Los arreglos.Índice de un arreglo Todo arreglo esta compuesto por un numero de elementos. que corresponde a la posición relativa de dicho elemento dentro del arreglo. Ejemplo: • arreglo[0] //Primer elemento del arreglo Arreglo Unidimensional o VECTOR Es un arreglo de una sola dimensión. para indicar a qué elemento nos referimos. Los arreglos de una sóla dimensión reciben también el nombre de vectores. Para acceder a un elemento del arreglo es necesario indicar la posicion o indice dentro del arreglo. se necesita especificar un sólo número o índice. Elemento de un arreglo Un elemento de un arreglo es un valor particular dentro de la estructura del arreglo. es posible omitir el tamaño del arreglo y dejar que el compilador lo deduzca a partir de los valores asignados. La declaración de estructuras complejas. empezando en 0. o incluso algunos complejos como estructuras. Los corchetes [] son obligatorios. Si se hace inicialización. la cantidad de elementos del tipo base que contendrá. Por ejemplo. en una misma línea. es decir. El identificador es el nombre que distinguirá el arreglo. valor2. por lo que es posible declarar variables de un tipo simple y arreglos con ese tipo como base. . La sintaxis para hacer esto es la siguiente: <tipo-base> <identificador>[<NumElementos>] = { valor1. numerados de 0 a 99. Ver ejemplo más abajo. se hace a partir de tipos existentes. como los arreglos. en la siguiente declaración se está definiendo una variable entera. Observaciones:  Con los valores indicados entre llaves {} se inicializarán los elementos del arreglo. llamada numero. Dichos elementos estarán numerados consecutivamente. y llamado vec: int numero. }. El término NumElementos determina el tamaño del arreglo. vec[100].. El tipo-base puede ser cualquiera de los tipos básicos del lenguaje.   Los valores deben ser del <tipo-base> del arreglo. los últimos serán inicializados en cero. . Cada elemento del arreglo será del tipo definido aquí. Es posible declarar un arreglo unidimensional y al mismo tiempo inicializar sus elementos con valores del tipo base. Si se incluyen menos valores que elementos en el arreglo. y al mismo tiempo un arreglo con 100 enteros.. La siguiente instrucción declara datos como una tabla de enteros de dimensión 2x3: int datos [2][3]. } printf ("\n\n LA SUMA DEL VECTOR ES : % d". Podemos pensar en datos como en una matriz con dos filas y tres columnas. i++) { printf ("\n%d ".h> #include <conio. i). sum=0. Para asignar un valor a un elemento del arreglo. El programa de abajo suma dos matrices de dimensión 2x3 y escribe el . x[i]).sum.Se accede a los elementos del arreglo por medio de índices. esto quiere decir que si se quiere acceder al primer elemento de un arreglo se utiliza 0 para el índice.h> main() { int i. se coloca el arreglo del lado izquierdo de la asignación: X[8] = 12. &x[i]). } Bidimensionales (tablas o matrices) Una tabla bidimensional es una matriz de datos del mismo tipo. En el lenguaje C todos los arreglos empiezan por 0 (cero). getch(). sum). scanf ("%d". } printf ("\nEL VECTOR ORIGINAL ES :"). sum = sum + x[i].x[9]. for (i=0. i<10. for (i=0. i<10. i++) { printf ("INTRODUCE EL DATO % d : ". EJEMPLO: El siguiente programa realiza la lectura de 10 datos y calcula la suma de los mismos: #include <stdio. Donde N y M son el número de filas y de columnas respectivamente (la dimensión de la matriz). i++) for (j=0. j++) printf ("%d %d\n". la siguiente instrucción for (i=0. arrays bidimensionales. es decir. j<3. Por ejemplo. todo lo que vamos a estudiar en esta sección se puede extrapolar a arrays incluso ndimensionales (o tensores). el bucle más interno se corresponde con el contador de la derecha. escribe lo siguiente en la pantalla 0 0 0 1 1 1 0 1 2 0 1 2 Las macros FILAS y COLUMNAS del programa permiten cambiar fácilmente la dimensión de las matrices sin mucho esfuerzo. Se ha escrito la dimensión con letras mayúsculas. Las matrices se leen de un archivo de texto mediante bucles for anidados. . i<2. ya que deben ser constantes. En general. La declaración de una matriz o array bidimensional es: tipo variable_matriz[N][M]. Una forma sencilla de entender el funcionamiento de los bucles anidados es pensar en ellos como en un cuenta kilómetros. uno dentro del otro. j). matriz2[N][M]. Todo el código utiliza estas macros en lugar de constantes que habría que cambiar a mano si quisiéramos adaptar el programa.resultado en la pantalla del ordenador. por ejemplo: #define N 4 //número de filas de las matrices que voy a declarar #define M 5 //número de columnas de las matrices que voy a declarar main() { double matriz1[N][M]. es decir. El lenguaje C permite el uso de matrices. aunque en la práctica el uso de arrays con más de 2 dimensiones no es muy común. Hasta que no da una vuelta el contador de la derecha. no avanza el contador que está a la izquierda. y al igual que con vectores se suelen definir con constantes. En el caso de los bucles. i. . la representacion grafica de sus posiciones seria la siguiente: M 3x4 Filas = 3. y los elementos de las mismas con letras minusculas y subindices que indican el lugar ocupado: a..} int matriz_entera[N][M]. B. De igual forma que los arreglos unidimensionales. C.j.. columnas = 4 Matrices cuadradas Una matriz cuadrada es una matriz que tiene el mismo numero de filas y columnas. Si el elemento generico aparece entre parentesis tambien representa a toda la matriz: A (i.. b. . siendo M una matriz de 3 filas y 4 columnas. La matriz que se . . c. Un elemento generico que ocupe la fila i y la columna j se escribe i. Las matrices se denotan con letras mayusculas: A.. siendo m y n numeros naturales. Una matriz de orden 3x4 se muestra a continuacion. Multidimensionales (tres o más dimensiones) Es una estructura de datos estatica y de un mismo tipo de datos. y de longitud fija que almacena datos de forma matricial..j). Por lo tanto se llama matriz de orden "m×n" a un conjunto rectangular de elementos dispuestos en filas "m" y en columnas "n".. el almacenamiento de los datos en la memoria se realiza de forma secuencial y son accedidos mediante indices. Los arreglos multidimensionales son tambien conocidos como matrices. // forma una tabla de dos filas y tres columnas // cada fila es un arreglo de una dimensión // la declaracion indica que hay dos arreglos de una dimension Nombre del grupo m → indica la localizacion del grupo en la memoria Nombre de las filas Ejemplo 5.. #include <iostream> using namespace std. Declaración de arreglos multidimensionales La sintaxis es la siguiente: tipo_dato identificador [dimensión1] [dimensión2] .. 4. Declaracion char m[2][3]. Donde N es un número natural positivo. char m[2][3] . int main() { . 1. 3. En este ejemplo el llenado lo realiza el usuario. Llenado de un arreglo de enteros de dimension 3x2. Ejemplo Arreglo de dos dimensiones de orden 2x3. calculos de operaciones.muestra a continuacion es de orden 3x3. 2. en otros ejemplos se vera como realizar llenado de matrices mediante asignacion automatica. [dimensiónN] . etc. i<3. { 22. 13. 23. cout<<"Ingrese el valor de la matriz en la posicion ["<<i<<".i++) 18. for(int j=0.5. cout<<"|"<<endl. } 16. } 26. for(int i=0. } 24. j<2. 6.} . 20. } 15. cout<<"|". // Imprimiendo el arreglo en formato matricial 17.i<3. 25. for(int j=0. cin>>valor. { 9.j++) 21. cout<<"\t"<<matriz[i][j]<<"\t". { 19."<<j<<"]"<<endl. 14. for(int i=0. int matriz [3][2]. { 11.j++) // Recorre las columnas de la matriz 10. matriz[i][j] = valor. j<2. 12.i++) // Recorre las filas de la matriz 8. return 7 27. int valor. 7.
Copyright © 2024 DOKUMEN.SITE Inc.