IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Поиск и сравнение в String массивах.array Of Array
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 95
Пол: Мужской

Репутация: -  1  +


Короче смысл такой:
Дан город, даны маршруты , остановки , необходимо после ввода 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).
Помогите и если возможно, подскажите более быстрый алгоритм!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 136
Пол: Мужской

Репутация: -  0  +


Лучше переделай тему ;)(см. "правила новичкам..."), а то "злые" ;D модеры закроют(или "злой" ;D AlaRic") или удалят твою тему...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


Злых модеров не бывает!
Пример:
const mas:array[1..3] of string=
(
('a1'),('a2'),('a3')
);
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Как то я тоже хотел сделать такую фишку, но с просчетом пешедрала. И вот, что могу сказать на это в плане разработки оптимального алгоритма:
Это большая ЖОПА

В итоге я кинул эту идею.
Самое г-о забить данные о самом городе  :-X
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 95
Пол: Мужской

Репутация: -  1  +


2AlaRic:Я имел в виду описание в const массива типа array [1..n] of array [1..a]!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
описание в 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 - не константы, тогда ничего не получится
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 95
Пол: Мужской

Репутация: -  1  +


2All:Да я типа спрашиваю , МОЖЕТ ПОДСКАЖЕТЕ АЛГОРИТМ , а вы мне всё пишите фигню!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.05.2024 16:38
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name