Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перебор динамического массива 
:(
    Опции темы
stalkerok
Дата 19.1.2009, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 28.12.2007

Репутация: нет
Всего: нет



нашёл то что нужно! помогите переделать под массив и числа.
заранее спасибо!
Код

program Permute;
{$APPTYPE CONSOLE}

uses SysUtils;

var
  R, Slen: Integer;

procedure P(var A: string; B: string);
var
  J: Word;
  C, D: string;
begin
  { P(N,N) >>  R=Slen  }
  if Length(B) = SLen - R then
  begin
    Write(' {' + A + '} '); {Per++}
  end
  else
    for J := 1 to Length(B) do
    begin
      C := B;
      D := A + C[J];
      Delete(C, J, 1);
      P(D, C);
    end;
end;

var
  Q, S, S2: string;
begin
  S  := ' ';
  S2 := ' ';
  while (S <> '') and (S2 <> '') do
  begin
    Writeln('');
    Writeln('');
    Write('P(N,R)  N=? : ');
    ReadLn(S);
    SLen := Length(S);
    Write('P(N,R)  R=? : ');
    ReadLn(S2);
    if s2 <> '' then R := StrToInt(S2);
    Writeln('');
    Q := '';
    P(Q, S);
  end;
end.

PM MAIL   Вверх
stalkerok
Дата 19.1.2009, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 28.12.2007

Репутация: нет
Всего: нет



переделал, правильно?

почему с Word не работало а с integer всё нормально стало (i, j: integer;)?

Код

program bust;
{$APPTYPE CONSOLE}

uses
  SysUtils;

procedure Permute(var a: string; b: array of integer);
var
  i, j: integer;
  str: string;
  c: array of integer;
begin
  if length(b) = 0 then
  begin
    write(' ' + a);
    writeln('');
  end
  else
  begin
    for i := 0 to high(b) do
    begin
      //c = b
      setlength(c, length(b));
      for j := 0 to high(b) do c[j]:=b[j];
      str:= a + inttostr(c[i]);
      //Delete
      for j:=i to high(c)-1 do c[j]:=c[j+1];
      SetLength(c, high(c));
      //Permute
      Permute(str, c);
    end;
  end;
end;

var
  arr: array of integer;
  s1: string;
begin
  s1:= '';
  setlength(arr, 3);
  arr[0]:=5;
  arr[1]:=7;
  arr[2]:=3;

  writeln('');
  Permute(s1, arr);
  readLn;
end.


Это сообщение отредактировал(а) stalkerok - 19.1.2009, 20:22
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.