Отсортировать по возрастанию последовательность нулей и единиц - Free Pascal

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

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

Из текстового файла загружается одномерный массив, состоящий из нулей и единиц. Количество тех и других произвольно, как и сама длина массива. Программа сортирует массив так, что сначала идут все нули, за ними – все единицы. Программа записывает сортиро-ванный массив в выходной текстовый файл.

Решение задачи: «Отсортировать по возрастанию последовательность нулей и единиц»

textual
Листинг программы
type TData = 0..1;
var
  n: array [TData] of Integer;
  e: TData; i: Integer;
begin
  Assign(input,'input.txt'); Assign(output,'output.txt');
  Reset(input); Rewrite(output);
  while not SeekEoF do begin
    Read(e); Inc(n[e]);
  end;
  for e in TData do for i:=1 to n[e] do WriteLn(e);
  Close(input); Close(output);
end.

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

  1. Создается тип данных TData, который представляет собой диапазон от 0 до 1.
  2. Объявляется массив n типа Integer, который будет хранить количество единиц в каждом элементе диапазона TData.
  3. Объявляются две переменные: e типа TData и i типа Integer.
  4. Открывается файл input.txt для чтения и файл output.txt для записи.
  5. В цикле while с условием not SeekEoF (конец файла) происходит чтение элементов из файла input.txt и увеличение значения в соответствующем элементе массива n.
  6. В цикле for перебираются все элементы диапазона TData.
  7. Внутри цикла for происходит запись элементов диапазона TData в файл output.txt.
  8. Закрываются файлы input.txt и output.txt.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

8   голосов , оценка 4 из 5
Похожие ответы