Алгоритм и программа
На первом этапе
создания программы программист должен определить последовательность действий,
которые необходимо выполнить, чтобы решить поставленную задачу, т. е.
разработать алгоритм. Алгоритм — это точное предписание, определяющее процесс
перехода от исходных данных к результату.
Алгоритм
решения задачи может быть представлен в виде словесного описания или графически
— в виде блок-схемы. При изображении алгоритма в виде блок-схемы используются
специальные символы (рис. 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. Окно (форма) программы Стоимость покупки