Java - Ayuda con código (vectores)..

 
Vista:

Ayuda con código (vectores)..

Publicado por Kanji (3 intervenciones) el 10/12/2015 08:25:31
Buenas, llevo dos dias intentando hacer esto pero no sé por donde cogerlo, agradecería muchísimo que alguien me ayudara, gracias!.

Crear una lista con el nombre de 6 poblaciones y otra lista con la distancia entre poblaciones.

Ejemplo;

Pob1 Pob2 Pob3 Pob4 Pob5 Pob6
■----------■---------■-------------■-----------■---------------■
10 Km 8 Km 14 Km 11 Km 15 Km

El precio del Km es de 0,06Є.
Si el bitllete de ida/vuelta se debe aplicar un 5% de descuento.
Se debe de introducir en el ordenador la ciudad de origen y la destinación en formato numérico:
Entrada:
Origen: 1
Destinación: 3
Ida/Vuelta (s/n): s
Salida:
El programa debe de funcionar desde cualquier población de origen y de destino.
Origen: Pob1 I/V: Si
Destino: Pob2 Descuento: 5%
Km: 18 Precio: 2,052

Muchisimas gracias! lo necesito urgente.. !
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con código (vectores)..

Publicado por Kanji (3 intervenciones) el 10/12/2015 10:00:07
He estado mirando y podría ser con una lista de arrays? aún asi no se como hacerlo..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jordi

Ayuda con código (vectores)..

Publicado por Jordi (38 intervenciones) el 10/12/2015 17:37:33
Hola Kanji,

Tienes que utilizar dos array, uno de tipo String[6] con los nombres de las poblaciones al que llamaremos "pueblos" y otro de tipo int[5] con las distancias entre ellas al que llamaremos "kilometros", para que nos entendamos.

Es muy gráfico: cada posición del vector "pueblos" es el nombre de cada una de las poblaciones. Cuidado, importa el orden porque, tal y como has dibujado, nos interesará que todas estén en fila. El vector "kilometros" contendrá la distancia entre cada uno de los pueblos. La posición kilometros[0] será la distancia entre pueblos[0] y pueblos[1], así como kilometros[3] lo será de pueblos[3] y pueblos[4].

Simplemente, al introducir un origen y un destino se buscan las posiciones de los dos puntos en el array "pueblos" y se obtiene su respectiva distancia sumando las posiciones necesarias de "kilometros". Teniendo eso, pueden hacerse facilmente las operaciones de precio y descuentos (aplicadas sobre el total).

Que el viaje sea ida y vuelta solo influye en que hay que multiplicar por 2 el resultado final.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alberto Diaz

Ayuda con código (vectores)..

Publicado por Alberto Diaz (7 intervenciones) el 12/12/2015 00:00:40
Hola, lo del uso de listas es muy sencillo.
Lo mas complejo es el algoritmo, que obtenga los resultados.

Si aun no has encontrado ayuda puedo enviarte la primera parte del codigo,
asi lo terminas de completar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con código (vectores)..

Publicado por Andrés Mella Romero (340 intervenciones) el 15/12/2015 20:59:50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/**
 *  
 * @author Andréss Mella Romero
 *
 */
class ToTest {
 
	private String[] poblaciones;
	private double[] kilometros;
 
	private final static double COSTO_KM = .06;
	private final static double CINCO_PORCIENTO = .95d;
 
	public ToTest() {
 
		poblaciones = new String[]{"","Poblado 1", "Poblado 2","Poblado 3","Poblado 4","Poblado 5","Poblado 6"};
		kilometros = new double[]{-1d,10d,8d,14d,11d,15d};
 
	}
 
	public void calcularCosto(int origen, int destino, boolean esRedondo) {
 
		String pobladoOrigen = poblaciones[origen];
		String pobladoDestino = poblaciones[destino];
 
		double kilometrosTotales = 0d;
		double costo = 0d;
 
		int miOrigen = origen;
		int miDestino = destino;
 
		if(origen >= destino) {
 
			miOrigen = destino;
			miDestino = origen;
 
		}
 
		for(int i = miOrigen ; i < miDestino ; i++) {
 
			kilometrosTotales += kilometros[i];
 
		}
 
 
		if(esRedondo) {
 
			kilometrosTotales *= 2d;
			costo = kilometrosTotales*COSTO_KM;
			costo *= CINCO_PORCIENTO;
 
		}else {
 
			costo = kilometrosTotales*COSTO_KM;
 
		}
 
		System.out.println("\nOrigen: " + pobladoOrigen);
		System.out.println("Destino: " + pobladoDestino);
		System.out.println("Redondo: " + (esRedondo ? "S\u00ED" : "No"));
		System.out.println("Descuento: " + (esRedondo ? "5%" : "N/A"));
		System.out.println("Kilometros: " + kilometrosTotales);
		System.out.println("Costo: " + costo + "\u20ac");
 
	}
 
}
 
public class Test {
 
	public static void main(String[] args) {
 
		ToTest toTest = new ToTest();
		toTest.calcularCosto(1,3,true);
		toTest.calcularCosto(1,3,false);
		toTest.calcularCosto(3,1,true);
		toTest.calcularCosto(3,1,false);
 
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar