Ввести два одномерных массива A(n) и B(n). Переписать в файл f - Pascal ABC

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

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

Помогите пожалуйста Ввести два одномерных массива A(n) и B(n). Переписать в файл f последовательно в порядке, зависящем от количества нулевых элементов на них: сначала тот массив, где меньше нулей, затем оставшийся. Файл f распечатать.

Решение задачи: «Ввести два одномерных массива A(n) и B(n). Переписать в файл f»

textual
Листинг программы
const n = 10;
type mas = array[1..n] of integer;
 
procedure PrintArr(a: mas);
var i: integer;
begin
  for i := 1 to n do write(a[i], ' ');
  writeln;
end;
 
procedure ToFile(f: text; a, b: mas);
var i: integer;
begin
  for i := 1 to n do write(f, a[i], ' ');
  writeln(f);
  for i := 1 to n do write(f, b[i], ' ');
end;
 
function NullCount(a: mas):integer; 
var i, count: integer;
begin
  count := 0;
  for i := 1 to n do
    if a[i] = 0 then inc(count);
  NullCount := count;
end;
 
var a, b: mas;
    i: integer;
    f: text;
    buffer: string;
begin
  randomize;
  for i := 1 to n do begin
    a[i] := -3 + random(7);
    b[i] := -3 + random(7);
  end;
  PrintArr(a);
  PrintArr(b);
  assign(f, 'f.txt');
  rewrite(f);
  if NullCount(a) > NullCount(b) then
    ToFile(f, a, b)
  else ToFile(f, b, a);
  close(f);
  reset(f);
  writeln('Файл:');
  while not eof(f) do begin
    readln(f, buffer);
    writeln(buffer);
  end;
  close(f);
end.

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

  1. Объявлены константы и типы данных
    • n = 10 (количество элементов в массивах)
    • mas = array[1..n] of integer (тип массива)
  2. Объявлены процедуры для работы с массивами
    • PrintArr(a: mas) (вывод элементов массива a в консоль)
    • ToFile(f: text; a, b: mas) (запись элементов массивов a и b в файл f)
    • NullCount(a: mas): integer (функция подсчитывающая количество нулевых элементов в массиве a)
  3. Создаются переменные для работы с массивами и файлом
    • a, b: mas (массивы для работы)
    • i: integer (для цикла по элементам массива)
    • f: text (файл для записи)
    • buffer: string (буфер для чтения из файла)
  4. Инициализируются массивы a и b случайными значениями от -3 до 3
  5. Выводятся элементы массива a и b в консоль
  6. Открывается файл f для записи
  7. Если количество нулевых элементов в массиве a больше чем в массиве b, то записываются элементы массива a в файл f, иначе записываются элементы массива b
  8. Файл f закрывается
  9. Файл f открывается для чтения
  10. Пока файл f не пуст, считывается строка из файла и выводится в консоль
  11. Файл f закрывается

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

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