Реферат: Разработка приложения для Windows, представляющего собой выполнение операции над матрицами
--PAGE_BREAK--2. Разработка рабочего проекта2.1 Разработка программы
Проект программы содержит три окна:
1. Form1 – главное окно (выполнение операции над матрицами).
2. Form2 – справка о разработчике.
Окно Form1.
<img width=«466» height=«336» src=«ref-1_1383838547-37920.coolpic» v:shapes="_x0000_i1028">
Главное окно программы – Form1
Ниже приведены описание компонентов, некоторые похожие компоненты не описаны.
Компонент Form1
Свойства:
Сaption– Магический квадрат;
Border – bsSingle;
BiSystemMenu – false;
BiMinimaze – false;
BiHelp– False;
События: нет.
1 – компонент TМainMenu
Свойства:
object MainMenu1: TMainMenu
Items
Справка (N1) О программе(N4)
Выход (N2)
События:
Для N1 – событие BitBtn1Click (приводится ниже).
N2Click – закончить работу с приложением.
N1Click – перейти к работе со второй формой.
2– компонентStringGrid1
Свойства
Left = 152
Top = 42
Width = 220
Height = 180
DefaultColWidth = 20
DefaultRowHeight = 16
FixedCols = 0
FixedRows = 0
3 – компонентButton1
Caption = 'Магический квадрат?'
событие
OnClick = Button1Click
4– компонентLabel6:
Свойства
Left = 96
Top = 400
Width = 196
Height = 24
Caption = «Контрольный пример»
Font. Charset = DEFAULT_CHARSET
OnClick = Label6Click
5 – компонентEdit1:
Свойства
Left = 232
Top = 48
Width = 41
Height = 32
НижеприводитсяокноForm2.
<img width=«515» height=«355» src=«ref-1_1383876467-49701.coolpic» v:shapes="_x0000_i1029">
Окно Form2
компонент Form2
Свойства
Caption Справка
1-компонент Label1
продолжение
--PAGE_BREAK--object Label1: TLabel Left = 24 Top = 48 Width = 582 Height = 20 Caption = «Программа разработана в качестве курсовой работы по программированию» Font. Charset = DEFAULT_CHARSET Font. Color = clWindowText Font. Height = -16 Font. Name = 'MS Sans Serif' Font. Style= [] ParentFont= False Написание программы
Для решения поставленной задачи в программе был объявлен двумерный массив(матрица)
x:array [0… 10,0..10] of integer;
Доступ к элементам массива осуществляется с помощью индексов, поэтому были объявлены целочисленные простые переменные.
k, s, c, i, j, n:integer;
В программе используются циклические конструкции. Кроме вложенных циклов с параметром программа содержит сложную конструкцию Условие [Цикл[Условие]].
// процедура формирования матрицы x
procedureTForm1. Label3Click(Sender: TObject);
begin
if edit1. Text='' then showmessage ('введите размер матрицы') else
randomize;
n:=strtoint (edit1. Text);
stringgrid1. Visible:=true;
n:=n-1;
StringGrid1. Height:=StringGrid1. DefaultRowHeight* (strtoint (edit1.text)+1);
StringGrid1. Width:=StringGrid1. DefaultColWidth* (strtoint (edit1.text)+1);
StringGrid1. ColCount:=strtoint (edit1.text);
StringGrid1. RowCount:=strtoint (edit1.text);
for i:=0 to n do
for j:=0 to n do
begin
x [i, j]:=random(5)+1;
end;
for i:=0 to n do
for j:=0 to n do
begin
stringgrid1. Cells [j, i]:=inttostr (x[i, j]);
end;
end;
// процедура вычисления суммы элементов матрицы и проверки
procedure TForm1. Button1Click (Sender: TObject);
begin
s:=0;
for i:=0 to n do
s:= s+x [i, i];
c:=0;
for j:=n downto 0 do
c:= c+x [n-j, j];
for i:=0 to n do
begin
x [i, n+1]:=0;
for j:=0 to n do
x [i, n+1]:=x [i, n+1]+x [i, j];
end;
for i:=0 to n do
begin
x [n+1, i]:=0;
for j:=0 to n do
x [n+1, i]:=x [n+1, i]+x [j, i];
end;
k:=0;
if c=s then begin
for i:=0 to n do
if (c=x [n+1, i]) and (c=x [i, n+1]) then k:=k+1; end;
ifk=n+1 thenlabel4.caption:='Данная матрица является магичесим квадратом'
elselabel4.caption:='Эта матрица не является магическим квадратом';
end;
// Вывод в StringGrid3контрольной матрицы
procedure TForm1. Label6Click (Sender: TObject);
begin
randomize;
n:=strtoint (edit1. Text);
stringgrid1. Visible:=true;
n:=n-1;
StringGrid1. Height:=StringGrid1. DefaultRowHeight* (strtoint (edit1.text)+1);
StringGrid1. Width:=StringGrid1. DefaultColWidth* (strtoint (edit1.text)+1);
StringGrid1. ColCount:=strtoint (edit1.text);
StringGrid1. RowCount:=strtoint (edit1.text);
for i:=0 to n do
for j:=0 to n do
begin
x [i, j]:=random(1)+1;
end;
for i:=0 to n do
for j:=0 to n do
begin
stringgrid1. Cells [j, i]:=inttostr (x[i, j]);
end;
end;
продолжение
--PAGE_BREAK--2.2 Спецификация программы
Исполняемый файл программы выполнения операции над матрицами имеет название Matr.exe и расположен на компакт-диске в каталоге Matr1\Magi. Состав проекта.
продолжение
--PAGE_BREAK--2.3 Текст программы
Листинг программы.
unit Unit1;
interface
// подключение модулей
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Menus;
// описание типов
type
TForm1 = class(TForm)
Label1: TLabel;
StringGrid1: TStringGrid;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Label4: TLabel;
Label6: TLabel;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
procedure Label3Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedure Label6Click (Sender: TObject);
procedure N1Click (Sender: TObject);
procedure N2Click (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
// описание переменных
var
Form1: TForm1;
k, s, c, i, j, n:integer;
x:array [0… 10,0..10] of integer;
implementation
uses Unit2;
{$R*.dfm}
// формирование матрицы
procedureTForm1. Label3Click (Sender: TObject);
begin
if edit1. Text='' then showmessage ('введитеразмерматрицы') else
randomize;
n:=strtoint (edit1. Text);
stringgrid1. Visible:=true;
n:=n-1;
StringGrid1. Height:=StringGrid1. DefaultRowHeight* (strtoint (edit1.text)+1);
StringGrid1. Width:=StringGrid1. DefaultColWidth* (strtoint (edit1.text)+1);
StringGrid1. ColCount:=strtoint (edit1.text);
StringGrid1. RowCount:=strtoint (edit1.text);
for i:=0 to n do
for j:=0 to n do
begin
x [i, j]:=random(5)+1;
end;
for i:=0 to n do
for j:=0 to n do
begin
stringgrid1. Cells [j, i]:=inttostr (x[i, j]);
end;
end;
procedure TForm1. FormCreate (Sender: TObject);
begin
stringgrid1. Visible:=false;
end;
// основная процедура вычислении и проверки
procedureTForm1. Button1Click (Sender: TObject);
begin
s:=0;
for i:=0 to n do
s:= s+x [i, i];
c:=0;
for j:=n downto 0 do
c:= c+x [n-j, j];
for i:=0 to n do
begin
x [i, n+1]:=0;
for j:=0 to n do
x [i, n+1]:=x [i, n+1]+x [i, j];
end;
for i:=0 to n do
begin
x [n+1, i]:=0;
for j:=0 to n do
x [n+1, i]:=x [n+1, i]+x [j, i];
end;
k:=0;
if c=s then begin
for i:=0 to n do
if (c=x [n+1, i]) and (c=x [i, n+1]) then k:=k+1; end;
if k=n+1 then label4.caption:='Данная матрица является магичесим квадратом'
else label4.caption:='Эта матрица не является магическим квадратом';
end;
// показать матрицу
procedure TForm1. Label6Click (Sender: TObject);
begin
randomize;
n:=strtoint (edit1. Text); // количество строк или столбцов
stringgrid1. Visible:=true; // видимость
n:=n-1;
// настройка размера StringGrid
StringGrid1. Height:=StringGrid1. DefaultRowHeight* (strtoint (edit1.text)+1);
StringGrid1. Width:=StringGrid1. DefaultColWidth* (strtoint (edit1.text)+1);
StringGrid1. ColCount:=strtoint (edit1.text);
StringGrid1. RowCount:=strtoint (edit1.text);
for i:=0 to n do
for j:=0 to n do
begin
x [i, j]:=random(1)+1; // контрольная матрица
end;
for i:=0 to n do
for j:=0 to n do
begin
stringgrid1. Cells [j, i]:=inttostr (x[i, j]);
end;
end;
// запустить 2-форму
procedure TForm1.N1Click (Sender: TObject);
begin
form2.show;
end;
// закрытие
procedure TForm1.N2Click (Sender: TObject);
begin
close;
end;
end.
// код для 2 – формы
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
private
{Private declarations}
public
{Public declarations}
end;
var
Form2: TForm2;
implementation
{$R*.dfm}
end.
продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по информатике
Реферат по информатике
Расчет механизма подъема
2 Сентября 2013
Реферат по информатике
Программа Футбольный болельщик
18 Июня 2015
Реферат по информатике
Учебные модули в системе дистанционного обучения
18 Июня 2015
Реферат по информатике
Разработка базы данных в среде Microsoft Access
2 Сентября 2013