Пятница, 22.11.2024, 03:11
Вы вошли как Гость | Группа "Не зарегистрированный"Приветствую Вас Гость | RSS
Главная | Каталог статей | Мой профиль | Регистрация | Выход | Вход
QO.DO.AM
 >>>мир предметника 050202

Форма входа

Основное меню

Меню 050202

Учительская OnLine

Категории раздела
Описание Delphi 7 [200]
От теории к практике
Задачи [61]

Статистика

Онлайн всего: 3
Гостей: 3
Пользователей: 0
// Your SEO optimized title page contents

Счетчики

Главная » Архив Информатики и ИКТ » Delphi 7 » Описание Delphi 7 [ Добавить статью ]

Глава 6. Процедуры и функции

Глава 6. Процедуры и функции

Часто, работая над программой, программист замечает, что некоторая последовательность инструкций встречается в разных частях программы несколько раз. Например, в листинге 6.1 приведена программа пересчета веса из фунтов в килограммы. Обратите внимание, что инструкции, обеспечивающие ввод исходных данных из полей редактирования, расчет и вывод результата (в листинге они выделены фоном), есть как в процедуре обработки события на кнопке Вычислить, так и в процедуре обработки события OnKeyPress В поле Editl.

Листинг 6.1. Пересчет веса из фунтов в килограммы 

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants,

Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel; // пояснительный текст 

Edit1: TEdit; // поле ввода веса в фунтах 

Button1: TButton; // кнопка Вычислить 

Label2: TLabel; // поле вывода результата 

procedure ButtonlClick(Sender: TObject);

procedure EditlKeyPress(Sender: TObject;

var Key: Char); private

{ Private declarations } public

{ Public declarations } 

end;

var

Form1: TForm1 ;

implementation

{$R *.dfm}

// щелчок на кнопке Вычислить 

procedure TForml.Button1Click(Sender: TObject);

var

f : real; // вес в фунтах 

kg : real; // вес в килограммах

begin

f := StrToFloat(Edit1.Text);

kg := f; * 0.4059;

Label2.Caption := Edit1.Text + ' ф. — это ' +

FloatToStrF(kg, ffGeneral, 4, 2} + 'кг.'; end;

// нажатие клавиши в поле ввода исходных данных 

procedure TForml.Edit1KeyPress(Sender: TObject; var Key: Char);

var

f : real; // вес в фунтах kg : real; // вес в килограммах

begin

if Key = Char(VK_RETURN) then

begin

f: = . StrToFloat(Editl.Text) ;

kg := f * 0.4059;

Label2.Caption := Editl.Text + ' ф. - это ' +

FloatToStrF(kg, ffGeneral, 4, 2) + 'кг.'1.;

end;

end;

end.

Можно избежать дублирования кода в программе. Для этого надо оформить инструкции, которые встречаются в программе несколько раз, как подпрограмму, и заменить инструкции, оформленные в виде подпрограммы, инструкцией вызова подпрограммы.

В листинге 6.2 приведена программа пересчета веса из фунтов в килограммы, в которой ввод исходных данных, вычисления и вывод результата объединены в подпрограмму, реализованную как функция.

Листинг 6.2. Пересчет веса из фунтов в килограммы (использование процедуры) 

unit Onit1; interface

uses

Windows, Messages, SysUtils, Variants,

Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1= class(TForm)

Label1: TLabel; // пояснительный текст 

Edit1: TEdit; // поле ввода веса в фунтах 

Button1: TButton; // кнопка Вычислить 

Label2: TLabel; // поле вывела результата 

procedure Button1Click(Sender: TObject);

procedure EditlKeyPress(Sender: TObject;

var Key: Char); private

{ Private declarations } public

{ Public declarations } end;

var

Form1: TForm1;

implementation

{$R *.dfm}

// процедура программиста

procedure FuntToKg;

var

f : real; // вес в фунтах 

kg : real; // вес в килограммах

begin

f := StrToFloat(Form1.Edit1.Text);

kg := f * 0.4059;

Forml.Label2.Caption := Forml.Edit1.Text + ' ф. — это ' +

FloatToStrF(kg, ffGeneral, 4, 2) + 'кг.';

end;

// щелчок на кнопке Вычислить 

procedure TForml.ButtonlClick(Sender: TObject);

begin

FuntToKg; // вызов процедуры FuntToKg end;

// нажатие клавиши в поле ввода исходных данных 

procedure TForm1.EditlKeyPress(Sender: TObject;

var Key: Char);

begin

if Key = Char(VK_RETURN)

then FuntToKg; // вызов процедуры FuntToKg end;

end.

Преимущества использования подпрограмм очевидны. Во-первых, в программе нет дублирования кода, что сокращает трудоемкость создания программы, делает более удобным процесс отладки и внесения изменений. Представьте, что нужно изменить пояснительный текст, выводимый программой пересчета веса из фунтов в килограммы. В программе, не использующей подпрограмму, нужно просмотреть весь текст и сделать необходимые изменения. Если программа использует подпрограмму, то изменения надо внести только в текст подпрограммы. Во-вторых, значительно повышается надежность программы. Следует обратить внимание, что подпрограммы используют не только тогда, когда нужно избежать дублирования кода. Удобно большую задачу разделить на несколько подзадач и оформить каждую задачу как подпрограмму. В этом случае значительно улучшается "читаемость" программы и, как следствие, существенно облегчается процесс отладки.

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

У каждой подпрограммы есть имя, которое используется в программе для вызова подпрограммы (процедуры).

Отличие функции от процедуры состоит в том, что с именем функции связано значение, поэтому функцию можно использовать в качестве операнда выражения, например, инструкции присваивания.

Как правило, подпрограмма имеет параметры. Различают формальные и фактические параметры.

Параметры, которые указываются в объявлении функции, называются формальными. Параметры, которые указываются в инструкции вызова процедуры, называются фактическими. 

Параметры используются:

  • для передачи данных в подпрограмму;
  • для получения из результата подпрограммы.

В общем случае в качестве фактического параметра процедуры можно использовать выражение, тип которого должен совпадать с типом соответствующего формального параметра.



Источник: http://qo.do.am/index/teorija_po_programirovaniju/0-47 СОДЕРЖАНИЕ Delphi 7
Категория: Описание Delphi 7 | Добавил: metalworker (01.05.2013) | Автор: СОДЕРЖАНИЕ Delphi 7 E
Просмотров: 1287 | Теги: консоль, form, Borland Delphi 7, Информатика и ИКТ, что такое?, Delphi 7 помощь, коды, делфи 7, программирование, работа
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]


qo.do.am © 2024