Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 
{ рекурсивные алгоритмы: генерация перестановок }
const n = 3; { количество элементов в перестановке}
var   a:array[1..n] of integer;
      index : integer;

procedure generate (l,r:integer);
var i,v:integer;
begin
      if (l=r) then begin
        for i:=1 to n do write(a[i],' ');
        writeln;
      end else begin
        for i := l to r do begin
           v:=a[l]; a[l]:=a[i]; a[i]:=v; {обмен a[i],a[j]}
           generate(l+1,r);              {вызов новой генерации}
           v:=a[l]; a[l]:=a[i]; a[i]:=v; {обмен a[i],a[j]}
        end;
      end;
end;

begin
      for index := 1 to N do A[index]:=index;
      generate( 1,n );
end.


Красноярский краевой Дворец пионеров, (c)2006 - 2017, ICQ: 151483