Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЩЗ Тимченко.doc
Скачиваний:
2
Добавлен:
07.11.2018
Размер:
601.09 Кб
Скачать

6 Опис процедур і функцій користувача

procedure Button2Click(Sender: TObject); - процедура що відповідає за очистку програми від вхідних і вихідних даних.

procedure Button3Click(Sender: TObject); - процедура що відповідає за зчитування вхідних даних, основне обчислення в програмі, та виведення результатів.

procedure StringGrid1KeyPress(Sender: TObject; var Key: Char); - процедура що не дозволяє вводити в Stringgrid символи, букви а лише додатні цілі числа.

procedure N3Click(Sender: TObject); - процедура що відповідає за очистку програми від вхідних і вихідних даних.

procedure N2Click(Sender: TObject); - процедура відповідає за відкриття додаткової форми та завантаження в неї текстового документу з завданням.

procedure N6Click(Sender: TObject); - відповідає за закриття додаткової форми.

procedure N4Click(Sender: TObject); - процедура відповідає за відкриття додаткової форми та завантаження в неї текстового документу з довідкою.

7 Опис стандартних процедур і функцій

ShowMessage(‘повідомлення’) – функція, яка відображає коротке повідомлення.

LoadFromFile(filename) – функція завантаження інформації з файлу.

StrToInt(змінна) – функція що переводить рядкову величину в числову цілу.

IntToStr(змінна) – функція що переводить цілу числову величину в рядкову.

8 Інструкція для роботи з програмою

1 Для запуску програми запустити файл «Фонтан.exe» який знаходиться в директорії «Фонтан».

2 Для початку вам необхідно заповнити значеннями ліву крайню таблицю. Кожна комірка повинна бути заповнена бо програма свій обрахунок здійснити не зможе.

3 Потім потрібно натиснути кнопку "Обрахувати" і в праву крайню таблицю буде виданий результат у вигляді нулів (0) та одиниць (1). Під таблицею буде написано, чи залишається вода у фонтані та яка найбільше глибина калюжі.

4 Якщо ви хочете змінити значення вхідних даних то можете це зробити прямо в таблиці, навівши на потрібну комірку курсор, клацнути лівою кнопкою миші та вказати потрібне значення, після чого натиснути кнопку "Обрахувати".

5 Якщо вам потрібно змінити майже всі вхідні дані то простіше буде, натиснути на кнопку "Очистити" яка знаходить у вікні програми під кнопкою "Обрахувати" або у меню "Програма".

6 Для того щоб переглянути завдання для якого було створено цю програму необхідно зайти у меню "Програма" та обрати пункт "Завдання". З'явиться додаткова форма в якій буде відображене завдання та дві кнопки. При натисненні першої закриється активна форма і ви повернетесь до головної програми, при натисненні другої відбудеться вихід з усієї програми.

7 Щоб дізнатись довідку по програмі а тобто інструкцію з експлуатації необхідно натиснути кнопку "Довідка" у головному меню.

8 Для виходу з програми натисніть кнопку закриття вікна або оберіть в меню "Програма" пункт "Вихід".

9 Текст програми

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls, Menus, jpeg, ExtCtrls;

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

Button2: TButton;

Button3: TButton;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N6: TMenuItem;

N4: TMenuItem;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);

procedure N3Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

var A:array[0..4,0..4] of integer;

B:array[1..8] of integer;

C:array[1..16] of integer;

mas:array[1..3,1..3] of integer;

e:array[0..4,0..4] of integer;

i,j,m,n,r1,r2,x,y,z,mini,k,l,h,p:integer;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin

for i:=0 to 4 do

begin

for j:=0 to 4 do

begin

stringgrid2.cells[i,j]:='';

stringgrid1.cells[i,j]:='';

end; end;

label1.Caption:='';

label2.Caption:='';

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

if ((stringgrid1.Cells[0,0]='') or (stringgrid1.Cells[0,1]='')

or (stringgrid1.Cells[0,2]='') or (stringgrid1.Cells[0,3]='')

or (stringgrid1.Cells[0,4]='') or (stringgrid1.Cells[1,0]='') or (stringgrid1.Cells[1,1]='') or (stringgrid1.Cells[1,2]='')

or (stringgrid1.Cells[1,3]='') or (stringgrid1.Cells[1,4]=''))

then showmessage('Заповніть всі комірки!')

else

begin

for i:=0 to 4 do

for j:=0 to 4 do

A[i,j]:=strtoint(stringgrid1.cells[i,j]);

for i:=1 to 3 do

for j:=1 to 3 do

begin

mas[i,j]:=strtoint(stringgrid1.Cells[i,j]);

if mas[i,j]>=a[4,3] then

stringgrid2.cells[i,j]:='0'

else stringgrid2.cells[i,j]:='1';

end;

stringgrid2.cells[0,0]:='0';

stringgrid2.cells[0,1]:='0';

stringgrid2.cells[0,2]:='0';

stringgrid2.cells[0,3]:='0';

stringgrid2.cells[0,4]:='0';

stringgrid2.cells[1,4]:='0';

stringgrid2.cells[2,4]:='0';

stringgrid2.cells[3,4]:='0';

stringgrid2.cells[4,4]:='0';

stringgrid2.cells[1,0]:='0';

stringgrid2.cells[2,0]:='0';

stringgrid2.cells[3,0]:='0';

stringgrid2.cells[4,0]:='0';

stringgrid2.cells[4,1]:='0';

stringgrid2.cells[4,2]:='0';

stringgrid2.cells[4,3]:='0';

c[1]:=a[0,0];

c[2]:=a[1,0];

c[3]:=a[2,0];

c[4]:=a[3,0];

c[5]:=a[4,0];

c[6]:=a[0,1];

c[7]:=a[0,2];

c[8]:=a[0,3];

c[9]:=a[0,4];

c[10]:=a[1,4];

c[11]:=a[2,4];

c[12]:=a[3,4];

c[13]:=a[4,4];

c[14]:=a[4,1];

c[15]:=a[4,2];

c[16]:=a[4,3];

b[1]:=a[1,1];

b[2]:=a[2,1];

b[3]:=a[3,1];

b[4]:=a[1,2];

b[5]:=a[1,3];

b[6]:=a[2,3];

b[7]:=a[3,3];

b[8]:=a[3,2];

h:=0;

for x:=0 to 4 do

for y:=0 to 4 do

e[x,y]:=strtoint(stringgrid2.cells[x,y]);

z:=0;

for x:=0 to 4 do

for y:=0 to 4 do

if (e[x,y]=1) then z:=z+1;

mini:=strtoint(stringgrid1.cells[1,1]);

m:=0;

if (z>0) then begin

label1.Caption:='Вода залишається';

for r1:=1 to 3 do

for r2:=1 to 3 do

begin

if (strtoint(stringgrid1.cells[r1,r2])<mini) then

mini:=strtoint(stringgrid1.cells[r1,r2]);

end;

if (mini=strtoint(stringgrid1.Cells[2,2])) then

begin if ((a[2,2]<a[3,2]) and (a[2,2]<a[1,2]) and

(a[2,2]<a[2,3]) and (a[2,2]<a[2,1]) and

(a[4,2]>=a[3,2]) and (a[2,0]>=a[2,1]) and

(a[0,2]>=a[1,2]) and (a[2,4]>=a[2,3])) then

h:=a[4,2]-a[2,2] else

begin for r1:=1 to 3 do

for r2:=1 to 3 do

if (stringgrid1.cells[r1,r2]=stringgrid1.cells[1,1])

then m:=m+1;

if (m=9) then h:=a[4,2]-a[2,2];

end;

end

else h:=a[4,3]-mini;

label2.caption:='Найбільша глибина - '+ inttostr(h);

end

else

begin label1.Caption:='Вода не залишається';

label2.Caption:=''; end;

end;

end;

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

#8,'0'..'9' : ;

#13:

if StringGrid1.Col < StringGrid1.ColCount - 1

then StringGrid1.Col := StringGrid1.Col + 1;

else key := Chr(0);

end;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

for i:=0 to 4 do

begin for j:=0 to 4 do begin

stringgrid2.cells[i,j]:='';

stringgrid1.cells[i,j]:='';

end; end;

label1.Caption:='';

label2.Caption:='';

end;

procedure TForm1.N2Click(Sender: TObject);

begin

form2.Caption:='Завдання';

form2.memo1.lines.loadfromfile('txt\zavd.txt');

form2.showmodal;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

form1.close;

form2.close;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

form2.Caption:='Довідка';

form2.memo1.lines.loadfromfile('txt\dovidka.txt');

form2.showmodal;

end;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]