Арифметические операции над матрицами
Особенности алгоритма выполнения операций компьютерной обработки матриц, анализ необходимых технических средств. Программирование Windows-окна приложения в визуальной среде Delphi, специфика применения и внедрение программы в операционную систему.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 22.06.2015 |
Размер файла | 383,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования Республики Беларусь
Международный государственный экологический университет имени А.Д. Сахарова
Факультет мониторинга окружающей среды
Кафедра экологических информационных систем
Курсовой проект
АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ НАД МАТРИЦАМИ
Зав. кафедрой экологических информационных систем
к.ф.-м.н., доцент В.А. Иванюкович
Студент 2-го курса, гр. 31024
Михно А.В.
Минск 2014
Введение
Всё большую роль в современном мире играет наука и техника. Буквально все сферы жизнедеятельности человеке базируются на использовании технических устройств. Большинство научных достижений в области высоких технологий основано на применении математических методов исследования, проектирования и моделирования. С другой стороны, благодаря развитию новых технологий, техники, мы можем трудоёмкие процессы автоматизировать, сократив при этом время, на выполнение поставленной задачи, а также сократив издержки на содержание трудовых ресурсов.
Для того чтобы решать задачи с использованием компьютера, в первую очередь необходимо пройти несколько этапов без его участия. Эти этапы состоят из постановки задачи, её анализа и исследования, составления алгоритма. Последующие этапы, такие как программирование, тестирование и отладка, сопровождение программы, осуществляются с помощью вычислительной машины.
Задача создания программы, которая проводит сортировку строкового массива (содержащая компьютерные термины) по алфавиту. Состоит в обеспечении автоматизации сортировки внутри группы строк, начинающихся на одну и ту же букву.
Целью данной курсовой работы является проектирование и создание приложения, которое сортирует строковый массив (например, содержащий компьютерные термины) по алфавиту и обеспечивает сортировку внутри группы строк, начинающихся на одну и ту же букву (например, строка, содержащая слово ПРИНТЕР должна предшествовать строке, содержащей слово ПРОГРАММА).
Чтобы достичь поставленной цели необходимо решить следующие задачи:
· составить алгоритм выполнения операций над матрицей;
· спроектировать окно приложения в визуальной среде Delphi;
· реализовать алгоритм в виде программы;
· проверить работоспособность приложения и убедится в правильности работы программы.
1. Разработка эскизного и технического проектов программы
1.1 Назначение и область применения
Назначение - сортировка строкового массива (содержащего компьютерные термины) по алфавиту. Данная программа может использоваться для обучения начинающего программиста, быстрой и легкой сортировки матрицы, построенных по операторам языка Delphi и оперативного использования матрицы в дальнейшем.
1.2 Технические характеристики
1.2.1 Постановка задачи
1. Создание программы «Сортировка строкового массива» по визуальным компонентам интегрированной среды Delphi. Программа должна сортировать строковый массив (содержащий компьютерные термины) по алфавиту. Обеспечить сортировку внутри группы строк, начинающихся на одну и ту же букву (например, строка, содержащая слово ПРИНТЕР должна предшествовать строке, содержащей слово ПРОГРАММА).
Для программирования данной задачи используются структура данных- строковый массив и циклические конструкции. Массив-совокупность однотипных элементов. Матрица определяется именем, размерностью и типом. Например А[2,3] - матрица из 2 строк и 3 столбцов. Доступ к элементам массива осуществляется с помощью индексов. Для доступа к элементам матрицы используются два индекса. Например A[i,j]-элемент на пересечений i-строки, j-столбца.
Так как выполняется операция по сути, над массивом символов, необходимо инициализировать исходную матрицу. Выполнения сортировки строкового массива (содержащий компьютерные термины) по алфавиту. Обеспечивающего сортировку внутри группы строк, начинающихся на одну и ту же букву осуществляется нажатием на соответствующюю кнопку «Сортировка».
1.2.2 Организация входных и выходных данных
Входными данными в данной задаче являются строки, содержащие компьютерные термины.
Выходными данными является строковый массив содержащий компьютерные термины.
В программе для удобства исходные строки сформированы.
1.2.3 Выбор состава технических и программных средств
В последнее время резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь информационно-коммуникационных технологий. Если человек имеет дело с компьютером, то рано или поздно у него возникает желание, а иногда и необходимость, программировать.
Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах. Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом.
Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi [1-5] и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development - среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Производительность программиста при использовании RAD-систем - фантастическая! Среда программирования - Delphi - весьма быстрая и удобная для разработки приложений различного назначения для Windows.
В курсовом проекте использована одна форма и следующие визуальные компоненты.
TLabel служит для отображения текста на экране. Можно изменить шрифт и цвет метки, если дважды щелкнуть на свойство Font в Инспекторе Объектов. Это легко сделать и во время выполнения программы, написав всего одну строчку кода.
Кнопка TButton используется для того, чтобы при щелчке по ней мышью выполнить какие-либо действия (начать, завершить или прервать какой-либо процесс). Эти действия реализуются в обработчике события OnClick.
Edit ? текстовое поле;
Memo ? редактор текста;
Для нормальной работы программы необходим IBM совместимый компьютер с тактовой частотой процессора не ниже 144МГц и выше, оперативной памятью 16 Мб, жесткий диск объемом не менее 500Мб.
2. Разработка рабочего проекта программы
2.1 Разработка программы
1. Form1 - главное окно (сортировка строкового массива)
Рисунок 1. Окно Form1
Ниже приведены описание компонентов (некоторые похожие компоненты не описаны).
Компонент Form1
Свойства:
Сaption - Form1;
- BorderStyle - bsSizeable;
- BiSystemMenu - True;
- BiMinimaze - True;
- BiHelp - False;
- События: нет.
1 - компонент TLabel1
Свойства:
- Caption = Входной список;
2 - компонент TLabel2
Свойства:
- Caption = Отсортированный список;
- 3 - компонент object Button3
- Caption = Отсортировать;
- Enabled = True;
- 4 и 5 - компаненты object Memo1 и Memo2
- ScrollBars = ssBoth;
- Enabled = True;
2.2 Спецификация программы
2.2.1 Написание программы
Для решения поставленной задачи в программе были объявлены строки m:array of string; t:string (в этом случае строка может содержать до 255 символов);
Доступ к элементам массива символов осуществляется с помощью индексов, поэтому были объявлены целочисленные простые переменные i,j:integer;.
procedure TForm1.Button3Click(Sender: TObject);
var
i,j:integer;
m:array of string;
t:string;
begin
// считываем массив
setlength(m,memo1.Lines.Count);
for i:=0 to memo1.lines.Count-1 do
m[i]:=memo1.Lines[i];
// сортируем
for i:=0 to high(m)-1 do
for j:=i+1 to high(m) do
if m[i]>m[j] then begin
t:=m[i];
m[i]:=m[j];
m[j]:=t;
end;
// выводим результаты
memo2.Lines.clear;
for i:=0 to high(m) do
memo2.Lines.Add(m[i]);
end;
2.2.2 Спецификация программы
Наименование |
Обозначение |
Примечания |
|
Unit1.pas |
Файл программного модуля для формы №1 |
Определяет функциональность формы №1 |
|
Unit1.dfm |
Файл формы №1 |
Содержит список свойств всех компонентов, включенных в форму №1 |
2.3 Текст программы (основной алгоритм)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button3: TButton;
Memo1: TMemo;
Label1: TLabel;
Memo2: TMemo;
Label2: TLabel;
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button3Click(Sender: TObject);
var
i,j:integer;
m:array of string;
t:string;
begin
// считываем массив
setlength(m,memo1.Lines.Count);
for i:=0 to memo1.lines.Count-1 do
m[i]:=memo1.Lines[i];
// сортируем
for i:=0 to high(m)-1 do
for j:=i+1 to high(m) do
if m[i]>m[j] then begin
t:=m[i];
m[i]:=m[j];
m[j]:=t;
end;
// выводим результаты
memo2.Lines.clear;
for i:=0 to high(m) do
memo2.Lines.Add(m[i]);
end;
end.
2.4 Описание программы
1) Общие сведения.
Программа написана с среде программирования Delphi. Для запуска программы необходима операционная система Windows 98, Nt, 2000, Me, XP. Программа не предназначена для работы в DOS.
2) Функциональное назначение.
Программа может использоваться в учебных заведениях.
3) Используемые технические средства (минимальные требования).
Рекомендуемые системные требования: процессор Pentium-133 и выше, ОЗУ 16Мб, место на диске не меньше 2Мб.
4) Вызов и загрузка.
Исполняемый файл программы - Project1.exe. Запустить программу можно пользуясь стандартным приложением для Windows «проводник» или через «Мой компьютер», просмотрев содержимое диска.
2.5 Тестирование
Тестирование было проведено на примере строкового массива (содержащего компьютерные термины). Всего было введено 11 терминов. Все данные были введены в случайном порядке. Программа не дала сбоев и ошибок. Потом в графу Memo2 было осортирован строковый массив (содержащий компьютерные термины) по алфавиту. Обеспечена сортировка внутри группы строк, начинающихся на одну и ту же букву (строка, содержащая слово ПРИНТЕР предшествует строке, содержащей слово ПРОГРАММА). При повторном запуске и запросе программа не дала ошибок. Программа успешно прошла тестирование.
3. Матрицы. Основные арифметические операции над матрицами
3.1 Компьютерная обработка матриц
Назначением программы является упрощение математических действий в области аналитической геометрии и линейной алгебры.Программа должна решать задачи, связанные со сложением, вычитанием и произведением двух матриц. Из-за того, что матрицы могут состоять из большого числа строк и столбцов, процесс вычисления оказывается громоздким. Поэтому использование вычислительной машины при работе с матрицами упрощает вышеупомянутые вычисления и уменьшает вероятность сделать ошибку.
В программе используются вычисления только целочисленных матриц, количество строк и столбцов которых не превышает 100. Значение элементов матриц ограниченно диапазоном допустимых значений целочисленного типа integer: от -32 768 до 32 767. При сложении и вычитании матриц следует использовать элементы матриц из диапазона в два раза меньшего, чем диапазон значений типа integer, чтобы избежать в результирующей матрице значений, выходящих за пределы допустимых значений. При умножении матриц следует использовать элементы матриц, находящиеся в диапазоне от -50 до 50, дабы избежать в результирующей матрице элементов, которые выходят за пределы допустимых значений типа integer.
В программировании матрицы обрабатываются при помощи массивов. Массив - это набор однотипных компонентов (элементов), расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу (индексам). В визуальной среде Delphi для обработки матриц используется компонент StringGrid.
4. Проектирование программы
4.1 Словесное описание алгоритма решения задачи
Программа - последовательность команд для ввода исходных данных, их обработки и выдачи результатов для реализации алгоритма задачи [3].
Алгоритм - последовательность действий, выполнение которых приводит к решению поставленной задачи за конечный промежуток время.
Запустив программу, пользователь должен ввести размерности двух матриц. Считав полученные данные, программа строит матрицы нужных размеров, которые предлагается заполнить пользователю программы. Далее по выбору пользователя выполняется одна из трёх операций над матрицами: сложение, вычитание, умножение.
Сложение и вычитание можно производить только над матрицами с одинаковыми размерностями. Поэтому перед выполнением этих операций проверяем число строк и столбцов обеих матриц. Если эти числа соответственно не совпадают, выводим на экран сообщение: «Размерности матриц не совпадают. Используйте матрицы одинаковых размерностей». Если размерности матриц совпадают, тогда переходим непосредственно к самим вычислениям. Для этого реализуем алгоритм:
for i:= 1 to N do
for j:= 1 to M do
A3[i,j]:=A1[i,j] +(-) A2[i,j],
ГдеN - количествострок, M - количество столбцов; А1, А2 - исходные матрицы,А3- результирующая матрица; A[i,j] - элемент матрицы, находящийся в i-ой строке и j-ом столбце.
После выполнения операции сложения или вычитания двух матриц на экран выводится результирующая матрица.
Умножение матриц может производиться только при условии их согласованности, то есть число столбцов первой матрицы должно равняться числу строк второй матрицы. Поэтому перед тем, как выполнять операцию умножения проверяем матрицы на согласованность. Если условие согласованности не выполнено, тогда выводим на экран сообщение: «Матрицы не согласованны, число столбцов в 1-ой матрице не равно числу строк во 2-ой».Если же условие согласованности выполняется, тогда приступаем к выполнению операции умножения, реализуя алгоритм:
for m:=1 to N1 do
begin
for q:=1 to M2 do
begin
for j:=1 to N2 do
buf:=A1[m,j]*A2[j,q]+buf;
A3[m,q]:=buf;
buf:=0;
end;
end;
где N1 - число строк первой матрицы, M2 - число столбцов второй матрицы, N2 - число строк второй матрицы, buf-накапливающая переменная.
После завершения умножения матриц результирующая матрица выводится на экран.
4.2 Реализация Windows-окна
На рис.1 представлен проект Windows-окна.
1) Компонент Edit1 необходим для ввода количества строк матрицы 1;
2) компонент Edit2 необходим для ввода количества столбцов матрицы 1;
3) компонент Edit3 необходим для ввода количества строк матрицы 2;
4) компонент Edit4 необходим для ввода количества столбцов матрицы 2;
Рисунок 2. Windows-окна
5) компонент StringGrid1, в нём вводятся элементы матрицы 1. В меню Options этого компонента в пункте goEditingзначение Falseизменено на True для того, чтобы пользователю программы можно было вводить свои значения в поля StringGrid;
6) компонент StringGrid2, в нём вводятся элементы матрицы 2. В меню Options этого компонента в пункте goEditingзначение Falseизменено на True для того, чтобы пользователю программы можно было вводить свои значения в поля StringGrid;
7) компонент StringGrid3, в нём находятся элементы результирующей матрицы;
8) кнопка для выхода из программы BitBtn«Выход». При нажатии завершает работу программы;
9) кнопка Button5«Очистить». При нажатии программа очищает поля в StringGrid1, StringGrid2, StringGrid3;
10)кнопка Button1«Построить матрицы». При нажатии программа строит массив в StringGrid1 и StringGrid2 в соответствии с введёнными данными в Edit1, Edit2, Edit3 и Edit4.
- КнопкаButton2, при нажатии которой программапроверят размерности матриц, если они совпадают, суммирует 2 матрицы и записывает результат в вStringGrid3.
- КнопкаButton3, при нажатии которой программа проверят размерности матриц, если они совпадают, производит операцию вычитания из первой матрицы второй и записывает результат в StringGrid3.
- КнопкаButton4, при нажатии которой программа проверят матрицы на согласованность, если они согласованны, производит умножение матриц и выводит результирующую матрицу в StringGrid3.
На рис.3 представлено Windows-окно, реализованное в визуальной среде программирования Delphi.
Рисунок 3. Windows-окно, реализованное в визуальной среде программирования Delphi
5. Описание программы
5.1 Обоснование выбранных средств и инструментов
При работе с матрицами в визуальной среде создана специальная компонента StringGrid. Удобство использования этой компоненты заключается в наглядности, так как даёт возможность записывать матрицу в виде двумерной таблицы и проверять результат вычислений в результирующей матрице; в простоте заполнения матрицы с клавиатуры. Данная компонента включена в программу.
Для получения данных о количестве строк и столбцов в матрицах используется компонента Edit. Она интуитивно воспринимается пользователем как место ввода данных. Считывание информации, введённой в Edit, легко реализуется в программных кодах.
Использование компонента Label необходимо для пояснительных подписей.
При выводе сообщений на экран используется процедура ShowMesssage, которая и предназначена для подобных целей.
Для выхода из программы создана стандартная кнопка BitBtnтипа «Close».
Выполнение операцийсложения, вычитания и умножения происходит после нажатия на соответствующие компоненты Button.
5.2 Спецификация программы
Программа должна выполнять арифметические операции сложения, вычитания и умножения над двух целочисленных матриц. При введении некорректных данных, программа выводит на экран сообщение о том, чтобы пользователь ввёл необходимые для работы программы данные.
Компоненты в Windows-окне должны быть расположены максимально удобно и интуитивно понятно для пользователей. Ввод на экран сообщений-подсказок позволит избежать ошибок в ходе работы программы.
5.3 Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
BitBtn1: TBitBtn;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedureFormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
N1,N2,M1,M2,i,j:integer;
A1,A2,A3: array [1..100,1..100] of integer;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
N1:=strtoint(edit1.text);
M1:=strtoint(edit2.text);
N2:=strtoint(edit3.text);
M2:=strtoint(edit4.text);
stringGrid1.RowCount:=(N1+1);
stringGrid1.ColCount:=(M1+1);
stringGrid2.RowCount:=(N2+1);
stringGrid2.ColCount:=(M2+1);
for i:=1 to N1 do
for j:=1 to M1 do
begin
StringGrid1.Cells[j,i]:=inttostr(random(101)-50);
StringGrid1.Cells[0,i]:='i='+inttostr(i);
StringGrid1.Cells[j,0]:='j='+inttostr(j);
end;
for i:=1 to N2 do
for j:=1 to M2 do
begin
StringGrid2.Cells[j,i]:=inttostr(random(101)-50);
StringGrid2.Cells[0,i]:='i='+inttostr(i);
StringGrid2.Cells[j,0]:='j='+inttostr(j);
end;
ShowMessage('Заполните матрицы целыми числами');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if (N1=N2) and (M1=M2) then
begin
stringGrid3.RowCount:=(N1+1);
stringGrid3.ColCount:=(M1+1);
for i:=1 to N1 do
for j:=1 to M1 do
begin
StringGrid3.Cells[0,i]:='i='+inttostr(i);
StringGrid3.Cells[j,0]:='j='+inttostr(j);
A1[i,j]:=strtoint(StringGrid1.Cells[j,i]);
A2[i,j]:=strtoint(StringGrid2.Cells[j,i]);
A3[i,j]:= A1[i,j]+A2[i,j];
StringGrid3.Cells[j,i]:=inttostr(A3[i,j]);
end;
end
else
ShowMessage('Размерности матриц не совпадают. Используйте матрицы одинаковых размерностей');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if (N1=N2) and (M1=M2) then
begin
stringGrid3.RowCount:=(N1+1);
stringGrid3.ColCount:=(M1+1);
for i:=1 to N1 do
for j:=1 to M1 do
begin
StringGrid3.Cells[0,i]:='i='+inttostr(i);
StringGrid3.Cells[j,0]:='j='+inttostr(j);
A1[i,j]:=strtoint(StringGrid1.Cells[j,i]);
A2[i,j]:=strtoint(StringGrid2.Cells[j,i]);
A3[i,j]:= A1[i,j]-A2[i,j];
StringGrid3.Cells[j,i]:=inttostr(A3[i,j]);
end;
end
else
ShowMessage('Размерности матриц не совпадают. Используйте матрицы одинаковых размерностей'');
end;
procedure TForm1.Button4Click(Sender: TObject);
varm,q,buf:integer;
begin
buf:=0;
if M1=N2 then
begin
for i:=1 to N1 do
for j:=1 to M1 do
A1[i,j]:=strtoint(StringGrid1.Cells[j,i]);
for i:=1 to N2 do
for j:=1 to M2 do
A2[i,j]:=strtoint(StringGrid2.Cells[j,i]);
stringGrid3.RowCount:=(N1+1);
stringGrid3.ColCount:=(M2+1);
for m:=1 to N1 do
begin
for q:=1 to M2 do
begin
for j:=1 to N2 do
buf:=A1[m,j]*A2[j,q]+buf;
A3[m,q]:=buf;
buf:=0;
end;
end;
for m:=1 to N1 do
for q:=1 to M2 do
begin
StringGrid3.Cells[0,m]:='i='+inttostr(m);
StringGrid3.Cells[q,0]:='j='+inttostr(q);
StringGrid3.Cells[q,m]:=inttostr(A3[m,q]);
end;
end
else
ShowMessage('Матрицы не согласованы, число столбцов в 1-ой матрице не равно числу строк во 2-ой матрице');
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
for i:=1 to N1 do
for j:=1 to M2 do
StringGrid3.Cells[j,i]:='';
for i:=1 to N1 do
for j:=1 to M1 do
StringGrid1.Cells[j,i]:='';
for i:=1 to N2 do
for j:=1 to M2 do
StringGrid2.Cells[j,i]:='';
end;
procedure TForm1.Cpravka1Click(Sender: TObject);
begin
ShowMessage(' Программа должна выполнять арифметические операции сложения, вычитания и умножения над двух целочисленных матриц.'+#13#10+ ' При введении некорректных данных, программа выводит на экран сообщение о том, чтобы пользователь ввёл необходимые для работы программы данные.' +#13#10+ 'Компоненты в Windows-окне должны быть расположены максимально удобно и интуитивно понятно для пользователей.' +#13#10+ ' Ввод на экран сообщений-подсказок позволит избежать ошибок в ходе работы программы).
5.4 Описание программы
Результатом этапа программирования является программное приложение, которое выполняет поставленные перед ним задачи проведения арифметических операций сложения, вычитания и умножения над матрицами. Программу можно использовать в учебных целях для проверки вычислений.
5.5 Тестирование программы
Программа предназначена для работы с матрицами, количество строк и столбцов которых не превышает 100. Это обусловлено тем, что вводить более 100 значений вручную крайне затруднительно, а также тем фактом, что существование матриц больших размерностей маловероятно.
Чтобы пользователь не вышел за предел целочисленных значений, на экран выводится сообщение о том, что матрица должна состоять из целых чисел.
В программедля элементов матрицы используется тип данных integer, диапазон значений которого от -32 768 до 32 767. Однако при тестировании программы в результирующей матрице выводятся значения, превышающие этот диапазон.
При выполнении условия ввода целых чисел и не превышения диапазона значенийтипа integer, программа работает без ошибок.
6. Внедрение программы
Условия выполнения программы
Программа написана на языке Pascalв визуальной среде программирования Delphi 7.
Вызов и запуск программы
Исполняемым файлом программы является файл Project1.exe. Запуск этого файла осуществляется через «Мой компьютер», просмотрев содержимое диска, или при помощи Windows-проводника.
Входные данные
Входными данными являются количество строк и столбцов двух матриц, которые считываются программой через компоненты Edit. После построения матриц пользователь должен с клавиатуры ввести элементы матриц в компонентах StringGrid1 и StringGrid2.
Выходные данные после проведения арифметических операций над матрицами появляются на экран в компоненте StringGrid3.
Сообщения оператору
Изначально в Windows-окне выведены сообщения оператору в компонентах Label, которые поясняют, какие значения вводить в компоненты Edit. Label1 содержит запись: «Число строк 1-ой матрицы», Label2содержит запись: «Число строк 1-ой матрицы», Label3- «Число столбцов 1-ой матрицы», Label4 - «Число строк 2-ой матрицы», Label5 - «Число столбцов2-ой матрицы». Label6, Label7, Label8пояснят к каким матрицам относятся компоненты StringGrid1, StringGrid2и StringGrid3. После нажатия Button1 «Построить матрицы» на экран выводится сообщение о том, что оператор может заполнять матрицы: «Заполните матрицы целыми числами». Нажав на кнопку «Ок», оператор может приступить к заполнению полей StringGrid1 и StringGrid2. При нажатии Button1 «+»и Button2 « - » происходит проверка размерностей матриц, если размерности не совпадаю, тогда программа выводит на экран сообщение: «Размерности матриц не совпадают. Используйте матрицы одинаковых размерностей». Нажав кнопку «Ок», оператор должен ввести одинаковые размерности матриц для дальнейшего выполнения программы. При нажатии Button3 происходит проверка матриц на совместимость, если матрицы несовместны, тогда программа выводит на экран сообщение: «Матрицы не согласованы, число столбцов в 1-ой матрице не равно числу строк во 2-ой». Нажав кнопку «Ок», оператор должен ввести одинаковые значения для числа столбцов первой матрицы и для числа строк второй матрицы, чтобы продолжить выполнение программы. Результат выполнения операции умножения появляется в StringGrid3.
компьютерный программирование windows delphi
Заключение
В работе рассмотрены основные понятия теории матриц, необходимые для описания арифметических операций сложения, вычитания и умножения над матрицами. Рассмотрены и показаны действия этих операций. На основе теоретических выкладок разработаны алгоритмы выполнения операций сложения, вычитания и умножения над матрицами, спроектирована программа в визуальной среде Delphi для реализации этих алгоритмов. На этапе тестирования проверена правильная работоспособность данной программы.
Литература
1. Ильин В.А., Ким Г.Д. Линейная алгебра и аналитическая геометрия: Учебник. -- М.: Изд-во Моск. ун-та, 1998. -- 320с.
2. Щукин М.В. Курс лекций по аналитической геометрии и линейной алгебре. Изд-во: Минск, МГЭУ им. А.Д. Сахарова, 2007. - 123с.
3. Фаронов В.В. Delphi. Программирование на языке высокого уровня, 2008. - 640с.
4. Архангельский А.Я. Delphi 7. Справочное пособие. Изд-во: Бином-Пресс, 2004. - 1024с.
Размещено на Allbest.ru
...Подобные документы
Основные типы модулей, использующиеся в среде программирования Delphi 6. Концепция объектно-ориентированного программирования. Разработка эскизного и технического проектов программы. Алгоритм выполнения операций сложения, вычитания и умножения матриц.
курсовая работа [559,1 K], добавлен 03.01.2011Понятие матриц и операции, выполняемые с ними. Разработка программы для вычислений над матрицами в среде MS Visual Studio Express с применением языка программирования C++. Работа с библиотекой математического типа vector. Реализация перегрузки операций.
курсовая работа [107,3 K], добавлен 22.12.2010Описания объектов, свойств, методов, формы и основных модулей текста программы в среде Delphi. Создание Windows-приложения на алгоритмическом языке Object Pascal в среде визуального программирования. Анализ результатов тестирования программного продукта.
курсовая работа [2,4 M], добавлен 27.08.2012Особенности и тонкости программирования в среде Delphi. Специфика перехода от алгоритмического решения к непосредственной программной реализации на языке Object Pascal с использованием всех необходимых средств данного языка. Анализ полученных результатов.
реферат [246,2 K], добавлен 17.11.2012Приложение в среде Delphi, реализующее ввод двух целых чисел, по щелчку на кнопке с символом "=", вычисление результата операции вещественного деления с выводом значения на экран. Дополнение программы обработчика события: изменение цвета и ширины окна.
лабораторная работа [13,3 K], добавлен 15.07.2009Основные операции с матрицами. Проектирование объектно-ориентированного модуля для работы с матрицами в среде Delphi 7. Разработка программы, которая позволяет выполнять различные действия над матрицами. Описание интерфейса программы, исходный код модуля.
курсовая работа [1014,2 K], добавлен 15.01.2013Изучение основ программирования и создание полноценного приложения в среде программирования Delphi. Разработка эскизного и технического проектов программы. Внедрение выполнения программы. Разработка рабочего проекта, спецификация и текст программы.
курсовая работа [560,1 K], добавлен 18.07.2012Создание Windows-приложения на алгоритмическом языке Object Pascal в среде визуального программирования Delphi, которое, как планируется, будет обеспечивать решение специализированных задач по формированию, обработке на ЭВМ и выводу информации.
курсовая работа [967,6 K], добавлен 20.05.2008Основы организации приложения в Windows. Посылка и передача сообщений для окон. Создание и отображение главного окна приложения. Деактивация приложения, его фазы. Сообщения клавиатуры и функции для работы с ней. Определение состояния отдельных клавиш.
лекция [65,7 K], добавлен 24.06.2009Разработка эскизного и технического проекта программы идентификации личности по отпечатку. Назначение и область применения, описание алгоритма, входных и выходных данных. Выбор состава технических и программных средств. Тестирование и внедрение продукта.
курсовая работа [61,9 K], добавлен 12.05.2015Обзор некоторых сведений о матрицах. Описание этапов работы с функциями. Проектирование программы для выполнения вычислений над матрицами в среде программирования MSVisualStudio 2008, при помощи языка программирования C++. Проверка результатов в Mathcad.
курсовая работа [182,0 K], добавлен 06.04.2013Разработка эскизного и технического проектов программы, ее назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка рабочего проекта, спецификация программы.
курсовая работа [700,6 K], добавлен 26.01.2010Принципы разработки и пример работы программы, реализующей основные операции алгебры матриц: сложение, вычитание, умножение, транспонирование, а также умножение матрицы на число. Функциональные модели и блок-схемы решения задачи операций над матрицами.
курсовая работа [956,7 K], добавлен 25.01.2010Разработка в среде Delphi приложения "Записная книжка" для ввода и корректировки информации, поиска данных. Выбор состава технических и программных средств. Текст программы, ее описание и тестирование. Основные условия программы, требования к компьютеру.
курсовая работа [565,7 K], добавлен 08.12.2011Основные элементы окна программы MathCAD. Выполнение операций с файлами, редактирование, настройка программы. Способы ввода и редактирования в рабочем поле окна программы. Задание на рабочей области необходимых функций и матриц, выполнение вычислений.
контрольная работа [18,0 K], добавлен 11.09.2019Изучение учебника и справочной подсистемы Windows 95/NT, получение навыков работы с "мышью", манипулирование окнами и значками программ и документов, запуска программ в системе Windows 95/NT. Разработка простого приложения для Windows при помощи Delphi.
контрольная работа [1,1 M], добавлен 15.01.2009Составление алгоритма и разработка в среде программирования Delphi 7 программы, вычисляющей макроэкономические индексы цен. Реализация программы в виде 4 форм и 1 диалогового окна. Описание алгоритма решения задачи. Текст программы, руководство оператора.
курсовая работа [1,4 M], добавлен 04.06.2013Порядок разработки игровой программы, создаваемой в среде Delphi в процессе проектирования приложения, основанной на модульном принципе. Структура программы: объявление списка используемых модулей и несколько операторов, запускающих данное приложение.
курсовая работа [384,2 K], добавлен 03.01.2011Предмет объектно-ориентированного программирования и особенности его применения в средах Паскаль, Ада, С++ и Delphi. Интегрированная среда разработки Delphi: общее описание и назначение основных команд меню. Процедуры и функции программы Delphi.
курсовая работа [40,8 K], добавлен 15.07.2009Разработка программы для работы в операционных системах семейства Windows. Использование среды Delphi - современной технологии визуального проектирования. Создание пользовательского интерфейса, оконного приложения, меню; задание исходной матрицы.
курсовая работа [1,5 M], добавлен 12.01.2011