Professional Documents
Culture Documents
Internas
Vectores
www.inacap.cl
Estructuras de Datos Elementales
• Hasta ahora un dato, es sinónimo de una
variable, por esto si tenemos varios datos
relacionados necesitamos una variable para cada
uno.
Nombre= “Carlos”
“Carlos” “calle 1, 344, Santiago”
Dirección=“calle 1, 344, Santiago”
www.inacap.cl
Tipos de Estructuras
www.inacap.cl
Conceptos de Arreglo
• Arreglo: Es una estructura de datos constituida por un número fijo de
elementos, todos ellos del mismo tipo y ubicados en direcciones de memoria
físicamente contiguas.
www.inacap.cl
Conceptos de Arreglo
• Tamaño de una arreglo: Número máximo de elementos que lo
forman, siendo el tamaño mínimo 1 y el máximo n.
www.inacap.cl
Conceptos de Arreglo
• Dimensión de un arreglo: Corresponde al número de índices necesarios
para acceder a los elementos que lo forman.
www.inacap.cl
Arreglos Unidimensionales
• También se conocen como vectores o listas y son
estructuras cuyos elementos son todos del mismo
tipo y con las mismas características. Se referencian
con un nombre en común y sus elementos se ubican
en posiciones contiguas.
www.inacap.cl
Datos que se pueden obtener del arreglo:
Nombre del arreglo : Temp
Tipo de elementos : Numérico
Tamaño del arreglo :6
Elementos del arreglo :
En el elemento Temp[0] hay un 5
En el elemento Temp[1] hay un 100
En el elemento Temp[2] hay un 25
En el elemento Temp[3] hay un 34
En el elemento Temp[4] hay un 0
En el elemento Temp[5] hay un 3
Índices : 0, 1, 2, 3, 4, 5
Dimensión : unidimensional, ya que tiene un índice.
www.inacap.cl
El proceso de reservar un área de memoria se llama dimensionamiento:
Tipo_de_dato nombre_arreglo[ N ]
Donde:
Tipo_de_dato: Indica el tipo de dato que tendrán los elementos.
nombre_arreglo : Cumple la misma norma que los nombre de variables.
N : Número máximo de elementos que contendrá el arreglo.
Consideraciones importantes:
1. Los índices sólo pueden ser valores enteros.
2. Los índices en C comienzan en 0.
3. Al referenciar un elemento, si se sobrepasa el valor de índice se
produce un error.
nombre_arreglo[índice]
www.inacap.cl
• En lenguaje C, también es posible inicializar (asignarle
valores) un vector en el momento de declararlo. Al
realizar esto no es necesario indicar el tamaño. Su
sintaxis es:
www.inacap.cl
www.inacap.cl
Ejemplos con arreglos numéricos
www.inacap.cl
Ejemplos con arreglos numéricos
• Ejemplo 2: El siguiente programa permite crear y llenar un
vector con números enteros ingresados por el usuario, luego
muestra su contenido desde la última posición a la primera:
www.inacap.cl
Manipulación de Vectores
Recorrido de un arreglo:
www.inacap.cl
Manipulación de Vectores
Ejemplo 1:
• El siguiente trozo de programa permite recorrer un vector
y mostrar los elementos desde la posición 0 a la n-1,
considerando n como el número de elementos del arreglo:
for (x=0;x<n;x++)
printf(“Elemento de posición %d es %d”,x,v[x]);
www.inacap.cl
Manipulación de Vectores
Ejemplo 2:
• El siguiente trozo de programa permite recorrer un vector
desde la posición n-1 a la 0, considerando n como el
número de elementos del arreglo:
for (x=n-1;x>=0;x--)
printf(“el elemento de la posición %d es %d”,x,v[x]);
www.inacap.cl
Procesos típicos con Vectores
www.inacap.cl
Procesos típicos con Vectores
2. Dado un arreglo de 100 elementos numéricos enteros, generar el
código que imprima la suma de todos los elementos del arreglo.
Solución
#include <stdio.h>
main()
{
int i, A[100],suma=0;
/*ingreso de datos al vector*/
for (i=0;i<100;i++) scanf("%d",&A[i]);
/*suma de sus elementos*/
for (i=0;i<100;i++) suma+=A[i];
printf("la suma de sus elementos es: %d\n",suma);
}
www.inacap.cl
Procesos típicos con Vectores
3. Con un arreglo llamado “vector” lleno con 50 números enteros, generar
un código que busque el mayor y menor elemento del arreglo.
Solución
#include <stdio.h>
main()
{
int i, vector[50],min,max;
/*ingreso de datos al vector*/
for (i=0;i<50;i++) scanf("%d",&vector[i]);
/*encontrar el mayor y menor*/
min=vector[0];
max=vector[0];
for (i=0;i<50;i++) { if (vector[i]>max) max=vector[i];
if (vector[i]<min) min=vector[i];
}
printf("El elemento mayor es: %d\n",max);
printf("El elemento menor es: %d\n",min);
}
www.inacap.cl
Procesos típicos con Vectores
4. Dado dos arreglos llamados “vector1” y “vector2” cada uno con 100
elementos enteros, genere un tercer vector llamado “resultado” que
contenga la multiplicación de ambos arreglos.
Solución
#include <stdio.h>
main()
{
int i, vector1[10],vector2[100],resultado[100];
/*ingreso de datos a los vectores*/
for (i=0;i<10;i++) scanf("%d",&vector1[i]);
for (i=0;i<10;i++) scanf("%d",&vector2[i]);
/*llenar el vector resultado*/
for (i=0;i<10;i++) resultado[i]=vector1[i]*vector2[i];
}
www.inacap.cl
Procesos típicos con Vectores
5. Dado un arreglo de 100 elementos lleno con números enteros cualquiera,
hallar el más pequeño e indicar su posición.
Solución
#include <stdio.h>
main()
{
int i, n[100], indi=1;
/*ingreso de datos al vector*/
for (i=0;i<100;i++) scanf("%d",&n[i]);
/*buscar el menor valor y su posición*/
for (i=0;i<100;i++) if (n[i]<n[indi]) indi=i;
printf("la posición del mínimo es: %d\n",indi);
printf("su valor es : %d\n",n[indi]);
}
www.inacap.cl
Ejercicios
1. Dado un arreglo de 50 elementos enteros cualquiera,
generar otro arreglo que contenga los elementos que están
en las posiciones pares del primero.