- •Лекции по теории языков программирования Общие понятия теории языков программирования
- •Области применения языков программирования
- •Критерии эффективности языков программирования
- •Критерий читабельности языков программирования
- •Критерий легкости создания программ
- •Надежность языков программирования
- •Критерий стоимости языков программирования
- •Этапы создания программы на языке программирования
- •Структурное программирование и проектирование программ
- •Нисходящее проектирование программ
- •Модульное программирование
- •Структурное кодирование
- •Объектно-ориентированное проектирование
- •Операторы языков программирования
- •Линейные операторы
- •Операторы перехода
- •Составные операторы
- •Условные операторы
- •Операторы выбора
- •Организация повторения операторов
- •Операторы цикла с заданным числом повторений
Операторы выбора
Оператор выбора позволяет произвести ветвление по одному из многих вариантов. Причем каждый вариант может включать один оператор или целую группу операторов. Следовательно, оператор выбора может рассматриваться как обобщение условного оператора. Конечно, ветвление по многим направлениям можно реализовать и с помощью условных операторов, но такое решение оказывается трудным для чтения, громоздким и ненадежным. Пример оператора выбора на языке C:
switch (выражение)
{
case выражение_константа_1: оператор_1; break;
case выражение_константа п: оператор_n; break;
[default: оператор_n+1]
}
Здесь переключающее выражение и выражения-константы должны иметь целые или символьные значения.
Операторы вариантов могут быть последовательностями операторов, составными операторами или блоками, но чаще всего должны заканчиваться оператором break. Оператор break, играет роль ограниченного goto. Его выполнение приводит к выходу из оператора выбора. Если же программист по ошибке пропустит в switch-операторе оператор break, то управление передается на операторы следующего варианта.
Если переключающее выражение принимает значение, отличное от предусмотренных констант, то выполняется оператор n+1 default-варианта. Вариант default в операторе switch может отсутствовать. Если ни одна константа не совпала со значением выражения и вариант default отсутствует, то не выполняются никакие действия.
Оператор switch языка C# отличается от оператора выбора для языка С по двум пунктам. Во-первых, в языке C# запрещается неявное выполнение более одного варианта ветвления. Каждый вариант должен заканчиваться явным оператором безусловного перехода: либо оператором break, либо оператором goto, который может передать управление одному из имеющихся вариантов (или куда-нибудь еще). Во-вторых, переключающее выражение и константы могут быть строками языка С#.
Рассмотрим пример, где число классифицируется по знаку и значению:
switch (number)
{
case -1:
Negatives++;
break;
case 0:
Zeros++;
goto case 1;
case 1:
Positives++;
default:
Console.WriteLine("Error in switch \n");
}
Организация повторения операторов
Повторение некоторой последовательности операторов — это мощное средство для сокращения длины программ и повышения эффективности вычислений. Отсутствие возможности повторения группы операторов привело бы к существенному усложнению программ и резкому возрастанию времени на программирование.
Важнейшим способом реализации многократного повторения являются циклы.
Оператор цикла обеспечивает многократное выполнение встроенных в него операторов, являясь, по сути, структурой управления. В состав оператора цикла входят секция управления и тело.
Тело цикла образует произвольный набор операторов, выполнением которых руководит оператор цикла. Этот набор определяет функциональные возможности цикла. Секция управления управляет количеством повторений тела.
К настоящему времени разработано несколько разновидностей операторов цикла. Их специфика определяется механизмом работы секции управления и ее размещением относительно тела цикла.
Секция управления может быть размещена как перед телом, так и после тела цикла. В основу механизма работы секции управления может быть положен анализ логического выражения или подсчет числа повторений. Иногда эти две возможности комбинируют. В результате формируется условие продолжения, или условие завершения цикла.
Кроме того, различают операторы цикла с предусловием (проверка условия предваряет выполнение тела) и с постусловием (проверка условия проводится после выполнения тела).
