vectores - profesor ezequiel ruiz garcia | (email ... · pdf filevectores: ejemplo 2 calcular...
Post on 07-Feb-2018
226 Views
Preview:
TRANSCRIPT
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
top related