Министерство образования Российской Федерации
Санкт-Петербургский государственный горный институт им. Г.В. Плеханова
(технический университет)
Кафедра информатики и компьютерных технологий
РАСЧЁТНО-ГРАФИЧЕСКОЕ ЗАДАНИЕ
|
По дисциплине __________________________________________________________
________________________________________________________________________
(наименование учебной дисциплины согласно учебному плану)
ПОЯСНИТЕЛБНАЯ ЗАПИСКА
|
Тема:
________________________________________________________________________
________________________________________________________________________
|
|||
|
|||
Автор: студент гр. _____ ____________________ /___________________/
(подпись) (Ф.И.О.)
ОЦЕНКА: _____________
Дата: 04.06.2003
|
ПРОВЕРИЛ доцент _______________ /________________/
(должност ь) (подпись) (Ф.И.О.)
Санкт-Петербург
2003
Аннотация
Во второй части пояснительной записки представлена программа на языке Pascal, позволяющая вычислять матричное выражение. Целью данной работы является получение навыков работы с массивами и подпрограммами, ознакомление с выводом данных из файла.
Страниц 14, рисунков 2.
The Summary
In the second part explanatory note the Pascal language program is submitted. It allows to calculate matrix expression. The objective of this work is obtaining skills of operation with the arrays both subroutines and acquaintance with data entry from the file.
Pages 14, figures 2.
Оглавление
Оглавление. 3
Введение. 4
Анализ задачи. 5
Тест. 5
Блок -схема алгоритма. 7
Программа на языке Turbo Pascal 9
Исходные данные. 11
Результаты счета. 11
Вывод. 12
Заключение. 13
Библиографический список. 14
Введение
Для вычисления матричного выражения в среде Turbo Pascal применим технологию постепенного наращивания программы. Программа должна вводить размеры и элементы матрицы из заранее созданного файла и содержать процедуры вывода матрицы на экран, транспонирования матрицы, умножения, сложения и вычитания двух матриц, а также умножение матрицы на скаляр.
Анализ задачи
Вычислить матричное выражение при заданных значениях, используя процедуры программ в среде Turbo Pascal.
Заданs следующие матрицы:
А=
Проанализируем матричное выражение. Умножение матрицы А на саму себя возможно, так как число строк в матрице А равно числу её столбцов, что и необходимо при умножении матриц. Матрицу В можно умножить на любое число, так что произведение 2*В возможно. Матрицы А и В одинаковой размерности , так что сложение их возможно. При транспонировании полученой матрицы получается также матрица размерностью 3x3, которую по правилам умножения можно умножить на матрицу С.
Тест
В данном разделе представлены результаты счёта матричного выражения с помощью Microsoft Excel. Дано матричное выражение, , которое вычислено при следующих значениях:
А=
Выполнение расчётов в таблице:
Блок -схема алгоритма
Программа на языке Turbo Pascal
Program RGZ_2;
Type matr=array[1..4,1..4] of real;
Var A,B,C,K,E,ET,R:matr;
fa,fb,fc:text;{cooтветствующие}
fr:text
{Процедура ввода матриц}
Procedure Vvod(Var f:text;Var B:matr; m,n:integer);
Var i,j:integer;
Begin
for i:1 to m do
begin
for j:= to n do
Read(f,B[i,j]);
readln (f);
end;
End;
{Процедура для расчета матрицы 2В}
Procedure Matr2B(B:matr;m,n:integer;Var K:matr);
Var i,j:integer;
S:real;
Begun
for i:=1 to m do
for j:=1 to n do
K[i,j]:=B[i,j]*2;
end;
{Процедура суммирования двух матриц}
Procedure Sum(K,A:matr;m,n:integer;Var E:matr);
Var i,j:integer;
S:real;
Begin
for i:=1 to m do
for j:= to n do
E[i,j]:=K[i,j]+A[i,j];
end;
{Процедура транспонирования матриц}
Procedure Transp(E:matr; m,n:integer;Var T:matr);
Var i,j:integer;
Begin
for j:=1 to m do
for i:=1 to n do
T[i,j]:=E[j,i];
end;
{Процедура для произведения двух матриц}
Procedure Mult(C,T:matr;m,l,n:integer;Var R:matr);
Var i,j,k:integer;
S:real;
Begin
for i:=1 to m do
begin
for j:=1 to n do
begin
S:=0;
for k:=1 to 1 do
S:S+C[i,j]*T[k,j];
R[i,j]:=S;
end;
end;
End;
{Процедура вывода итоговой матрицы}
Procedure Vivod(R:matr;m,n:integer;q:string);
Var i,j:integer;
Begin
writeln(fr,'Матрица',q'имеет вид:');
for i:=1 to m do
begin
fori:=1 to n do
write(fr,R[i,j]:6:3,' ');
writeln(fr);
end;
End;
BEGIN
Otkr(fa,'a.dan');
Otkr(fa,'b.dan');
Otkr(fa,'c.dan');
assign(fr,'r.res');
rewrite(fr);
Vvjd(fa,A,3,3);
Vvjd(fb,B,3,3);
Vvjd(fc,C,2,3);
Matr2B(B,3,3,K);
Sum(K,A,3,3,E);
Trasp(e,3,3,T);
Mult(C,T,3,3,2,R)
Vivod(A,3,3,'A');
Vivod(B,3,3,'B');
Vivod(C,3,2,'C');
Vivod(K,3,3,'K');
Vivod(E,3,3,'E');
Vivod(ЕT,3,3,'ЕT');
Vivod(R,3,2,'R');
Writeln;
Vivod(R,3,2,'R');
End.
Исходные данные
Исходные данные читаются из файлов a.dan , b.dan, c.dan , которые должены находиться в том же каталоге, что и сама программа. В этих файлах указывается структура матриц, затем на следующих
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.