- •Обзорные лекции по курсу
- •Арифметические операции
- •Int main()
- •Int main ()
- •Логические операции
- •Операторы сравнения
- •Int main ()
- •If(проверяемое_условие)
- •Int main ()
- •Int main()
- •If(проверяемое_условие)
- •Int main()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main()
- •Int.Main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main()
- •If(проверяемое_условие)
- •Int main ()
- •If(проверяемое_условие)
- •If(проверяемое_условие)
Карасев Н.И.
Методология объектно-ориентированного программирования
Обзорные лекции по курсу
Лекция 3. Операции и операторы языка С++
Выбирая осмысленные имена переменных, ВЫ делаете свою программу «самодокументируемой», т.е. легко понимаемой при чтении без справочных пособий и обширных комментариев.
Пишите программы на С++ в простом стиле, т.е. не «насилуйте» кодируемый алгоритм попытками причудливого использования языка.
Содержание лекции:
1.Арифметические операции. Приоритет и порядок выполнения операций
2.Условные операторы
3.Операторы цикла
4. Резюме
5. Упражнения для самопроверки
Арифметические операции
Для осуществления изменений значений данных C++ располагает широким набором операций.
Операции представляют собой некоторое действие, выполняемое над одним (унарная операция) или несколькими операндами (бинарная операция), результатом которого является возвращаемое значение. К базовым арифметическим операциям можно отнести:
операции сложения (+), вычитания (-), умножения (*), деления (/) и взятия по модулю (%), то есть вычисления остатка от деления левого операнда на правый.
Для эффективного использования возвращаемого операциями значения предназначен оператор присваивания (=) и его модификации: сложение с присваиванием (+=). вычитание с присваиванием (-=), умножение с присваиванием (*=). деление с присваиванием (/=), модуль с присваиванием (%=) и ряд других, которые будут рассмотрены позже.
В приведенном ниже коде представлены примеры некоторых операций:
#include <iostream.h>
Int main()
{
int а=0,b=4,с=90;
char z = '\n';
a = b; // a=4
cout « a « z;
a = b + c + с + b; // a=4+90+90+4=188
cout « a « z;
a = b - 2; // a=2
cout « a « z;
а = b * 3; // а=4*3=12
cout « а « z;
а = с / (b + 6); // а=90/(4+6)=9
cout « а « z;
cout « а%2 « z; // 9%2=1
а += b; // а=а+b=9+4=13
а *= с - 50; // а=13*(90-50)=520
a -= 38; // а=520-38=482
cout « a « z;
а %= 8; // а=482%8=2
cout « а « z;
return 0;
}
В приведенном фрагменте производится инициализация объявленных переменных начальными значениями с последующей демонстрацией работы операторов присваивания, а также операций сложения, вычитания, умножения, деления, скобки, вычисления остатка от деления и различных модификаций оператора присваивания.
В результате работы эта программа выведет столбец из цифр:
4 188 2 12 9 1 482 2
На практике довольно широко используется пустой оператор: ;
Такая форма оператора в программном коде не выполняет никаких действий, но позволяет компилятору обходить требования синтаксиса на наличие оператора в некоторых конструкциях.
Понятие выражения
Выражение в C++ представляет собой последовательность операторов, операндов и знаков пунктуации, воспринимаемую компилятором как руководство к определенному действию над данными. Всякое выражение, за которым следует точка с запятой, образует предложение или инструкцию языка:
выражение;
На практике возможны также случаи, когда сами операнды в выражениях могут быть представлены выражениями.
Приведем примеры предложений языка:
х = 3 * (y + 2.48);
у = My_Func(dev, 9, i);
Операторы инкремента и декремента
Как и в Ассемблере, в C++ имеется эффективное средство увеличения и уменьшения значения операнда на единицу — унарные операторы инкремента (++) и декремента (--).
По отношению к операнду данный вид операторов может быть префиксным или постфиксным. Префиксный оператор применяется к операнду перед использованием полученного результата. Постфиксный оператор применяется к операнду после использования операнда.
Понятие префикса и постфикса имеет смысл только в выражениях с присваиванием:
х = y++; // постфикс
index = --c; // префикс
cх++; // унарная операция то же, что ++cx
ab--; // то же, что --ab
Здесь переменная у сначала присваивается переменной х, а затем увеличивается на единицу. Переменная c сначала уменьшается на единицу, после чего результат присваивается переменной index.
Оператор sizeof
Программы на языке C++, по сути, являются переносимыми. Переносимость означает, что программы, написанные для работы на компьютерах одного типа, будут (хотя и не обязательно!) работать и на компьютерах другого типа. Это свойство языка C++ сделало его с самого начала популярным. Однако, при переносе программного обеспечения с ЭВМ одного типа на другой разработчика подстерегают определенные трудности. Переменные разных типов данных занимают в памяти компьютера неодинаковое количество байтов. При этом переменные одного и того же типа могут иметь разный размер еще и в зависимости от того, на каком компьютере и в какой операционной системе они используются.
Так, чистая целочисленная переменная (тип int без спецификаторов short или long) при работе в 16-разрядной операционной системе (DOS, Windows 3.1 и т.д.) занимает всего 2 байта. В то же время под эту же переменную в 32-разрядной операционной системе (Windows 95, Windows NT и т.д.) отводится уже 4 байта.
Определить размер переменной любого типа данных (как базового, так и производного) можно с помощью оператора размера sizeof. Данный оператор может быть применен к константе, типу и переменной.
Ниже приведена программа, определяющая и выводящая на экран размер базовых типов данных для конкретной платформы ПК: