Foro sobre Java SE > Ayuda ejercicio Algoritmia y estructura de datos
"Escriba un programa en Java..."
Cuando empieces a escribirlo, y se te presente dudas concretas, ¡Pregunta!.
Es verdad, no he realizado la pregunta que quería hacer. Mi problema es que no sé cómo introducir los datos con un programa input. Perdona las molestias.
Buenas,
Tambien te has olvidado de lo mas importante, que es decir: hola, adios y gracias.
Que es un programa input? Te estan pidiendo un programa de consola que tiene que leer un fichero para luego procesar su informacion?
Para leer el fichero, lo puedes hacer, por ejemplo, con Scanner:
Scanner scanner = null;
try {
File file = new File(fileName);
scanner = new Scanner(file);
while (scanner.hasNextLine()) {
//Aniades la informacion a un lista, por ejemplo, para luego procesarla
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
scanner.close();
}
Un saludo
Muchas gracias, así me es más fácil meterle mano a este ejercicio.
Una empresa de electricidad quieren planificar la construcción de una nueva red de distribución que conecta entre sus localizaciones n . Tenemos las coordenadas geográficas de x [ i], y [ i ] para cada ubicación, i = 0 , ... N - 1 , expresado en km utilizando un sistema de referencia cartesiano . La empresa puede construir
líneas eléctricas que conectan en línea recta entre dos lugares. El costo de una línea de alta tensión que conecta las localidades i y j es proporcional a la dij distancia entre ellos, calculado con la fórmula habitual para la distancia euclídea :
d ij = √ (x [i ] -x [ j] ) 2 + (y [i ] - y [ j] ) 2
Para asegurarse de que la red de distribución está funcionando correctamente , es suficiente que todas las ubicaciones estén conectados por medio de un árbol de expansión . La compañía tiene la intención de planificar cuidadosamente las conexiones con el fin de minimizar la suma de las longitudes de todas las líneas creadas .
Escriba un programa en Java que se lee de un archivo de entrada , el valor de n y las coordenadas geográficas de lugares, como en el ejemplo siguiente :
7 n número de lugares en este archivo
0 0 x [ 0 ] y [ 0 ]
1 0
2 0
0,5 0,5
0 1
1 1
2 1 x [n - 1 ] y [n - 1 ]
que corresponde a la situación en la parte izquierda de la figura :
0 1 2 | (conectado al 3) 0 (conectado al 2) 1 (conectado al 6) 2
3 | (conectado al1 y al 5) 3
4 5 6 | (conectado al 3) 4 5 6
El programa debe imprimir en la pantalla n - 1 líneas de texto, cada una de las cuales indica una de las n - 1 líneas eléctricos que deben ser fabricados y su longitud. Por último, se debe imprimir una línea adicional de texto que indique la longitud total de todas las conexiones realizadas. En el ejemplo anterior, el programa puede imprimir :
0 3 0,7071067811865476
1 3 0,7071067811865476
3 4 0,7071067811865476
3 5 0,7071067811865476
1 2 1,0
2 6 1,0
4.82842712474619
que corresponde al árbol que se muestra a la derecha (la elección de los arcos puede ser dado en cualquier orden). Si hay más de una solución óptima, es suficiente con visualizar una.