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

Ваш аккаунт

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

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

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

Нужна прога для записи всех комбинаций с буквами и цыфрами в текстовый файл

19K
09 августа 2006 года
danylo
2 / / 09.08.2006
Помогите с програмкой для записи всех возможных комбинацый с буквами и цыфрами в текстофий файл (от 3 до 20).
339
10 августа 2006 года
verybadbug
619 / / 12.09.2005
язык какой?... и чё значит "от 3 до 20"
20K
10 августа 2006 года
Nafanя
1 / / 10.08.2006
Скорее всего, от 3 до 20 элементов для перестановки.:)
19K
10 августа 2006 года
danylo
2 / / 09.08.2006
Мне без разницы главное чтобы уже было записано в текстовий формат комбинацыи с буквами и цыфрами длинной от 3 до 20.
339
10 августа 2006 года
verybadbug
619 / / 12.09.2005
Цитата:
от 3 до 20 элементов


это не все комбинации....

6.8K
10 августа 2006 года
Romikgy
84 / / 28.04.2005
а буквы какие?
339
10 августа 2006 года
verybadbug
619 / / 12.09.2005
в общем виде......
1. путём констант описываем:
- размер массива значений.... ACount
- массив значений... A[0..ACount-1]
2. пишем функцию для определения количества перестановок
GetCount(ACount, Digits) - результат которой - ACount в степени Digits
3. пишем основную процедуру....
описываем массив вывода... A1[0..Digits-1]
некую переменную (I) зацикливаем (от 0 до GetCount(ACount, Digits)-1)
нам понадобится ещё одна переменная целочисленного типа ( Itmp)
Itmp = I
создаём ещё один цикл (J) (от 0 до Digits-1)
составляем A1...
A1[J] = A[остаток от деления (Itmp/ACount)]
целочисленно делим Itmp/ACount
конец цикла (J)
массив A1 готов
конец цикла (I)
339
10 августа 2006 года
verybadbug
619 / / 12.09.2005
ACount - количество элементов в массиве....
Digits - количество элементов для перестановки....

Код:
const
  ACount = 3;
  Digits = 2;
  A: Array[0..ACount - 1] of Char = ('0','1','2');

function GetMax(ACount: Integer; Digits: Integer): Integer;
var
  I: Integer;
begin
  Result := 1;
  I := 0;
  while I < Digits do begin
    Result := Result * ACount;
    Inc(I);
  end;
end;

procedure AllComb;
var
  A1: Array[0..Digits-1] of Char;
  I, Imax, Itmp, J: Integer;
begin
  I := 0;
  Imax := GetMax(ACount, Digits);
  while I < Imax do begin
    Itmp := I;
    J := 0;
    while J < Digits do begin
      A1[J] := A[Itmp mod ACount];
      Itmp := Itmp div ACount;
      Inc(J);
    end;
    //сохраняем A1 в файл
    Inc(I);
  end;
end;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог