Технологии программирования | страница 122
>Switch:= 0;
>L1:=…;
>L2:=…;
>L3:=…;
>…
>if L1 then Switch:= 1;
>if L2 then Switch:= 2;
>if L3 then Switch:= 3;
>…
>case Switch of
>1:begin
>{Действие при L1=True}
>…
>end;
>2:begin
>{Действие при L2=True}
>…
>end;
>3:begin
>{Действие при L3=True}
>…
>end;
>else
>begin
>{Вывод сообщения об ошибочном кодировании модуля}
>…
>end;
>end; {End of Case}
Рассмотрим запись вариантов кодирования структуры АЛЬТЕРНАТИВА на языке программирования С.
Конструкция для одной альтернативы:
>if (L)
>{
>/*Действие при L ≠ 0*/
>…
>}
Конструкция для двух альтернатив:
>if (L)
>{
>/*Действие при L ≠ 0*/
>…
>}
>else
>{
>/*Действие при L = 0*/
>…
>}
Первый вариант конструкции для нескольких альтернатив (ВЫБОРА)
>if (L1)
>{
>/*Действие при L1 ≠ 0*/
>…
>}
>else if (L2)
>{
>/*Действие при L2 ≠ 0*/
>…
>}
>else if(L3)
>{
>/*Действие при L3 ≠ 0*/
>…
>}
>…
>}
Второй вариант конструкции для нескольких альтернатив (ВЫБОРА):
>Selector = 0;
>L1 =…;
>L2 =…;
>L3 =…;
>…
>if (L1) Selector = 1;
>else if (L2) Selector = 2;
>else if (L3) Selector = 3;
>…
>switch (Selector)
>case 1:
>/*Действие при L1 ≠ 0*/
>…
>break;
>case 2:
>/*Действие при L2 ≠ 0*/
>…
>break;
>case 3:
>/*Действие при L3 ≠ 0*/
>…
>break;
>default:
>/*Вывод сообщения об ошибочном кодировании модуля*/
>exit (-1);
>} /*Конец switch*/
Правая конструкция соответствует очень сложной логике условий. В простейших случаях допускается упрощенная кодировка (первый пример на Pascal, второй на Q:
>if a > b then x:=y+3 else x:=у+6; {Язык Pascal}
>if (a > b) x=y+3; else x=у+6; /*Язык С*/
ВЫБОР из двух и более АЛЬТЕРНАТИВ нельзя кодировать при помощи вложения других структур простейших АЛЬТЕРНАТИВ из-за большой вероятности ошибок.
Порядок детализации структур АЛЬТЕРНАТИВА:
1) в зависимости от количества альтернативных действий записываются все операторы структуры;
2) определяются сами альтернативные действия как СЛЕДОВАНИЯ;
3) записываются логические условия альтернативных действий;
4) проверяется информационная согласованность логических условий и действий;
5) на нескольких текстовых примерах осуществляется проверка. ПОВТОРЕНИЯ в программировании называются циклами.
Обычно стандартом проекта предусмотрен ряд конструкций циклов. Неуниверсальный ЦИКЛ-ДО имеет две конструкции и используется для задания заданного числа повторений. Рассмотрим их запись на языке программирования Pascal.
Конструкция по возрастанию:
>for i:=3 to 5 do begin
>{тело цикла i=3,4,5}
>…
>end;
Конструкция по убыванию:
>for i:=5 downto 3 do begin
>{тело цикла i=5,4,3}
>…
>end;
Рассмотрим запись вариантов кодирования структуры неуниверсальный ЦИКЛ-ДО на языке программирования С.
Конструкция по возрастанию: