АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Деление операторов языка Си на группы

Читайте также:
  1. B) международным географическим разделением труда
  2. I. Лексика русского языка с точки зрения ее происхождения
  3. I. Определение жестокого обращения с детьми.
  4. I. ОПРЕДЕЛЕНИЕ ПРЕДМЕТА МАТЕМАТИКИ, СВЯЗЬ С ДРУГИМИ НАУКАМИ И ТЕХНИКОЙ
  5. II. Лексика русского языка с точки зрения ее активного и пассивного запаса.
  6. II. Нормы современного русского литературного языка
  7. II. Разделение труда и машины
  8. III. Лексика русского языка с точки зрения сферы ее употребления.
  9. IV курс, факультет английского языка
  10. IV. Словарный состав современного русского литературного языка в функциональном, социолингвистическом аспектах и с точки зрения его происхождения (2 часа).
  11. T.5 Определение нормальной скорости распространения пламени и термодинамических параметров
  12. T.5. Определение нормальной скорости распространения пламени и термодинамических параметров.

Введен алфавит языка и его лексемы; приведены основные типы данных, константы и переменные; определены все операции; рассмотрены правила построения арифметических выражений, отношений и логических выражений; описана структура программы; рассмотрены средства вывода из ЭВМ арифметических значений с помощью функции printf (); определен оператор присваивания.

Вернемся вновь к структуре простой программы, состоящей только из одной функции с именем main ().

директивы_препроцессора

void main ()

{ определения_объектов;

исполняемые_операторы;

}

 

Как мы уже договорились, пока нам будет достаточно двух препроцессорных директив #include <...> и #define. В качестве определяемых объектов будем вводить переменные и константы базовых типов. А вот об исполняемых операторах в теле функции нужно говорить подробно.

Каждый исполняемый оператор определяет действия программы на очередном шаге ее выполнения. У оператора (в отличие от выражения) нет значения. По характеру действий различают два типа операторов: операторы преобразования данных и операторы управления работой программы.

Наиболее типичные операторы преобразования данных - операторы присваивания и произвольные выражения, завершенные символом "точка с запятой":

 

Так как вызов функции является выражением с операцией "круглые скобки" и операндами "имя функции", "список фактических параметров", к операторам преобразования данных можно отнести и оператор вызова или обращения к функции:

имя_функции (список_фактических_параметров);

 

Мы уже использовали обращение к библиотечной функции printf (), параметры которой определяли состав и представление на экране дисплея выводимой из программы информации. С точки зрения процесса преобразования информации функция printf () выполняет действия по перекодированию данных из их внутреннего представления в последовательность кодов, пригодных для вывода на экран дисплея.

Операторы управления работой программы называют управляющими конструкциями программы. К ним относятся:

• составные операторы;

• операторы выбора;

• операторы циклов;

• операторы перехода.

К составным операторам относят собственно составные операторы и блоки. В обоих случаях это последовательность операторов, заключенная в фигурные скобки. Отличие блока от составного оператора - наличие определений в теле блока. Например, приведенный ниже фрагмент программы - составной оператор:

 

Наиболее часто блок употребляется в качестве тела функции.

Операторы выбора - это условный оператор (if) и переключатель (switch).

Операторы циклов в языке Си трех видов - с предусловием (while), с постусловием (do) и параметрический (for).

Операторы перехода выполняют безусловную передачу управления: goto (безусловный переход), continue (завершение текущей итерации цикла), break (выход из цикла или переключателя), return (возврат из функции).

Условный оператор имеет сокращенную форму:

 

if (выражение_условие) оператор;

 

где в качестве выражения_условия могут использоваться: арифметическое выражение, отношение и логическое выражение. Оператор, включенный в условный, выполняется только в случае истинности (т.е. при ненулевом значении) выражения условия. Пример:

Кроме сокращенной формы, имеется еще и полная форма условного оператора:

if (выражениеусловие)

onepamop_1;

Else

оператор_2;

 

Здесь в случае истинности выражения-условия выполняется только оператор_1, при нулевом значении выражения-условия выполняется только оператор_2. Например:

Оператор в сокращенном варианте оператора if, и оператор_1 и оператор_2 в полном операторе if могут быть как отдельными, так и составными операторами.

Несмотря на традиционность условного оператора, проиллюстрируем его выполнение схемами (рис, 2.2).

 

 

Рис. 2.2. Схемы условных операторов (выражение-условие - условие после if): а - сокращенная форма; б - полная форма

 

Итак, что в условных операторах в качестве любого из операторов (после условия или после else) может использоваться составной оператор. Например, при решении алгебраического уравнения 2-й степени ах2+bх+с=0 действительные корни имеются только в случае, если дискриминант (b2-4ас) неотрицателен. Следующий фрагмент программы иллюстрирует использование условного оператора при определении действительных корней x1, х2 квадратного уравнения:

 

 

Во фрагменте предполагается, что переменные d, b, a, x1, х2 - вещественные (типа float либо double). До приведенных операторов переменные а, b, с получили конкретные значения, для которых выполняются вычисления. В условном операторе после if находится составной оператор, после else - только один оператор - вызов функции printf (). При вычислении корней используется библиотечная функция sqrt () из стандартной библиотеки компилятора. Ее прототип находится в заголовочном файле math.h (см. Приложение 3).

Метки и пустой оператор. Метка - это идентификатор, помещаемый слева от оператора и отделенный от него двоеточием ":". Например,

Чтобы можно было поставить метку в любом месте программы (или задать пустое тело цикла), в язык Си введен пустой оператор, изображаемый только одним символом ";". Таким образом, можно записать такой помеченный пустой оператор:

 

Оператор перехода. Оператор безусловного перехода имеет следующий вид:

goto идентификатор;

 

где идентификатор - одна из меток программы. Например:

goto СОН; или goto МЕТКА;

 

Введенных средств языка Си вполне достаточно для написания примитивных программ, которые не требуют ввода исходных данных. Алгоритмы такого сорта достаточно редко применяются, но для иллюстрации некоторых особенностей разработки и выполнения программ рассмотрим следующую задачу.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)