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