Алгоритм
и программа
На первом этапе создания
программы программист должен определить последовательность действий, которые
необходимо выполнить, чтобы решить поставленную задачу, т. е. разработать алгоритм.
Алгоритм — это точное предписание,
определяющее процесс перехода от исходных данных к результату.
Алгоритм решения задачи
может быть представлен в виде словесного описания или графически — в виде блок-схемы.
При изображении алгоритма в виде блок-схемы используются специальные символы
(рис. 1.1).
Рис. 1.1. Основные
символы, используемые для представления алгоритма в виде блок-схемы
Представление алгоритма
в виде блок-схемы позволяет программисту уяснить последовательность действий,
которые должны быть выполнены для решения задачи, убедиться в правильности понимания
поставленной задачи.
При программировании
в Delphi алгоритм решения задачи представляет собой совокупность алгоритмов
процедур обработки событий.
В качестве примера
на рис. 1.2 приведена совокупность алгоритмов программы Стоимость покупки,
а на рис. 1.3 — ее диалоговое окно. После разработки диалогового окна и
алгоритмов обработки событий можно приступить к написанию программы. Ее текст
приведен в листинге 1.1.
Листинг 1.1.
Программа Стоимость покупки
unit
pokupka_1;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1
= class(TForra)
Edit1:
TEdit;
Edit2:
TEdit;
Label1:
TLabel;
Label2:
TLabel;
Button1:
TButton;
Label3:
TLabel;
procedure
ButtonlClick(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject;
var
Key: Char);
procedure EditlKeyPress(Sender: TObject;
var
Key: Char); private
{ Private declarations } public
{ Public declarations }
end;
var
Forml:
TForm1;
implementation
{$R
*.dfm}
// подпрограмма
procedure Summa;
var
cena:
real; // цена
kol:
integer; // количество
s:
real; // сумма
mes: string[255]; // сообщение
begin
cena
:= StrToFloat(Form1.Edit1.Text);
kol
:= StrToInt(Forml.Edit2.Text);
s
:= cena * kol;
if
s > 500 then
begin
s
:= s * 0.9;
mes := 'Предоставляется скидка 10%' + #13;
end;
mes
:= mes+ 'Стоимость покупки: '
+ FloatToStrF(s,ffFixed,4,2) +' руб.';
Forml.Label3.Caption := mes;
end;
//
щелчок на кнопке Стоимость
procedure
TForml.ButtonlClick(Sender: TObject);
begin
Summa; // вычислить сумму покупки
end;
//
нажатие клавиши в поле Количество
procedure
TForml.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
case
Key of
'0' .. '9',#8: ; // цифры и клавиша <Backspace>
#13: Summa; // вычислить стоимость покупки
else Key := Chr(O); // символ не отображать
end;
end;
//
нажатие клавиши в поле Цена
procedure
TForm1.EditlKeyPress(Sender: TObject; var Key: Char);
begin
case
Key of
'0'
.. '9', #8 : ; // цифры и клавиша <Backspace>
#13:
Form1.Edit2.SetFocus; // клавиша <Enter>
'.'
,'.' :
begin
if
Key = '.'
then
Key:=', if Pos(',',Edit1.Text) <> 0
then Key:= Chr(0);
end;
else
// все остальные символы запрещены
Key := Chr(0);
end;
end;
end.
Рис. 1.2.
Алгоритм программы вычисления стоимости покупки — совокупность алгоритмов обработки
событий на компонентах формы
Рис. 1.3. Окно (форма) программы Стоимость покупки