- •1.1 Оформление программы
- •1.2 Переменные и константы
- •1.2.1 Типы
- •1.2.2 Записи (структуры)
- •V: real; // 2-я переменная, скорость
- •Var // Служебное слово для обозначения
- •1.2.3 Массивы
- •Implementation // Определяет внешнюю видимость этого
- •I: integer; // объявление локальной внутри процедуры
- •Int s[10]; // Определение массива с
- •1.2.4 Локальные и глобальные переменные
- •I:integer; // переменных, в том числе «I»
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Int I; // объявление локальной внутри процедуры
- •1.3 Указатели
- •I:integer;
- •Inc(k,2); // перемещение указателя вперед на 2 длины
- •1.4 Команды
- •1.5 Пользовательские процедуры и функции
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Int n1,n2; // объявление локальных переменных
- •1.6 Объекты программы
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •1.7 Пример программы пользователя
- •1.7.1 Постановка задачи
- •1.7.2 Подготовка формы
- •1.7.3 Алгоритм программы
- •1.7.4 Последовательность разработки программы
- •1.7.5 Программа в Delphi
- •Interface // Определяет внешнюю видимость этого модуля
- •Implementation
- •2Перемещение объектов по форме
- •2.1 Общие сведения
- •2.1.1 Изменение положения объектов на форме
- •2.1.1.1Подготовка формы
- •2.1.1.2Блок-схема программы
- •2.1.1.3Листинг программы в среде Delphi:
- •Interface
- •Implementation
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::Timer1Timer(tObject *Sender)
- •2.1.2 Расчет положения объекта на форме по физическим координатам моделируемого объекта
- •2.1.3 Расчет координат связанных объектов
- •2.2 Дифференциальные уравнения
- •2.2.1 Дифференциальные уравнения движения
- •2.2.2 Методика решения дифференциальных уравнений движения
- •2.2.3 Алгоритмы управления движущимся объектом
- •Xmax, Ymax, Dx, Dy: real;
1.5 Пользовательские процедуры и функции
Часто в программе приходится повторять одни и те же действия. Или же для облегчения восприятия и отладки программы есть необходимость структурировать программу, оформив какую-нибудь часть, выполняющую конкретное законченное действие, в виде отдельной подпрограммы.
В языке Pascal существуют понятия процедур и функций. Они отличаются друг от друга тем, что функция возвращает какое-либо значение, а процедура нет. На языке C++ процедур нет – только функции. Однако функция может и не возвращать значение, тем самым она выполняет роль процедуры.
Объявление на языке Pascal процедур:
procedure <Имя функции> (передаваемые параметры);
begin
// тело процедуры
end;
Или с объявлением локальных переменных и констант
procedure <Имя функции> (передаваемые параметры);
const
// объявление локальных констант
var
// объявление локальных переменных
begin
// тело процедуры
end;
Необходимо отметить, что объявленные переменные в скобках в качестве передаваемых параметров сами по себе являются локальными относительно данной процедуры.
Объявление функции:
function <Имя функции> (передаваемые параметры):<тип возвращаемых данных>;
begin
// тело функции
<имя функции> := <что возвращать>;
end;
Или с объявлением локальных переменных и констант
function <Имя функции> (передаваемые параметры):<тип возвращаемых данных>;
const
// объявление локальных констант
var
// объявление локальных переменных
begin
// тело функции
<имя функции> := <что возвращать>;
end;
На языке С++ объявление функций:
<тип возвращаемых данных> <имя функции> (передаваемые параметры)
{
// тело функции
return <что возвращать>;
};
Если отсутствуют возвращаемые данные, то впереди имени функции следует поставить слово void. Аналогично, если передаваемые данные отсутствуют, то необходимо в скобках указать (void).
Вызывать процедуры и функции в программе необходимо по объявленному имени с перечислением всех необходимых передаваемых параметров. Тип передаваемых данных, количество, а также расположение должно быть строго соответствовать объявлению.
Пример:
Разработать функцию, которая бы делала арифметические действия над тремя числами, два из которых являются целыми, одно – десятичной дробью.
На языке Pascal:
function MyFun (A:integer; B:integer; C:real):real;
begin
MyFun := (A+B)*C;
end;
Пример вызова функции из обработчика события OnClick:
procedure TForm1.Button1Click(Sender: TObject);
var
N1:Integer; // объявление локальной переменной
N2:Integer; // объявление локальной переменной
N3:Real; // объявление локальной переменной
begin
N1:=StrToInt(Edit1.Text); // определение значения N1
N2:=StrToInt(Edit2.Text); // определение значения N2
N3:=StrToFloat(Edit3.Text); // определение значения N3
// вызов функции MyFun и вывод результата в Edit3
Edit3.Text := FloatToStr(MyFun(N1,N2,N3));
end;
На языке C++
float MyFun (int A, int B, float C)
{
return (A+B)*C;
};
Пример вызова:
