|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Деление операторов языка Си на группыВведен алфавит языка и его лексемы; приведены основные типы данных, константы и переменные; определены все операции; рассмотрены правила построения арифметических выражений, отношений и логических выражений; описана структура программы; рассмотрены средства вывода из ЭВМ арифметических значений с помощью функции 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 МЕТКА;
Введенных средств языка Си вполне достаточно для написания примитивных программ, которые не требуют ввода исходных данных. Алгоритмы такого сорта достаточно редко применяются, но для иллюстрации некоторых особенностей разработки и выполнения программ рассмотрим следующую задачу. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |