república bolivariana de venezuela aldea universitaria ... · pdf filearreglos...

Download República Bolivariana de Venezuela Aldea Universitaria ... · PDF fileArreglos unidimensionales y ... siendo M una matriz de 3 filas y 4 ... de llenado automático de dos arreglos

If you can't read please download the document

Upload: phungbao

Post on 06-Feb-2018

242 views

Category:

Documents


1 download

TRANSCRIPT

  • Repblica Bolivariana de VenezuelaAldea Universitaria Liceo Fray Pedro de Agreda

    Prof. Elas Cisneros ([email protected])

    Lenguaje C++ Arreglos unidimensionales y multidimensionales

    Usted es libre de:

    Copiar, distribuir y comunicar pblicamente la obra . Hacer obras derivadas .

    Bajo las condiciones siguientes:

    Reconocimiento. Debe reconocer los crditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).

    No comercial. No puede utilizar esta obra para fines comerciales.

    Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera una obra derivada, slo puede distribuir la obra generada bajo una licencia idntica a sta.

    1/23

  • Contenido

    Arreglos......................................................................................................................................................1Arreglos unidimensionales.........................................................................................................................3

    Asignacin entre arreglos......................................................................................................................4Arreglos multidimensionales ....................................................................................................................6

    Algunas operaciones con arreglos.........................................................................................................9Operaciones con arreglos unidimensionales......................................................................................11Operaciones con arreglos multidimensionales ..................................................................................11

    Arreglos de caracteres multidimensionales..............................................................................................14Inicializacin de arreglos en C++ ..........................................................................................................16Ejercicios propuestos...............................................................................................................................18Bibliografa..............................................................................................................................................21

    Arreglos

    Un arreglo o array es una coleccin de variables relacionadas a las que se hace referencia por medio de un nombre comn. Los arreglos pueden tener una o varias dimensiones. En el lenguaje C++ un arreglo se le conoce como un tipo de dato compuesto. Los arreglos pueden tener una o varias dimensiones.

    float arreglo[6];Representacin grfica de

    un arreglo de una dimensin

    1 arreglo[0]

    2 arreglo[1]

    3 arreglo[2]

    4 arreglo[3]

    5 arreglo[4]

    6 arreglo[5]

    2/23

  • Int array[4][4] Representacin grfica de un arreglo de dos dimensiones

    Int array[4][4][3]Representacin grfica de un

    arreglo de tres dimensiones

    3/23

  • Arreglos unidimensionales

    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. Para declarar un arreglo de una sola dimensin se usa el formato general:

    tipo_dato identificador[tamao];

    int arreglo[3];

    arreglo[0]

    arreglo[1]

    arreglo[2]

    Un elemento del arreglo se accede indexando el arreglo por medio de un nmero del elemento. En C++ todos los arreglos empiezan en 0, esto quiere decir que si se desea acceder al primer elemento del arreglo debe usar el ndice igual a 0. Para indexar un arreglo se especifica el ndice del elemento que interesa dentro de un corchete, ejemplo;

    valor = arreglo[1];

    Recuerde que los arreglos empiezan en 0, de manera que el ndice 1 se refiere al segundo elemento. Para asignar el valor a un elemento de un arreglo, ponga el elemento en el lado izquierdo de una sentencia de asignacin.

    mi_arreglo[0] = 100;

    C++ almacena arreglos de una sola dimensin en una localizacin de memoria contigua con el primer elemento en la posicin ms baja. De esta manera, mi_arreglo[0] es adyacente a mi_arreglo[1], que es adyacente a mi_arreglo[2] y as sucesivamente. Puede usar el valor de un elemento de un arreglo donde quiera que usara una variable sencilla o una constante.

    Ejemplo 1. Arreglo de una dimensin Declaracin int arreglo[3]; // forma un arreglo de una dimensin y de tres elementos Nombre del arreglo arreglo Nombre de los elementos arreglo[0] primer elemento

    4/23

  • arreglo[1] segundo elemento arreglo[2] tercer elemento

    Ejemplo 2, el siguiente programa carga el arreglo sqrs con los cuadrados de los nmeros del 1 al 10 y luego los visualiza.

    1. using namespace std;2. #include 3. int main()4. {5. int sqrs[10];6. int i;7. for (i=1;i

  • 1. using namespace std;2. #include 3. int main()4. {5. int a1[10], a2[10];6. int i;7. //Inicializacin de a18. for (i=0; i

  • 18. cout

  • Matrices cuadradas Una matriz cuadrada es una matriz que tiene el mismo nmero de filas y columnas. La matriz que se muestra a continuacin es de orden 3x3.

    Declaracin de arreglos multidimensionales

    La sintaxis es la siguiente:tipo_dato identificador [dimensin1] [dimensin2] ... [dimensinN] ; Donde N es un nmero natural positivo.

    Ejemplo Arreglo de dos dimensiones de orden 2x3.

    char m[2][3] ; c0 c1 c2

    f0 a x wf1 b y 10

    Declaracin char m[2][3]; // forma una tabla de dos filas y tres columnas // cada fila es un arreglo de una dimensin // la declaracin indica que hay dos arreglos de una dimensin Nombre del grupo m indica la localizacin del grupo en la memoria Nombre de las filas

    m[0] primera fila indica la localizacin de la fila dentro del grupo

    m[1] segunda fila indica la localizacin de la fila dentro

    8/23

  • 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 obtendramos lo siguiente: m[0][0] = a m[1][1] = y m[1][2] = 10 m[0][2] = w

    Ejemplo 5. Llenado de un arreglo de enteros de dimensin 3x2. En este ejemplo el llenado lo realiza el usuario, en otros ejemplos se ver como realizar llenado de matrices mediante asignacin automtica, clculos de operaciones, etc.

    1. #include 2. using namespace std;3. int main()4. {5. int matriz [3][2];6. int valor;7. for(int i=0;i

  • 15. }16. // Imprimiendo el arreglo en formato matricial17. for(int i=0;i

  • 21. for(int i=0;i

  • 63. return 0;64. }

    Operaciones con arreglos unidimensionales

    Suma y RestaLos arreglos deben tener el mismo tamao y la suma se realiza elemento a elemento. Por ejemplo C = A + B. Donde A, B y C son arreglos de enteros de tamao 3.

    C = A + B

    c00=a00+b00

    c01=a01+b01

    c02=a02+b02=

    a00

    a01

    a02+

    b00

    b01

    b02

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

    for (int j=0;j

  • Propiedades * Asociativa Dadas las matrices mn A, B y C A + (B + C) = (A + B) + C

    * Conmutativa Dadas las matrices mn 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 restaLos arreglos deben tener el mismo orden y la suma se realiza elemento a elemento. Por ejemplo sean A,B y C arreglos de nmeros punto flotante de orden 2x3. Entonces la operacin C = A+B sera:

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

    C = A + B

    c00=a00+b00 c01=a01+b01 c02=a02+b02

    c10=a10+b10 c11=a11+b11 c12=a12+b12

    c20=a20+b20 c21=a21+b21 c22=a22+b22=

    a00 a01 a02

    a10 a11 a12

    a20 a21 a22+

    b00 b01 b02

    b10 b11 b12

    b20 b21 b22

    for (int i=0;i

  • for (int j=0;j

  • Producto de matrices

    El producto de dos matrices se puede definir slo si el nmero de columnas de la matriz izquierda es el mismo que el nmero de filas de la matriz derecha. Si A es una matriz mn y B es una matriz np, entonces su producto matricial AB es la matriz mp (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.

    Por ejemplo:

    Arreglos de caracteres multidimensionales

    Los arreglos de cadenas, que a menudo se conocen como tablas de cadenas son comunes en la programacin en C++. Una tabla de cadenas de dos dimensiones es creada como otro cualquier arreglo de dos dimensiones. No obstante, la forma como se conceptualizar ser levemente diferente. Por ejemplo:

    15/23

  • char nombres[10][50]

    Leidys\0

    Henry\0

    Luis\0

    Alexis\0

    Jos\0

    Estrella\0

    Alberto\0

    Ducyelis\0

    Angel\0

    Joan\0

    Esta sentencia especifica una tabla que puede contener hasta de 10 cadenas, cada una de hasta 50 caracteres de longitud (incluyendo el carcter de fin de cadena). Para acceder a una cadena dentro de esa tabla se especifica solamente el primer ndice. Por ejemplo para introducir una cadena desde el teclado en la tercera cadena de nombres, se utilizara la siguiente se