Помогите написать программу

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

krash171
Сообщения: 11
Зарегистрирован: 29 фев 2008, 13:06

Нужна программа на любом языке
Тема: "Составление списка размещения" это комбинаторика.
Размещение Вики
Может кто поможет буду очень благодарен.
Dim...ON
Сообщения: 75
Зарегистрирован: 28 янв 2008, 01:10
Контактная информация:

стучись в аську 198-012-696
сделаю на языках C++, Delphi, Pascal
я сейчас в сети
chnry
Сообщения: 20
Зарегистрирован: 15 дек 2007, 15:30

Стучись в 393-877-884
Поможем
krash171
Сообщения: 11
Зарегистрирован: 29 фев 2008, 13:06

Добавил.
В общем разобрался более менее что должна делать программа:
Даем пользователю выбрать скоко чисел ему дать ввести, он вводит их.
Потом он должен выбрать каким способом решить (с повторением или без повторения), потом скоко чисел вывести на экран. Ну и программа потом выводит.
Лучше всего на Дельфи т.к. его я хоть чуть чуть знаю, если что смогу подкоректировать.
drummer
Сообщения: 61
Зарегистрирован: 13 янв 2008, 18:43

что-то вроде этого

Код: Выделить всё

{$APPTYPE CONSOLE}

uses
  SysUtils;

var i,n,k,t,kol,q : longint;
    a,met : array of longint;
    s:string;
    f:boolean;

procedure cut_s;
   var i:longint;
   begin
        i:=length(s)-1;

        while (s[i]<>' ')and(i<>0) do
          dec(i);
        if i=0 then s:=''
               else
                   begin
                       s:=copy(s,1,i);
                   end;
   end;

procedure rec(x:longint);
   var i:longint;
   begin
      if x>k
          then
             begin
                  if t=k
                    then
                        begin
                             writeln(s);
                        end;
                  exit;
             end;

      for i:=1 to n do
        if (met[i]=0) or (f)
           then
               begin
                    inc(t);
                    s:=s+inttostr(a[i])+' ';
                    met[i]:=1;
                    rec(x+1);
                    cut_s;
                    dec(t);
                    met[i]:=0;
               end;
   end;

procedure init;
  begin
       setlength(a,n+1);
       setlength(met,n+1);
       t:=0;
       kol:=0;
       f:=true;
       s:='';
  end;

procedure input;
   begin
        write('quantity for input=');
        readln(n);
        init;
        for i:=1 to n do
           read(a[i]);
        writeln('with reiteration?');
        writeln('   1 <=> Yes');
        writeln('   0 <=> No');
        read(q);
        write('quantity for output=');
        readln(k);
   end;

procedure solve;
   begin
        if (q=0)
          then f:=false;
        rec(1);
   end;

begin
      input;
      solve;
end.
krash171
Сообщения: 11
Зарегистрирован: 29 фев 2008, 13:06

Вроде что то такое можно ток не в консоли
drummer
Сообщения: 61
Зарегистрирован: 13 янв 2008, 18:43

ну натыкай кнопочек, замени ввод и вывод.
krash171
Сообщения: 11
Зарегистрирован: 29 фев 2008, 13:06

Блин не получаеться переделать Application.
Вроде все перенес а ошибок куча выдает.
Помоги пожалуйста, а то сдавать уже скоро.
krash171
Сообщения: 11
Зарегистрирован: 29 фев 2008, 13:06

блин так и не получаеться(
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Так а что именно не получается?
Ни что так не ограничивает фантазию программиста, как компилятор...
Ответить