181
численности 35 000? (Считать, что в месяце 30 рабочих дней.)
Решение задачи 17 реализовано в скрипте othersheep.mq4. В данном случае оператор
continue используется для расчётов во внешнем и внутреннем циклах.
//--------------------------------------------------------------------
// othersheep.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start() // Специальная ф-ия start()
{
//--------------------------------------------------------------------
int
day, // Текущий день месяца
Mons; // Искомое количест. месяцев
double
One_Farm =1000.0, // Количество на 1 ферме
Perc_day =1, // Ежедневный подъём, %
One_Farm_max=50000.0, // Пороговое значение
Perc_exit =10, // Разовый вывод, %
Purpose =35000.0, // Необх. колич. на 2 ферме
Two_Farm; // Количество на 2 ферме
//--------------------------------------------------------------------
while(Two_Farm < Purpose) // До достижения цели
{ // Начало тела внешн. цикла
//--------------------------------------------------------------
for(day=1; day<=30 && Two_Farm < Purpose; day++)// Цикл по дням
{
One_Farm=One_Farm*(1+Perc_day/100);//Накопл. на 1 ферме
if (One_Farm < One_Farm_max) // Если меньше допустимого,.
continue; // .. то овец не переводим
Two_Farm=Two_Farm+One_Farm*Perc_exit/100;//Накопл. на 2 ферме
One_Farm=One_Farm*(1-Perc_exit/100); //Остаток на 1 ферме
}
//--------------------------------------------------------------
if (Two_Farm>=Purpose) // Если цель достигнута,..
continue; // .. то месяцы не считаем
Mons++; // Считаем месяцы
} // Конец тела внешнего цикла
//--------------------------------------------------------------------
Alert("Цель будет достигнута через ",Mons," мес. и ",day," дн.");
return; // Выход из функции start()
}
//--------------------------------------------------------------------