Разработка программ матричного выражения в среде Turbo Pascal. Блок -схема алгоритма. Программа на языке Turbo Pascal

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

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

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

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

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

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

РАСЧЁТНО-ГРАФИЧЕСКОЕ ЗАДАНИЕ

Информатика

 
 


По дисциплине  __________________________________________________________

________________________________________________________________________

(наименование учебной дисциплины согласно учебному плану)

ПОЯСНИТЕЛБНАЯ ЗАПИСКА

Разработка программ матричного выражения в среде Turbo Pascal

 
 


Тема:

________________________________________________________________________

________________________________________________________________________

ГГ-02

 

 
 


Автор: студент гр.   _____       ____________________                  /___________________/

                                                                                                       (подпись)                                                  (Ф.И.О.)

ОЦЕНКА:    _____________

Дата: 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 , которые должены находиться в том же каталоге, что и сама программа. В этих файлах указывается структура матриц, затем на следующих

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

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

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