Записать массивы в файл по правилу - Pascal ABC
Формулировка задачи:
2. Ввести массивы A(n), B(m). Сформировать файл F, куда сначала записать короткий массив, затем – длинный. В конец файла записать сумму его значений. Вывести файл. Подпрограммы: ввод массива, получение файла, преобразование файла, вывод файла.
Решение задачи: «Записать массивы в файл по правилу»
textual
Листинг программы
const max=100; type mas=array[1..max] of integer; procedure massiv(var a:mas;var n:byte;s:char); var i:byte; begin writeln('Массив ',s); repeat write('Размер массива от 1 до ',max,':'); readln(n); until n in [1..max]; for i:=1 to n do begin write(s,'[',i,']='); readln(a[i]); end; end; procedure writefile(var f:text;a,b:mas;n,m:byte); var i:byte; begin assign(f,'massivy.txt'); rewrite(f); if n<m then begin for i:=1 to n do write(f,' ',a[i]); for i:=1 to m do write(f,' ',b[i]); end else begin for i:=1 to m do write(f,' ',b[i]); for i:=1 to n do write(f,' ',a[i]); end end; procedure preobr(var f:text); var a,s:integer; begin reset(f); s:=0; while not seekeof(f)do begin read(f,a); s:=s+a ; end; append(f); writeln(f,' ',s); end; procedure readfile(var f:text); var a:integer; begin reset(f); while not seekeof(f)do begin read(f,a); write(' ',a); end; writeln; end; var f:text; a,b:mas; n,m:byte; begin massiv(a,n,'A'); massiv(b,m,'B'); writefile(f,a,b,n,m); writeln('Исходный файл'); readfile(f); preobr(f); writeln('Добавление суммы'); readfile(f); close(f); end.
Объяснение кода листинга программы
- В первой строке кода объявляется константа max, которая определяет максимальное количество элементов в массиве.
- Затем объявляется тип данных mas, который представляет собой массив целых чисел.
- Далее объявляется процедура massiv, которая принимает три параметра: var a - массив целых чисел, var n - байтовое значение размера массива и var s - символ, обозначающий начало массива. Внутри процедуры выводится сообщение о массиве и его размере, затем считывается размер массива от пользователя. Для каждого элемента массива выводится его значение.
- В процедуре writefile принимаются четыре параметра: var f - текстовое файловое имя, var a - массив целых чисел, var b - второй массив целых чисел и var n, m - байтовые значения количества элементов в каждом массиве. Если n меньше m, то сначала записываются значения из первого массива, затем из второго. Если n больше или равно m, то сначала записываются значения из второго массива, затем из первого.
- В процедуре preobr считывается файл до конца, затем вычисляется сумма всех прочитанных значений и добавляется в конец файла.
- В основной части программы сначала вызывается процедура massiv для двух массивов, затем вызывается процедура writefile для записи обоих массивов в файл. Затем вызывается процедура readfile для чтения содержимого файла, затем вызывается процедура preobr для добавления суммы к файлу. Наконец, файл закрывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д