Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2012, 13:44   #1
bubajute
Новичок
Джуниор
 
Регистрация: 21.06.2012
Сообщений: 1
По умолчанию программа требует обьяснения

раскажите что за что отвечает и что как делает в этой програме ,это алгоритм дейкстры
Код:
int a;
        if (CheckBox1->Checked) a=1;
        if (CheckBox2->Checked) a=2;
        if (CheckBox3->Checked) a=3;
        if (CheckBox4->Checked) a=4;
        if (CheckBox5->Checked) a=5;
        if (CheckBox6->Checked) a=6;
        a=a-1;
        Memo1->Lines->Add("");
        Memo1->Lines->Add("Àëãîðèòì äåéêñòðè :");
	setMAX();
	AnsiString bufS,*bufD=new AnsiString[n],bufP;
	int *S=new int[n-1],*D=new int[n],
		*P=new int[n],w,min;
	for (int k=0; k<n-1; k++) {
		S[k]=-1;
	}
	S[0]=a;
	for (int i=0; i<n; i++) {
		if (C[a][i]==NULL) D[i]=MAX;
			else D[i]=C[a][i];
		bufP=bufP+frmt(AnsiString((P[i]=a)+1),4);
		if (D[i]==MAX) bufD[0]=bufD[0]+"   ~";
			else bufD[0]=bufD[0]+frmt(AnsiString(D[i]),4);
	}
	for (int i=1; i<n-1; i++) {
		min=MAX;
		for (int k=0; k<n; k++) {
			if (D[k]<min && !in_arr(k,S) && k!=a) {
				w=k;
				min=D[k];
			}
		}
		if (min==MAX) break;
		bufS=bufD[i]=bufP="";
		S[i]=w;
		for (int j=0; j<n; j++) {
			if (!in_arr(j,S) && C[w][j]!=NULL && (D[w]+C[w][j])<=D[j]) {
				P[j]=w;
				D[j]=D[w]+C[w][j];
			}
			if (!in_arr(j,S) && D[j]<MAX) {
				bufD[i]=bufD[i]+frmt(AnsiString(D[j]),4);
			} else bufD[i]=bufD[i]+"   ~";
			bufP=bufP+frmt(AnsiString(P[j]+1),4);
		}
	}
	for (int k=0; k<n-1; k++) if (S[k]>-1) bufS=bufS+AnsiString(S[k]+1)+", ";
	Memo1->Lines->Add("S = "+bufS);
	Memo1->Lines->Add("D = ");
	for (int i=0; i<n; i++) {
		Memo1->Lines->Add(bufD[i]);
	}
	Memo1->Lines->Add("P = ");
	Memo1->Lines->Add(bufP);
		int prom;
	AnsiString str;                                                      
        Memo1->Lines->Add("");
	Memo1->Lines->Add("íàéêîðîòø³ ìàðøðóòè:");
	for (int i=0; i<n; i++) {
		if (i!=a && C[P[i]][i]!=NULL) {
			str=AnsiString(i+1);
			prom=P[i];
			do {
				if (str!=AnsiString(i+1)) prom=P[prom];
				str=str+" >- "+AnsiString(prom+1);
			} while (prom!=a);
			Memo1->Lines->Add(ReverseString(str)+"   =   "+AnsiString(D[i]));
		}
	}
}

Последний раз редактировалось Stilet; 21.06.2012 в 20:30.
bubajute вне форума Ответить с цитированием
Старый 21.06.2012, 15:04   #2
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Ниасилил. Многабукав неформатированных, да еще и требующих объясниться с ними.
Знающий не говорит, говорящий не знает (С) Лао Цзы

Последний раз редактировалось Krok27; 21.06.2012 в 15:11.
Krok27 вне форума Ответить с цитированием
Старый 21.06.2012, 15:12   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Krok27 Посмотреть сообщение
Ниасилил. Многабукав неформатированных.
Осилил, но в компил вводить не стал.
1. Прежде всего, код не оформлен по правилам форума (русскоязычный текст отображается "кракозябрами (URF8)).
2. Не пердоставлен проблеммный участок (разбираться во всём коде нет времени).
3. Моё ИМХО, очередной "халявщик". Зделайте за меня , а я на дискотеке пока потусуюсь. - Задолбали!
Сообщение - Сегодня, 12:44
Мой ответ _ Сегодня, 14:12
А ТС и в помине нет!
Если меня (лично), интересует ответ, я на связи буду все 24 часа. И всё равно добьюсь своего...
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 21.06.2012 в 15:17.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADOquery требует пароль? Милана666 БД в Delphi 2 21.05.2010 17:04
обьяснения (коментарии) к коду: Programmer20101 Общие вопросы Delphi 12 18.05.2010 18:36
прога требует DBE LunoXod-3 Общие вопросы C/C++ 3 12.03.2010 14:00
ПОМОГИТЕ DELPHI ТРЕБУЕТ ЛИЦЕНЗИЮ Toxa Общие вопросы Delphi 5 22.03.2007 16:05