Нахождение произведения квадратной матрицы через функцию

Автор работы: Пользователь скрыл имя, 24 Марта 2011 в 19:51, курсовая работа

Описание работы

В данной курсовой работе написано решение нахождения произведения элементов некоторой квадратной матрицы через написанную функцию, что существенным образом облегчает решение пользователем этой задачи. В качестве языка программирования выбран изучаемый на занятиях по дисциплине «Алгоритмические языки и программирование» язык программирования Турбо Паскаль. К достоинством языка Турбо Паскаль следует отнести такие его характеристики, как модульность, универсальность, удобство работы с массивами и т.д.

Файлы: 1 файл

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ.doc

— 1.26 Мб (Скачать файл)

Сумма минимальных элементов  в 3-ей строке матрицы  B и в 4-ом столбце матрицы A:

Sum := minA + minB;

 

Текст программы и ее описание

Программа для нахождения произведения элементов  некоторой квадратной матрицы написанная на языке Turbo Pascal. Программа функционирует в среде Turbo Pascal.

Исходные  данные, имеющие смысл значений элементов  массива, вводятся произвольным образом.

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

    • транспонирование квадратной матрицы во вспомогательный массив;
    • умножение квадратных матриц размером 5х5 (реализовано виде соответствующей подпрограммы общего вида);
    • сложение квадратной матрицы.

Каждая  матричная операция сопровождается печатью соответствующего массива (печать значений элементов квадратной матрицы выполнена в виде подпрограммы).

После сложения двух квадратных матриц производиться  нахождения минимального элемента в 3-ей строке матрицы B и 4-ом столбце матрицы A, после чего происходит сумма данных элементов.

Окончательный вариант программы имеет следующий  вид:

program matrix; 

const

Nmatr = 5; 

type

MatrixType = array[1..Nmatr, 1..Nmatr] of real;

 MatrixName = string[70];

{--------------начало  процедур и функций программы}

{процедура вывода  матрицы на экран}

{ScreenMatrix - матрица

ScreenText - имя матрицы}

procedure screen(ScreenMatrix: MatrixType; ScreenText: MatrixName);

var

i,j: integer;

begin

writeln(ScreenText);

for i:=1 to Nmatr do

  begin

   for j:=1 to Nmatr do

    write(ScreenMatrix[i,j]:8:2);

   writeln;

  end;

writeln

end; 

{процедура умножения матрицы}

{AMatrix, BMatrix - матрицы

CMatrix - результат}

procedure MultiplicationMatrix(AMatrix, BMatrix: MatrixType; var CMatrix: MatrixType);

var

i,j,k: integer;

s: real;

begin

for i:=1 to Nmatr do

  for j:=1 to Nmatr do

   begin

    s:=0;

    for k:=1 to Nmatr do

     s:=s+AMatrix[i,k]*BMatrix[k,j];

    CMatrix[i,j]:=s;

   end;

end; 

{функция расчета  суммы минимальных элементов}

function Normal(AMatrix, BMatrix: MatrixType): real;

var

i: integer;

minA, minB,sum: real;

begin

minA:=AMatrix[1,4];

minB:=BMatrix[3,1];

for i:=1 to NMatr do

begin

  if AMatrix[i,4] < minA then

   minA:=AMatrix[i,4];

  if BMatrix[3,i] < minB then

   minB:=BMatrix[3,i];

end;

sum:= minA+minB;

writeln('Сумма минимальных  элементов матрицы A и В равна: ',sum:5:3 );

end;

{--------------конец  процедур и функций программы} 

var

A, B, C, BT, BtC, BtCB: MatrixType;

 i,j: integer;

minA, minB: real;

begin

{ввод матрицы  С - произвольным методом}

writeln('Введите  элементы матрицы С:');

for i:=1 to Nmatr do

for j:=1 to Nmatr do

  C[i,j]:=random(9)+1;

{конец ввода  матрицы С} 

{заполнение  матрицы В - по формуле}

for i:=1 to Nmatr do

for j:=1 to Nmatr do

  B[i,j]:=(1+sin(i+j))/(i+cos(i+j));

{конец заполнения  матрицы В} 

{Вывод матрицы  В на экран}

Screen(B,'Матрица  В имеет следующий вид:');

{Вывод матрицы  С на экран}

Screen(C,'Матрица  C имеет следующий вид:'); 

{транспонирование  матрицы В в матрицу ВТ}

for i:=1 to Nmatr do

for j:=1 to Nmatr do

  BT[i,j]:=B[j,i];

{вывод матрицы  ВТ на экран}

Screen(BT,'Транспонированная  матрица ВТ имеет следующий  вид:'); 

{умножение транспонированной  матрицы ВТ на матрицу С}

MultiplicationMatrix(BT,C,BtC);

{вывод матрицы  BtC на экран}

Screen(BtC,'Результат  умножения матрицы ВT и C в  результирующую матрицу BtC:'); 

{умножение матрицы  BtC на матрицу В}

MultiplicationMatrix(BtC,B,BtCB);

{вывод матрицы  BtCB на экран}

Screen(BtCB,'Результат  умножения матрицы ВtC и B в результирующую матрицу BtCB:'); 

{цикл вычисляющий  сложения матрицы В и матрицы  BtCB}

for i:=1 to Nmatr do

for j:=1 to Nmatr do

  A[i,j]:=B[i,j]+BtCB[i,j];

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

Screen(A,'Матрица  A имеет следующий вид:'); 

{вызов функции}

Normal(A, B);

end.

  
Заключение

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

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

 

Список  литературы

  1. В. В. Фаронов «Turbo Pascal»: Питер, 2007г.
  2. В. С. Новичков, А.Н. Пылькин «Алгоритмические языки и программирование. Методические указания к курсовой работе»: Рязань «РГРТА», 2002г.

Информация о работе Нахождение произведения квадратной матрицы через функцию