Vectores - Profesor Ezequiel Ruiz Garcia | (Email ... · PDF fileVectores: Ejemplo 2 Calcular la suma de los elementos de un vector Algoritmo entero función sumVector ( ) entero a[8]

Embed Size (px)

Citation preview

  • 27/05/05 Programacin Digital I 1

    Vectores

    Material Original: Prof. Flor NarcisoModificaciones: Prof. Andrs ArciaDepartamento de ComputacinEscuela de Ingeniera de SistemasFacultad de IngenieraUniversidad de Los Andes

  • Programacin Digital I 227/05/05

    Tipos de Datos

    Simples: Son las unidades mnimas para almacenar algn valor.Las ms conocidas son: enteros, reales, caracteres, apuntadores,lgicos.

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

    Se utilizan cuando se requiere el procesamiento de mltiplesdatos que tienen caractersticas comunes.

    Ejemplos: Un conjunto de nmeros enteros, un conjunto deestudiantes, un conjunto de temperaturas.

  • Programacin Digital I 327/05/05

    Arreglo

    DefinicinGeneralizacin del concepto de variable.

    Variable: Puede tener como mximo un valor. Cada variable esreferenciada por un nombre.Arreglo: Representa un conjunto de valores (caracteres,enteros, reales, etc.) donde todos comparten el mismo nombre.Cada valor es referenciado utilizando uno o mas subndices(nmero entero).

    Tipos de arreglos: Los arreglos se clasificansegn el nmero dimensiones que almacenan:- Vector (arreglos unidimensionales - 1D), un subndice- Matriz (arreglos bidimensionales - 2D), dos subndices- Multidimensional (tres - 3D- o mas dimensiones), 3 o massubndices

  • Programacin Digital I 427/05/05

    Vector (Arreglo Unidimensional)

    Generalizacin del concepto de variable.Variable: Almacenar cuatro nmeros enteros.

    int num1, num2, num3, num4;

    Vector: Almacenar cuatro nmeros enteros.

    num 23152

  • Programacin Digital I 527/05/05

    Vector (Arreglo Unidimensional)

    Grupo de localidades consecutivas de memoriarelacionadas por el hecho que tienen el mismo nombrey tipo. Esto implica que cada celda tenga exactamenteel mismo tamao.

    Cada localidad (o grupo de localidades) almacena unelemento del vector.Nombre del

    vector

    arreglo_notas

    141118121512

  • Programacin Digital I 627/05/05

    Vector (Arreglo Unidimensional)

    Cada elemento del vector es accedido mediante el nombredel vector y un subndice que representa la posicinnumrica (entero no negativo) de dicho elemento dentro delvector.

    arreglo_notas

    Nombre delvector

    0 1 2 3 4 5 6

    subndices

    1441118121512

  • Programacin Digital I 727/05/05

    Vector: Representacin Grfica

    deudas_mes

    Nombre delvector

    Vector de 12 elementos cuyo nombre es deudas_mes

    0 1 2 11

    subndices

    539292135043222210004302021333302221560021300450001203020200

  • Programacin Digital I 827/05/05

    Vector: Representacin Grfica

    Note que en general un vector de n elementos tiene indices queestan numerados (por pura convension) desde 0 hasta n-1.

    Dependiendo del lenguaje que utilicemos, los subindices vannumerados desde 0 o desde 1.

  • Programacin Digital I 927/05/05

    Declaracin de un Vector:Notacin Algortmica

    tipo_dato nombre_vector[nmero_elementos]

    Siendo nmero_elementos un valor entero constante mayor quecero (0)

    Ejemplos:entero A[12] Vector A de 12 nmeros enteroscarcter cdn[8] Vector cdn de 8 caracteresreal b[100] Vector b de 100 nmeros reales

  • Programacin Digital I 1027/05/05

    Declaracin de un Vector:Notacin en C

    tipo_dato nombre_vector[nmero_elementos];

    Ejemplos:

    int A[12]; // Vector A de 12 nmeros enteroschar cdn[8]; // Vector cdn de 8 caracteresfloat b[100]; // Vector b de 100 nmeros reales

    Tambin podemos tener declaraciones mltiples:int vector1[3], vector2[201];float x[43], y[56], z[87];char linea[80], texto[2000];

  • Programacin Digital I 1127/05/05

    Declaracin de un Vector:Ejemplos

    #define TAM 10#define MAXCAR 80#define NHORAS 24#define NFIL 2

    int v[TAM];char palabra[MAXCAR];double temp[NHORAS];int m[NFIL];

    TAM: 10MAXCAR: 24NHORAS: 24NFIL: 2Entero v[TAM]Caracter palabra[MAXCAR]Real temp[NHORAS]Entero m[NFIL]

    Notacion en CNotacion Algoritmica

  • Programacin Digital I 1227/05/05

    Acceso a los Elementos de unVector

    nombre_vector[subndice]

    El valor del subndice o posicin numrica de unelemento dentro del vector puede expresarse como:

    Constante entera o valor literal (por ejemplo 3)Variable entera (por ejemplo x)Expresin entera (por ejemplo x + y - 1). En cualquiera de loscasos, el valor del subndice debe ser un entero mayor o igual acero.

    El valor del subndice puede variar de 0 a n-1, donde nes el nmero de elementos del vector.

    En general, para tener acceso al i-simo elemento delvector se escribe nombre_vector[i-1].

  • Programacin Digital I 1327/05/05

    Acceso a los Elementos de unVector

    Primer elemento: altura_personas[0] == 1.39Segundo elemento: altura_personas[1] == 1.57Tercer elemento: altura_personas[2] == 1.56.Sexto y ultimo elemento: altura_personas[5] == 1.66

    543210

    1.661.892.021.561.571.39

    altura_personas

  • Programacin Digital I 1427/05/05

    Vector: Instrucciones Vlidas

    A[1] = 3;X = A[4];cin >> A[6];cout

  • Programacin Digital I 1527/05/05

    Inicializacin de un Vector:Ejemplo 1Inicializar con valores constantes

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

    #define N 100//Declaracin del vector y del subndiceint vector[N], i;

    for (i = 0; i < N; i++)vector[i] = 0; // Inicializacin de cada

    // elemento del vector en 0

    9976543210

    000000000

  • Programacin Digital I 1627/05/05

    Inicializacin de un Vector:Ejemplo 2Inicializar usando variables

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

    int v1[10], i;// Declaracin del vector y del subndice

    for (i = 0; i < 10; i++)v1[i] = i + 1; // Inicializacin de cada

    // elemento del vector

    9876543210

    10987654321

  • Programacin Digital I 1727/05/05

    Inicializacin de un Vector:Ejemplo 3Inicializar mediante lecturaInicializar los elementos de un vector de 30 elementos de tipocarcter con valores introducidos por el usuario

    char frase[30]; // Declaracin del vectorint indice; // Declaracin del subndicechar car;

    for (indice = 0; indice < 30; indice++){

    printf(Introduzca una frase\n);scanf(%c, car);frase[indice] = car;

    }

    9

    t

    10876543210

    aroc esarf

  • Programacin Digital I 1827/05/05

    Inicializacin de un Vector:Ejemplo 4

    // Leer una linea de un texto en minusculas y escribirla enmayusculas

    #include #include #define TAMANO 80

    int main() {char letrasMinusculas[TAMANO], letrasMayusculas[TAMANO];int cont;

    for (cont = 0; cont < TAMANO; cont++) {letrasMinusculas[cont] = getchar();letrasMayusculas[cont] = toupper(letrasMinusculas

    [cont]);}for (cont = 0; cont < TAMANO; cont++)

    putchar(letrasMayusculas[cont]);return 0;

    }

  • Programacin Digital I 1927/05/05

    Inicializacin de un Vector en laDeclaracinExisten varias formas de predefinir los valores quepuede contener un vector:

    int a[8] = {0};

    a[0] = a[1] = a[2] = a[3] = a[4] = a[5] = a[6] = a[7] =0

    float n[5] = {0.25, 0.50, 0.75, 1.00, 1.25};

    n[0] = 0.25 n[1] = 0.50 n[2] = 0.75n[3] = 1.00 n[4] = 1.25

    char cdn[8] = {S, I, , a, l, l, i, ,};

    cdn[0] = S cdn[1] = I cdn[2] = cdn[3] = a cdn[4] = l cdn[5] = lcdn[6] = I cdn[7] = ,

  • Programacin Digital I 2027/05/05

    Inicializacin de un Vector en laDeclaracinTodos los elementos del vector no tienen asignadovalores iniciales:

    int a[8] = {1, 2, 3};

    a[0] = 1 a[1] = 2 a[2] = 3 a[3] = 0a[4] = 0 a[5] = 0 a[6] = 0 a[7] = 0

    float n[5] = {0.25, 0.00, 0.30};

    n[0] = 0.25 n[1] = 0.00 n[2] = 0.30n[3] = 0.00 n[4] = 0.00

    char cadena[11]=Una Cadena;

  • Programacin Digital I 2127/05/05

    Inicializacin de un Vector en laDeclaracin: Ejemplo 1#include

    void EscribirVector( ){

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

    for (j = 0; j < 9; j++)printf(Elemento %i = %i \n,j,n[j]);

    }

  • Programacin Digital I 2227/05/05

    Vectores: Ejemplo 1

    Inicializar los elementos de un vector s con los nmerospares del 2 al 20

    void inicializarVectorPares() {int j;int s[10];

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

    }

  • Programacin Digital I 2327/05/05

    Vectores: Ejemplo 2

    Calcular la suma de los elementos de un vector

    Algoritmo

    entero funcin sumVector ( )

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

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

    total = total + a[i]fin-RP

    3. devolver total4. fin_funcin

  • Programacin Digital I 2427/05/05

    Vectores: Ejemplo 2

    Calcular la suma de los elementos de un vector

    Codificacin

    int sumVector ( ){

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

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

    return total;}

  • Programacin Digital I 2527/05/05

    Vectores: Ejemplo 3Calcular la media de n nmeros y despus calcular ladesviacin de cada nmero respecto a la media.

    #include #define NRO_ELEM 100

    void main () {int n, cont;float media, d, suma = 0;float numeros[NRO_ELEM];

    cout n; // Leer el total de numeros procesarfor (cont = 0; cont < n; cont++) { // Lectura

    cout numeros[cont];suma += numero[cont];// Sumar cada numero con los anteriores

    }

  • Programacin Digital I 2627/05/05

    Vectores: Ejemplo 3

    media = suma/n; // Calcular la mediacout

  • Programacin Digital I 2727/05/05

    Vectores: Eje