Dev - C++ - Arrancar con esta Especificación de Algoritmo...

 
Vista:
sin imagen de perfil

Arrancar con esta Especificación de Algoritmo...

Publicado por anonymous (6 intervenciones) el 27/05/2018 06:17:35
Hola Gente, los molesto una vez más.
Pronto rendiré una EA, y para lo poco que vemos en clases y leyendo aparte, no le agarro la mano aún.
Tengo un ejemplo a resolver, donde el ejemplo de ejecución es la imagen que adjunto de fondo celeste.

Para el primer paso, codifiqueé la definición de la función cuyo prototipo es:

void cargarDistanciasCiudades(double distancias[N][N])

La función recibe como argumento una matriz de NxN que representa las distancias en kilómetros entre las ciudades denominadas 0, 1, ..., y N-1. Por lo tanto, el elemento en la fila i y columna j representa la distancia desde la ciudad i hasta la ciudad j. La función debe solicitar al usuario ingresar las distancias entre ciudades por teclado y almacenarlas en la matriz.

No necesariamente la distancia entre dos ciudades debe ser la misma desde una de ellas o desde la otra, por lo que se debe ingresar la distancia tanto desde la ciudad i a la ciudad j, como también desde la ciudad j hasta la ciudad i.
La función NO DEBE solicitar la distancia entre una ciudad y la misma ciudad. Es decir, no debe solicitar la distancia desde la ciudad i a la ciudad i, y debe asignar directamente el valor de distancia 0 a esos casos.
En el caso que se ingrese una distancia menor o igual a cero, la función deberá indicar mediante un mensaje que el valor no es válido y pedir que se ingrese nuevamente hasta que el mismo sea mayor que cero.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
void cargarDistanciasCiudades(double distancias[N][N])
{
 
    int i , j;
 
    cout << "Cargar las distancias de las cuidades:  " << endl;
 
    for( i=0;i<N;i++ )
 
        for( j=0;j<N;j++ )
 
        cin >> distancias[i][j];
 
}

De los cuales 3 me dan error y 2 me dan correctas. Adjunto imagen color naranja.

Me he concentrado tanto en ver que estoy poniendo mal, que el resto sinceramente no se como encararlo.

Para lo demás:

void mostrarDistanciasCiudades(double distancias[N][N])

La función debe mostrar las distancias desde cada ciudad hasta las otras ciudades en el formato que se muestra en el ejemplo de ejecución abajo. No debe mostrar la distancia consigo misma que se entiende es cero.

int ingresarOrigenValido()

La función devuelve un valor entero que se ingresa por teclado y que corresponde a una de las N ciudades (0, 1, ..., N-1). En el caso de ingresar un valor no valido, es decir menor que cero o mayor o igual a N, se debe volver a solicitar un nuevo valor hasta que el mismo sea válido.

int destinoMasLejano (double distancias[N][N], int origen)

La función devuelve un valor entero que indica la ciudad más distante a una ciudad de origen indicada como argumento de la función. EN el caso que dos o más ciudades se encuentren a la misma distancia que la ciudad origen, la función debe devolver aquella con el identificador entero menor.

double calcularRecorrido(double distancias[N][N], int origen)

La función devuelve la suma total de kilómetros resultantes de recorrer desde una ciudad origen (indicado como argumento) y una serie de ciudades que el usuario ingresará en orden a medida que la función lo solicite. La función deberá solicitar se ingrese una próxima ciudad a recorrer hasta que el usuario ingrese un valor de ciudad inválido, es decir menor a cero o mayor o igual a N. El recorrido puede repetir ciudades y no necesariamente debe terminar en la ciudad donde se comenzó. Ver el ejemplo de ejecución.

Desde ya agradezco alguna mano con esto.
Por mi parte seguiré tratando. Gracias.


Sin-titulo
Sin-titulo1
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