на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Разработка приложения для Windows, которое обеспечивает выполнение операций сложения, вычитания и умножения над матрицами целых чисел
p align="left">N2Click - закончить работу с приложением.

N3Click - перейти к работе со второй формой.

N4Click - перейти к работе с третьей формой.

2- компонент StringGrid1 Left = 152 Top = 42 Width = 220 Height = 180 DefaultColWidth = 20 DefaultRowHeight = 16 FixedCols = 0 FixedRows = 0

3- компонент Button2 Caption = '-'

событие OnClick = Button2Click

4- компонент Button4 Left = 200 Top = 336 Width = 121 Height = 25 Caption = контрольный пример событие OnClick = Button4Click

5 - компонент TLabel1

Свойства: Caption = Матрица 1

События OnClick = Label2Click

Ниже приводится окно Form2 (рисунок 4)

Рисунок 4. окно Form2

компонент Form2

Свойства

Caption Справка о разработчике

1-компонент Label1

Свойства

Сaption Курсовой проект по дисциплине «Программирование»

2-компонент Label1

Свойства

Сaption Программу разработал студент группы Узин-709-02 КРУ г.Астана

3-компонент Label1

Свойства

Сaption Садреев Иван

Событие OnClick

Компонент Form3

Рисунок 5

1- компонент Мемо1

2- компонент Button1

свойство

Сaption Назад

Написание программы

Для решения поставленной задачи в программе были объявлены двумерные массивы(матрицы) D,A,B,C:Array[0..20,0..20] of integer;

Доступ к элементам массива осуществляется с помощью индексов, поэтому были объявлены целочисленные простые переменные.

m,n,k,i,j,p:integer;

В программе используются циклические конструкции. Кроме вложенных циклов с параметром программа не содержит сложных конструкции.

// процедура формирования матрицы А

procedure TForm1.Label2Click(Sender: TObject);

begin for i:=0 to stringGrid1.ColCount-1 do for j:=0 to stringgrid1.RowCount-1 do

begin

stringGrid3.Cells[i,j]:=''; end;

for i:=0 to stringGrid1.ColCount-1 do

for j:=0 to stringgrid1.RowCount-1 do

begin

a[i,j]:=random(9);

stringGrid1.Cells[j,i]:=inttostr(a[i,j]); end;

end; // процедура умножения матриц

procedure TForm1.Button3Click(Sender: TObject);

begin

// обнуление матрицы D for k:=0 to stringGrid1.ColCount-1 do for i:=0 to stringGrid1.ColCount-1 do d[k,i]:=0;

for k:=0 to stringGrid1.ColCount-1 do

for i:=0 to stringGrid1.ColCount-1 do

begin for j:=0 to stringgrid1.RowCount-1 do d[k,i]:=d[k,i]+a[k,j]*b[j,i]; end; // Вывод результатов в StringGrid3 for i:=0 to 9 do for j:=0 to 9 do stringgrid3.Cells[j,i]:=inttostr(d[i,j]); end;

2.2 Спецификация программы

Исполняемый файл программы выполнения операции над матрицами имеет название Matr.exe и расположен на компакт-диске в каталоге Matr1\Matriz. Состав проекта.

Наименование

Обозначение

Примечания

Matriz.res

Файл ресурсов

Содержит пиктограммы, графические изображения

Matriz.dpr

Файл проекта

Связывает все файлы из которых состоит приложение

Matriz.dof

Файл параметров проекта

Содержит текущие установки проекта: настройки компилятора и компоновщика, имена служебных каталогов, условные директивы

Matriz.cfg

Файл, содержащий конфигурационную информацию о проекте

Содержит информацию о том какие окна открыты и в каких позициях они расположены

Unit3.pas

Файл программного модуля для формы №3

Определяет функциональность формы №3

Unit3.dfm

Файл формы №3

Содержит список свойств всех компонентов, включенных в форму №3

Unit3.dcu

Объектный файл для Unit3.pas

Откомпилированная версия Unit3.pas

Unit2.pas

Файл программного модуля для формы №2

Определяет функциональность формы №2

Unit2.dfm

Файл формы №2

Содержит список свойств всех компонентов, включенных в форму №2

Unit2.dcu

Объектный файл для Unit2.pas

Откомпилированная версия Unit2.pas

Unit1.pas

Файл программного модуля для формы №1

Определяет функциональность формы №1

Unit1.dfm

Файл формы №1

Содержит список свойств всех компонентов, включенных в форму №1

Unit1.dcu

Объектный файл для Unit1.pas

Откомпилированная версия Unit2.pas

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

Листинг программы.

unit Unit1;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, Menus;

type TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Label1: TLabel;

StringGrid3: TStringGrid;

Label2: TLabel;

Label3: TLabel;

N5: TMenuItem;

Button4: TButton;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure Label2Click(Sender: TObject);

procedure Label3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

private { Private declarations } public { Public declarations } end;

var Form1: TForm1;

d,A,B,C:array[0..20,0..20] of integer;

m,n,k,i,j,p:integer;

implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

randomize; //генератор случайных чисел

// установление свойств компонента Stringrid2, Stringgrid3 присваивается количество строк и //столбцов компонент StringGrid1

stringgrid2.ColCount:= stringgrid1.ColCount;

stringgrid2.RowCount:= stringgrid1.RowCount;

stringgrid2.DefaultColWidth:=stringgrid1.DefaultColWidth;

stringgrid2.DefaultRowHeight:= stringgrid1.DefaultRowHeight;

stringgrid2.FixedCols:= stringgrid1.FixedCols;

stringgrid2.FixedRows:= stringgrid1.FixedRows;

stringgrid2.Height:=stringgrid1.Height;

stringgrid2.Width:= stringgrid1.Width;

stringgrid3.ColCount:= stringgrid1.ColCount;

stringgrid3.RowCount:= stringgrid1.RowCount;

stringgrid3.DefaultColWidth:=stringgrid1.DefaultColWidth;

stringgrid3.DefaultRowHeight:= stringgrid1.DefaultRowHeight;

stringgrid3.FixedCols:= stringgrid1.FixedCols;

stringgrid3.FixedRows:= stringgrid1.FixedRows;

stringgrid3.Height:=stringgrid1.Height;

stringgrid3.Width:= stringgrid1.Width;

for i:=0 to stringgrid1.RowCount-1 do for j:=0 to stringgrid1.colCount-1 do begin stringGrid1.Cells[i,j]:='';

stringGrid2.Cells[i,j]:=''; end; end;

// процедура сложения матриц

procedure TForm1.Button1Click(Sender: TObject);

begin

for i:=0 to stringGrid1.RowCount-1 do

for j:=0 to stringgrid1.ColCount-1 do

begin

c[i,j]:=a[i,j]+b[i,j];

end;

for i:=0 to stringGrid1.RowCount-1 do

for j:=0 to stringgrid1.ColCount-1 do

stringgrid3.Cells[j,i]:=inttostr( c[i,j]); end;

//процедура вычитания матриц

procedure TForm1.Button2Click(Sender: TObject);

begin

for i:=0 to stringGrid1.ColCount-1 do

for j:=0 to stringgrid1.RowCount-1 do begin

c[i,j]:=a[i,j]-b[i,j];

end;

for i:=0 to stringGrid1.ColCount-1 do

for j:=0 to stringgrid1.RowCount-1 do

stringgrid3.Cells[j,i]:=inttostr( c[i,j]);

end; // процедура умножения матриц

procedure TForm1.Button3Click(Sender: TObject);

begin // инициализация матрицы D for k:=0 to stringGrid1.ColCount-1 do for i:=0 to stringGrid1.ColCount-1 do d[k,i]:=0; // Умножение for k:=0 to stringGrid1.ColCount-1 do for i:=0 to stringGrid1.ColCount-1 do begin for j:=0 to stringgrid1.RowCount-1 do d[k,i]:=d[k,i]+a[k,j]*b[j,i];

end; // Вывод результата в Stringrid for i:=0 to 9 do for j:=0 to 9 do stringgrid3.Cells[j,i]:=inttostr(d[i,j]); end;

// запуск формы 2 Справка о разработчике

procedure TForm1.N3Click(Sender: TObject);

begin form2.Show;

end;

//формирование матрицы А

procedure TForm1.Label2Click(Sender: TObject);

begin for i:=0 to stringGrid1.ColCount-1 do for j:=0 to stringgrid1.RowCount-1 do begin stringGrid3.Cells[i,j]:='';

end; for i:=0 to stringGrid1.ColCount-1 do for j:=0 to stringgrid1.RowCount-1 do begin a[i,j]:=random(9);

stringGrid1.Cells[j,i]:=inttostr(a[i,j]); end; end;

//формирование матрицы В

procedure TForm1.Label3Click(Sender: TObject);

begin for i:=0 to stringGrid1.ColCount-1 do for j:=0 to stringgrid1.RowCount-1 do begin stringGrid3.Cells[i,j]:='';

end; for i:=0 to stringGrid1.ColCount-1 do for j:=0 to stringgrid1.RowCount-1 do begin b[i,j]:=random(9); stringGrid2.Cells[j,i]:=inttostr(b[i,j]);

end;

end;

//запуск формы 3 Справка о программе

procedure TForm1.N4Click(Sender: TObject);

begin

form3.show;

end;

//Выход из программы

procedure TForm1.N2Click(Sender: TObject);

begin

form1.close;

form2.Close;

form3.Close;

end;

//Сообщение оператору `Помощь'

procedure TForm1.N5Click(Sender: TObject);

begin Showmessage('Нажмите на кнопки Матрица 1 и Матрица 2 для формирования матриц');

end;

//Контрольный пример

procedure TForm1.Button4Click(Sender: TObject);

begin for i:=0 to stringGrid1.ColCount-1 do for j:=0 to stringgrid1.RowCount-1 do begin

????a[i,j]:=1; b[i,j]:=random(2);

end; for j:=0 to stringGrid1.ColCount-1 do for i:=0 to stringgrid1.RowCount-1 do begin stringGrid2.Cells[j,i]:=inttostr(b[i,j]);

stringGrid1.Cells[j,i]:=inttostr(a[i,j]);

end; for i:=0 to stringGrid1.ColCount-1 do for j:=0 to stringgrid1.RowCount-1 do begin C[i,j]:=0;

d[i,j]:=0; stringGrid3.Cells[j,i]:=inttostr(C[i,j]); end;

end;

end.

2.4 Описание программы

Программа предназначена для выполнения операции сложения, вычитания и умножения матриц. Программа написана на языке Object Pascal. Работает в среде операционных систем Widows 2000/XP. Для полноценной работы данной программы необходимы следующие ресурсы компьютера: процессор Pentium IV или Celeron 2.0Ghz.

Оперативная память не менее 512 Мбайт, достаточное количество свободного места на диске - порядка 1 Гбайт.

Программа запускается нажатием на файл Matriz.exe. На открывающем окне формы расположен меню MainMenu, через которого можно открыть справки, помощь и закрыть программу. Ввод данных осуществляется с помощью случайных чисел. Нажатие на метки Матрица 1 и Матрица 2 вызывает процедуры формирования матриц. Элементы исходных матриц загружаются для отображения на форме в компонент StringGrid1 и StringGrid2. Выходная информация размещается в поле StringGrid3. Пользователю предлагается выбрать одну операцию нажатием на соответствующую кнопку. Программа загружается нажатием на файл Matriz.exe из папки Matr1.

Исходные матрицы описаны как квадратные целочисленные, диапазон значений элементов от 0 до 10. Такое ограничение обусловливается предотврощением перегруза памяти компьютера и ошибок связанные размерностью матриц. Значения для StringGrid1.ColCount и StringGrid1.RowCount задаются в окне ObjectInspektor. Эти значения в программе присваиваются для StringGrid2 и StringGrid3.

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

Правильность программы легко проверяется для операции сложения и вычитания, так как это производится покомпонентно (см. рисунки 6 и 7).

Рисунок 6. Результат сложения

Рисунок 7. Результат вычитания

Рисунок 8. Результат умножения

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

Прилагается распечатка решения контрольного примера и снимки экрана с результатами тестирования.

2.6 Внедрение

В разделе описываются (руководство оператора ГОСТ 19.505-79):

· условия выполнения программы;

· выполнение программы;

· сообщения оператору.

В разделе “Условия выполнения программы” должны быть указаны условия, необходимые для выполнения программы (минимальный и/или максимальный состав аппаратурных и программных средств и т.п.).

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

В разделе “Сообщения оператору” должны быть приведены тексты сообщений, выдаваемых в ходе выполнения программы, описание их содержания и соответствующие действия оператора.

Содержание разделов допускается иллюстрировать поясняющими примерами, таблицами, схемами.

Список использованных источников

Немнюгин С.А. Turbo Pascal: Учебник для вуэов, СПб.: «Питер», 2007.

Немнюгин С.А. Turbo Pascal: практикум:. СПб.: Издательство «Питер», 2001.

Вирт Н. Алгоритмы и структуры данных. М., Мир, 2007.

Лабораторный практикум по информатике. Учебное пособие для вузов, СПб.: Питер,2007

Фараонов В.В. Турбо Паскаль7.0. Практика программирования. М., Нолидж, 2001.

Архангельский, А. Я. Приемы программирования в Delphi на основе VCL [Текст] / А. Я. Архангельский. - М. : Бином-Пресс,2006. - 933 с.

Павловская, Т. А. Паскаль. Программирование на языке высокого уровня - СПб. : Питер, 2004. (допущен Министерством образования).

Культин, Н. Б. Основы программирования в Delphi 7 - СПб. : БХВ-Петербург, 2003.

Зубов, А. В. Программирование на Delphi. Трюки и эффекты. - СПб. : Питер, 2005.

Павловская, Т. А. Паскаль. Программирование на языке высокого уровня. - СПб. : Питер, 2004. (допущен Министерством образования).

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.