Алгоритм и программа Delphi

На первом этапе создания программы программист должен определить последовательность действий, которые необходимо выполнить, чтобы решить поставленную задачу, т. е. разработать алгоритм. Алгоритм — это точное предписание, определяющее процесс перехода от исходных данных к результату.

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

 


Знаете ли Вы, что релятивистское объяснение феномену CMB (космическому микроволновому излучению) придумал человек выдающейся фантазии Иосиф Шкловский (помните книжку миллионного тиража "Вселенная, жизнь, разум"?). Он выдвинул совершенно абсурдную идею, заключавшуюся в том, что это есть "реликтовое" излучение, оставшееся после "Большого Взрыва", то есть от момента "рождения" Вселенной. Хотя из простой логики следует, что Вселенная есть всё, а значит, у нее нет ни начала, ни конца... Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution