Реферат

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

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

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

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

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

от 25%

Подписываем

договор

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

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





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

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

УНИВЕРСИТЕТ

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

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

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

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

Выполнил: студент группы   З-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. Курсовая на тему Внешняя политика Японии 50 х гг XX в начала XXI в
3. Реферат Система гражданского права
4. Реферат на тему Prop 22 Essay Research Paper Why is
5. Курсовая на тему Латентная преступность и методы е выявления в современных условиях
6. Реферат на тему Dana Thinks She
7. Лекция Локальные вычислительные сети. Лекции
8. Реферат Необходимость и возникновение денег
9. Лабораторная_работа на тему Решение систем линейных алгебраических уравнений прямые методы
10. Доклад на тему Про результати організаційно технологічної практики