Пояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования»




Скачать 66.29 Kb.
НазваниеПояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования»
Дата публикации10.02.2014
Размер66.29 Kb.
ТипПояснительная записка
uchebilka.ru > Информатика > Пояснительная записка
Реферат скачан с сайта allreferat.wow.ua


Turbo Paskal Операции над матрицами

Государственный Комитет Российской Федерации по Высшему Образованию Санкт-Петербургский Государственный Электротехнический Университет «ЛЭТИ» Кафедра Радиосистем Пояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования» Вариант №9: «Операции над Матрицами» Выполнил: студент Чапчаев В.В. факультет: РТ уч.группа: № 2142 Проверил: ассистент Аникин А.П. Санкт – Петербург 2 0 0 3 Условие задачи Программа работает в текстовом режиме. Пользователь выбирает операцию,вводит с клавиатуры размер матрицы и значения элементов матрицы. Программавыполняет заданную операцию и выводит на экран ее результат. Для реализациив программе предлагаются следующие операции: перемножение двух матриц,транспонирование, вычисление определителя, вычисление обратной матрицы,сложение (вычитание) двух матриц. Метод решения задачи После запуска программы, пользователю предлагается выбрать требуемуюоперацию: нахождение определителя, обратной матрицы, транспонированнойматрицы, сложение или вычитание двух матриц, умножение двух матриц. Этопроизводится по средствам ввода пользователем цифры, соответствующей даннойоперации. Далее следует запрос о размерах данной матрицы (кол-ве строк истолбцов), после ввода которых программа проверяет, чтобы введенныезначения не были отрицательными или не превышали допустимых размеровматрицы (в программе – 10х10). В случае, если перечисленные условия невыполняются, на экран выводится сообщение об ошибке, и программа завершаетработу. При выполнении условий, пользователю предлагается ввести склавиатуры исходную матрицу «А» (в программе – MAS1). Ввод производитсяпострочно, для перехода к следующей строке, пользователю необходимо нажатьклавишу «ENTER». После того, как число строк становится равным числу,введенному пользователем, ввод матрицы прекращается. Введенная матрицавыводится на экран для проверки. Далее следует проверка «пригодности»введенной матрицы к операции, выбранной пользователем, в случае«непригодности» матрицы, на экран выводится сообщение об ошибке, ипрограмма завершает работу. В случае «пригодности» матрицы, над нейпроизводится выбранная операция, после чего на экран выводится сообщение орезультате. Если пользователем была выбрана операция, требующая вторуюматрицу «В» (в программе – MAS2), пользователю предлагается ввести ееразмеры, как и при вводе матрицы «А», далее программа проверяет, возможноли проведение выбранной операции над матрицами с введенными параметрами.Если операция невозможна, то на экран выводится сообщение об ошибке, ипрограмма завершает работу. Иначе, операция выполняется, и еерезультирующая матрица «С» (в программе – MAS3) выводится на экран. Ввод матриц возможен только с клавиатуры, непосредственно привыполнении программы. Ввод данных «из файла» не предусмотрен, т.к. этотвариант в условии задачи не оговаривается. Исходные данные и форма их представления|Переменные |Структура |Тип |Назначение ||MAS1, MAS2, MAS3 |Двумерный массив|Вещественный |Матрицы «А», «В», «С»||i1, i2, i3 |Переменные |Целочисленный |Счетчик строк матриц || | | |А, В и С || | | |соответственно ||j1, j2, j3 |Переменные |Целочисленный |Счетчик столбцов || | | |матриц А, В и С || | | |соответственно ||m1, m2, m3 |Переменные |Целочисленный |Кол-во строк матриц || | | |А, В и С || | | |соответственно ||n1, n2, n3 |Переменные |Целочисленный |Кол-во столбцов || | | |матриц А, В и С || | | |соответственно ||operation |Переменные |Целочисленный |Вариант программы ||det |Переменные |Вещественный |Определитель ||k |Переменные |Целочисленный |Рабочая переменная | Блок – схема программы Текст Программы:Program MATRIX; Наименование программыUses CRT;VAR i1, i2, i3 : integer; Счетчик строк j1, j2, j3 : integer; Счетчик столбцов operation: integer; Вариант развития программы det : real; Определительk: integer;Рабочая переменная Массивы (матрицы), используемые в программе MAS1, Матрица А MAS2, Матрица В MAS3 : array [1..10,1..10] of real; Матрица СBEGIN Начало программы WriteLn ('Что Вы желаете делать с матрицами?'); Выбор пользователем варианта развития программы WriteLn ('Если Вы желаете найти определитель матрицы, нажмите1'); WriteLn ('Если Вы желаете найти обратную матрицу, нажмите 2'); WriteLn ('Если Вы желаете транспонировать матрицу, нажмите 3'); WriteLn ('Если Вы желаете сложить матрицы, нажмите 4'); WriteLn ('Если Вы желаете вычесть матрицы, нажмите 5'); WriteLn ('Если Вы желаете перемножить матрицы, нажмите 6'); ReadLn (operation); Занесение выбранного варианта в память WriteLn ('Введите кол-во строк исходной матрицы, не более 10'); ReadLn (m1); WriteLn ('Введите кол-во столбцов исходной матрицы, не более10'); ReadLn (n1); If ((1>n1) or (n1>10) or (1>m1) or (m1>10)) Условия ошибки then begin WriteLn ('ОШИБКА!!!'); Halt; end else begin WriteLn ('Введите исходную матрицу'); Ввод исходнойматрицы for i1:=1 to m1 do for j1:=1 to n1 do Read (MAS1[i1,j1]); end; for i1:=1 to m1 do Вывод исходной матрицы begin for j1:=1 to n1 do Write (MAS1[i1,j1]); WriteLn; end; Case operation of Оператор выбора «operation» 1: begin Определитель if (m1<>n1) then writeLn ('ОШИБКА!!!') Условиеошибки else begin Формула определителя det:=(MAS1[1,1]*MAS1[2,2]*MAS1[3,3] +MAS1[2,1]*MAS1[3,2]*MAS1[1,3] +MAS1[1,2]*MAS1[2,3]*MAS1[3,1]) -(MAS1[3,1]*MAS1[2,2]*MAS1[1,3] +MAS1[3,2]*MAS1[2,3]*MAS1[1,1] +MAS1[2,1]*MAS1[1,2]*MAS1[3,3]); WriteLn ('Opredelitel det=',det); Выводопределителя end; end; 2: begin Обратная матрица if (m1<>n1) then WriteLn ('ОШИБКА!!!') Условиеошибки else begin det:=(MAS1[1,1]*MAS1[2,2]*MAS1[3,3]Определитель +MAS1[2,1]*MAS1[3,2]*MAS1[1,3] +MAS1[1,2]*MAS1[2,3]*MAS1[3,1]) -(MAS1[3,1]*MAS1[2,2]*MAS1[1,3] +MAS1[3,2]*MAS1[2,3]*MAS1[1,1] +MAS1[2,1]*MAS1[1,2]*MAS1[3,3]); if det = 0 then WriteLn ('ОШИБКА!!!')Условие ошибки else begin Союзная матрица for i1:=1 to m1 do for j1:=1 to n1 doMAS2[i1,j1]:=MAS1[j1,i1]; Итоговая формула for i1:=1 to m1 do for j1:=1 to n1 do MAS3[i1,j1]:=(1/det)*MAS2[i1,j1]; WriteLn; WriteLn ('Обратная матрица:'); for i1:=1 to m1 do begin Выводобратной матрицы for j1:=1 ton1 do Write(MAS3[i1,j1]); WriteLn; end; end; end; end; 3: begin Транспонирование матрицы for i1:=1 to m1 do for j1:=1 to n1 do MAS2[i1,j1]:=MAS1[j1,i1];Формула WriteLn ('Транспонированная матрица: '); for i1:=1 to m1 do begin Вывод транспонированнойматрицы for j1:=1 to n1 do Write (MAS2[i1,j1]); WriteLn; end; end; 4,5: begin Сложение/вычитание матриц Ввод второй матрицы WriteLn ('Введите кол-во строк второйматрицы'); ReadLn (m2); Writeln ('Введите кол-во столбцов второйматрицы'); ReadLn (n2); If (n2<>n1) or (m2<>m1) then WriteLn ('OSHIBKA!!!') Условие ошибки else begin WriteLn ('Введите вторую матрицу'); for i1:=1 to m1 do for j1:=1 to n1 do Read (MAS2[i1,j1]); end; for i1:=1 to m1 do Вывод второй матрицы begin for j1:=1 to n1 do Write (MAS2[i1,j1]); WriteLn; end; if operation = 4 then k := 1; if operation = 5 then k := -1; for i1:=1 to m1 do for j1:=1 to n1 do MAS3[i1,j1]:=MAS1[i1,j1]+k*MAS2[i1,j1];Итоговая формула writeln('Сумма/разность:'); for i1:=1 to m1 do begin for j1:=1 to n1 do Write(MAS3[i1,j1]); WriteLn; end; end; 6: begin Умножение матриц Ввод второй матрицы WriteLn ('Введите кол-во строк второй матрицы'); ReadLn (m2); Writeln ('Введите кол-во столбцов второйматрицы'); ReadLn (n2); If ((1>=m2) or (m2>=10) or (1>=n2) or (n2>=10)Условие ошибки or (n2<>m1)) then WriteLn('ОШИБКА!!!') else begin WriteLn ('Введите вторую матрицу'); for i2:=1 to m2 do for j2:=1 to n2 do Read(MAS2[i2,j2]); end; for i2:=1 to m2 do begin Вывод второй матрицы for j2:=1 to n2 do Write (MAS2[i2,j2]); WriteLn; end; m3:=m1; n3:=n2; for i3:=1 to m3 do for j3:=1 to n3 do begin MAS3[i3,j3] := 0; for i2:= 1 to m2 do Итоговая формула MAS3[i3,j3] :=MAS3[i3,j3] +MAS1[i3,i2] * MAS2[i2,j3]; end; begin Вывод произведения writeln; writeln('Произведение:'); for i3:=1 to m1 do begin for j3:=1 to n2 do Write(MAS3[i3,j3]); WriteLn; end; end; end; End; End Case ReadKey;END. Конец программы Пример работы программы 1. Операция нахождения определителя: 1) При появлении на экране меню с выбором операций, выбираем 1. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 ( 5) Программа выдает ответ: det = 54. 2. Операция нахождения обратной матрицы: 1) При появлении на экране меню с выбором операций, выбираем 2. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 ( 5) Программа выдает ответ: ( 1,851*100 9,259*100 1,481*10 ( ( 7,407*100 5,555*100 1,851*100 ( ( 9,259*100 1,296*10 7,407*100 (. 3. Операция транспонирования матрицы: 1) При появлении на экране меню с выбором операций, выбираем 3. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 ( 5) Программа выдает ответ: ( 1 5 8 ( ( 4 3 1 ( ( 5 7 4 (. 4. Операция сложения матриц: 1) При появлении на экране меню с выбором операций, выбираем 3. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 ( 5) На предложение ввести кол-во строк матрицы, выбираем 3. 6) Кол-во столбцов – 3. 7) Вводим матрицу: ( 2 8 10 ( ( 10 6 14 ( ( 16 2 8 (. 8) Программа выдает ответ: ( 3 12 15 ( ( 15 9 21 ( ( 24 3 12 (. 5. Операция вычитания матриц: 1) При появлении на экране меню с выбором операций, выбираем 3. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 ( 5) На предложение ввести кол-во строк матрицы, выбираем 3. 6) Кол-во столбцов – 3. 7) Вводим матрицу: ( 2 8 10 ( ( 10 6 14 ( ( 16 2 8 (. 8) Программа выдает ответ: ( -1 -4 -5 ( ( -5 -3 -7 ( ( -8 -1 -4 (. 6. Операция перемножения матриц: 1) При появлении на экране меню с выбором операций, выбираем 3. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 (. 5) На предложение ввести кол-во строк матрицы, выбираем 3. 6) Кол-во столбцов – 3. 7) Вводим матрицу: ( 2 8 10 ( ( 10 6 14 ( ( 16 2 8 (. 8) Программа выдает ответ: ( 122 42 106 ( ( 152 72 148 ( ( 90 78 126 (. 7. Первый исключительный случай: 1) При появлении на экране меню с выбором операций, выбираем 1. 2) На предложение ввести кол-во строк матрицы, выбираем 0. 3) Кол-во столбцов – 3. 4) Программа выдает: «ОШИБКА!!!». 8. Второй исключительный случай: 1) При появлении на экране меню с выбором операций, выбираем 1 (2, 3). 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 2. 4) Вводим матрицу: ( 1 4 ( ( 5 3 ( ( 8 1 (. 5) Программа выдает: «ОШИБКА!!!». 9. Третий исключительный случай: 1) При появлении на экране меню с выбором операций, выбираем 4. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 (. 5) На предложение ввести кол-во строк матрицы, выбираем 2. 6) Кол-во столбцов – 2. 6) Программа выдает: «ОШИБКА!!!». 10. Четвертый исключительный случай: 1) При появлении на экране меню с выбором операций, выбираем 6. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 (. 5) На предложение ввести кол-во строк матрицы, выбираем 2. 6) Кол-во столбцов – 2. 7) Программа выдает: «ОШИБКА!!!». Выводы по работе Для проверки результатов, выдаваемых программой, использовалсяматематический пакет MathCAD 2001 Professional. Существенный недостаток программы в том, что при нахождении обратнойматрицы и определителя, программа может работать только с матрицами,размером не превышающие 3х3. Это связано со значительным усложнениемпрограммы, в случаи необходимости выполнения вышеперечисленных операций надматрицами большего размера. При написании программы использовалась следующая литература: 1) Фаронов В.В. «TurboPascal 7.0, начальный курс. Учебное пособие». 2) Мизрохи С.В. «TurboPascal и объектно-ориентированное програмирование». 3) Голубев А.Б., Сидоров Ю.Н., Чередниченко А.И., Яценко И.В. «Основы программирования на языке Pascal». 4) Боревич Э.И. «Определители и матрицы». 5) Гутер Р.С., Резниковский П.Т. «Программирование и вычислительная математика». 6) Письменный Д.Т. «Конспект лекций по высшей математике», 1 часть. 7) Владимирский Б.М., Горстко А.Б., Ерусалимский Я.М. «Математика. Общий курс».----------------------- Начало Case operationOperation = 1Operation = 2Operation = 3Operation = 61 Ввод operation Ввод m1 Ввод n1 1>n1 or n1>10 or 1>m1 or m1>10 ДА НЕТ Конец Ввод MAS1 Вывод MAS1 Подсчет det Вывод det Подсчет обр.матр. Вывод обр.матр. Транспонир. матрицы Вывод транспонир. матрицыOperation = 4, 5 ДА n1<>n2 or m1<>m2 Ввод n2 Ввод m2 НЕТ Вывод MAS2 Ввод MAS2 Operation = 4 ДА k :=1 НЕТ3 k :=-1 ДА Operation = 5 Вывод MAS3 (сумма/разность)2 Ввод n2 Ввод m2 1>=m2 or m2>10 or 1>=n2 or n2>10 n2<>m1 ДА НЕТ Вывод MAS2 Ввод MAS2 n3 := n2 m3 := m1 Вывод MAS3 (произведение) Текст: «Ошибка»4567

Добавить документ в свой блог или на сайт

Похожие:

Пояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования» iconПояснительная записка к курсовой работе по дисциплине «Информатика»

Пояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования» iconПояснительная записка к курсовой работе по дисциплине «информатика»

Пояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования» iconПояснительная записка к курсовой работе по дисциплине "Информатика"...

Пояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования» iconПояснительная записка к курсовой работе по дисциплине «Объектно-ориентированное...
Целью работы является создание программной системы, которая реализует действия выполняемые пользователем почтового отделения с использованием...

Пояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования» iconПояснительная записка к курсовой работе по дисциплине «Вычислительный практикум»

Пояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования» iconПояснительная записка к курсовой работе по дисциплине «Системы сокрытия информации»

Пояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования» iconПояснительная записка к курсовой работе по дисциплине: «Алгоритмические...

Пояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования» iconПояснительная записка к курсовой работе по дисциплине «архитектура»...

Пояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования» iconПояснительная записка к курсовой работе по дисциплине системное программное обеспечение
Тема: Разработка программы на языке c для ос linux с использованием системного api

Пояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования» iconПояснительная записка к курсовой работе по дисциплине «Технология...
Получение феррита бария из отходов производства машиностроительных предприятий

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<