/* * File: main.cpp * Author: maurizio * * Created on 3 giugno 2010, 22.24 */ #include #include using namespace std; /* * */ const int MAX=20; int dist(int d[][MAX], int n, int i, int j); int ricercaLin(string x, string v[], int n); int dist2(int d[][MAX], int n, string c[], string c1, string c2); void listaDist(int d[][MAX], int n, string c[], string cit, int dista[], int& k); void stampa(int v[], int n); int main(int argc, char** argv) { // numero di città int n=4; if (n>MAX) return -1; // distanze tra le città // le distanze sulla diagonale principale della matrice (quadrata) sono nulle // due città che non sono collegate hanno valore -1 int d[][MAX]={{0,30,40,-1},{30,0,30,-1},{40,30,0,20},{-1,-1,20,0}}; // nomi delle città string c[MAX]={"MI","TO","CO","VA"}; // due città di cui vogliamo conoscere la distanza string c1="MI"; string c2="VA"; // calcolo della distanza int distanza=dist2(d,n,c,c1,c2); if (distanza==-1) cout << "Le citta " << c1 << " e " << c2 << " non sono direttamente collegate " << endl; else cout << "Distanza tra " << c1 << " e " << c2 << " è di " << distanza << endl; // array delle distanze int dista[MAX]; // conta città int k=0; // città di partenza string cit="CO"; // carico l'array delle distanze dista listaDist(d, n, c, cit, dista, k); if (k>0) { cout << "Le distanze di " << cit << " dalle altre città sono " << endl; stampa(dista,k); } else cout << "Non ci sono distanze"; return (EXIT_SUCCESS); } // trovo la distanza tra due città noti gli indici nella matrice delle distanze int dist(int d[][MAX],int n, int i, int j) { if (i>n || j>n) return -1; return d[i][j]; } // algoritmo di ricerca lineare adattato ad un array di stringhe int ricercaLin(string x, string v[], int n) { for (int i=0; i