Записать массивы в файл по правилу - 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.

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

  1. В первой строке кода объявляется константа max, которая определяет максимальное количество элементов в массиве.
  2. Затем объявляется тип данных mas, который представляет собой массив целых чисел.
  3. Далее объявляется процедура massiv, которая принимает три параметра: var a - массив целых чисел, var n - байтовое значение размера массива и var s - символ, обозначающий начало массива. Внутри процедуры выводится сообщение о массиве и его размере, затем считывается размер массива от пользователя. Для каждого элемента массива выводится его значение.
  4. В процедуре writefile принимаются четыре параметра: var f - текстовое файловое имя, var a - массив целых чисел, var b - второй массив целых чисел и var n, m - байтовые значения количества элементов в каждом массиве. Если n меньше m, то сначала записываются значения из первого массива, затем из второго. Если n больше или равно m, то сначала записываются значения из второго массива, затем из первого.
  5. В процедуре preobr считывается файл до конца, затем вычисляется сумма всех прочитанных значений и добавляется в конец файла.
  6. В основной части программы сначала вызывается процедура massiv для двух массивов, затем вызывается процедура writefile для записи обоих массивов в файл. Затем вызывается процедура readfile для чтения содержимого файла, затем вызывается процедура preobr для добавления суммы к файлу. Наконец, файл закрывается.

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


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

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

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