Автор: Sir 10.05.2003 14:02
Короче смысл такой:
Дан город, даны маршруты , остановки , необходимо после ввода 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).
Помогите и если возможно, подскажите более быстрый алгоритм!
Автор: Slam 10.05.2003 15:58
Лучше переделай тему ;)(см. "правила новичкам..."), а то "злые" ;D модеры закроют(или "злой" ;D AlaRic") или удалят твою тему...
Автор: AlaRic 10.05.2003 16:14
Злых модеров не бывает!
Пример:
const mas:array[1..3] of string=
(
('a1'),('a2'),('a3')
);
Автор: GLuk 10.05.2003 16:24
Как то я тоже хотел сделать такую фишку, но с просчетом пешедрала. И вот, что могу сказать на это в плане разработки оптимального алгоритма:
Это большая ЖОПА
В итоге я кинул эту идею.
Самое г-о забить данные о самом городе :-X
Автор: Sir 10.05.2003 17:33
2AlaRic:Я имел в виду описание в const массива типа array [1..n] of array [1..a]!
Автор: Geo 15.05.2003 17:26
Цитата
описание в const массива типа array [1..n] of array [1..a]
если под n и a подразумеваются константы, то вот так
const
mas: array[1..2,1..3] of string = (('11', '12', '13')
('21', '22', '23'));
может быть, каждый элемент тоже в скобки взять нужно
а если n a - не константы, тогда ничего не получится
Автор: Sir 17.05.2003 18:03
2All:Да я типа спрашиваю , МОЖЕТ ПОДСКАЖЕТЕ АЛГОРИТМ , а вы мне всё пишите фигню!