Создание файла - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Доброго дня всем! Нужна помощь в создании программы. Если она уже есть, киньте пожалуйста, ссылку в описании(сам искал, но, к сожалению, не нашел... Может, проглядел просто). Необходимо создать файл *.txt , состоящий из 10-ти символьных строк, значение которых инкриментируются от 0000000000 до ZZZZZZZZZZ (соотв. 0000000000..0000000009; 000000000a..000000000z; 000000000A..000000000Z; 0000000010...). Желательно использовать *:file of byte. После каждой строки необходим перенос. Заранее спасибо.

Решение задачи: «Создание файла»

textual
Листинг программы
Const
  m  : array[0..61] of Char = ('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
Var
  St : String;
 
Function GetN(c : Char) : Byte;
Var i : Byte;
Begin
  For i:=0 to 61 do
    If m[i]=c then
    Begin
      GetN:=i;
      Break;
    end;
end;
 
Procedure IncS(Var s : String);
Var
  j   : Byte;
  per : Boolean;
Begin
  j:=10; per:=False;
  Repeat
    If GetN(s[j])+1>61 then
    Begin
      s[j]:='0';
      per:=True;
    end
      else
    Begin
      s[j]:=m[GetN(s[j])+1];
      per:=False;
    end;
    Dec(j);
  Until (j=0) or (not per);
End;
 
Begin
  St:='0000000000';
  Writeln(St);
  Repeat
    IncS(St);
    Writeln(St);
  Until St='ZZZZZZZZZZ';
end.

Объяснение кода листинга программы

  1. Создается константа Const, которая определяет массив символов m от '0' до '61'.
  2. Создается переменная St типа String, которая будет использоваться для хранения строки.
  3. Создается функция GetN, которая принимает символ и возвращает номер его позиции в массиве m.
  4. Создается процедура IncS, которая принимает переменную s типа String и увеличивает каждый символ в строке на единицу, при условии, что результат не превышает 61.
  5. В основной части программы создается переменная St, которая инициализируется строкой '0000000000'.
  6. Затем с помощью цикла Writeln выводится значение переменной St.
  7. Затем вызывается процедура IncS, которая увеличивает каждый символ в строке St на единицу.
  8. Цикл продолжается до тех пор, пока строка St не достигнет конца ('ZZZZZZZZZZ').

Оцени полезность:

12   голосов , оценка 3.417 из 5