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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2011, 11:07   #1
DorianMark
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 15
По умолчанию Задача на поиск маршрутов

Дано N городов, соединенных между собой дорогами. Из одного в другой можно попасть различными путями. Необходимо найти для двух указанных городов все возможные маршруты.

Вот что мне удалось написать. Не густо.

Код:
program god_tv;
uses crt;
var
   map: array [1..10,1..10] of integer;
   inc: array [1..10] of integer;      
   road: array [1..10] of integer;   
   roadinc: array [1..10] of integer; 
   n,k,i,j,a,b,g1,g2,kgm,km,q,sum,z,true,s1,s2,s3,s4: integer;
begin
     clrscr;
     write('‚Введите кол-во городов: ');readln(n);
     write('‚Введите кол-во соединений: ');readln(k);
     write('‚Введите соединенные города:');
     for i:=1 to k do
     begin
          gotoxy (1,i+3); read(a);
          gotoxy (3,i+3); readln(b);
          map[a,b]:=1;
          map[b,a]:=1;
     end;
     writeln('Введите города для которых необходимо найти маршруты:');
     gotoxy(1,k+5); read(g1);
     gotoxy(3,k+5); read(g2);
     for i:=1 to n do {проверка городов на тупиковость}
         begin
              sum:=0;
              for j:=1 to n do
              begin
                   sum:=sum+map[i,j];
              end;
              if sum>1 then inc[i]:=1;
         end;
     writeln('‚Всего 0 маршрутов');
     for z:=1 to k do
     begin
          kgm:=1;
          road[kgm]:=g1;
          inc[g1]:=1;
          roadinc[km+1]:=sqr(g1);
{---1}    for i:=g1 to n do
          begin
{------2}      for j:=1 to n do
               begin
{--------3}         if (map[i,j]=1) and (inc[j]=0) then
                    begin
                    road[kgm]:=j;
                    inc[j]:=1;
                    roadinc[km+1]:=roadinc[km+1]+sqr(j);
{--------4}         if j=g2 then
                    begin
{-----------5}      for s1:=1 to k do
                         begin
                              if (roadinc[km+1]=roadinc[s1]) and (s1<>(km+1)) then true:=1;
           {5-----------}end;
{-----------6}           if true=0 then
                         begin
                              km:=km+1;
{-------------7}              begin
                                   gotoxy(7,k+6); write(km);
             {7-------------} end;
                              writeln('');
                              for s2:=1 to (kgm-1) do
{-------------8}              begin
                                   gotoxy(s2*2,km+k+6); write(road[s2]);
             {8-------------} end;
           {6-----------}end;
                         true:=0;
        {4--------} end;
                    i:=j;
        {3--------} end;
      {2-----} end;
   {1---} end;
     end;
     readkey;
end.
DorianMark вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск маршрутов между городами DorianMark Паскаль, Turbo Pascal, PascalABC.NET 0 30.10.2011 12:43
программа поиска маршрутов на графе Jlena Помощь студентам 0 11.05.2011 17:33
Горю: Формирование маршрутов в методе Дейкстра Skiph Помощь студентам 2 05.05.2011 01:51