Технологии программирования | страница 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;


Второй вариант конструкции для нескольких альтернатив (ВЫБОРА):