Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование в среде Visual C++ 6. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
асам оператор перед точкой сзапятой— это либо отсутствии символа, либо пробельный символ. Пустой оператор может входить всостав исоставного оператора. Никаких действий он непроизводит, ипорядка выполнения он ненарушает.
5.3. Составной оператор
Синтаксис его:
{
<Объявления;>
<Оператор_1;>
<Оператор_2;>
......
<Оператор_n;>
}
В составном операторе объявлений может инебыть, авсе операторы выполняются попорядку по мере их появления. Любой оператор всоставном может быть исам составным.
5.4. Оператор выражение
Синтаксис: < ; >. Вкачестве выражения может быть оператор присваивания любого типа, вызов функции идругие операторы.
Пример 1: a=B*c+d++; Пример 2: f (x);
Пример 3: y=sin (x).
5.5. Условный оператор if
Синтаксис:
if (< _1 >) или if (< _1 >)
< Оператор_1; < Оператор_1; >
else
< Оператор_2; >
— 31 —
Обычно _1— это операции сравнения или от-
ношения.
Собственно говоря, результатом работы _1 является булева величина:  или . Всамом языке  непредусмотрен тип булевой переменной, нонад резуль­татами сравнения или отношения можно выполнять опера­ции как над булевыми величинами. Кроме того, ввыражении могут отсутствовать операции отношения, вэтом случае если результат неравен нулю, считается, что результат как буле­вой величины , аесли результат ноль, тоон считается как .
Итак, если результат _1 считается истиной,  _1 выполняется, впротивном случае он невыпол­няется.
По второму синтаксису тоже, если результат - _1 истина, выполняется _1, впротивном случае выполняется _2. Все операторы могут быть про­стыми исоставными.
Следует отметить, что и _1, и_2 тоже могут быть условными операторами, тоесть один условный оператор может быть вложен вдругой. Ноздесь нужно быть внимательным при вложении условных операторов, так как вторая часть условного оператора else будет относиться кпо­следнему оператору if. Для изменения этого порядка можно воспользоваться организацией составных операторов.
5.6. Оператор пошагового цикла for
Синтаксис:
for (Начало; Условие; Приращение)
Оператор;
Действие а будет выполняться последовательно дотех пор, пока результат оператора  будет .
— 32 —
После каждого выполнения  вычисляется опера­тор . Оператор  еред первым исполне­нием  — это тот оператор, переменные которого изменяются оператором . Перед первым испол­нением  эти переменные устанавливаются в за­данное оператором  исходные состояния.
Пример:
for (k=0; k<n; k++) s+=x [k];
Это наиболее часто встречающаяся конструкция исполь-
зования оператора for. В данном примере этот оператор к значению переменной s добавляет все значения массива переменной x, начиная сномера 0 изаканчивая номером n-1. Здесь переменная k— индекс переменных массива x. Здесь при k=n выражение в операторе k<n становится ложным, идействие оператора for прекращается. Оператор for также прекращает свои действия, если в исполняемом операторе встретятся операторы break, return, goto.
5.7. Оператор цикла спредусловием while
Синтаксис:
while (<>) <;> Здесь тоже, пока результат действия <> будет -
, <> производит последовательно свои вычис-
ления. Он может быть как простым, так исоставным. Перед каждым вычислением <> вычисляется результат действия <>. И как только этот результат примет значение , ействие оператора while прекращается ивы- числения < > невыполняются. Естественно, если сразу же при включении в работу оператора while резуль-
— 33 —
тат вычисления <> окажется , <> ниразу небудет производить свои вычисления. Кроме того, оператор while прекратит свою работу, если <> встретит всвоём теле операторы break, return, goto.
5.8. Оператор цикла спостусловием do
Синтаксис:
do
<;>
while (<>);
Здесь сначала выполняет свои вычисления <>, затем вычисляется < в>. Как только результат <- > станет , действия оператора do прекращается. Вотличие отоператора цикла спредусловием, здесь хотябы один раз вычисления <O> будут выполнены.
Пример:
do
{
y=f (x);
x- -;
}
while (x>0);
5.9. Оператор продолжения continue
Этот оператор используется только в операторах цикла втеле составного <>.
При выполнении оператора пошагового цикла for после оператора continue выполнение <> прекращается, вычисляется <>, затем проверяется <>, и в зависимости от его результата цикл продолжается или прекращается.
— 34 —
В операторах while иdo выполнение <> прекра-
щается, затем поверяется <>, ивзависимости отего результата цикл продолжается или прекращается.
5.10. Оператор-переключатель switch
Синтаксис:
switch (<>) { [<;>] case<_1:> <_1;> [break;] case <_2:> <_2;>
[break;]
case <_3:> <_3;> [default: <D;>] … … }
Оператор switch предназначен для выбора одного или не-
скольких альтернативных вычислений. Оператор начинает ра­боту свычисления <>, в качестве которого может выступать либо какое-либо выражение, либо чаще всего иден­тификатор некоторой переменной. Втеле оператора могут по­явиться новые объявления или строка <;> может отсутствовать. Затем вычисленное значение <> попорядку сравнивается c < _1:>, <_2:.>, и так до конца тела оператора switch. Как только встретится <>, равная вычисленному значению <>,
— 35 —
выполняется <>, соответствующий данной <- >. < Оператор <break;> прекращает дальнейшие вычисления оператора switch. Если оператор break отсутствует, выполняет­ся следующий <> итак далее, пока невстретится опе­ратор break или невыполнится последний <>.
Если ниодин </> невыполнен, тоесть нет ниод­ной <>, равной значению <>, выпол- няется <D;>, если он существует. Вданном случае оператор default: играет роль case с константой, не равной значению <>. Если же оператор default: отсут­ствует, то ни один оператор в теле переключателя switch небудет выполнен. Правда, внекоторых последующих вер­сиях языка  и++ такое строгое применение оператора default: неприменяется.
После последнего <> втеле переключателя опе­ратор break; ставить неимеет смысла. Переменной вычислен- ного <> приводится ктипу int, ивсе < - > втеле переключателя также должны иметь тип int,.
Пример:
switch (com)
{
case 0:
t0=atof (dig.m_T0);
break;
case 1:
tk=atof (dig.m_TK);
break;
case 2:
a1=atof (dig.m_A1);
break;
case 3:
— 36 —
a2=atof (dig.m_A2); default; }
5.11. Оператор разрыва break
Синтаксис:
break; Этот оператор используется в операторах for, while, do,
switch. Оператор break прекращает работу выше перечислен-
ных операторов.
  goto. Синтаксис: goto <>; . . . <>: <;>
. . Этот оператор передаёт управление <>, помечен-
ный <>, которая может быть вдругом составном опера­торе, нотолько вданной функции. Метка представляет собой обычный идентификатор, не совпадающий с другими иден­тификаторами. Нельзя с помощью этого оператора передать управление внутрь тела операторов цикла ипереключателя.
Следует отметить, что опытные программисты очень ред-
ко пользуются этим оператором. Любую программу можно составить, неприбегая коператору goto.
5.12. Оператор возврата return
Синтаксис:
return [<>];
— 37 —
Этот оператор прекращает работу функции и передаёт управление ввызывающую функцию оператору, следующему завызывающим функцию. Вычисленное значение <- > приводится ктипу функции и передаёт это значение идентификатору имени функции. В вызывающей функции значение вычисленной функции можно использовать через идентификатор имени вычисленной функции. Если <- > отсутствует, товычисленное значение передаётся вызывающей функции через общий идентификатор вызыва­ющей ивызываемой функций. Впоследнем случае оператор return может отсутствовать, иуправление передаётся вызы­вающей функции после завершения работы последнего опе­ратора вызываемой функции.
— 38 —
6. 
Это основная программная единица любой расчётной про­граммы. Функция представляет собой совокупность объяв­лений иоператоров для решения какой-либо частной задачи. Любая расчётная программа должна включать всебя несколь­ко, ноне менее одной, функций. Одна изэтих функций должна иметь имя main, она является самой главной, именно снеё на­чинает работать любая расчётная программа. Сама эта функция для необходимых расчётов вызывает для работы другие функ­ции. Те, всвою очередь, тоже могут вызывать другие функции.
6.1. Определение функции
Синтаксис объявления
<спецификация типа> <описатель> ([<cсписок параме­тров>]) <тело функции>.
<спецификация типа>— это тип возвращаемого (вычис-
ленного) значения. <описатель>— это наименование функ­ции, представляющее изсебя обыкновенный идентификатор, а тип возвращаемого значения — это тип переменной, опи­санной идентификатором-наименованием функции. Наличие круглых скобок является необходимым, чтобы этот иденти­фикатор считать наименованием функции. Если функция невозвращает никакого значения, тоесть функция использу­ет только переменные, описанные довызова функции, приме­няется специальный тип void, что впереводе означает пустой.
<Список параметров> совместно сописанием типа их— это тепеременные, которые принимают заданные значения
— 39 —
при вызове данной функции. Этот <список параметров> мо­жет отсутствовать, если функция использует только перемен­ные, объявленные довызова данной функции, ноналичие от­крывающей изакрывающей круглых скобок обязательно.
<Тело функции>— это простой или составной оператор для производства необходимых вычислений. Оно может со­держать объявление иописание локальных переменных, ко­торые используются только вданной функции. Если функция возвращает вычисленное значение, <тело функции> должно содержать всебе оператор return. Еслиже функция не воз­вращает вычисленное значение, оператор может отсутство­вать или присутствовать, нобез своего выражения.
6.2. Вызов функции
Вызов функции— это передача управления <телу функ­ции> для выполнения некоторых вычислений вместе созна-
чениями, которые присваиваются формальным параметрам вызываемой функции. В зависимости от того, возвращает или нет вызываемая функция вычисленные значения, спосо­бы вызова функции несколько различаются.
Если вызываемая функция возвращает вычисленные значе­ния, товлюбом выражении ивлюбом операторе может встре­титься вкачестве составного элемента вызов функции ввиде выражения:
<имя функции> ([<список выражений>])
Здесь <имя функции> воспринимается как адрес распо­ложения функции воперативной памяти компьютера. По­этому вместо <имя функции> может стоять выражение, которое вычисляет это имя или его адрес. Далее значение, вычисленное первым из <списка выражений>, передаёт- ся первому формальному аргументу функции, значение
— 40 —
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]