Skocz do zawartości
zales

Operacje Na Tablicach W C++

Rekomendowane odpowiedzi

Mam problem z napisaniem pewnego algorytmu. Stworzyłem program który pobiera z pliku txt dane do dwóch tablic, wygląda on tak:

#include <stdio.h>#include <stdlib.h>#include <iostream.h>main(){FILE *plik;int i_tab;int i,s=0;i_tab=0;char punkt_pierwszy[100][2], punkt1, punkt2, punkt[20];int odleglosc[100], droga[20];plik = fopen("dane.txt","r");while (fscanf(plik, "%c%c%d%20",&punkt_pierwszy[i_tab][0],&punkt_pierwszy[i_tab][1],&odleglosc[i_tab]) !=EOF)i_tab++;fclose(plik);for (i=0; i<i_tab; i++)printf("%c - %c - %d\n", punkt_pierwszy[i][0], punkt_pierwszy[i][1], odleglosc[i] );printf("\nPodaj punnkt poczatkowy: ");scanf("%c", &punkt1);printf("\nPodaj punkt koncowy: ");cin >> punkt2;//scanf("%c", &punkt2);}
Plik tekstowy wyglada tak:

AB5 BC6 BD10 CD4 AD16 DB8 BA12 CA13

 

W pierwszej tablicy zapisywane są w dwóch kolumnach litery, a w drugiej liczby. Teraz chce stworzyć tablicę, w której będą zapisane wszystkie odległości miedzy tymi punktami, np. odległośc midzy A i B wynosi 5, a odległość między B i C wynosi 6. Zatem odległość między A i C wynosi 11 (nie jest to to samo co między CA) itd, po prostu w tablicy musza byc zawarte wszystkie odległości miedzy wszystkimi punktami (o ile istnieją takie powiązania). Jaki napisac do tego kod?

Edytowane przez zales

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

To akurat nie robi chyba większej różnicy, łatwiej jest chyba wrzucić od razu do tablicy niż zapisywać do pliku, a potem z niego wyciągać. Najwiekszym problemem jest to jak zrobić aby program liczył te odległości?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

W pliku tekstowym zapisane są odległości od poszczególnych punktów. Widać np że najktótsza droga z punktu A do C wynosi 11 i biegnie ona przez punkt B. Tak samo np najkrótsza droga z punktu A do D wynosi 15 i biegnie przez punkt B. Ta sama droga też będzie przez punkty B i C. Wszystkie te odleglosci pomiedzy punktami zapisane w tym pliku tekstowym. Progam ma właśnie obliczyć te odległości i zapisać do tablicy. To jest właśnie dla mnie najwiekszy problem bo nie wiem jak to zorbic. Potem użyje jakiegoś sortowania w tablicy i bede wyszukiwał najkrótszych dróg do podanych przez użytkownika punktów.

post-14847-1206120392_thumb.jpg

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli chodzi o ten problem nie ma sensu po raz kolejny wymyślać koła. Rozwiązaniem Twoich problemów będzie algorytm Floyda-Warshall lub algorytm Johnsona, przy czym ten pierwszy zdaje się być prostszy w implementacji, jednak dla grafów rzadkich będzie wolniejszy niż algorytm Johnsona.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...