Костерин В В
Шрифт:
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; /*Язык С*/
ВЫБОР из двух и более АЛЬТЕРНАТИВ нельзя кодировать при помощи вложения других структур простейших АЛЬТЕРНАТИВ из-за большой вероятности ошибок.
Порядок детализации структур АЛЬТЕРНАТИВА: