
- •2.1 Числа, переменные, функции
- •2.2 Текстовые и графические блоки
- •2.3 Организация циклов
- •2.5 Строковые переменные
- •3.1 Условный оператор
- •3.2 Программные блоки с условием if
- •3.3 Трехмерная графика
- •3.4. Работа с файлами данных
- •3.5. Вычисление сумм, произведений и интегралов
- •3.7. Достоинства и недостатки системы MathCad.
- •3.8. Сравнение с системой Mathematica
- •4.2 Числа и переменные
- •4.3 Операции и стандартные функции
- •4.4 Структура простой программы
- •5.1 Операторы присваивания
- •Int a, b ; float r ;
- •5.2 Вывод на экран и ввод с экрана
- •5.4 Операции инкремента, декремента и сокращенные
- •5.5 Оператор цикла
- •5.6 Алгоритм и программа для задачи с таблицей
- •Алгоритм
- •Void main( ) {
- •6.1 Вычисление суммы
- •6.2 Операции отношения и логические операции.
- •If (условие) { гр1 } еlse { гр2 } (6.3)
- •If (условие) { гр1 } (6.4)
- •6.4. Работа с файлами
- •Void main() {
- •7.1 Одномерный и двумерный массивы
- •3) Количество индексов,
- •4) Границы индексов,
- •5) Значения его элементов.
- •Int I, j ; float a[3][3], b[3][3], c[3][3]; / / (7.4)
- •7.2 Основные правила для массивов
5.4 Операции инкремента, декремента и сокращенные
формы операции присваивания
Рассмотрим некоторые дополнительные формы оператора присваивания,
определяющие стиль языка С++. Очень часто в программах нужно увеличивать
или уменьшать значение некоторой целой переменной на единицу, что легко
сделать с помощью оператора присваивания, например, j = j + 1.
Оператор j = j + 1 обычно записывают как j + + , т.е. используют операцию
инкремента ++ (автоувеличение). Она означает увеличение переменной на единицу.
Запись j++ соответствует увеличению после использования, а запись ++j
увеличивает значение j до его использования. Аналогичная операция декремента - - ( автоуменьшение) приводит к уменьшению переменной на единицу. Как и в случае инкремента, операция декремента существует в двух формах, например, m - - или - - m . Рассмотрим ещё одну возможость использования обычных арифметических операций перед знаком равенства в операторе присваивания, что дает его сокращенную
форму. В отличие от (5.1) эта форма имеет следующий вид: имя oп = выражение ;
где оп – это любая из операций + - * / , например, d * = sin (x);
Новое присваивание с “оп” называется “оп” с присваиванием, например,
умножение с присваиванием в d *= sin(x).
При любой операции оп сокращенная форма эквивалентна обычной записи
имя = имя оп выражение;
Например, увеличение значения j на 5 можно записать как
j = j + 5 ; или j + = 5 ;
а увеличение d на единицу d + + ; d+=1; d = d +1 ;
В последнем случае обычно применяется запись d + +
5.5 Оператор цикла
Программ без циклов практически не бывает.
Оператор цикла позволяет многократно выполнять любую группу операторов.
Эту группу повторяющихся операторов называют телом цикла.
В простых циклах при каждом выполнении обычно изменяется некоторая
переменная, называемая как "переменная цикла". Существуют различные
операторы цикла, но здесь рассмотрим только один, в котором
ключевым словом является слово for , т.е. " для ".
Есть и другие операторы цикла - с ключевыми словами do и while.
Цикл for можно представить следующим образом:
for ( параметры цикла ) тело цикла
Оператор с for является началом цикла. После for в круглых скобках
записываются данные для выполнения цикла, что похоже на запись аргументов
функции. Это параметры цикла. После закрывающей круглой скобки записывается тело цикла. Тело цикла - это один оператор с ; в конце или группа операторов в фигурных скобках.
В С++ группа операторов в фигурных скобках называется блоком и есть правило:
точка с запятой обычно не ставится после закрывающей фигурной скобки блока.
Основные части оператора цикла for записываются следующим образом:
for ( инициализация ; условие ; изменение) оператор ; (5.4)
или
for ( инициализация ; условие ; изменение ) { операторы; }
Примеры:
for ( k=0; k<10; k=k+1 ) cout << sin(k)<< endl ; (5.5)
for ( s=1, m = k = 0; k<10; k++, m=k*k ) { s = s+m; x= sin(k); } (5.6)
В частях “инициализация” и “изменение” можно использовать один или более операторов. Если операторов несколько, то они разделяются запятыми, а не точкой с запятой. Видим, что после операторов в группе “изменение” и после } блока нет точки с запятой, т.к. скобка или фигурная скобка ее заменяют. Следовательно, концом цикла является точка с запятой в случае одного оператора в теле цикла или закрывающая фигурная скобка для блока
операторов в теле цикла.
Рассмотрим параметры цикла подробнее. При инициализации задаются значения переменных цикла при первом выполнении, т.е. начальные значения. Инициализация выполняется только один раз - при запуске цикла. Условие в (5.4) является условием, при котором продолжается выполнение цикла. Это условие проверяется при каждом выполнении цикла. Если условие нарушено, т.е. значение условия равно нулю, то операторы тела цикла пропускаются и цикл завершается. Отметим, что любое значение условия, не равное нулю,
является “истиной”, т.е. ложь представляется только нулем.
Изменение – это один или группа операторов, разделенных запятыми, которые выполняются в конце каждого повторения тела цикла, т.е. перед повторной проверкой условия.
В примере (5.5) при первом выполнении цикла k=0, при втором k=1, далее k= 2 и т.д. Когда получится значение k =10, то цикл не выполняется, а продолжается исполнение программы после цикла. В примере параметрами цикла выбраны простыми, но возможно использование сложных функций и выражений.
Рассмотрим тип переменной цикла, например, k в примере (5.5) . Хотя она может быть как целой, так и вещественной, но рекомендуется применять целый тип. Это связано с тем, что погрешности округления вещественных переменных могут привести к неправильному количеству
выполнений цикла, т.е. к неправильному количеству итераций. Итерация - это одно полнение цикла в математике, т.к. в латыни itero означает "повторять".
Возможны вложенные циклы, например,
. . . .
for ( i = 0; i < 5; i + + ) // (5.7)
{ s=0; for ( j = 1; j<7; j + +)
{ x = 1. / j; s + = x * cos(j) * exp(- (float)i /j) ; }
cout << i << ‘\t’ << s << endl;
} . . . .