Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
42
Добавлен:
16.02.2016
Размер:
558.59 Кб
Скачать

Карасев Н.И.

Методология объектно-ориентированного программирования

Обзорные лекции по курсу

Лекция 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. Данный оператор может быть применен к константе, типу и переменной.

Ниже приведена программа, определяющая и выводящая на экран размер базовых типов данных для конкретной платформы ПК:

Соседние файлы в папке ЛекцииКарасева