25
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Embed Size (px)

Citation preview

Page 1: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Arreglos: Vectores

Prof. Flor NarcisoDepartamento de Computación

Escuela de Ingeniería de SistemasFacultad de Ingeniería

Universidad de Los Andes

Page 2: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Tipos de Datos

• Simples: Almacenan un solo valor (enteros, reales, caracteres, apuntadores, lógicos).

• Compuestos o estructurados: Almacenan uno o mas valores (arreglos, registros, cadenas de caracteres).

Page 3: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Arreglo

• Generalización del concepto de variable

• Variable: Puede tener como máximo un valor.• Arreglo: Representa una colección de valores

Page 4: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Tipos de Arreglos

- Vectores (arreglos unidimensionales - 1D)- Matrices (arreglos bidimensionales - 2D)- Multidimensionales (tres - 3D- o mas

dimensiones)

Page 5: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Representación Gráfica

Elto1 Elto2 Elto3 Elto4 Elto5 Elto6 Elto7

A1

Nombre del vector

Vector de 7 elementos cuyo nombre es A1

Page 6: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Representación Gráfica

Elto1 Elto2 Elto3

Salario

Nombre del vector

Vector de 3 elementos cuyo nombre es Salario

Page 7: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Definición

• Grupo de localidades consecutivas de memoria relacionadas por el hecho que tienen el mismo nombre y tipo.

• Ejemplos: vector de enteros, vector de reales, vector de caracteres.

Page 8: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Notación Algorítmica

tipo_dato nombre_vector[número_elementos]

Ejemplos:

entero A[12]; // Vector A de 12 numeros enteros

caracter cdn[8]; // Vector cdn de 8 caracteres

entero b[100], x[27];

Page 9: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Declaración en C++

tipo_dato nombre_vector[número_elementos]

Ejemplos:

int A[12]; // Vector A de 12 numeros enteros

char cdn[8]; // Vector cdn de 8 caracteres

int b[100], x[27];

Page 10: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Acceso

• Cada elemento del vector es accedido mediante el nombre del vector y la posición numérica de dicho elemento dentro del vector (subíndice).

nombre_vector[posicion_elemento]

Page 11: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Acceso

2 -12 3 0 -9 0 1

A1[0] A1[1] A1[2] A1[3] A1[4] A1[5] A1[6]

A1

Primer elemento: A1[0] = 2

Segundo elemento: A1[1] = -12

Ultimo elemento: A1[6] = 1

Page 12: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Subíndice

• Posición numérica de dicho elemento dentro del vector. Su valor puede variar de 0 a n-1, donde n es el número de elementos del vector.

• Puede ser un valor entero (A1[3]) o una expresión entera (A1[x+y]).

• En general el i-ésimo elemento del vector se escribe nombre_vector[i-1].

Page 13: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Instrucciones Válidas

• A[1] = 3;• X = A[4];• cin >> A[6];• cout << A[10];• A[1] = A[b+2];• Y = Suma (A[i], b, c);• b = A[6] / 2;

Cada elemento de un vector puede usarse como una variable cualquiera.

Page 14: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Inicialización

Inicializar los elementos de un vector de 7 elementos enteros en cero.

Forma tradicional:

int vector[7], i; // Declaracion del vector

for (i = 0; i < 7; i++)

vector[i] = 0; // Inicializacion de cada

// elemento del vector en 0

Page 15: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Inicialización

0 0 0 0 0 0 0

vector[0] vector[1] vector[2] vector[3] vector[4] vector[5] vector[6]

Page 16: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Inicialización

Inicializar los elementos de un vector de 10 elementos enteros con valores del 1 al 10.

int v1[10], i; // Declaracion del vector……………….for (i = 0; i < 10; i++)

v1[i] = i + 1; // Inicializacion de cada

// elemento del vector

Page 17: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Inicialización

1 2 3 4 5 6 7 8 9 10

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

Page 18: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Inicialización Inicializar los elementos de un vector de 30 elementos de tipo carácter con valores introducidos por el usuario

char C[30], car; // Declaración del vectorint indice;………………...for (indice = 0; indice < 30; indice++) {

cout << “Introduzca un caracter” << endl;cin >> car;C[indice] = car; // Inicializacion

}

Page 19: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Inicialización

‘A’ ‘C’ ‘1’ ‘Z’ ‘*’ ‘D’ …… …… ‘0’

C[0] C[1] C[2] C[3] C[4] C[5] C[29]

Page 20: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Inicialización en C++

int a[10] = {0}; // inicializa todos los elementos// del vector a en cero

int n[10] = {32, 27, 64, 18, 95, 14, 90, 70, 60, 37};

char cdn[8] = {‘S’, ‘I’, ‘ ‘, ‘a’, ‘l’, ‘l’, ‘I’, ‘,’}

Page 21: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Ejemplo

#include <iostream.h>

void EscribirVector( ) {

int n[9] = {32, 27, 64, 18, 95, 14, 90, 70, 60}, j;

for (j = 0; j < 9; j++) cout << “Elemento” << j+1 << “=“ << n[j]

<< endl;}

Page 22: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Ejemplo

Inicializar los elementos de un vector s con los números pares del 2 al 20

void InicializarPar(int s[], int numEltos) {int j;

for (j = 0; j < numEltos; j++)s[j] = 2 + 2 * j;

}

Nota: El paso de un vector como parámetro SIEMPRE es por referencia.

vector

Número de elementos del vector

Page 23: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Ejemplo

Calcular la suma de los elementos de un vector

entero función sumVector ( )

entero a[8] = {1, 3, 5, 4, 7, 2, 99, 16}, i, total = 0

0. Inicio1. Repita para (i = 0; i < 8; i = i + 1)

total = total + a[i] fin-RP

2. devolver total3. fin_función

Page 24: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Vectores: Ejemplo

int sumVector ( ){ int a[8] = {1, 3, 5, 4, 7, 2, 99, 16}, i, total = 0;

for (i = 0; i < 8; i++)total = total + a[i];

return total;}

Page 25: Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Ejercicio

• Leer una lista de n notas (del 1 al 20) contando la frecuencia de cada nota.