Разработка программ для вычисления матричного выражения в среде TURBO PASCAL. Вычисление матричного выражения с использованием подпрограмм

Страницы работы

12 страниц (Word-файл)

Фрагмент текста работы

Министерство образования Российской Федерации

Санкт-Петербургский государственный горный институт им.Г.В.Плеханова

(технический университет)

Кафедра информатики и компьютерных технологий

Расчетно-графическое задание

Тема. Разработка программ для вычисления матричного выражения в среде TURBO PASCAL

Выполнил:студент группы ГГ-02     / /

(должность)                                             (подпись)                    (ф.и.о.) 

Проверил:                     / Н /

(должность)                      (подпись)                                           (ф.и.о.)

Дата:______________

Санкт-Петербург

2003

Аннотация

В данном РГЗ разработана программа на языке ТР для вычисления заданного матричного выражения двумя способами: непосредственно и с использованием подпрограмм.

Annotation

In this CGT I made a program based on TP.Program is for calculation the given matrix with a help of two methods: straightly and with using a program.

Введение

Задача, поставленная в данном РГЗ выполнена с помощью языка программирования TURBO PASCAL.

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

Задание

Цель работы. Получить навыки работы с массивами и подпрограммами; познакомиться с вводом и выводом данных из файла.

Задание.

1.Разработать программы на языке TURBO PASCAL  для вычисления матричного выражения  4А33*ВТ2332 двумя способами: непосредственно и с использованием подпрограмм, реализующих стандартные матричные операции. Ввод исходных матриц производить из заранее созданного файла.Исходные матрицы задать самостоятельно но одинаково в обоих способах.

2.Ввести разработанные программы в компьютер, отладить их и сохранить в личной папке.

3.Тестовый пример выполнить с помощью процессора Excel.

Решение

Программа 1(вычисление матричного выражения непосредственно).

program lr8_1;

type

mas1=array[1..3,1..3] of real;

mas2=array[1..2,1..3] of real;

mas3=array[1..3,1..2] of real;

var

a:mas1;b:mas2;bt,p,c,q:mas3;

k,m,n,i,j:integer;sum:real;f,f1,f2:text;

begin

assign(f,'A.dat');

assign(f1,'B.dat');

assign(f2,'C.dat');

reset(f);

read(f,m,n);

for i:=1 to m do

for j:=1 to n do

read(f,a[i,j]);

close(f);

writeln('Матрица А');

for i:=1 to m do

begin

for j:=1 to n do

write(a[i,j]:5:1);

writeln;

end;

reset(f1);

read(f1,m,n);

for i:=1 to m do

for j:=1 to n do

read(f1,b[i,j]);

close(f1);

for i:=1 to m do

for j:=1 to n do

bt[j,i]:=b[i,j];

writeln('Матрица В');

for i:=1 to m do

begin

for j:=1 to n do

write(b[i,j]:5:1);

writeln;

end;

reset(f2);

read(f2,m,n);

for i:=1 to 3 do

for j:=1 to 2 do

read(f2,c[i,j]);

close(f2);

writeln('Матрица С');

for i:=1 to m do

begin

for j:=1 to n do

write(c[i,j]:5:1);

writeln;

end;

begin

for i:=1 to 3 do

for j:=1 to 2 do

begin

sum:=0;

for k:=1 to 3 do

sum:=sum+a[i,k]*bt[k,j];

p[i,j]:=4*sum;

end;

end;

writeln;

writeln('Искомая матрица ');

for i:=1 to m do

begin

for j:=1 to n do

begin

q[i,j]:=p[i,j]+c[i,j];

write(q[i,j]:5:1,' ');

end;

writeln;

end;

end.

Программа 2(вычисление матричного выражения с использованием подпрограмм).

program rgz_2;

type

mas1=array[1..3,1..3] of real;

mas2=array[1..2,1..3] of real;

mas3=array[1..3,1..2] of real;

var

a:mas1;b:mas2;bt,d,c,l:mas3;

m,n,i,j:integer;f,f1,f2:text;

procedure mout1(p:mas1;m,n:integer);

var

i,j:integer;

begin for i:=1 to m do

begin

for j:=1 to n do

write(p[i,j]:7:1);

writeln;

end;

end;

procedure mout2(p:mas2;m,n:integer);

var

i,j:integer;

begin for i:=1 to m do

begin

for j:=1 to n do

write(p[i,j]:7:1);

writeln;

end;

end;

procedure mout3(p:mas3;m,n:integer);

var

i,j:integer;

begin for i:=1 to m do

begin

for j:=1 to n do

write(p[i,j]:7:1);

writeln;

end;

end;

procedure tr(p:mas2;m,n:integer;var q:mas3);

var

i,j:integer;

begin

for i:=1 to 2 do

for j:=1 to 3 do

q[j,i]:=p[i,j];

end;

procedure mult(p:mas1;q:mas3;m,y,n:integer;var r:mas3);

var

i,j,k:integer;

sum:real;

begin

for i:=1 to m do

for j:=1 to n do

begin sum:=0;

for k:=1 to y do

sum:=(sum+p[i,k]*q[k,j]);

r[i,j]:=4*sum;

end;end;

procedure summa(p,q:mas3;m,n:integer;var r:mas3);

var i,j:integer;

begin

for i:=1 to m do

for j:=1 to n do

r[i,j]:=p[i,j]+q[i,j];

end;

begin

assign(f,'A.dat');

assign(f1,'B.dat');

assign(f2,'C.dat');

reset(f);

read(f,m,n);

for i:=1 to m do

for j:=1 to n do

read(f,a[i,j]);

close(f);

writeln('Матрица А');

mout1(a,m,n);

reset(f1);

read(f1,m,n);

for i:=1 to m do

for j:=1 to n do

read(f1,b[i,j]);

close(f1);

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

mout2(b,m,n);

reset(f2);

read(f2,m,n);

for i:=1 to m do

for j:=1 to n do

read(f2,c[i,j]);

close(f2);

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

mout3(c,m,n);

tr(b,m,n,bt);

writeln('Матрица BT');

mout3(bt,m,n);

mult(a,bt,m,m,n,d);

writeln('Матрица  D=4*A*BT');

mout3(d,m,n);

summa(d,c,m,n,l);

writeln('Матрица  L=4*A*BT+C');

mout3(l,m,n);

end.

Результаты работы.

Программа1

Матрица А

2.0  1.0  0.0

3.0 -2.0  4.0

8.0  2.0  1.0

Матрица B

1.0  2.0  3.0

4.0  5.0  6.0

Матрица C

2.0  3.0

4.0  5.0

8.0  9.0

Искомая матрица

18.0  55.0

48.0 109.0

68.0 201.0

Программа2

Матрица А

2.0    1.0    0.0

3.0   -2.0    4.0

8.0    2.0    1.0

Матрица B

1.0    2.0    3.0

4.0    5.0    6.0

Матрица C

2.0    3.0

4.0    5.0

8.0    9.0

Матрица BT

1.0    4.0

2.0    5.0

3.0    6.0

Матрица D=4*A*BT

16.0   52.0

44.0  104.0

60.0  192.0

Матрица L=4*A*BT+C

18.0   55.0

48.0  109.0

68.0  201.0

Заключение

В результате проведенной работы была успешно решена поставленная

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Расчетно-графические работы
Размер файла:
135 Kb
Скачали:
0