SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
EL TIPO COMPUESTO BASICO: Los Arrays

                        CONTENIDOS


    1. Introducción al tipo de dato ARRAY.

            Definición, Características, Declaración,
            Acceso e Inicialización.

    2. Arrays multidimensionales

            Definición, Declaración, Acceso e Inicialización.




1




     EL TIPO COMPUESTO BASICO: Los Arrays




                                 1
    Introducción al tipo de dato ARRAY




2
EL TIPO COMPUESTO BASICO: Los Arrays

    Introducción
       Hasta ahora hemos visto los tipos de datos simples de C++, y sus
       características .

         • int      ( Números enteros )
         • float, double      ( Números reales )
         • bool     ( Valores lógicos )
         • char ( Caracteres y cualquier cantidad de 8 bits )
         • void     ( Nada. Sirve para indicar que una función no devuelve valores )

       También se ha visto cómo declarar y utilizar constantes utilizando const
       y el tipo enumerado enum .

       Ahora vamos a introducir un tipo de dato definido por el programador:
                                     el tipo array

3




             EL TIPO COMPUESTO BASICO: Los Arrays

    El tipo Array: Definición

    z Un Array es un conjunto finito de valores del mismo tipo.
    z Un Array es una estructura de datos que almacena bajo el mismo nombre
      (variable) a una colección de datos del mismo tipo.
    z Un Array es un conjunto de variables del mismo tipo que tienen el
      mismo nombre y se diferencian en el índice.

               Letras =        ‘a’     ‘z’     ‘r’      ‘j’


        • A cada dato almacenado se le denomina elemento del array o ítem.
        • Cada elemento del array está numerado, y a éste número se le
        denomina índice.


4
EL TIPO COMPUESTO BASICO: Los Arrays

    El tipo Array: Características

     ♦ Los elementos del array se numeran consecutivamente comenzando con
       0, 1, 2, …
                         letras =     ‘a’      ‘z’       ‘r’       ‘j’
                                                                                          índice
                                       0        1           2       3
     ♦ Estos números, los índices, permiten localizar cada elemento del array.
            letras[0] es el elemento que está en la posición 0,                          array de 4
            letras[1] es el elemento que está en la posición 1, etc …                    elementos


     ♦ Los elementos almacenados en el array pueden ser de cualquier tipo:
       tipos simples como: int, char, bool, float ó tipos definidos por el
       programador como por ejemplo estructuras (hablaremos de ellas más
       tarde).
5




            EL TIPO COMPUESTO BASICO: Los Arrays

    El tipo Array: Declaración de un array

     • Se declara de forma similar a cualquier otro tipo de datos, solo que
       hay que indicarle al compilador el número de elementos que forma el
       array: tamaño ó longitud del array.
                                                                                           Sintaxis

           <tipo_de_dato> <nombre_de_variable> [numero_de_elementos];



          Tipo de dato         Nombre_de_variable       [       Num_elementos        ]      ;


      Ejemplos:

        char letras[4];        // variable letras de tipo array de 4 elementos de tipo char
        int edades[10];        // variable edades de tipo array de 10 elementos de tipo entero.



6
EL TIPO COMPUESTO BASICO: Los Arrays

    El tipo Array: Declaración de un array

     • El compilador reserva espacio en memoria en posiciones contiguas.
          char letras[4];                                                           letras[2] letras[3]
          int edades[10];                                  letras[0]    letras[1]


      El array letras ocupa 4 bytes
      de memoria.                                      1    2       3   4    ...       ... ...

      Cuando declaramos el array edades lo que hacemos es reservar un espacio de
       memoria para 10 variables de tipo int.
                                                                                                       El array
                                                                                                    edades ocupa
                                                                                                       20 bytes
                                                                                                   consecutivos de
        1 2   ...                                                                                     memoria
                          [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
                                                                                                     (2 bytes por
                                                                                                     elemento).

7




               EL TIPO COMPUESTO BASICO: Los Arrays

    El tipo Array: Declaración de un array

     • Si queremos saber el número de bytes que necesitamos para
       almacenar un array en memoria, podemos utilizar la función sizeof().
        En nuestro caso, sizeof (edades) = 20.
                                                                                                 Cabecera stdio.h
         int edades[10];




                    1 2    ...     [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]




8
EL TIPO COMPUESTO BASICO: Los Arrays

     El tipo Array: Acceso a los elementos de un array
       Para acceder a los elementos de un array hay que poner el nombre y el
       índice del elemento al que queremos acceder ó referenciar.

             …                                                 letras =   ‘a’ ‘z’ ‘r’        ‘j’
             int primera = 1, k = 3;
                                                                           0 1     2          3
             char letras[4];
             …
             cout << letras[0]; //visualiza la letra ‘a’      Podemos visualizar el valor de los
             cout << letras[2]; //visualiza la letra ‘r’           elementos de un array
             …
             cin >> letras[0];
             letras[2] = ‘R’;                                Modificar el valor de los elementos
             …
                                                             de un array
             letras[0] = letras[primera+2];
             cout << letras[k-2]; //visualiza la letra ‘z’
             ..                                              Acceder a los elementos utilizando
                                                             fórmulas

9




                   EL TIPO COMPUESTO BASICO: Los Arrays

     El tipo Array: Acceso a los elementos de un array
       Si necesitamos acceder a todos los elementos, utilizaremos un bucle de
       tipo for:
                                                                                   Sintaxis
                 for ( int j = 0; j < num_elementos ; j++ )

                       procesar_elemento [j];                         Variable de control j para
                                                                        recorrer cada uno de
                                                                           los elementos
        …

        char letras[4];
       …

        for ( int j = 0 ; j < 4 ; j++ )
           {                                                     Pasada   j     Salida por pantalla
            cout << “Introduzca el elemento : “ << j+1 ;            1     0   Introduzca el elemento: 1
            cin >> letras[j];                                       2     1   Introduzca el elemento: 2
            cout << endl;                                           3     2   Introduzca el elemento: 3
           }                                                        4     3   Introduzca el elemento: 4
       ...




10
EL TIPO COMPUESTO BASICO: Los Arrays

     El tipo Array: Acceso a los elementos de un array

         C++ no comprueba que los índices del array estén dentro del rango permitido.

          Si escribimos cout << letras[4]; no tendremos error de compilación, pero el
        programa no funcionará correctamente.

                                                                               El código ASCII del
                                        letras[2]
              letras[0]    letras[1]
                                                         letras[3]              carácter ‘+’ es 43


               107    97   122    114 74     43      63       78
         1     2     3     4     ...       ...     ...


                                                            letras =    ‘a’ ‘z’ ‘r’   ‘j’
                                                                         0 1     2     3

11




               EL TIPO COMPUESTO BASICO: Los Arrays

     El tipo Array: Inicialización de un array
      Antes de empezar a utilizar una variable de tipo array hay que asignar
      valores a cada uno de sus elementos. Tenemos varias formas de inicializar
      un array:
      1. Inicialización en la declaración:
         …                                                             Los valores se encierran entre
         char letras[4] = { ‘a’, ‘z’, ‘t’, ‘j’ };                      llaves y se separan por comas.
         …
         int edades[] = { 10, 20, 30, 40, 50, 60 };
                                                                      C++ permite omitir el tamaño del
         char saludo[] = { ‘h’, ‘o’, ‘l’, ‘a’ };                          array cuando se inicializa.
                                                                     El compilador reserva memoria para
         char saludo[] = { “hola” };                                   un array de enteros de tamaño 6.
         ...

                               Los array de caracteres se pueden inicializar de éstas dos formas.

12
EL TIPO COMPUESTO BASICO: Los Arrays

     El tipo Array: Inicialización de un array
      2. Inicialización elemento a elemento en el cuerpo del programa:

        letras[0] = ‘a’;
        letras[1] = ‘z’;                                Este método no es muy práctico
        letras[2] = ‘r’;                               cuando tenemos muchos elementos.
        letras[3] = ‘j’;


      3. Inicialización mediante una sentencia FOR:

           int edades[ 6 ];
                                                    int temperatura[ 10 ];
           int valor = 10;
                                                    for (int i = 0; i<10; i++)
           for (int i = 0; i<6 ; i++ )
                                                        edades[i] = 0;
              {
                 edades[i] = 10;
                 valor = valor + 10 ;           Temperatura = 0        0   0     0   0   0 0 0 0 0
             }
                                         edades =    10 20 30 40 50 60

13




                 EL TIPO COMPUESTO BASICO: Los Arrays




                                                     2
                   ARRAYS multidimensionales




14
EL TIPO COMPUESTO BASICO: Los Arrays

     Arrays multidimensionales: Definición

       Los arrays que hemos visto anteriormente se conocen como arrays
       unidimensionales y se caracterizan por tener un solo índice. También
       se conocen como listas de elementos y se corresponden con el
       concepto de vector.

       Los arrays multidimensionales son aquellos que tienen más de una
       dimensión y por tanto tienen más de un índice. Los más utilizados son
       los de dos dimensiones, conocidos con el nombre de tablas. Se
       corresponden con el concepto de matriz.

       C++ permite trabajar con arrays de de tantas dimensiones como
       requieran las aplicaciones ( 3, 4 ó más dimensiones).


15




             EL TIPO COMPUESTO BASICO: Los Arrays

     Arrays bidimensionales: Definición

      • Un array de dos dimensiones se corresponde con una tabla con varias
        filas y varias columnas.
                                   0   1    2     3
                                                                índice para las
                            0      1   2    3     4                columnas
        índice para                4   1    2     3
                            1
          las filas
                            2      3   2    1     4


      • Cada elemento almacenado en el array está identificado por dos índices,
        sus coordenadas, la fila y la columna en la que se encuentra dicho
        elemento.

      • Ambos índices se numeran consecutivamente comenzando con 0, 1, 2, …

16
EL TIPO COMPUESTO BASICO: Los Arrays

     Arrays bidimensionales: Declaración

          • Se declara de forma similar al tipo de dato array de una dimensión,
            solo que hay que indicarle al compilador el tamaño de cada uno de los
            índices, es decir, el número de filas y el número de columnas.
                                                                                                         Sintaxis

          <tipo_de_dato> <nombre_de_variable> [num_filas] [num_columnas];


                 Tipo de     Nombre_de
                                                [       Num_filas           ]   [   Num_columnas     ]     ;
                   dato       variable

          Ejemplos:
               char tablero[8][8]; // variable llamada tablero de tipo array de dos dimensiones (8 filas y
                                           8 columnas). Alamacena 64 elementos de tipo char.

               int matriz[3][4];         // variable llamada matriz de tipo array de dos dimensiones (3 filas y 4
                                           columnas). Almacena 12 elementos de tipo entero.

17




                       EL TIPO COMPUESTO BASICO: Los Arrays

     Arrays bidimensionales: Declaración

          • Al igual que en los arrays de una dimensión, el compilador reserva
            espacio en memoria en posiciones contiguas. Primero se almacenan
            los datos de la primera fila, luego los de la segunda, ...
                                                    0    1      2     3                        El array matriz
          int matriz[3][4];                         1    2      3     4                        ocupa 24 bytes
                                           0
                                           1        4    1      2     3                        consecutivos de
                                           2        3    2      1     4                           memoria.

          Cuando declaramos el array matriz lo que hacemos es reservar un espacio de
            memoria para 12 variables de tipo int.



      1    2     ...       [0][0] [0][1] [0][2] [0][3] [1][0]   ...
                                                                                      ….
                                Primera fila                 Segunda fila

18
EL TIPO COMPUESTO BASICO: Los Arrays

     Arrays bidimensionales: Acceso a los elementos
       Se puede acceder a los elementos de un array bidimensional de forma
       similar a como lo hacíamos para arrays de una dimensión. Hay que poner
       el nombre y los índices (fila y columna) del elemento al que queremos
       acceder ó referenciar.

         int j = 0;
         char valor ;
                                                            Podemos visualizar el valor de los
        int matriz[3][4];                                        elementos de un array
        char cuadro[3][3];
        cout <<matriz[0][3];
         …                                                 Modificar el valor de los elementos
        cin >> matriz[1][ j+1 ];                           de un array
        cuadro[2][2] = ‘R’;
        …

        valor = cuadro[2][1];
        ...                                                Acceder a los elementos para
                                                           extraer valores

19




                 EL TIPO COMPUESTO BASICO: Los Arrays

     Arrays bidimensionales: Acceso a los elementos
       Si necesitamos acceder a todos los elementos de un array bidimensional,
       utilizaremos un doble bucle for.
                                                                   Variable de control i para
                                                                       recorrer las filas
              for ( int i = 0; i < num_filas ; i++ )
                 for ( int j = 0 ; j < num_columnas ; j ++ )        Variable de control j para
                            procesar_elemento [i][j];                 recorrer las columnas


      Sintaxis           int matriz[3][4];
                              …

                         for ( int i = 0 ; i < 3 ; i++ )
                             for ( int j = 0 ; j < 4 ; j++ )
                            {
                                   cout << “El elemento “ << i+1 << j+1 << “es: ”;
                                   cout << matriz [i] [j] << endl;
                            }
                        ...



20
EL TIPO COMPUESTO BASICO: Los Arrays

     Arrays bidimensionales: Inicialización

      Al igual que los arrays de una dimensión, tenemos varias formas de
      inicializar un array:
                                                        Los valores se encierran entre
                                                        llaves y se separan por comas.
      1. Inicialización en la declaración:
                                                                              0   1      2   3
       …                                                                  0   1   2      3   4
       int matriz[3][4] = { 1, 2, 3, 4, 4,1,2, 3, 3, 2,1,4 };             1   4   1      2   3
                                                                          2   3   2      1   4
       int valores[2][3] = { {10, 20, 30}, {0,1,2} };
                                                                                   0 1        2
       char cuadro[3][3] = {                                                  0   10 20      30
                                  { ‘B’, ‘N’, ‘N’ },                          1    0 1       2
                                  { ‘N’, N’, ‘N’ },                   0   1   2
                                  { ‘B’, ‘B’, ‘B’ }              0    B   N   N
                             };                                  1    N   N   N
       ...                                                       2    B   B   B


21




                EL TIPO COMPUESTO BASICO: Los Arrays

     Arrays bidimensionales: Inicialización
      2. Inicialización elemento a elemento en el cuerpo del programa:
        matriz[0][0] = 1;
        matriz[0][1] = 2;                               Poco práctico como ocurría en
        matriz[0][2] = 3;
        ...
                                                          arrays de una dimensión.
        matriz[2][3] = 4;

      3. Inicialización mediante una doble sentencia FOR:
        int valores[2][3]
                                             Variable de control i para
        int dato = 10;
        for (int i = 0; i<2 ; i++ )
                                                 recorrer las filas
                                                                                   0 1        2
            for (int j = 0; j<3 ; j++ )                                       0   10 20      30
             {                                                                1   40 50      60
                valores[i][j] = dato;
                dato = dato + 10 ;               Variable de control j para
            }
                                                   recorrer las columnas

22
EL TIPO COMPUESTO BASICO: Los Arrays

     Más sobre inicialización de Arrays:
          Si un array se declara globalmente, y no se inicializa en dicha
       declaración, el compilador se encarga de inicializarlo automáticamente con
       un valor por defecto.

          Si no declaran globalmente, pero se inicializan uno o más elementos
       pero no todos, el compilador inicializa automáticamente el resto de
       elementos con un valor por defecto.

                                                              Si el array almacena
                   Si el array almacena
                                                               elementos de tipo
                    elementos de tipo
                                                                     carácter:
                       entero o real:
                                                          El valor por defecto es el
                 El valor por defecto es 0.
                                                              carácter nulo ‘0’.

23




                 EL TIPO COMPUESTO BASICO: Los Arrays

     Más sobre inicialización de Arrays:
       Ejemplo:
                                                  0   1   2       3                      0          1      2
       #include <iostream.h>                      0   0   0       0             0       ‘0’       ‘0’   ‘0’
                                              0
                                              1   0   0   0       0             1       ‘0’       ‘0’   ‘0’
       int matriz[3][4];                      2   0   0   0       0             2       ‘0’       ‘0’   ‘0’
       char cuadro[3][3];
                                                      matriz                              cuadro

       void main()
       {                                              ventas          3.2   0       0          0
                                                                       0    1       2          3
           float ventas[4] = {3.2};
           int otrocuadro[3][3] = { 7, 6 };                   0       1     2
                                                      0       7       6     0
                                                      1       0       0     0       otrocuadro
           ...
       }                                              2       0       0     0

24

Más contenido relacionado

La actualidad más candente

02 Bases Del Lenguaje Java
02   Bases Del Lenguaje Java02   Bases Del Lenguaje Java
02 Bases Del Lenguaje JavaNetwork Sens
 
Seccion Fundamentos SCJP
Seccion Fundamentos SCJPSeccion Fundamentos SCJP
Seccion Fundamentos SCJPjcherrera
 
Java clases dictadas
Java clases dictadasJava clases dictadas
Java clases dictadasGaloGabriel
 
Jyoc java-cap01 tipos de datos y entrada-salida
Jyoc java-cap01 tipos de datos y entrada-salidaJyoc java-cap01 tipos de datos y entrada-salida
Jyoc java-cap01 tipos de datos y entrada-salidaJyoc X
 
Programación 3: arrays (arreglos) y vectores
Programación 3: arrays (arreglos) y vectoresProgramación 3: arrays (arreglos) y vectores
Programación 3: arrays (arreglos) y vectoresAngel Vázquez Patiño
 
6 A Arrays
6 A Arrays6 A Arrays
6 A Arraysjcpp67
 
Java script estructuras_datos
Java script estructuras_datosJava script estructuras_datos
Java script estructuras_datosjcremiro
 
Jyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc X
 
6. tda arrayu generico
6. tda arrayu generico6. tda arrayu generico
6. tda arrayu genericoAna Ocaña
 
Clase6 collections
Clase6 collectionsClase6 collections
Clase6 collectionsjorg_marq
 
Principales codigos visual basic
Principales codigos visual basicPrincipales codigos visual basic
Principales codigos visual basicMarlon Gomez Solis
 
Informe Proyecto Final
Informe Proyecto FinalInforme Proyecto Final
Informe Proyecto FinalJorge Ramon
 
Tipos de variables que Java maneja
Tipos de variables que Java manejaTipos de variables que Java maneja
Tipos de variables que Java manejaLaura Robles
 

La actualidad más candente (19)

02 Bases Del Lenguaje Java
02   Bases Del Lenguaje Java02   Bases Del Lenguaje Java
02 Bases Del Lenguaje Java
 
Seccion Fundamentos SCJP
Seccion Fundamentos SCJPSeccion Fundamentos SCJP
Seccion Fundamentos SCJP
 
Java clases dictadas
Java clases dictadasJava clases dictadas
Java clases dictadas
 
Jyoc java-cap01 tipos de datos y entrada-salida
Jyoc java-cap01 tipos de datos y entrada-salidaJyoc java-cap01 tipos de datos y entrada-salida
Jyoc java-cap01 tipos de datos y entrada-salida
 
Programación 3: arrays (arreglos) y vectores
Programación 3: arrays (arreglos) y vectoresProgramación 3: arrays (arreglos) y vectores
Programación 3: arrays (arreglos) y vectores
 
6 A Arrays
6 A Arrays6 A Arrays
6 A Arrays
 
Java script estructuras_datos
Java script estructuras_datosJava script estructuras_datos
Java script estructuras_datos
 
Jyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc java-cap08 principios poo
Jyoc java-cap08 principios poo
 
6. tda arrayu generico
6. tda arrayu generico6. tda arrayu generico
6. tda arrayu generico
 
Clase6 collections
Clase6 collectionsClase6 collections
Clase6 collections
 
Java001
Java001Java001
Java001
 
Leccion 5 Java
Leccion 5 JavaLeccion 5 Java
Leccion 5 Java
 
Java Basico Platzi
Java Basico PlatziJava Basico Platzi
Java Basico Platzi
 
Principales codigos visual basic
Principales codigos visual basicPrincipales codigos visual basic
Principales codigos visual basic
 
JAVA
JAVAJAVA
JAVA
 
Informe Proyecto Final
Informe Proyecto FinalInforme Proyecto Final
Informe Proyecto Final
 
Tipos de variables que Java maneja
Tipos de variables que Java manejaTipos de variables que Java maneja
Tipos de variables que Java maneja
 
Ruby intro
Ruby introRuby intro
Ruby intro
 
Matrices en php
Matrices en phpMatrices en php
Matrices en php
 

Destacado (20)

Proposal ptk
Proposal ptkProposal ptk
Proposal ptk
 
PROYECTO 1: TELEVISION AND CINEMA. 6ºA
PROYECTO 1: TELEVISION AND CINEMA. 6ºAPROYECTO 1: TELEVISION AND CINEMA. 6ºA
PROYECTO 1: TELEVISION AND CINEMA. 6ºA
 
2010
20102010
2010
 
Bahasa Melayu Sekolah Rendah Tahap Satu Kata Nama Am
Bahasa Melayu Sekolah Rendah Tahap Satu Kata Nama AmBahasa Melayu Sekolah Rendah Tahap Satu Kata Nama Am
Bahasa Melayu Sekolah Rendah Tahap Satu Kata Nama Am
 
Ksi tugas
Ksi tugasKsi tugas
Ksi tugas
 
Happy Easter beatriz 6 b
Happy Easter beatriz 6 bHappy Easter beatriz 6 b
Happy Easter beatriz 6 b
 
12122014
1212201412122014
12122014
 
Kisah marmer
Kisah marmerKisah marmer
Kisah marmer
 
17122014
1712201417122014
17122014
 
Makalah tumbuhan lumut
Makalah tumbuhan lumutMakalah tumbuhan lumut
Makalah tumbuhan lumut
 
Cllassroom management
Cllassroom managementCllassroom management
Cllassroom management
 
Presentation2
Presentation2Presentation2
Presentation2
 
Lampiran
LampiranLampiran
Lampiran
 
kufur
kufurkufur
kufur
 
Digital Storytelling- Recipe
Digital Storytelling- RecipeDigital Storytelling- Recipe
Digital Storytelling- Recipe
 
Mike genovesi
Mike genovesiMike genovesi
Mike genovesi
 
Powerpoint
PowerpointPowerpoint
Powerpoint
 
4
44
4
 
Jaringan komputer
Jaringan komputerJaringan komputer
Jaringan komputer
 
Statistik Twitter @dahpunyae 2013
Statistik Twitter @dahpunyae 2013Statistik Twitter @dahpunyae 2013
Statistik Twitter @dahpunyae 2013
 

Similar a Arrays en C++: Introducción, declaración, acceso e inicialización

Similar a Arrays en C++: Introducción, declaración, acceso e inicialización (20)

Arrays 8
Arrays 8Arrays 8
Arrays 8
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Cuaderno digital
Cuaderno digitalCuaderno digital
Cuaderno digital
 
Arrays - programación 3
Arrays - programación 3Arrays - programación 3
Arrays - programación 3
 
Utp pti_s5_arreglos
 Utp pti_s5_arreglos Utp pti_s5_arreglos
Utp pti_s5_arreglos
 
Utp pti_s5_arreglos 2012-2
 Utp pti_s5_arreglos 2012-2 Utp pti_s5_arreglos 2012-2
Utp pti_s5_arreglos 2012-2
 
Tipos de datos en java
Tipos de datos en javaTipos de datos en java
Tipos de datos en java
 
Arreglos (unimensionles y matrices (bidimensionales)
Arreglos (unimensionles y matrices (bidimensionales)Arreglos (unimensionles y matrices (bidimensionales)
Arreglos (unimensionles y matrices (bidimensionales)
 
06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C
 
Algoritmica
AlgoritmicaAlgoritmica
Algoritmica
 
Utp lpi_s5_arreglos 2012-2
 Utp lpi_s5_arreglos 2012-2 Utp lpi_s5_arreglos 2012-2
Utp lpi_s5_arreglos 2012-2
 
Algoritmos y Estructura de datos_Semana5 (3).ppt
Algoritmos y Estructura de datos_Semana5 (3).pptAlgoritmos y Estructura de datos_Semana5 (3).ppt
Algoritmos y Estructura de datos_Semana5 (3).ppt
 
array
arrayarray
array
 
Fundamentos de java I
Fundamentos de java IFundamentos de java I
Fundamentos de java I
 
Introduccion base de datos
Introduccion base de datosIntroduccion base de datos
Introduccion base de datos
 
Modulo2a
Modulo2aModulo2a
Modulo2a
 
arrays
arraysarrays
arrays
 
PPT.pdf
PPT.pdfPPT.pdf
PPT.pdf
 
arreglos.pdf
arreglos.pdfarreglos.pdf
arreglos.pdf
 

Arrays en C++: Introducción, declaración, acceso e inicialización

  • 1. EL TIPO COMPUESTO BASICO: Los Arrays CONTENIDOS 1. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización. 2. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. 1 EL TIPO COMPUESTO BASICO: Los Arrays 1 Introducción al tipo de dato ARRAY 2
  • 2. EL TIPO COMPUESTO BASICO: Los Arrays Introducción Hasta ahora hemos visto los tipos de datos simples de C++, y sus características . • int ( Números enteros ) • float, double ( Números reales ) • bool ( Valores lógicos ) • char ( Caracteres y cualquier cantidad de 8 bits ) • void ( Nada. Sirve para indicar que una función no devuelve valores ) También se ha visto cómo declarar y utilizar constantes utilizando const y el tipo enumerado enum . Ahora vamos a introducir un tipo de dato definido por el programador: el tipo array 3 EL TIPO COMPUESTO BASICO: Los Arrays El tipo Array: Definición z Un Array es un conjunto finito de valores del mismo tipo. z Un Array es una estructura de datos que almacena bajo el mismo nombre (variable) a una colección de datos del mismo tipo. z Un Array es un conjunto de variables del mismo tipo que tienen el mismo nombre y se diferencian en el índice. Letras = ‘a’ ‘z’ ‘r’ ‘j’ • A cada dato almacenado se le denomina elemento del array o ítem. • Cada elemento del array está numerado, y a éste número se le denomina índice. 4
  • 3. EL TIPO COMPUESTO BASICO: Los Arrays El tipo Array: Características ♦ Los elementos del array se numeran consecutivamente comenzando con 0, 1, 2, … letras = ‘a’ ‘z’ ‘r’ ‘j’ índice 0 1 2 3 ♦ Estos números, los índices, permiten localizar cada elemento del array. letras[0] es el elemento que está en la posición 0, array de 4 letras[1] es el elemento que está en la posición 1, etc … elementos ♦ Los elementos almacenados en el array pueden ser de cualquier tipo: tipos simples como: int, char, bool, float ó tipos definidos por el programador como por ejemplo estructuras (hablaremos de ellas más tarde). 5 EL TIPO COMPUESTO BASICO: Los Arrays El tipo Array: Declaración de un array • Se declara de forma similar a cualquier otro tipo de datos, solo que hay que indicarle al compilador el número de elementos que forma el array: tamaño ó longitud del array. Sintaxis <tipo_de_dato> <nombre_de_variable> [numero_de_elementos]; Tipo de dato Nombre_de_variable [ Num_elementos ] ; Ejemplos: char letras[4]; // variable letras de tipo array de 4 elementos de tipo char int edades[10]; // variable edades de tipo array de 10 elementos de tipo entero. 6
  • 4. EL TIPO COMPUESTO BASICO: Los Arrays El tipo Array: Declaración de un array • El compilador reserva espacio en memoria en posiciones contiguas. char letras[4]; letras[2] letras[3] int edades[10]; letras[0] letras[1] El array letras ocupa 4 bytes de memoria. 1 2 3 4 ... ... ... Cuando declaramos el array edades lo que hacemos es reservar un espacio de memoria para 10 variables de tipo int. El array edades ocupa 20 bytes consecutivos de 1 2 ... memoria [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] (2 bytes por elemento). 7 EL TIPO COMPUESTO BASICO: Los Arrays El tipo Array: Declaración de un array • Si queremos saber el número de bytes que necesitamos para almacenar un array en memoria, podemos utilizar la función sizeof(). En nuestro caso, sizeof (edades) = 20. Cabecera stdio.h int edades[10]; 1 2 ... [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] 8
  • 5. EL TIPO COMPUESTO BASICO: Los Arrays El tipo Array: Acceso a los elementos de un array Para acceder a los elementos de un array hay que poner el nombre y el índice del elemento al que queremos acceder ó referenciar. … letras = ‘a’ ‘z’ ‘r’ ‘j’ int primera = 1, k = 3; 0 1 2 3 char letras[4]; … cout << letras[0]; //visualiza la letra ‘a’ Podemos visualizar el valor de los cout << letras[2]; //visualiza la letra ‘r’ elementos de un array … cin >> letras[0]; letras[2] = ‘R’; Modificar el valor de los elementos … de un array letras[0] = letras[primera+2]; cout << letras[k-2]; //visualiza la letra ‘z’ .. Acceder a los elementos utilizando fórmulas 9 EL TIPO COMPUESTO BASICO: Los Arrays El tipo Array: Acceso a los elementos de un array Si necesitamos acceder a todos los elementos, utilizaremos un bucle de tipo for: Sintaxis for ( int j = 0; j < num_elementos ; j++ ) procesar_elemento [j]; Variable de control j para recorrer cada uno de los elementos … char letras[4]; … for ( int j = 0 ; j < 4 ; j++ ) { Pasada j Salida por pantalla cout << “Introduzca el elemento : “ << j+1 ; 1 0 Introduzca el elemento: 1 cin >> letras[j]; 2 1 Introduzca el elemento: 2 cout << endl; 3 2 Introduzca el elemento: 3 } 4 3 Introduzca el elemento: 4 ... 10
  • 6. EL TIPO COMPUESTO BASICO: Los Arrays El tipo Array: Acceso a los elementos de un array C++ no comprueba que los índices del array estén dentro del rango permitido. Si escribimos cout << letras[4]; no tendremos error de compilación, pero el programa no funcionará correctamente. El código ASCII del letras[2] letras[0] letras[1] letras[3] carácter ‘+’ es 43 107 97 122 114 74 43 63 78 1 2 3 4 ... ... ... letras = ‘a’ ‘z’ ‘r’ ‘j’ 0 1 2 3 11 EL TIPO COMPUESTO BASICO: Los Arrays El tipo Array: Inicialización de un array Antes de empezar a utilizar una variable de tipo array hay que asignar valores a cada uno de sus elementos. Tenemos varias formas de inicializar un array: 1. Inicialización en la declaración: … Los valores se encierran entre char letras[4] = { ‘a’, ‘z’, ‘t’, ‘j’ }; llaves y se separan por comas. … int edades[] = { 10, 20, 30, 40, 50, 60 }; C++ permite omitir el tamaño del char saludo[] = { ‘h’, ‘o’, ‘l’, ‘a’ }; array cuando se inicializa. El compilador reserva memoria para char saludo[] = { “hola” }; un array de enteros de tamaño 6. ... Los array de caracteres se pueden inicializar de éstas dos formas. 12
  • 7. EL TIPO COMPUESTO BASICO: Los Arrays El tipo Array: Inicialización de un array 2. Inicialización elemento a elemento en el cuerpo del programa: letras[0] = ‘a’; letras[1] = ‘z’; Este método no es muy práctico letras[2] = ‘r’; cuando tenemos muchos elementos. letras[3] = ‘j’; 3. Inicialización mediante una sentencia FOR: int edades[ 6 ]; int temperatura[ 10 ]; int valor = 10; for (int i = 0; i<10; i++) for (int i = 0; i<6 ; i++ ) edades[i] = 0; { edades[i] = 10; valor = valor + 10 ; Temperatura = 0 0 0 0 0 0 0 0 0 0 } edades = 10 20 30 40 50 60 13 EL TIPO COMPUESTO BASICO: Los Arrays 2 ARRAYS multidimensionales 14
  • 8. EL TIPO COMPUESTO BASICO: Los Arrays Arrays multidimensionales: Definición Los arrays que hemos visto anteriormente se conocen como arrays unidimensionales y se caracterizan por tener un solo índice. También se conocen como listas de elementos y se corresponden con el concepto de vector. Los arrays multidimensionales son aquellos que tienen más de una dimensión y por tanto tienen más de un índice. Los más utilizados son los de dos dimensiones, conocidos con el nombre de tablas. Se corresponden con el concepto de matriz. C++ permite trabajar con arrays de de tantas dimensiones como requieran las aplicaciones ( 3, 4 ó más dimensiones). 15 EL TIPO COMPUESTO BASICO: Los Arrays Arrays bidimensionales: Definición • Un array de dos dimensiones se corresponde con una tabla con varias filas y varias columnas. 0 1 2 3 índice para las 0 1 2 3 4 columnas índice para 4 1 2 3 1 las filas 2 3 2 1 4 • Cada elemento almacenado en el array está identificado por dos índices, sus coordenadas, la fila y la columna en la que se encuentra dicho elemento. • Ambos índices se numeran consecutivamente comenzando con 0, 1, 2, … 16
  • 9. EL TIPO COMPUESTO BASICO: Los Arrays Arrays bidimensionales: Declaración • Se declara de forma similar al tipo de dato array de una dimensión, solo que hay que indicarle al compilador el tamaño de cada uno de los índices, es decir, el número de filas y el número de columnas. Sintaxis <tipo_de_dato> <nombre_de_variable> [num_filas] [num_columnas]; Tipo de Nombre_de [ Num_filas ] [ Num_columnas ] ; dato variable Ejemplos: char tablero[8][8]; // variable llamada tablero de tipo array de dos dimensiones (8 filas y 8 columnas). Alamacena 64 elementos de tipo char. int matriz[3][4]; // variable llamada matriz de tipo array de dos dimensiones (3 filas y 4 columnas). Almacena 12 elementos de tipo entero. 17 EL TIPO COMPUESTO BASICO: Los Arrays Arrays bidimensionales: Declaración • Al igual que en los arrays de una dimensión, el compilador reserva espacio en memoria en posiciones contiguas. Primero se almacenan los datos de la primera fila, luego los de la segunda, ... 0 1 2 3 El array matriz int matriz[3][4]; 1 2 3 4 ocupa 24 bytes 0 1 4 1 2 3 consecutivos de 2 3 2 1 4 memoria. Cuando declaramos el array matriz lo que hacemos es reservar un espacio de memoria para 12 variables de tipo int. 1 2 ... [0][0] [0][1] [0][2] [0][3] [1][0] ... …. Primera fila Segunda fila 18
  • 10. EL TIPO COMPUESTO BASICO: Los Arrays Arrays bidimensionales: Acceso a los elementos Se puede acceder a los elementos de un array bidimensional de forma similar a como lo hacíamos para arrays de una dimensión. Hay que poner el nombre y los índices (fila y columna) del elemento al que queremos acceder ó referenciar. int j = 0; char valor ; Podemos visualizar el valor de los int matriz[3][4]; elementos de un array char cuadro[3][3]; cout <<matriz[0][3]; … Modificar el valor de los elementos cin >> matriz[1][ j+1 ]; de un array cuadro[2][2] = ‘R’; … valor = cuadro[2][1]; ... Acceder a los elementos para extraer valores 19 EL TIPO COMPUESTO BASICO: Los Arrays Arrays bidimensionales: Acceso a los elementos Si necesitamos acceder a todos los elementos de un array bidimensional, utilizaremos un doble bucle for. Variable de control i para recorrer las filas for ( int i = 0; i < num_filas ; i++ ) for ( int j = 0 ; j < num_columnas ; j ++ ) Variable de control j para procesar_elemento [i][j]; recorrer las columnas Sintaxis int matriz[3][4]; … for ( int i = 0 ; i < 3 ; i++ ) for ( int j = 0 ; j < 4 ; j++ ) { cout << “El elemento “ << i+1 << j+1 << “es: ”; cout << matriz [i] [j] << endl; } ... 20
  • 11. EL TIPO COMPUESTO BASICO: Los Arrays Arrays bidimensionales: Inicialización Al igual que los arrays de una dimensión, tenemos varias formas de inicializar un array: Los valores se encierran entre llaves y se separan por comas. 1. Inicialización en la declaración: 0 1 2 3 … 0 1 2 3 4 int matriz[3][4] = { 1, 2, 3, 4, 4,1,2, 3, 3, 2,1,4 }; 1 4 1 2 3 2 3 2 1 4 int valores[2][3] = { {10, 20, 30}, {0,1,2} }; 0 1 2 char cuadro[3][3] = { 0 10 20 30 { ‘B’, ‘N’, ‘N’ }, 1 0 1 2 { ‘N’, N’, ‘N’ }, 0 1 2 { ‘B’, ‘B’, ‘B’ } 0 B N N }; 1 N N N ... 2 B B B 21 EL TIPO COMPUESTO BASICO: Los Arrays Arrays bidimensionales: Inicialización 2. Inicialización elemento a elemento en el cuerpo del programa: matriz[0][0] = 1; matriz[0][1] = 2; Poco práctico como ocurría en matriz[0][2] = 3; ... arrays de una dimensión. matriz[2][3] = 4; 3. Inicialización mediante una doble sentencia FOR: int valores[2][3] Variable de control i para int dato = 10; for (int i = 0; i<2 ; i++ ) recorrer las filas 0 1 2 for (int j = 0; j<3 ; j++ ) 0 10 20 30 { 1 40 50 60 valores[i][j] = dato; dato = dato + 10 ; Variable de control j para } recorrer las columnas 22
  • 12. EL TIPO COMPUESTO BASICO: Los Arrays Más sobre inicialización de Arrays: Si un array se declara globalmente, y no se inicializa en dicha declaración, el compilador se encarga de inicializarlo automáticamente con un valor por defecto. Si no declaran globalmente, pero se inicializan uno o más elementos pero no todos, el compilador inicializa automáticamente el resto de elementos con un valor por defecto. Si el array almacena Si el array almacena elementos de tipo elementos de tipo carácter: entero o real: El valor por defecto es el El valor por defecto es 0. carácter nulo ‘0’. 23 EL TIPO COMPUESTO BASICO: Los Arrays Más sobre inicialización de Arrays: Ejemplo: 0 1 2 3 0 1 2 #include <iostream.h> 0 0 0 0 0 ‘0’ ‘0’ ‘0’ 0 1 0 0 0 0 1 ‘0’ ‘0’ ‘0’ int matriz[3][4]; 2 0 0 0 0 2 ‘0’ ‘0’ ‘0’ char cuadro[3][3]; matriz cuadro void main() { ventas 3.2 0 0 0 0 1 2 3 float ventas[4] = {3.2}; int otrocuadro[3][3] = { 7, 6 }; 0 1 2 0 7 6 0 1 0 0 0 otrocuadro ... } 2 0 0 0 24