Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

помогите с задачей пожалуйста! очень очень нужно

70K
26 декабря 2011 года
luybeznov
9 / / 08.12.2011
Дано предложение, в котором слова разделены пробелами. Напечатать все предложения, которые можно получить из него перестановками слов. Все слова можно считать различными. Найти количество таких предложений.


вот что я смог сделать, программа работает но не доконца доделана:

Код:
uses
  SysUtils;

type Combination=array [1..100] of integer;
var N: byte;S:string;p:integer;
      j,i:integer;
    x: combination;
    var a:array[0..100] of string;

     // Перевод из строки
  procedure Print;
    begin
   
          for i:=1 to n do
          write(' ',a[x]);
          writeln;
      end;

procedure swap(var d,j:integer);
      var x:integer;
   begin
         x:=d;
         d:=j;
         j:=x;
     end;

procedure generate(k:byte);
      var j:integer;
    begin
          if k=N then
          print
          else
           for j:=k+1 to n do begin
             swap (x[k+1],x[j]);
             generate(k+1);
              swap (x[k+1],x[j]);
           end;
       end;
begin

      write('vvedite predlogenie: ');readln(s);
      s:=s+' ';  j:=0;
      while copy (s,1,1)=' ' do delete(s,1,1);
      while  s<>'' do begin
      j:=j+1;
      while copy (s,1,1)<>' ' do  begin
          a[j]:=a[j]+copy (s,1,1);
          delete (s,1,1);
          end;
      while copy (s,1,1)=' ' do delete(s,1,1);
      end;
      write (j,' ','slov v predlogenii');
      N:=j;
      for i:=1 to N do x:=i;
      generate(0);
      readln;

end.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог