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