![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
Sir |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 95 Пол: Мужской Репутация: ![]() ![]() ![]() |
Короче смысл такой:
Дан город, даны маршруты , остановки , необходимо после ввода 2 остановок указать возможные маршруты передвижения между ними. Я уже сделал проверку (наличие остановок в маршруте): Код procedure ch_way; var x,y,d,i,kv,l,cnm:integer; ot,nm:string; m:array[1..10] of string; mrez:array[1..5] of string; begin kv:=0; L:=0; nm:=''; for i:=1 to 10 do begin m[i]:=''; mrez[i]:=''; end; while kv<>7 do begin cnm:=0; kv:=kv+1; case kv of 1:begin i:=1; while w1[i]<>'' do begin m[i]:=w1[i]; nm:='1'; i:=i+1; end; end; 2:begin i:=1; while w2[i]<>'' do begin m[i]:=w2[i]; nm:='2'; i:=i+1; end; end; 3:begin i:=1; while w3[i]<>'' do begin m[i]:=w3[i]; nm:='3'; i:=i+1; end; end; 4:begin i:=1; while w4[i]<>'' do begin m[i]:=w4[i]; nm:='4'; i:=i+1; end; end; 5:begin i:=1; while w5[i]<>'' do begin m[i]:=w5[i]; nm:='5'; i:=i+1; end; end; end; i:=1; while m[i]<>'' do begin if st=m[i] then cnm:=cnm+1; if en=m[i] then cnm:=cnm+1; i:=i+1; end; if cnm=2 then begin l:=l+1; mrez[l]:=nm; end; end; x:=10; y:=40; settextjustify(lefttext,bottomtext); outtextxy(10,20,'MapwpyTbl:'); ot:=''; d:=1; while mrez[d]<>mrez[d-1] do begin ot:=mrez[d]; x:=x+20; white_text; if mrez[d]<>mrez[d+1] then outtextxy(x,y,''+ot+','); if mrez[d]=mrez[d+1] then outtextxy(x,y,''+ot+'.'); white_text; delay(9000); black_text; d:=d+1; end; black_text; readln; end; Но если между остановками нет действующего маршрута то нужно естественно делать пересадки что при моём способе проверки невозможно(точнее возможно , но если будет 100 или более маршрутов то придётся делать что-то вроде этого: Код case kv of 1:begin kv1:=kv1+1; case kv1 of 1:begin end; … 100:begin end; end; … 100:begin end; а это мягко говоря нерационально). Я думал может сделать массив из массивов , но что-то у меня не получается(знаний не хватает).Объясните пожалуйста как оформлять такие массивы в const (массивы одномерные , тип - string). Помогите и если возможно, подскажите более быстрый алгоритм! |
![]() ![]() |
Sir |
![]()
Сообщение
#2
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 95 Пол: Мужской Репутация: ![]() ![]() ![]() |
2All:Да я типа спрашиваю , МОЖЕТ ПОДСКАЖЕТЕ АЛГОРИТМ , а вы мне всё пишите фигню!
|
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 20:02 |