top of page

Vectores

Concepto

Un array es un identificador que referencia un conjunto de datos del mismo tipo. Imagina un tipo de dato int; podremos crear un conjunto de datos de ese tipo y utilizar uno u otro con solo cambiar el índice que lo referencia. El índice será un valor entero y positivo. En 'C' los arrays comienzan por la posición 0.

Un vector es un array unidimensional, es decir, solo usa un índice para referenciar a cada uno de los elementos.

Su declaración será:                

 

tipo nombre [tamaño];

 

El tipo puede ser cualquiera de los ya conocidos y el tamaño indica el número de elementos del vector (se debe indicar entre corchetes [ ]

 

Ejemplo:

int num[100]; /*Arreglo de tipo entero compuesto de 100 posiciones*/

 

char nom[80]; /*Texto de 80 caracteres*/

 

float x[12]; /*arreglo de 12 elementos punto flotantes */

 

Los vectores son una forma de almacenar datos que permiten contener una serie de valores del mismo tipo, cada uno de los valores contenidos tiene una posición asociada que se usará para accederlos. Está posición o índice será siempre un número entero positivo.

 

Vector (array unidimiensional):

<tipo>  <identificador>  [<componentes>];

 

<tipo>------>Tipo de dato de los elementos del vector

<identificador>-------->Identificador de la variable.

<componentes>------->Número de elementos del vector.

 

En principio, se puede considerar que todas las matrices son de una dimensión, la dimensión principal, pero los elementos de dicha fila pueden ser a su vez matrices (un proceso que puede ser recursivo), lo que nos permite hablar de la existencia de matrices multidimensionales, aunque las más fáciles de imaginar son los de una, dos y tres dimensiones.

 

vector de 10 posiciones

 

 

 

EJEMPLOS:

 

  • Que rellene un vector con los 100 primeros números enteros y los muestre en pantalla en orden descendente.

 

#include <stdio.h>

#include <stdlib.h>

 

int main(void)

{

            int x,tabla[100];

           

            for (x=1;x<=100;x++)

            {

        tabla[x]=x;

    }

           

            for (x=100;x>=1;x--)

            {

        printf("%d\n",tabla[x]);

    }

           

    system("PAUSE");     

    return 0;

}

 

 

  •  Que lea 10 números por teclado, los almacene en un vector y muestre la suma, resta, multiplicación y división de todos.

 

#include <stdio.h>

#include <stdlib.h>

 

int main(void)

{

            int x,tabla[10];

            int sum,res,mul,div;

           

            for (x=0;x<10;x++)

            {

        printf("Introduzca número\n");

        scanf("%d",&tabla[x]);

    }

           

            sum=tabla[0];

    res=tabla[0];

    mul=tabla[0];

    div=tabla[0];

           

            for (x=1;x<10;x++)

            {

        sum=sum+tabla[x];

        res=res-tabla[x];

        mul=mul*tabla[x];

        div=div/tabla[x];

    }

           

            printf("Suma: %d\n",sum);

            printf("Resta: %d\n",res);

            printf("Multiplicación: %d\n",mul);

            printf("División: %d\n",div);

           

    system("PAUSE");     

    return 0;

}

 

 

  • Que rellene un vector de dos dimensiones con números pares, lo pinte y después que pida una posición X,Y y mostrar el número correspondiente.

 

#include <stdio.h>

#include <stdlib.h>

 

int main(int argc, char *argv[])

{

 

    int x,y,num=2, numeros[3][3];

   

    for (x=0;x<3;x++)

    {

        for (y=0;y<3;y++)

        {

            numeros[x][y]=num;

            num=num*2;

        }

    }

   

    printf("Introduzca coordenada x: ");

    scanf("%d",&x);

    printf("Introduzca coordenada y: ");

    scanf("%d",&y);

   

    printf("El número es: %d\n",numeros[x][y]);

   

    system("PAUSE");     

    return 0;

}

 

Video

 

 

 

 

 

 

Cuestionario

  1. Diseñe un programa que lea un vector de 10 posiciones, luego determine si la quinta posición es positiva, si la primera posición es negativa y si la ultima posición es cero.

  2. Diseñe un programa en C, que lea un vector de un máximo de 20 posiciones, y luego determine:

    -La suma de todos los valores

    -El mayor de los valores, así como la posición del mismo.

    se sabe que dichos datos son de tipo entero

  3. Diseñe un programa que rellene un array con los 20 primeros números enteros y los muestre en pantalla en orden ascendente.

  4. Diseñe un programa que lea 5 números por teclado, los copie a otro array multiplicados por 2 y los muestre todos ordenados usando un tercer array.

  5. Diseñe un programa que lea 5 números por teclado, los copie a otro array multiplicados por 2 y muestre el segundo array.

  6. Diseñe un programa que lea 10 números por teclado, los almacene en un array y muestre la media.

  7. Diseñe un programa que rellene un vector con los 5 primeros números pares y muestre su suma.

  8. Diseñe un programa que lea 10 números por teclado, 5 para un array y 5 para otro array distinto. Mostrar los 10 números en pantalla mediante un solo array.

  9. Diseñe un programa que lea 10 números por teclado, los almacene en un array y muestre la suma, resta, multiplicación y división de todos

  10. En una escuela se tiene el listado de 30 alumnos con sus respectivas notos, diseñe un programa que muestre las notas de los alumnos que tuvieron una nota mayor que el promedio.

  11. Diseñe un programa que dado un vector  de magnitud X, busque y muestre la posición en la que se encuentra un valor N, dentro del vector

  12. Se tiene dos vectores A y B, diseñe una solución, en la cual, en un tercer vector se guarde la multiplicación de los vectores A y B, y luego se impriman los tres vectores, uno a la par del otro, en forma vertical

  13. Diseñe un programa en C, en el cual guarde un vector de 100 posiciones, determine la media y la desviación estándar.

  14. Almacenar 50 números en un vector, elevar al cuadrado cada valor almacenado en el vector, almacenar el resultado en otro vector. Imprimir el vector original y el vector resultante

  15.  Diseñe un algoritmo y programa que lea dos vectores A y B de 20 elementos cada uno y sume el primer elemento de A con el ultimo elemento de B y luego el segundo elemento de A por el diecinueveavo elemento de B y así sucesivamente hasta llegar al veinteavo elemento de A por el primer elemento de B. El resultado de la suma almacenarlo en un vector C.

  16. Se desea conocer la suma de la diagonal mayor y la diagonal menor de una matriz de F*C, e indique la diferencia matemática entre ambos resultados.

  17. En una tiemda, hay 8 departamentos y se tiene el registro de las ventas del año pasado de cada departamento por mes. Se desea conocer: el departamento que tuvo mayores ventas a lo largo de año. El departamento que tuvo menores ventas en el año. El mes en que se vendió más en el departamento número 3 y los meses y el departamento que superó las ventas promedios así como el total de lo vendido a lo largo de año.

  18. Que rellene un vector de dos dimensiones con números pares, lo pinte y después que pida una posición X,Y y mostrar el número correspondiente.

  19. Que muestre los primeros 50 números de izquierda a derecha usando un vector de dos dimensiones, la última fila a mostrará la suma de sus respectivas columnas.

  20. Que pinte un tablero de ajedrez, los peones con la letra P, las torres con T, los caballos con C, los alfiles con A, el rey con R y la reina con M.

bottom of page