Documentos de Académico
Documentos de Profesional
Documentos de Cultura
• UNIDAD 2
– ARREGLOS
• Vectores
Objetivos
• Manipular una colección de datos usando vectores
• Declarar y utilizar un vector de tipos de datos primitivos en
la implementación de un programa
• Inicializar vectores mediante lazos y en la declaración
• Utilizar lazos para realzar operaciones con vectores.
• Ordenar un vector
• Leer datos desde un archivo y almacenarlos en un vector
Definición de vector
Un vector es una colección del mismo tipo de datos.
Declaración de un vector:
Tipo[] identificador;
lluvia[0] 0.0
O lluvia[1] 0.0
Tipo identificador[]; lluvia[2] 0.0
Un vector es un objeto en java lluvia[3] 0.0
O lluvia[7] 0.0
lluvia[8] 0.0
double lluvia[] = new double[12];
lluvia[9] 0.0
Se crea un vector de 12 componentes
lluvia[10] 0.0
lluvia[11] 0.0
Acceso a los elementos
Los elementos de un vector se acceden mediante un subíndice.
lluvia[2] o lluvia[i+1]
El índice de la primera posición de un vector es siempre 0.
Ejemplo
Leer 12 valores de lluvia mensual y calcular el promedio
double diferencia;
for( int i = 0; i < 12; i++) {
System.out.println(formato.rightAlign
(17,1,lluvia[i]));
diferencia = Math.abs(lluvia[i]-
mediaAnual);
System.out.println(formato.rightAlign
(17,2,diferencia));
}
Tamaño de un vector
}
Iniciación de vectores
Otra forma de iniciar un vector al declararlo es como sigue:
String[] nombreMes =
{“enero”,”febrero”,”marzo”,”abril”,”mayo”,”
junio”,”julio”,”agosto”,”septiembre”,”octub
re”,”noviembre”,”diciembre”};
Lluvia para meses pares e
impares
Cálculo de la media de lluvia en meses pares e impares
1 2 3 x4 5 x6 7 x8 x
9 10
Múltiplos de 2 x 13
11 12 x
14 15 x
16 17 x
18 x
19 20
1 2 3 x4 5 x6 7 x8 x9 10
x
Múltiplos de 3 x 13
11 12 x 15
14 x
x 16 17 x 19 20
18 x
(x − x )
2
i
s= i =1
N −1
desviación desviación
estándar estándar
pequeña grande
promedio promedio
Algoritmo
Se utilizará un vector x de 100 elementos.
1. Leer los elementos del vector
2. Calcular el promedio
3. Calcular la desviación estándar
4. Desplegar resultados
//Esqueleto de programa
class Desviacion{
static public void main(String[] args){
//declaración de variables
//leer elementos del vector
//calcular el promedio
//calcular desviación estándar
//desplegar resultados
}
}
Primer refinamiento
Se requieren variables de tipo double para los valores (x), la suma
(suma), el promedio (prom) y la desviación estándar (des). También
variables de tipo int para el número de valores (n) y el control de los lazos
(i).
class Desviacion{
static public void main(String[] args){
//declaración de variables
double x[] = new double[100], suma = 0, prom, des;
int n,i;
//leer elementos del vector
//calcular el promedio
//calcular desviación estándar
//desplegar resultados
}
}
Lectura de valores
Puede leerse primero el valor de n y después en un lazo leer cada elemento de x, o
bien, puede leerse con un centinela los valores de x, el centinela podría ser un valor
<0. Optaremos por la segunda opción.
import javabook.*;
class Desviacion{
static public void main(String[] args){
//declaración de variables
double x[] = new double[100], suma, prom, des, v;
int n,i;
SimpleInput entrada = new SimpleInput();
//leer elementos del vector
i = 0;
do{
v = SimpleInput.getDouble(“Tecle valor para x”+i+”:”);
if(v>0){x[i] = v; i++;}
}while(v>0 && i<x.length);
n = i;
//calcular el promedio
//calcular desviación estándar
//desplegar resultados
}
}
Calcular promedio
Calculamos mediante un lazo for.
import javabook.*;
class Desviacion{
static public void main(String[] args){
//declaración de variables
double x[] = new double[100], suma, prom, des, v;
int n,i;
SimpleInput entrada = new SimpleInput();
//leer elementos del vector
i = 0;
do{
v = SimpleInput.getDouble(“Tecle valor para x”+i+”:”);
if(v>0){x[i] = v; i++;}
}while(v>0 && i<x.length);
n = i;
//calcular el promedio
suma = 0;
for(i = 0; i<n; i++) suma += x[i];
prom = suma/n;
//calcular desviación estándar
//desplegar resultados
}
}
Calcular desviación
Calculamos mediante un lazo for.
import javabook.*;
class Desviacion{
static public void main(String[] args){
//declaración de variables
double x[] = new double[100], suma, prom, des;
int n,i;
SimpleInput entrada = new SimpleInput();
//leer elementos del vector
i = 0;
do{
v = SimpleInput.getDouble(“Tecle valor para x”+i+”:”);
if(v>0){x[i] = v; i++;}
}while(v>0 && i<x.length);
n = i - 1;
//calcular el promedio
suma = 0;
for(i = 0; i<n; i++) suma += x[i];
prom = suma/n;
//calcular desviación estándar
suma =0;
for(i = 0; i<n; i++) suma += (x[i]-prom)*(x[i]-prom);
des = Math.sqrt(suma/(n-1));
//desplegar resultados
}
}
Despliegue
Desplegar con formato.
import javabook.*;
class Desviacion{
static public void main(String[] args){
//declaración de variables
double x[] = new double[100], suma, prom, des;
int n,i;
SimpleInput entrada = new SimpleInput();
//leer elementos del vector
i = 0;
do{
v = SimpleInput.getDouble(“Tecle valor para x”+i+”:”);
if(v>0){x[i] = v; i++;}
}while(v>0 && i<x.length);
n = i - 1;
//calcular el promedio
suma = 0;
for(i = 0; i<n; i++) suma += x[i];
prom = suma/n;
//calcular desviación estándar
suma =0;
for(i = 0; i<n; i++) suma += (x[i]-prom)*(x[i]-prom);
des = Math.sqrt(suma/(n-1));
//desplegar resultados
System.out.println(“total de valores leídos: “+n);
System.out.println(“el promedio es: “+Format.leftAlign(8,3,prom));
System.out.println(“la desviación es: “+Format.leftAlign(8,3,des));
}
}
Prueba del programa
Los siguientes datos fueron calculados con Excel
x
0 4.5 promedio= 4.575
1 4.6 desviación= 0.170782513
2 4.4
3 4.8