193
после исполнения функции управление передаётся в то место выражения,
где указан вызов функции, и дальнейшие вычисления в выражении
производятся со значением, возвращённым функцией.
Использование вызова функции в составе других операторов определяется форматом этих
операторов.
Задача 20. Составить программу, в которой реализуются следующие
условия: - если текущее время больше 15:00, то выполнить 10 итераций в
цикле for;- в остальных случаях выполнить 6 итераций.
Ниже приведен пример скрипта callfunction.mq4, в котором используются: вызов функции
в заголовке оператора for (в составе Выражения_1, согласно формату оператора for, см.
Оператор цикла for), вызов стандартной функции в виде отдельного оператора, в правой
части оператора присваивания (см. Оператор присваивания) и в заголовке оператора if-
else (в Условии, согласно формату оператора if-else, см. Условный оператор if-else).
///--------------------------------------------------------------------
// callfunction.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start() // Описание функции start()
{ // Начало тела ф-ии start()
int n; // Объявление переменной
int T=15; // Заданное время
for(int i=Func_yes_ret(T);i<=10;i++) // Использование функции в..
//.заголовке оператора цикла
{ // Начало тела цикла for
n=n+1; // Счётчик итераций
Alert ("Итерация n=",n," i=",i); // Оператор вызова функции
} // Конец тела цикла for
return; // Выход из функции start()
} // Конец тела ф-ии start()
//--------------------------------------------------------------------
int Func_yes_ret (int Times_in) // Описание пользоват. ф-ии
{ // Начало тела польз. ф-ии
datetime T_cur=TimeCurrent(); // Использование функции в..
// ..операторе присваивания
if(TimeHour(T_cur) > Times_in) // Использование функции в..
//..заголовке операт.if-else
return(1); // Возврат значения 1