SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M06 MICROCONTROLADORES I
Laboratorio: D-19
Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS
6.1. Vectores
Objetivos
1. Entender el funcionamiento del vector.
Los vectores, también llamados tablas unidimensionales, son estructuras de datos
caracterizadas por:
Una colección de datos del mismo tipo.
Referenciados mediante un mismo nombre.
Almacenados en posiciones de memoria físicamente contiguas, de forma que, la
dirección de memoria más baja corresponde a la del primer elemento, y la dirección
de memoria más alta corresponde a la del último elemento.
El formato general para la declaración de una variable de tipo vector es el siguiente:
tipo_de_datos nombre tabla [tamaño];
donde:
tipo_de_datos indica el tipo de los datos almacenados por el vector. Recordemos
que todos los elementos del vector son forzosamente del mismo tipo. Debe aparecer
necesariamente en la declaración, puesto que de ella depende el espacio de memoria
que se reservará para almacenar el vector.
nombre_tabla es un identificador que usaremos para referiremos tanto al vector
como un todo, como a cada uno de sus elementos.
tamaño es una expresión entera constante que indica el número de elementos que
contendrá el vector. El espacio ocupado por un vector en memoria se obtiene como
el producto del número de elementos que lo componen y el tamaño de cada uno de
éstos.
6.1.1. Consulta
El acceso a un elemento de un vector se realiza mediante el nombre de éste y un
índice entre corchetes ([ ]). El índice representa la posición relativa que ocupa dicho
elemento dentro del vector y se especifica mediante una expresión entera (normalmente
una constante o una variable).
Pedro Ramírez <pedroramirez22@gmail.com> 1
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M06 MICROCONTROLADORES I
Laboratorio: D-19
Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS
Formalmente:
nombre_vector[índice];
7.1. Vectores 50
del vector
Último elementoPrimer elemento
del vector
10 2 N-13
. . .
Figura 7.1: Representaci´on gr´afica de un vector de N elementos
nombre tabla es un identificador que usaremos para referiremos tanto al vector como un
todo, como a cada uno de sus elementos.
tama˜no es una expresi´on entera constante que indica el n´umero de elementos que contendr´a el
vector. El espacio ocupado por un vector en memoria se obtiene como el producto del n´umero de
elementos que lo componen y el tama˜no de cada uno de ´estos.
7.1.1 Consulta
El acceso a un elemento de un vector se realiza mediante el nombre de ´este y un ´ındice entre corche-
tes ([ ]). El ´ındice representa la posici´on relativa que ocupa dicho elemento dentro del vector y se
especifica mediante una expresi´on entera (normalmente una constante o una variable). Formalmente:
nombre vector[´ındice];
A continuaci´on se muestran algunas formas v´alidas de acceso a los elementos de un vector:
int contador[10];
int i, j, x;
. . .
x = contador[1];
x = contador[i];
x = contador[i * 2 + j];
. . .
Como muestra la figura 7.1, el primer elemento de un vector en C se sit´ua en la posici´on 0, mientras
que el ´ultimo lo hace en la posici´on N ; 1 (N indica el n´umero de elementos del vector). Por esta
raz´on, el ´ındice para acceder a los elementos del vector debe permanecer entre estos dos valores. Es
responsabilidad del programador garantizar este hecho, para no acceder a posiciones de memoria fuera
del vector, lo cual producir´ıa errores imprevisibles en el programa.
7.1.2 Asignaci´on
La asignaci´on de valores a los elementos de un vector se realiza de forma similar a como se consultan.
Ve´amoslo en un ejemplo:
Figura 6.1: Representación gráfica de un vector de N elementos
A continuación se muestran algunas formas válidas de acceso a los elementos de un
vector:
int contador[10];
int i, j, x;
...
x = contador[1];
x = contador[i];
x = contador[i * 2 + j];
...
Como muestra la Figura 6.1, el primer elemento de un vector en C se sitúa en la
posición 0, mientras que el último lo hace en la posición N − 1 (N indica el número de
elementos del vector). Por esta razón, el índice para acceder a los elementos del vector
debe permanecer entre estos dos valores. Es responsabilidad del programador garantizar
este hecho, para no acceder a posiciones de memoria fuera del vector, lo cual produciría
errores imprevisibles en el programa.
6.1.2. Asignación
La asignación de valores a los elementos de un vector se realiza de forma similar a
como se consultan. Veámoslo en un ejemplo:
int contador[3];
...
contador[0] = 24;
contador[1] = 12;
contador[2] = 6;
En muchas ocasiones, antes de usar un vector (una tabla en general) por primera vez,
es necesario dar a sus elementos un valor inicial. La manera más habitual de inicializar un
Pedro Ramírez <pedroramirez22@gmail.com> 2
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M06 MICROCONTROLADORES I
Laboratorio: D-19
Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS
vector en tiempo de ejecución consiste en recorrer secuencialmente todos sus elementos y
darles el valor inicial que les corresponda. Veámoslo en el siguiente ejemplo, donde todos
los elementos de un vector de números enteros toman el valor 0:
#define TAM 100
void main()
{
int vector[TAM], i;
for (i=0; i<TAM; i++)
vector[i] = 0;
}
Nótese que el bucle recorre los elementos del vector empezando por el elemento 0(i =
0) y hasta el elemento TAM − 1 (condición i < TAM).
Existe también un mecanismo que permite asignar un valor a todos los elementos de
un tabla con una sola sentencia. Concretamente en la propia declaración de la tabla.
La forma general de inicializar una tabla de cualquier número de dimensiones es la
siguiente:
tipo_de_datos nombre tabla [N] = lista valores;
La lista de valores no deberá contener nunca más valores de los que puedan almace-
narse en la tabla. Veamos algunos ejemplos:
int contador[3] = {24, 12, 6}; /* Correcto */
char vocales[5] = {’a’, ’e’, ’i’, ’o’, ’u’}; /* Correcto */
int v[4] = {2, 6, 8, 9, 10, 38}; /* Incorrecto */
Finalmente, cabe destacar que no está permitido en ningún caso comparar dos vecto-
res (en general dos tablas de cualquier número de dimensiones) utilizando los operadores
relacionales. Tampoco está permitida la copia de toda una tabla en otra con una simple
asignación. Si se desea comparar o copiar toda la información almacenada en dos tablas,
deberá hacerse elemento a elemento.
Pedro Ramírez <pedroramirez22@gmail.com> 3
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M06 MICROCONTROLADORES I
Laboratorio: D-19
Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS
6.1.3. Ejemplos
A continuación se muestra un programa que cuenta el número de apariciones de los
números 0, 1, 2 y 3 en una secuencia de enteros acabada en −1.
#include <stdio.h>
void main ()
{
int num, c0=0, c1=0, c2=0, c3=0;
scanf("%d", &num);
while (num != -1)
{
if(num == 0) c0++;
if(num == 1) c1++;
if(num == 2) c2++;
if(num == 3) c3++;
scanf( "%d", &num );
}
printf("Contadores:%d, %d, %d, %d n", c0, c1, c2, c3);
}
¿Qué ocurriría si tuviésemos que contar las apariciones de los cien primeros números
enteros? ¿Deberíamos declarar cien contadores y escribir cien construcciones if para
cada caso? La respuesta, como era de esperar, se halla en el uso de vectores. Veámoslo
en el siguiente programa:
#include <stdio.h>
#define MAX 100
void main ()
{
int i, num, cont[MAX];
for(i=0; i<MAX; i++)
cont[i] = 0;
scanf("%d", &num);
while (num != -1)
{
if((num >= 0) && (num <= MAX))
cont[num]++;
scanf("%d", &num);
}
for (i= 0; i< MAX; i++)
printf("Contador[%d] = %dn", i, cont[i]);
}
Pedro Ramírez <pedroramirez22@gmail.com> 4
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M06 MICROCONTROLADORES I
Laboratorio: D-19
Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS
6.1.4. Ejercicios
1. ¿Dónde está el error en el siguiente programa?
void main()
{
int vector[10];
int x = 1;
for(x=1; x<=10; x++)
vector[x] = 23;
}
2. Escribir un programa que lea del teclado un vector de 10 números enteros, lo invierta
y finalmente lo muestre de nuevo.
Ultima Actualización 16 de marzo de 2017
Pedro Ramírez <pedroramirez22@gmail.com> 5

Mais conteúdo relacionado

Mais procurados

Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Diego Maxdj Chicaiza
 
Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++tacubomx
 
Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimensionyperalta
 
Arreglos en pseudocodigo 01
Arreglos en pseudocodigo 01Arreglos en pseudocodigo 01
Arreglos en pseudocodigo 01Emerson Garay
 
Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programaciondiego MC
 
Referencias MATLAB
Referencias MATLABReferencias MATLAB
Referencias MATLABOmar Sanchez
 
Vectores Matrices I
Vectores Matrices IVectores Matrices I
Vectores Matrices Igonmrod
 
Tema funciones 2011 2 parte 2
Tema  funciones 2011 2 parte 2Tema  funciones 2011 2 parte 2
Tema funciones 2011 2 parte 2MCMurray
 
Tema funciones 2011 parte 1
Tema  funciones 2011 parte 1Tema  funciones 2011 parte 1
Tema funciones 2011 parte 1MCMurray
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Gustavo Macias
 
Matlab presentacion enero2012
Matlab presentacion enero2012Matlab presentacion enero2012
Matlab presentacion enero2012gerardoarbito
 
Arreglos programacion
Arreglos programacionArreglos programacion
Arreglos programacionashildir
 

Mais procurados (20)

12 Arreglos
12 Arreglos12 Arreglos
12 Arreglos
 
Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++
 
Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimension
 
Arreglos C#
Arreglos C#Arreglos C#
Arreglos C#
 
Tipo de Arreglos
Tipo de ArreglosTipo de Arreglos
Tipo de Arreglos
 
Arreglos C++
Arreglos C++Arreglos C++
Arreglos C++
 
Arreglos en pseudocodigo 01
Arreglos en pseudocodigo 01Arreglos en pseudocodigo 01
Arreglos en pseudocodigo 01
 
Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programacion
 
arreglos y matrices
arreglos  y matricesarreglos  y matrices
arreglos y matrices
 
Referencias MATLAB
Referencias MATLABReferencias MATLAB
Referencias MATLAB
 
Vectores Matrices I
Vectores Matrices IVectores Matrices I
Vectores Matrices I
 
Tema funciones 2011 2 parte 2
Tema  funciones 2011 2 parte 2Tema  funciones 2011 2 parte 2
Tema funciones 2011 2 parte 2
 
Tema funciones 2011 parte 1
Tema  funciones 2011 parte 1Tema  funciones 2011 parte 1
Tema funciones 2011 parte 1
 
Vectores y Matrices
Vectores y MatricesVectores y Matrices
Vectores y Matrices
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402
 
Matlab presentacion enero2012
Matlab presentacion enero2012Matlab presentacion enero2012
Matlab presentacion enero2012
 
Arreglos programacion
Arreglos programacionArreglos programacion
Arreglos programacion
 

Semelhante a 6.1 vectores

Semelhante a 6.1 vectores (20)

Transparencias8
Transparencias8Transparencias8
Transparencias8
 
Practica 1 Introduccion Al R
Practica 1 Introduccion Al RPractica 1 Introduccion Al R
Practica 1 Introduccion Al R
 
Arreglos
ArreglosArreglos
Arreglos
 
Areglos y registros
Areglos y registrosAreglos y registros
Areglos y registros
 
Documento de apoyo_vectores
Documento de apoyo_vectoresDocumento de apoyo_vectores
Documento de apoyo_vectores
 
Programacion fantasticos
Programacion  fantasticosProgramacion  fantasticos
Programacion fantasticos
 
Guia 2 vectores y matrices programacion 11
Guia 2 vectores y matrices programacion 11Guia 2 vectores y matrices programacion 11
Guia 2 vectores y matrices programacion 11
 
Intro Java 3
Intro Java 3Intro Java 3
Intro Java 3
 
Intro Java 3
Intro Java 3Intro Java 3
Intro Java 3
 
Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos
 
Los 5 fantasticos
Los 5 fantasticosLos 5 fantasticos
Los 5 fantasticos
 
Compu
CompuCompu
Compu
 
Estructura de Datos: Arreglos
Estructura de Datos: Arreglos Estructura de Datos: Arreglos
Estructura de Datos: Arreglos
 
11 arreglos-multidimensionales
11 arreglos-multidimensionales11 arreglos-multidimensionales
11 arreglos-multidimensionales
 
Tema 5 - Estructuras de datos.pdf
Tema 5 - Estructuras de datos.pdfTema 5 - Estructuras de datos.pdf
Tema 5 - Estructuras de datos.pdf
 
11 arreglos-multidimensionales
11 arreglos-multidimensionales11 arreglos-multidimensionales
11 arreglos-multidimensionales
 
11 arreglos-multidimensionales
11 arreglos-multidimensionales11 arreglos-multidimensionales
11 arreglos-multidimensionales
 
Guia8 programacion
Guia8 programacionGuia8 programacion
Guia8 programacion
 
Bryan gordillo ensayo_arreglos
Bryan gordillo ensayo_arreglosBryan gordillo ensayo_arreglos
Bryan gordillo ensayo_arreglos
 
Matlab introducción
Matlab   introducciónMatlab   introducción
Matlab introducción
 

Mais de SNPP

RR00X_RESUMEN.pdf
RR00X_RESUMEN.pdfRR00X_RESUMEN.pdf
RR00X_RESUMEN.pdfSNPP
 
RR_TAYI.pdf
RR_TAYI.pdfRR_TAYI.pdf
RR_TAYI.pdfSNPP
 
1. panel de le ds
1. panel de le ds1. panel de le ds
1. panel de le dsSNPP
 
7. incubadora de huevos
7. incubadora de huevos7. incubadora de huevos
7. incubadora de huevosSNPP
 
6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo real6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo realSNPP
 
5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feeder5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feederSNPP
 
3. radar medidor de velocidad
3. radar medidor de velocidad3. radar medidor de velocidad
3. radar medidor de velocidadSNPP
 
2. soft starter monofasico
2. soft starter monofasico2. soft starter monofasico
2. soft starter monofasicoSNPP
 
Operadores y expresiones
Operadores y expresionesOperadores y expresiones
Operadores y expresionesSNPP
 
6.2 cadenas de caracteres
6.2 cadenas de caracteres6.2 cadenas de caracteres
6.2 cadenas de caracteresSNPP
 
5.5 instruccion for
5.5 instruccion for5.5 instruccion for
5.5 instruccion forSNPP
 
5.4 instruccion do-while
5.4 instruccion do-while5.4 instruccion do-while
5.4 instruccion do-whileSNPP
 
5.3 instruccion while
5.3 instruccion while5.3 instruccion while
5.3 instruccion whileSNPP
 
5.2 instruccion switch
5.2  instruccion switch5.2  instruccion switch
5.2 instruccion switchSNPP
 
5.1 instruccion if-else
5.1 instruccion if-else5.1 instruccion if-else
5.1 instruccion if-elseSNPP
 
4. entrada y salida de datos
4. entrada y salida de datos4. entrada y salida de datos
4. entrada y salida de datosSNPP
 
3.6 funciones de biblioteca
3.6 funciones de biblioteca3.6 funciones de biblioteca
3.6 funciones de bibliotecaSNPP
 
3.5 operador condicional
3.5 operador condicional3.5 operador condicional
3.5 operador condicionalSNPP
 
2.10 entrada y salida
2.10 entrada y salida2.10 entrada y salida
2.10 entrada y salidaSNPP
 
2.9 variables
2.9 variables2.9 variables
2.9 variablesSNPP
 

Mais de SNPP (20)

RR00X_RESUMEN.pdf
RR00X_RESUMEN.pdfRR00X_RESUMEN.pdf
RR00X_RESUMEN.pdf
 
RR_TAYI.pdf
RR_TAYI.pdfRR_TAYI.pdf
RR_TAYI.pdf
 
1. panel de le ds
1. panel de le ds1. panel de le ds
1. panel de le ds
 
7. incubadora de huevos
7. incubadora de huevos7. incubadora de huevos
7. incubadora de huevos
 
6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo real6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo real
 
5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feeder5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feeder
 
3. radar medidor de velocidad
3. radar medidor de velocidad3. radar medidor de velocidad
3. radar medidor de velocidad
 
2. soft starter monofasico
2. soft starter monofasico2. soft starter monofasico
2. soft starter monofasico
 
Operadores y expresiones
Operadores y expresionesOperadores y expresiones
Operadores y expresiones
 
6.2 cadenas de caracteres
6.2 cadenas de caracteres6.2 cadenas de caracteres
6.2 cadenas de caracteres
 
5.5 instruccion for
5.5 instruccion for5.5 instruccion for
5.5 instruccion for
 
5.4 instruccion do-while
5.4 instruccion do-while5.4 instruccion do-while
5.4 instruccion do-while
 
5.3 instruccion while
5.3 instruccion while5.3 instruccion while
5.3 instruccion while
 
5.2 instruccion switch
5.2  instruccion switch5.2  instruccion switch
5.2 instruccion switch
 
5.1 instruccion if-else
5.1 instruccion if-else5.1 instruccion if-else
5.1 instruccion if-else
 
4. entrada y salida de datos
4. entrada y salida de datos4. entrada y salida de datos
4. entrada y salida de datos
 
3.6 funciones de biblioteca
3.6 funciones de biblioteca3.6 funciones de biblioteca
3.6 funciones de biblioteca
 
3.5 operador condicional
3.5 operador condicional3.5 operador condicional
3.5 operador condicional
 
2.10 entrada y salida
2.10 entrada y salida2.10 entrada y salida
2.10 entrada y salida
 
2.9 variables
2.9 variables2.9 variables
2.9 variables
 

Último

ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOeldermishti
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cerealescarlosjuliogermanari1
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfwduranteg
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEduardoBriones22
 
Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5juanjoelaytegonzales2
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx170766
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)Ricardo705519
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCarlosGabriel96
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxjhorbycoralsanchez
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processbarom
 
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOwillanpedrazaperez
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptNombre Apellidos
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALEdwinC23
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfELIZABETHCRUZVALENCI
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologicaJUDITHYEMELINHUARIPA
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxwilliam801689
 
Suelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoSuelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoluishumbertoalvarezv1
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGUROalejandrocrisostomo2
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...GuillermoRodriguez239462
 

Último (20)

ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
Suelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoSuelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramiento
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 

6.1 vectores

  • 1. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M06 MICROCONTROLADORES I Laboratorio: D-19 Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS 6.1. Vectores Objetivos 1. Entender el funcionamiento del vector. Los vectores, también llamados tablas unidimensionales, son estructuras de datos caracterizadas por: Una colección de datos del mismo tipo. Referenciados mediante un mismo nombre. Almacenados en posiciones de memoria físicamente contiguas, de forma que, la dirección de memoria más baja corresponde a la del primer elemento, y la dirección de memoria más alta corresponde a la del último elemento. El formato general para la declaración de una variable de tipo vector es el siguiente: tipo_de_datos nombre tabla [tamaño]; donde: tipo_de_datos indica el tipo de los datos almacenados por el vector. Recordemos que todos los elementos del vector son forzosamente del mismo tipo. Debe aparecer necesariamente en la declaración, puesto que de ella depende el espacio de memoria que se reservará para almacenar el vector. nombre_tabla es un identificador que usaremos para referiremos tanto al vector como un todo, como a cada uno de sus elementos. tamaño es una expresión entera constante que indica el número de elementos que contendrá el vector. El espacio ocupado por un vector en memoria se obtiene como el producto del número de elementos que lo componen y el tamaño de cada uno de éstos. 6.1.1. Consulta El acceso a un elemento de un vector se realiza mediante el nombre de éste y un índice entre corchetes ([ ]). El índice representa la posición relativa que ocupa dicho elemento dentro del vector y se especifica mediante una expresión entera (normalmente una constante o una variable). Pedro Ramírez <pedroramirez22@gmail.com> 1
  • 2. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M06 MICROCONTROLADORES I Laboratorio: D-19 Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS Formalmente: nombre_vector[índice]; 7.1. Vectores 50 del vector Último elementoPrimer elemento del vector 10 2 N-13 . . . Figura 7.1: Representaci´on gr´afica de un vector de N elementos nombre tabla es un identificador que usaremos para referiremos tanto al vector como un todo, como a cada uno de sus elementos. tama˜no es una expresi´on entera constante que indica el n´umero de elementos que contendr´a el vector. El espacio ocupado por un vector en memoria se obtiene como el producto del n´umero de elementos que lo componen y el tama˜no de cada uno de ´estos. 7.1.1 Consulta El acceso a un elemento de un vector se realiza mediante el nombre de ´este y un ´ındice entre corche- tes ([ ]). El ´ındice representa la posici´on relativa que ocupa dicho elemento dentro del vector y se especifica mediante una expresi´on entera (normalmente una constante o una variable). Formalmente: nombre vector[´ındice]; A continuaci´on se muestran algunas formas v´alidas de acceso a los elementos de un vector: int contador[10]; int i, j, x; . . . x = contador[1]; x = contador[i]; x = contador[i * 2 + j]; . . . Como muestra la figura 7.1, el primer elemento de un vector en C se sit´ua en la posici´on 0, mientras que el ´ultimo lo hace en la posici´on N ; 1 (N indica el n´umero de elementos del vector). Por esta raz´on, el ´ındice para acceder a los elementos del vector debe permanecer entre estos dos valores. Es responsabilidad del programador garantizar este hecho, para no acceder a posiciones de memoria fuera del vector, lo cual producir´ıa errores imprevisibles en el programa. 7.1.2 Asignaci´on La asignaci´on de valores a los elementos de un vector se realiza de forma similar a como se consultan. Ve´amoslo en un ejemplo: Figura 6.1: Representación gráfica de un vector de N elementos A continuación se muestran algunas formas válidas de acceso a los elementos de un vector: int contador[10]; int i, j, x; ... x = contador[1]; x = contador[i]; x = contador[i * 2 + j]; ... Como muestra la Figura 6.1, el primer elemento de un vector en C se sitúa en la posición 0, mientras que el último lo hace en la posición N − 1 (N indica el número de elementos del vector). Por esta razón, el índice para acceder a los elementos del vector debe permanecer entre estos dos valores. Es responsabilidad del programador garantizar este hecho, para no acceder a posiciones de memoria fuera del vector, lo cual produciría errores imprevisibles en el programa. 6.1.2. Asignación La asignación de valores a los elementos de un vector se realiza de forma similar a como se consultan. Veámoslo en un ejemplo: int contador[3]; ... contador[0] = 24; contador[1] = 12; contador[2] = 6; En muchas ocasiones, antes de usar un vector (una tabla en general) por primera vez, es necesario dar a sus elementos un valor inicial. La manera más habitual de inicializar un Pedro Ramírez <pedroramirez22@gmail.com> 2
  • 3. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M06 MICROCONTROLADORES I Laboratorio: D-19 Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS vector en tiempo de ejecución consiste en recorrer secuencialmente todos sus elementos y darles el valor inicial que les corresponda. Veámoslo en el siguiente ejemplo, donde todos los elementos de un vector de números enteros toman el valor 0: #define TAM 100 void main() { int vector[TAM], i; for (i=0; i<TAM; i++) vector[i] = 0; } Nótese que el bucle recorre los elementos del vector empezando por el elemento 0(i = 0) y hasta el elemento TAM − 1 (condición i < TAM). Existe también un mecanismo que permite asignar un valor a todos los elementos de un tabla con una sola sentencia. Concretamente en la propia declaración de la tabla. La forma general de inicializar una tabla de cualquier número de dimensiones es la siguiente: tipo_de_datos nombre tabla [N] = lista valores; La lista de valores no deberá contener nunca más valores de los que puedan almace- narse en la tabla. Veamos algunos ejemplos: int contador[3] = {24, 12, 6}; /* Correcto */ char vocales[5] = {’a’, ’e’, ’i’, ’o’, ’u’}; /* Correcto */ int v[4] = {2, 6, 8, 9, 10, 38}; /* Incorrecto */ Finalmente, cabe destacar que no está permitido en ningún caso comparar dos vecto- res (en general dos tablas de cualquier número de dimensiones) utilizando los operadores relacionales. Tampoco está permitida la copia de toda una tabla en otra con una simple asignación. Si se desea comparar o copiar toda la información almacenada en dos tablas, deberá hacerse elemento a elemento. Pedro Ramírez <pedroramirez22@gmail.com> 3
  • 4. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M06 MICROCONTROLADORES I Laboratorio: D-19 Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS 6.1.3. Ejemplos A continuación se muestra un programa que cuenta el número de apariciones de los números 0, 1, 2 y 3 en una secuencia de enteros acabada en −1. #include <stdio.h> void main () { int num, c0=0, c1=0, c2=0, c3=0; scanf("%d", &num); while (num != -1) { if(num == 0) c0++; if(num == 1) c1++; if(num == 2) c2++; if(num == 3) c3++; scanf( "%d", &num ); } printf("Contadores:%d, %d, %d, %d n", c0, c1, c2, c3); } ¿Qué ocurriría si tuviésemos que contar las apariciones de los cien primeros números enteros? ¿Deberíamos declarar cien contadores y escribir cien construcciones if para cada caso? La respuesta, como era de esperar, se halla en el uso de vectores. Veámoslo en el siguiente programa: #include <stdio.h> #define MAX 100 void main () { int i, num, cont[MAX]; for(i=0; i<MAX; i++) cont[i] = 0; scanf("%d", &num); while (num != -1) { if((num >= 0) && (num <= MAX)) cont[num]++; scanf("%d", &num); } for (i= 0; i< MAX; i++) printf("Contador[%d] = %dn", i, cont[i]); } Pedro Ramírez <pedroramirez22@gmail.com> 4
  • 5. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M06 MICROCONTROLADORES I Laboratorio: D-19 Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS 6.1.4. Ejercicios 1. ¿Dónde está el error en el siguiente programa? void main() { int vector[10]; int x = 1; for(x=1; x<=10; x++) vector[x] = 23; } 2. Escribir un programa que lea del teclado un vector de 10 números enteros, lo invierta y finalmente lo muestre de nuevo. Ultima Actualización 16 de marzo de 2017 Pedro Ramírez <pedroramirez22@gmail.com> 5