Разработка приложения для Windows, представляющего собой выполнение операции над матрицами

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

er 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.

 

Окно Form2

 

компонент Form2

Свойства

Caption Справка

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

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

procedure TForm1. 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;

if k=n+1 then label4.caption:=Данная матрица является магичесим квадратом

else label4.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;

 

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

 

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

 

НаименованиеОбозначениеПримечанияMagi.resФайл ресурсовСодержит пиктограммы, графические изображенияMagi.dprФайл проектаСвязывает все файлы из которых состоит приложениеMagi.dofФайл параметров проектаСодержит текущие установки проекта: настройки компилятора и компоновщика, имена служебных каталогов, условные директивыMagi.cfgФайл, содержащий конфигурационную информацию о проектеСодержит информацию о том какие окна открыты и в каких позициях они расположеныUnit2.pasФайл программного модуля для формы №2Определяет функциональность формы №2Unit2.dfmФайл формы №2Содержит список свойств всех компонентов, включенных в форму №2Unit2.dcuОбъектный файл для Unit2.pasОткомпилированная версия Unit2.pasUnit1.pasФайл программного модуля для формы №1Определяет функциональность формы №1Unit1.dfmФайл формы №1Содержит список свойств всех компонентов, включенных в форму №1Unit1.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)

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}

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

procedure TForm1. 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;