Реферат

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

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 20.2.2025





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

РЯЗАНСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ

УНИВЕРСИТЕТ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ И ПРИКЛАДНОЙ МАТЕМАТИКИ

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

к курсовой работе по дисциплине

«АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ И ПРОГРАММИРОВАНИЕ»

Выполнил: студент группы   З-86

Бирюков И.В.
Проверил: доцент кафедры ВПМ

Новичков В.С.

Рязань 2008

Оглавление


Задание на курсовую работу. 3

Введение. 4

Анализ задания и математическая постановка задачи. 5

Разработка схемы алгоритма и ее описание. 7

Разработка программы и ее описание. 10

Инструкция по пользованию разработкой программы.. 11

Решение контрольных примеров и проверка правильности функционирования      программы   13

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

Заключение. 19

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


ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ


Рязанский государственный радиотехнический университет

Факультет вычислительной техники

Кафедра вычислительной и прикладной математики

ЗАДАНИЕ

на курсовую работу по дисциплине

«Алгоритмические языки и программирование»

Студенту                Бирюкову И.В.          группы    З-86

Составить подпрограмму-функцию нахождения минимального значения элемента в одномерном массиве. Используя функцию, найти сумму минимальных элементов в третьей строке матрицы B и в четвертом столбце матрицы
A = B + BT * C *B
Где A, B, C – квадратные матрицы размером 5х5

Элементы матрицы B определить по формуле

Элементы матрицы С задать произвольно.
Дополнительно рекомендуемая литература
  1. Волков Е.А. Численные методы: Учеб. пособ. 2-е изд., испр. М.: Наука, 1987.


Дата выдачи задания: 20.09.2008.

Дата выполнения задания: 1.12.2008.
Преподаватель: Новичков В.С.

Введение


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

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

Анализ задания и математическая постановка задачи


При решении поставленной задачи необходимо выполнить следующие действия:
  1. Ввести значения элементов массива C.
  2. Ввести значения элементов массива B.
  3. Напечатать значения элементов исходных матриц C и B.
  4. Провести транспонирование матрицы B, т.е. BT := BT.
  5. Умножить матрицу BT на матрицу C: BtC := BT * C.
  6. Умножить матрицу BtC на матрицу B: BtCB := BtC * B.
  7. Сложить матрицу B и матрицу BtCB: A:=B + BtCB.
  8. Найти минимальной значение элементов в третьей строке матрицы A.
  9. Найти минимальной значение элементов в четвертом столбце матрицы B.
  10. Сложить минимальные элементы матрицы A и матрицы B: minA + minB.
  11. Вывод результата на экран.

При отладке с программы с целью контроля вычислений после каждого указанного пункта будем производить печать матриц. Печать целесообразно реализовать с помощью подпрограммы. Пункты 5 и 6 целесообразно также оформить в виде подпрограммы умножения квадратных матриц.


Матрицей будем называть таблицу чисел

Если m=n, то матрица называется квадратной. Квадратная матрица из n  строк и n столбцов, называется матрицей n-го порядка.

Умножение матриц А и В, т.е. получение произведения этих матриц E = АВ, возможно лишь в том случае, когда число столбцов матрицы А равно числу строк матрицы В . Такие матрицы называются согласованными.



Рис. 1

Произведением двух согласованных матриц Аmk={aij}mk и  Вkn={bij}kn называется такая третья матрица Сmn={cij}mn для кoторой каждый элемент cij , i=1,m, j=1,n.вычисляется по формуле (рис. 1).



Матрица АТ, полученная из данной матрицы А заменой каждой её строки столбцом с тем же номером, называется транспонированной относительно матрицы А . Если матрица А имеет размеры m x n, то матрица АТ имеет размеры n x m.


Пример:

Таким же образом транспонируется матрица B.

Суммой двух прямоугольных матриц A = [aij] и B = [bij] одинаковых размеров m x n называется матрица C = [cij] тех же размеров, элементы которой равны суммам  соответствующих элементов данной матрицы.

Разработка схемы алгоритма и ее описание


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



Рис. 2 Укрупненная схема алгоритма

решения задачи

Проведем детализацию в последовательности, определяемой нумерации блоков на рис. 2.

Ввод элементов матрицы
C и
B.
В данном блоке определен ввод значений элементов квадратных матриц C и B размером 5х5. Всего должно быть введено элементов 25 значений в матрицу C, заполнение в матрице  в программе происходят с клавиатуры пользователем, структурограмма которой приведена на рис. 3.




Рис. 3 Структурограмма заполнения

массива C с клавиатуры
Матрица B заполняется по формуле:

Структурограмма, которая приведена на рис. 4.



Рис. 4 Структурограмма заполнения

массива B по формуле
Печать исходных матриц
B и
C.
(а также отладочная печать матриц BT, BtC, BtCB, A) реализовано с помощью подпрограммы, структурограмма которой приведена на рис. 5.




Рис. 5 Структурограмма печати исходных матриц

Умножение матриц представлено соответствующей подпрограммой, структурограмма которой приведена на рис. 6.




Рис. 6 Структурограмма подпрограммы

умножения квадратных матриц

Транспонирование матриц
B
реализуется в вспомогательные массивы BT по схеме приведенной на рис. 7.



Рис. 7 Детализация процесса транспонирования
Сложение матрицы B и BtCB представим в виде выражения над массивами следующим оператором:

A = B + BtCB

Нахождение суммы минимальных элементов в третьей строке матрицы B и в четвертом столбце матрицы A. Схема приведена на рис. 8.



Рис. 8 Детализация нахождения минимальных элементов

Полученные в результате детализации отдельные алгоритмы объединим в соответствии с общей схемой (рис. 2) вместе с целью получения полного алгоритма решения поставленной задачи.


Разработка программы и ее описание


Схема полного алгоритма программы приведена на рис. 9.



Рис. 9 Полный алгоритм программы


Инструкция по пользованию разработкой программы


Для выполнения данной программы обязательными аппаратный и программные требования:
  1. процессор Pentium 600 МГц;
  2. память ОЗУ 128Мб;
  3. видеоадаптер VESA- совместимый VGA;
  4. жесткий диск: 2Гб;
  5. тип клавиатуры: 101-клавиша;
  6. мышь;
  7. операционная система Windows 98

Заполнение матрицы происходит случайным образом, с помощью функции random. Числа берутся от 0 до 9, тип целый (real) рис. 10.



Рис. 10 Матрица C заполнена целыми

числами от 0 до 9

Переменные используемые в данной программе приведены в таблице 1.

Табл. 1

Переменная

Тип

Назначение

A[5,5]

real

Массив в который помещается результат сложения матрицы B[5,5] и BtCB[5,5]

B[5,5]

real

Массив в котором хранится 2-ая матрица

C[5,5]

real

Массив в котором хранится 3-ая матрица

BT[5,5]

real

Массив в который помещается результат транспонирования матрицы B

BtC[5,5]

real

Массив в который помещается результат умножения матрицы BT [5,5] на С[5,5]

BtCB[5,5]

real

Массив в который помещается результат умножения матрицы BtC [5,5] на B[5,5]

minA

real

В переменную перемещается минимальный элемент 4-ого столбца матрицы A

minB

real

В переменную перемещается минимальный элемент 3-ей строки матрицы B

i, j

Integer

Переменные которые используются в качестве счетчиков в циклах




Решение контрольных примеров и проверка правильности функционирования программы


Запускаем программу, она сразу же заполняет массивы C и B:

     

Транспонируем матрицу B:





Произведение матриц BtC := BT * C:




Произведение матриц BtCИ := BtC * B:



Сумма матриц A := B + BtCB



Сумма минимальных элементов в 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г.

1. Реферат Тимашевск взгляд из ЦРБ
2. Реферат на тему Epilogue Justinian And The Reconquest Of The
3. Реферат на тему Franklins Tale By Chaucer Essay Research Paper
4. Реферат Альтернативные теории международной торговли
5. Реферат Недвижимость Санкт-Петербурга
6. Контрольная работа Ростовская область
7. Реферат Психологические методы управления трудовым коллективом на примере ОАО Макбур
8. Реферат на тему Jesus Essay Research Paper Jesus was considered
9. Презентация Понятие правовой ответственности
10. Сочинение Рецензия на фильм Человек-амфибия Режиссеры Владимир Казанский, Владимир Чеботарев