Написание подпрограмм. Работа с файлами, страница 4

     sum:=4*p[k,n]*q[n,m]+sum;

    z[k,m]:=sum

   end;

end;

{описание функции суммы (sum)}

function sum(q,p:mas; i3,j3:integer; var w:mas): real;

var m,n:integer;

begin

 for m:=1 to i3 do

  for n:=1 to j3 do

   w[m,n]:=q[m,n]+p[m,n];

end;

begin

{очистка экрана}

 clrscr;

{ввод из файла размеров и элементов матрици A}

assign (f,'C:\tp\matrA.inp');

 reset(f);

 read(f,i,j);

 for m:=1 to i do

  for n:=1 to j do read (f,a[m,n]);

 close(f);

{ввод из файла размеров и элементов матрици B}

 assign (f,'C:\tp\matrB.inp');

 reset(f);

 read(f,i2,j2);

 for m:=1 to i2 do

  for n:=1 to j2 do read (f,b[m,n]);

 close(f);

{ввод из файла размеров и элементов матрици C}

 assign (f,'C:\tp\matrC.inp');

 reset(f);

 read(f,i3,j3);

 for m:=1 to i3 do

  for n:=1 to j3 do read (f,c[m,n]);

close(f);

{вывод матрици A}

 writeln('    матрица A');

 mout(a,i,j);

{вывод матрици B}

 writeln('    матрица B');

 mout(b,i2,j2);

{вывод матрици C}

 writeln('    матрица C');

 mout(c,i3,j3);

{транспонирование и вывод матрици B}

 tr(b,i2,j2,bt);

 writeln('  B транспонированная');

 mout(bt,j2,i2);

{умножение матрици A на B транспонированную}

 mult(a,bt,i,j,i2,g);

 writeln('  4*A умноженная на B транспонированную');

 mout(g,j2,i2);

{A*B трансп. +С)}

 sum(g,c,i3,j3,e);

 writeln(' 4*A*B трансп. +C');

 mout(e,i3,j3);

 readln;

end.

Анализ результатов расчета

В результате написания программы получаем следуюший результат:

C*((2B+A)трансп

5  6  7

10  12  14

Что удовлетворяет результату полученному в табличном процессоре Microsoft Excel, который был представлен в разделе “Контрольный вариант”. Это доказывает то что программа была написана правильно и работает коректно.

Заключение

В процессе  выполнения задание была  освоена технология постепенного наращивания программы с одновременной отладкой  и практически доказано  ее  преимущество перед другим вариантом. Некоторая сложность при написании подпрограмм компенсируется наглядностью и сведением к нулю ошибок, возникающих в процессе выполнения всей программы.  Работа с файлами облегчает позиционные задачи, тем самым повышая производительность, продуктивность и расширяя диапазон для применения.

Библиографический список:

·  « Лабораторные занятия по информатике» Часть 2. Начальное обучение программированию в ИСР Qbasic и Turbo Pascal

            Безмозгин Б.З. 1996-1997

·  «Turbo Pascal 7.0»  О. А. Меженный  - М: "Диалектика", 2001 г, 448 стр

·  «Прикладное программирование» Михаил Проломов  2000г.

·  «Введение в программирование» Межен Савон  1998 г.