Технологии программирования | страница 121
Действие по изменению симплекса при отсутствии успеха представляет собой альтернативу: если Q>β ≤ Q>k, то точка β записывается на место k-точки, иначе, если точка β хуже точки k, выполняется процедура редукции симплекса.
При выполнении процедуры редукции симплекса все точки симплекса стягиваются к лучшей точке симплекса на половину своего прежнего удаления и далее выполняется процедура расчета значений целевой функции во всех точках симплекса.
5.8. КОДИРОВАНИЕ ТИПОВЫХ СТРУКТУР НА ЯЗЫКАХ ПРОГРАММИРОВАНИЯ
Обычно разработку алгоритмов программ совмещают с кодированием текста программы. Отдельное от программирования написание алгоритмов практически ничем не отличается от написания инструкций.
Кодирование программы должно осуществляться только с использованием стандартных структур! Запрещено использование меток, операторов безусловного перехода на метку (go to), операторов досрочного выхода из структуры break!
При кодировании на языке С оператор break может использоваться только при кодировании структуры switch.
При использовании другого процедурно-ориентированного языка программирования (не Pascal) необходимо предварительно закодировать на используемом языке программирования все описанные в этом подразделе стандартные структуры без изменения их логики!
Так, при программировании на языке С структура УНИВЕРСАЛЬНЫЙ ЦИКЛ — "ДО" будет включать операцию "!" (НЕ):
>/* подготовка цикла */
>do
>{
>/* Тело цикла */
>…
>}
>while (! (L));
В приведенной выше структуре ненулевое значение переменной L соответствует окончанию выполнения цикла, а не его продолжению выполнения, как в операторе языка программирования! Использование "линией" операции (!) НЕ никак не удлинит программу. Современные компиляторы автоматически инвертируют логическое условие завершения цикла.
Структуре СЛЕДОВАНИЕ в программах могут соответствовать: выполнение всей программы; вызов процедуры.
Согласно стандарту проекта, АЛЬТЕРНАТИВА имеет четыре конструкции. Рассмотрим их запись на языке программирования Pascal.
Конструкция для одной альтернативы:
>if L then begin
>{Действие при L=True}
>…
>end;
Конструкция для двух альтернатив:
>if L then begin
>{Действие при L=True}
>…
>end
>else
>begin
>{Действие при L=False}
>…
>End;
Первый вариант конструкции для нескольких альтернатив (ВЫБОРА):
>if L1 then Begin
>{Действие при L1=True}
>end;
>…
>if L2 then
>begin
>{Действие при L2=True}
>…
>end;
>if L3 then
>begin
>{Действие при L3=True}
>…
>end;
Второй вариант конструкции для нескольких альтернатив (ВЫБОРА):