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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2012, 18:17   #1
menjazovutk
 
Регистрация: 13.11.2010
Сообщений: 3
По умолчанию перестановки

Доброго дня всем!
У меня такая задача: Найти к-ую перестановку. Например, для н=4 и к=2 будет 1243. Но задачу должна решить без рекурсии. Вроде должно работать, но паскаль выдает ошибку. Посмотрите пожалуйста!

Код:
program perestanovki;
type poleCisel=array[1..1000] of integer;
type poleDostupnost=array[1..1000] of boolean;
var zasobnik,cislo: polecisel;
    dostupnost: poledostupnost;
    poradcislo,n,k,i,stack:integer;
    stop:boolean;
begin
readln(n);
readln(k);
poradcislo:=0;
stack:=0;
stop:=false;

while (not stop) and (stack>0) do
begin
 if stack=n+1 then
 begin
  inc(poradcislo);
  dec(stack);
  if (poradcislo=k) then
  begin
   for i:=1 to n do
    begin
     write(cislo[i],' ');
    end;
   stop:=true;
  end;
 end
 else
  begin
   zasobnik[stack]:=1;
   dostupnost[zasobnik[stack]]:=true;
   repeat
    inc(zasobnik[stack]);
    if zasobnik[stack]<=n then
    begin
     if dostupnost[zasobnik[stack]]=true then
     begin
      dostupnost[zasobnik[stack]]:=false;
      inc(stack);
      break;
     end;
    end
   else
   begin
     zasobnik[stack]:=0;
     dec(stack);
   end;
 until (zasobnik[stack]>n+1);
 end;
 end;
end.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 29.12.2012 в 10:31.
menjazovutk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестановки Helen236 Паскаль, Turbo Pascal, PascalABC.NET 42 11.04.2012 23:22
Перестановки SVing Паскаль, Turbo Pascal, PascalABC.NET 26 27.02.2012 22:01
C# Перестановки pro100saniok Помощь студентам 5 21.12.2010 00:12
перестановки fedd Помощь студентам 2 27.11.2009 22:59
Перестановки H'orn Общие вопросы .NET 4 11.11.2009 03:08