Clase VIII - (08-08-2020)

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 20

Introducción a la computación

Clase 8
Arreglos en C++

Prof. Marcos Alania


[email protected]

Lima, 8 Agosto, 2020


Tipos estructurados

Colecciones o tipos aglomerados

Agrupación de datos (elementos):


 Todos del mismo tipo: arreglo o tabla
 De tipos distintos: estructura, registro o tupla

Arreglos (tablas)
 Elementos organizados por posición: 0, 1, 2, 3, ...
 Acceso por índice: 0, 1, 2, 3, …
 Una o varias dimensiones

Estructuras (tuplas, registros)


 Elementos (campos) sin orden establecido
 Acceso por nombre

2
¿Qué es un arreglo?

Un arreglo es una colección ordenada de variables o datos


del mismo tipo. Las variables que pertenecen a un arreglo se
conocen por el nombre de elementos que poseen las
siguientes características:

 se identifica por un único nombre de variable (int,


float, string, bool, char)
 sus elementos se almacenan en posiciones contiguas de
memoria.
 Se puede acceder a cada uno de sus elementos en forma
aleatoria

3
Sintaxis de un arreglo unidimensional

<tipo> Nombre_variable[longitud]
Esto significa: que Nombre_variable es un arreglo de
longitud elementos del tipo <tipo>. Cabe destacar que
longitud debe ser un número entero constante mayor que
cero.
Ejemplos
string vocales[5]
vocales es un arreglo de 5 elementos del tipo string.

int Num_primos[8]
Num_primos es un arreglo de 8 elementos del tipo int.

4
Asignación de un arreglo unidimensional

int Num_primos[8] = {2, 3, 5, 7, 11, 13, 17, 19};

2 3 5 7 11 13 17 19

Índices (i) 0 1 2 3 4 5 6 7

Acceso Aleatorio
Num_primos[4] = 11
Num_primos[0] = 2
Num_primos[5] = 13
Num_primos[7] = 19

5
Asignación de un arreglo unidimensional

Nombre_vector[índice]= expresión del tipo <int>

Esta instrucción asigna el valor asociado de la expresión a la


posición índice del arreglo Nombre_vector. El índice debe ser
una expresión del tipo entero en el rango [0, longitud-1]. Cabe
destacar que C++ no chequea que el valor de la expresión sea
menor a longitud, simplemente asigna el valor a esa posición de
memoria como si formara parte del arreglo, pisando, de esta
manera, otros datos que no forman parte del mismo, con lo que
finalmente el programa no funcionará correctamente.

6
Ejemplo de un arreglo unidimensional C++

7
Ejemplo de un arreglo unidimensional C++
Impresión en pantalla

 Que pasa si la línea 17 la cambiamos por


for (int indice = 0; indice < 10; indice++) {

8
Ejemplo de un arreglo unidimensional C++
 Que pasa si no cambiamos la línea 17, sino, cambiamos la longitud del vector que sea
mayor a 10

El uso de vectores dinámicos requiere realizar una apropiada gestión de memoria


dinámica. Un uso incorrecto de los vectores dinámicos, o mejor dicho, una mala gestión
de la memoria dinámica, puede conducir a una fuga de memoria. Al utilizar vectores
dinámicos siempre habrá que liberar la memoria utilizada cuando ésta ya no se vaya a
seguir utilizando.

9
Arreglos en C++
Declaración de un arreglo bidimensional (matriz)
<tipo> <identificador> [<filas>][<columnas>];
 Acceso
<identificador>[<índice1>][<índice2>]

 Inicialización
int matriz[3][4] = {{4,1,0,2},
{-1,2,4,3},
{0,-1,3,1}};

Fila 0

Fila 1

Fila 2

En memoria

Columna 0 Columna 1 Columna 2 Columna 3

10
Arreglos en C++

Declaración de un arreglo multidimensional

<tipo> <identificador> [<L1>][<L2>][<L3>]…[<Ln>];

 Acceso

<identificador>[<índ_1>][<índ_2>]…[<índ_n>]

 Inicialización
Va ha depender del valor que toma « n »

11
Arreglos en C++

Declaración de un arreglo bidimensional (matriz)

Código para el llenado de la matriz

12
Arreglos en C++

Declaración de un arreglo bidimensional (matriz)

13
Arreglos en C++

Código para visualizar la matriz ingresada

14
Arreglos en C++

15
Arreglos en C++

16
Arreglos en C++
Ejemplo de matriz 3x3

17
Arreglos en C++

Código para visualizar la matriz ingresada

18
Arreglos en C++

19
Arreglos en C++

20

También podría gustarte