170
Если только что вычисленная площадь текущего прямоугольника s оказывается больше
площади S, вычисленной на предыдущей итерации, то это новое значение s и становится
лучшим достигнутым результатом. В этом случае Условие оператора if не выполняется, а
управление передаётся ближайшему оператору, следующему за оператором if. В этих
строках запоминаются лучшие достигнутые результаты:
A = a; // Запоминаем лучшее значение
B = b; // Запоминаем лучшее значение
S = s; // Запоминаем лучшее значение
При достижении ближайшей закрывающей фигурной скобки итерация заканчивается, и
управление передаётся в заголовок оператора for для выполнения Выражения_2 и
проверки Условия. Если на момент проверки размер стороны а ещё не вырос до
указанных пределов, то выполнение цикла продолжится.
Повторяющиеся циклические вычисления будут продолжаться до тех пор, пока не
произойдёт одно из событий: либо размер стороны а превысит допустимые пределы (в
соответствии с Условием оператора for), либо размер вычисленной площади s окажется
меньше ранее достигнутого значения, хранящегося в переменной S. У нас есть все
основания считать, что раньше произойдёт выход из цикла по условию оператора if:
if (s <= S ) // Выбираем большее значение
break; // Выходим за пределы цикла
Действительно, оператор цикла for составлен так, что перебирает все возможные
варианты без исключения (половина длины нити L/2 - это сумма двух сторон). В то же
время максимальная площадь прямоугольника будет достигнута где-то в середине
перебираемого набора вариантов. И как только это событие произойдёт (площадь
текущего прямоугольника s окажется меньше или равной ранее достигнутого значения S),
в рамках исполнения оператора if управление будет передано оператору break, который, в
свою очередь, передаст управление за пределы оператора for в строку:
Alert("Максимальная площадь = ",S," A=",A," B=",B);// Сообщение
В результате исполнения встроенной функции Alert() будет напечатана следующая строка:
Максимальная площадь = 62500 А=250 В=250
После этого управление будет передано оператору return, в результате чего специальная
функция start() завершит свою работу. Это, в свою очередь, приведёт к окончанию работы
скрипта и выгрузке его клиентским терминалом из окна финансового инструмента.