Skip to Content

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

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

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

Алгоритм решения задачи может быть представлен в виде словесного описания или графически — в виде блок-схемы. При изображении алгоритма в виде блок-схемы используются специальные символы (рис. 1.1).


Рис. 1.1. Основные символы, используемые для представления алгоритма в виде блок-схемы

Представление алгоритма в виде блок-схемы позволяет программисту уяснить последовательность действий, которые должны быть выполнены для решения задачи, убедиться в правильности понимания поставленной задачи.

При программировании в Delphi алгоритм решения задачи представляет собой совокупность алгоритмов процедур обработки событий.

В качестве примера на рис. 1.2 приведена совокупность алгоритмов программы Стоимость покупки, а на рис. 1.3 — ее диалоговое окно. После разработки диалогового окна и алгоритмов обработки событий можно приступить к написанию программы. Ее текст приведен в листинге 1.1.


Листинг 1.1. Программа Стоимость покупки

  1. unit pokupka_1;
  2.  
  3. interface uses
  4.  
  5. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
  6.  
  7. type
  8.  
  9. TForm1 = class(TForra)
  10. Edit1: TEdit;
  11. Edit2: TEdit;
  12. Label1: TLabel;
  13. Label2: TLabel;
  14. Button1: TButton;
  15. Label3: TLabel;
  16.  
  17. procedure ButtonlClick(Sender: TObject);
  18. procedure Edit2KeyPress(Sender: TObject;
  19. var Key: Char);
  20. procedure EditlKeyPress(Sender: TObject;
  21. var Key: Char); private
  22.  
  23. { Private declarations } public
  24. { Public declarations }
  25.  
  26. end;
  27.  
  28. var
  29.  
  30. Forml: TForm1;
  31.  
  32. implementation
  33.  
  34. {$R *.dfm}
  35.  
  36.  
  37. // подпрограмма
  38.  
  39. procedure Summa;
  40. var
  41.  
  42. cena: real; // цена
  43. kol: integer; // количество
  44. s: real; // сумма
  45. mes: string[255]; // сообщение
  46.  
  47. begin
  48.  
  49. cena := StrToFloat(Form1.Edit1.Text);
  50. kol := StrToInt(Forml.Edit2.Text);
  51. s := cena * kol;
  52.  
  53. if s > 500 then
  54. begin
  55.  
  56. s := s * 0.9;
  57. mes := 'Предоставляется скидка 10%' + #13;
  58.  
  59. end;
  60.  
  61. mes := mes+ 'Стоимость покупки: '
  62. + FloatToStrF(s,ffFixed,4,2) +' руб.';
  63.  
  64. Forml.Label3.Caption := mes;
  65.  
  66. end;
  67.  
  68. // щелчок на кнопке Стоимость
  69.  
  70. procedure TForml.ButtonlClick(Sender: TObject);
  71. begin
  72. Summa; // вычислить сумму покупки
  73. end;
  74.  
  75. // нажатие клавиши в поле Количество
  76.  
  77. procedure TForml.Edit2KeyPress(Sender: TObject; var Key: Char);
  78. begin
  79.  
  80. case Key of
  81. '0' .. '9',#8: ; // цифры и клавиша <Backspace>
  82. #13: Summa; // вычислить стоимость покупки
  83. else Key := Chr(O); // символ не отображать
  84.  
  85. end;
  86. end;
  87.  
  88. // нажатие клавиши в поле Цена
  89.  
  90. procedure TForm1.EditlKeyPress(Sender: TObject; var Key: Char);
  91. begin
  92.  
  93. case Key of
  94. '0' .. '9', #8 : ; // цифры и клавиша <Backspace>
  95. #13: Form1.Edit2.SetFocus; // клавиша <Enter>
  96. '.' ,'.' :
  97. begin
  98. if Key = '.'
  99. then Key:=', if Pos(',',Edit1.Text) <> 0
  100. then Key:= Chr(0);
  101.  
  102. end;
  103.  
  104. else // все остальные символы запрещены
  105.  
  106. Key := Chr(0);
  107.  
  108. end;
  109. end;
  110.  
  111. end.


Рис. 1.2. Алгоритм программы вычисления стоимости покупки — совокупность алгоритмов обработки событий на компонентах формы


Рис. 1.3. Окно (форма) программы Стоимость покупки



Delphi Для профессионалов &1   |    Delphi Для профессионалов &2   |    Delphi Для профессионалов &3   |    Иллюстрированный самоучитель &1   |    Иллюстрированный самоучитель &2