SlideShare a Scribd company logo
1 of 37
Download to read offline
Модуль 1: Базовые понятия языка программирования С++
Темы лекции: Форматированный ввод/вывод. Основные операции
языка С++. Операторы языка С++.
Практическое задание: Операторы языка С++.
Тренер: Игорь Шкулипа, к.т.н.
C++ Базовый. Занятие 2
http://www.slideshare.net/IgorShkulipa 2
Тема 1. Форматированный ввод/вывод
http://www.slideshare.net/IgorShkulipa 3
Функция стандартного вывода printf()
Функция printf() является функцией стандартного вывода. С помощью
этой функции можно вывести на экран монитора строку символов,
число, значение переменной и т.д.
Функция printf() имеет прототип в файле stdio.h
int printf(char *управляющая строка, аргументы);
В случае успеха функция printf() возвращает число выведенных
символов.
Управляющая строка содержит два типа информации: символы, которые
непосредственно выводятся на экран, и спецификаторы формата,
определяющие, как выводить аргументы.
Функция printf() это функция форматированного вывода. Это
означает, что в параметрах функции необходимо указать формат
данных, которые будут выводиться. Формат данных указывается
спецификаторами формата. Спецификатор формата начинается с
символа % за которым следует код формата.
Пример: printf(“Average mark=%d”, 5)
Результат: Average mark=5
http://www.slideshare.net/IgorShkulipa 4
Спецификаторы формата
Формат Значение
%с Символ
%d Целое десятичное число со знаком
%i Целое десятичное число со знаком
%e Десятичное число в виде x.xx e+xx
%E Десятичное число в виде x.xx E+xx
%f Десятичное число с плавающей точкой xx.xxxx
%F Десятичное число с плавающей точкой xx.xxxx
%g
Использует код %е или %f — тот из них, который короче (при использовании
%g используется е нижнего регистра)
%G
Использует код %Е или %f — тот из них, который короче (при использовании
%G используется Е верхнего регистра)
%o Восьмеричное число
%s Строка символов
%u Беззнаковое десятичное число
%x Шестнадцатеричное число (буквы нижнего регистра)
%X Шестнадцатеричное число (буквы верхнего регистра)
%% Символ %
%p Выводит на экран значение указателя
http://www.slideshare.net/IgorShkulipa 5
Спецификаторы формата
%ld печать long int
%hu печать short unsigned
%Lf печать long double
Кроме того, к командам формата могут быть применены
модификаторы l и h
http://www.slideshare.net/IgorShkulipa 6
Управляющие символы
Символ Значение
b BackSpace
f Новая страница, перевод страницы
n Новая строка, перевод строки
r Возврат каретки
t Горизонтальная табуляция
v Вертикальная табуляция
" Двойная кавычка
' Апостроф
 Обратная косая черта
0 Нулевой символ, нулевой байт
a Сигнал
N Восьмеричная константа
xN Шестнадцатеричная константа
? Знак вопроса
http://www.slideshare.net/IgorShkulipa 7
Функция стандартного ввода scanf()
Функция scanf() - функция форматированного ввода. С её помощью
можно вводить данные со стандартного устройства ввода
(клавиатуры). Вводимыми данными могут быть целые числа, числа с
плавающей запятой, символы, строки и указатели.
Функция scanf() имеет прототип в файле stdio.h
int scanf(char *управляющая строка, аргументы);
Функция возвращает число переменных которым было присвоено
значение.
Управляющая строка содержит три вида символов: спецификаторы
формата, пробелы и другие символы.
Пример: scanf(“%d”, &iNumber)
Результат: iNumber=введенное число;
http://www.slideshare.net/IgorShkulipa 8
Спецификаторы формата
Формат Значение
%c Чтение символа
%d Чтение десятичного целого
%i Чтение десятичного целого
%e Чтение числа типа float
%h Чтение short int
%o Чтение восьмеричного числа
%s Чтение строки
%x Чтение шестнадцатеричного числа
%p Чтение указателя
%n Чтение указателя в увеличенном формате
http://www.slideshare.net/IgorShkulipa 9
Потоки ввода- вывода
В C++ ввод и вывод информации можно осуществлять через потоки cin
и cout. Они находятся в библиотеке с заголовочным файлом <iostream>.
Для их использования необходимо использовать пространство имен std
using namespace std;
Либо операцию доступа “::”
std::cin; std::cout;
Ввод информации осуществляется с помощью потока cin.
cin>>a1>>a2>>a3>>...>>an;
a1, a2,..., an– имена переменных, которые нужно ввести
<<– операция извлечения
Вывод информации осуществляется с помощью потока cout.
cout<<a1<<a2<<a3<<...<<an;
a1, a2,..., an– имена переменных или строковые константы, которые
нужно вывести на монитор.
>>– операция вставки.
http://www.slideshare.net/IgorShkulipa 10
Тема 2. Основные операции языка С++.
http://www.slideshare.net/IgorShkulipa 11
Операция присваивания
Простая форма операции присваивания.
=
Левый операнд операции присваивания является изменяемым
выражением.
В качестве правого операнда операции присваивания может выступать
любое выражение. Значение правого операнда присваивается левому
операнду.
Правый операнд может состоять из множества выражений, соединенных
операциями присваивания:
An=…=A3=A2=A1;
Операции присваивания группируются справа налево:
An=(An-1=…=(A3=(A2=A1))…);
В таком выражении все операнды, кроме самого правого, должны быть
модифицируемыми выражениями.
http://www.slideshare.net/IgorShkulipa 12
Арифметические операции
+ Сложение
- Вычитание
* Умножение
/ Деление
% Остаток от деления
http://www.slideshare.net/IgorShkulipa 13
Арифметические операции с присваиванием
+= Операция присваивания сложения
-= Операция присваивания вычитания
*= Операция присваивания умножения
/= Операция присваивания деления
%= Операция присваивания остатка от деления
http://www.slideshare.net/IgorShkulipa 14
Логические операции
&& Логическое «И» (AND)
|| Логическое «ИЛИ» (OR)
! Логическое «НЕ» (NOT)
http://www.slideshare.net/IgorShkulipa 15
Поразрядные логические операции
& Логическое «И» (AND)
^ Исключающее «ИЛИ» (XOR)
| Логическое «ИЛИ» (OR)
~ Инвертирование битов (NOT)
Пример:
x = 180; // 10110100
y = 166; // 10100110
x | y == 182
10110100
10100110
-----------
10110110
http://www.slideshare.net/IgorShkulipa 16
Поразрядные логические операции с присваиванием
&= Логическое «И» (AND)
^= Исключающее «ИЛИ» (XOR)
|= Логическое «ИЛИ» (OR)
http://www.slideshare.net/IgorShkulipa 17
Операции сдвига
>> Сдвиг вправо
<< Сдвиг влево
>>= Сдвиг вправо с присваиванием
<<= Сдвиг влево с присваиванием
Сдвиг влево – умножение на 2
Сдвиг вправо – целочисленное деление на 2
http://www.slideshare.net/IgorShkulipa 18
Операции проверки равенства/неравенства
== Равенство
!= Неравенство
> Больше
< Меньше
>= Не меньше
<= Не больше
http://www.slideshare.net/IgorShkulipa 19
Инкремент, декремент
++ Инкремент - увеличение переменной на единицу
-- Декремент - уменьшение переменной на единицу
Различают два вида этих операций: операции преинкремента и
предекремента и операции постинкремента и посткинкремента.
x=5;
y = ++x; // y = 6, x = 6
y = --x; // y = 5, x = 5
y = x++; // y = 5, x = 6
y = x--; // y = 6, x = 5
При преникременте сначала происходит увеличение переменной на
единицу, и потом это увеличенное значение участвует в выражении.
При постинкременте переменная сначала участвует в выражении, а только
затем она увеличивается.
http://www.slideshare.net/IgorShkulipa 20
Условная операция
«? :»
Форма записи:
"условие" ? "выражение 1" : "выражение 2";
Если условие истинно, то выполняется выражение 1, иначе
выполняется выражение 2.
Пример:
a > b ? cout << a : cout << b;
Если а > b, то выполняется cout << a, иначе выполняется
cout<< b
http://www.slideshare.net/IgorShkulipa 21
Операция определения размера
sizeof Операция определения размера объекта или типа
Различают два варианта этой операции:
1. В первом случае операндом может быть любое l-выражение (лево-
допустимое выражение, т.е. ссылка на константу, переменную или
функцию).
2. Во втором случае операндом является имя типа.
Результатом этой операции является константа типа size_t. Этот
производный целочисленный беззнаковый тип определяется
конкретной реализацией.
sizeof ( type name );
sizeof ( object );
sizeof object;
http://www.slideshare.net/IgorShkulipa 22
Операции динамического распределения памяти
new - операция выделения памяти.
Позволяет выделить и сделать доступным участок в
динамической памяти. В качестве операнда используется имя
типа и, возможно, выражение инициализатор. Операция
возвращает адрес размещённого в памяти объекта.
delete - операция освобождения памяти.
Освобождает ранее выделенную с помощью операции new
область динамической памяти. В качестве операнда
используется адрес освобождаемой области памяти.
http://www.slideshare.net/IgorShkulipa 23
Операция доступа
:: Операция доступа
Обеспечивает обращение к именованной глобальной области памяти,
находящейся вне области видимости. Эта операция применяется при
работе с одноимёнными объектами, расположенными во вложенных
областях действия имён. Когда объект во внутренней области
действия имени скрывает одноименный объект, областью действия
которого является файл.
int iNumber; // Глобальная переменная
int func()
{
int iNumber; // Локальная переменная
iNumber = 100; // Присвоение значения локальной
::iNumber = 125; // Присвоение значения глобальной
}
http://www.slideshare.net/IgorShkulipa 24
Операции обращения к компонентам класса и объекта
Операции выбора компонентов объекта :
Операции обращения к компонентам класса:
. Операция прямого выбора - точка
-> Операция косвенного выбора
.* Операция обращения к компонентам класса по имени объекта или
ссылки на объект (левый операнд операции) и указателю на
компонент класса (правый операнд операции)
->* Операция обращения к компонентам класса по указателю на объект
(левый операнд операции) и указателю на компонент класса
(правый операнд операции)
:: Операция доступа к компонентам класса по имени класса и имени
компонента
http://www.slideshare.net/IgorShkulipa 25
Операция управления процессом вычисления значений
выражение1 , выражение2
Пара выражений, разделенных запятой, вычисляется слева направо,
значение левого выражения теряется. Тип и значение результата
являются типом и значением правого операнда. Эта операция
группирует слева направо.
В контексте, где запятая имеет специальное значение, как например в
списке фактических параметров функции и в списке инициализаторов
операция запятая, как она описана в этом разделе, может появляться
только в скобках;
Например:
f (a,(t=3,t+2),c)
функция имеет три параметра, вторым из которых является значение 5
http://www.slideshare.net/IgorShkulipa 26
Другие операции
Операция явного преобразования типа
()
Операция индексации
[]
Операция typeid
Операция typeid обеспечивает динамическую идентификацию
типов. Возвращает id указанного типа.
http://www.slideshare.net/IgorShkulipa 27
Приоритет операций
Операция Приоритет
Индексация массива [] 16
Вызов функции func(); 16
Прямого выбора . 16
Косвенного выбора -> 16
Постинкремент/декремент ++ -- 16
Прединкремент/декремент ++ -- 15
sizeof 15
Инверсия битов ~ 15
Отрицание ! 15
Взятие адреса & 15
Ссылка * 15
Приведение типов (тип) 14
Умножение, деление * / % 13
Сложение, вычитание + - 12
Сдвиг << >> 11
Сравнение < > <= >= 10
Равенство, неравенство == != 9
Битовый «AND» & 8
Битовый «XOR» ^ 7
Битовый «OR» | 6
Логический «AND» && 5
Логический «OR» || 4
Условная операция ?: 3
Операции присваивания = += -= *= /= %=<<= >>= &=^= |= 2
Операция управления процессом вычисления значений , 1
http://www.slideshare.net/IgorShkulipa 28
Тема 3. Операторы языка С++
http://www.slideshare.net/IgorShkulipa 29
Пустой оператор
http://www.slideshare.net/IgorShkulipa 30
Составной оператор
{
оператор1;
оператор2;
...
операторN;
}
http://www.slideshare.net/IgorShkulipa 31
Условный оператор
Если <условие>==true, то выполнится <оператор1> , в ином случае -
<оператор2>.
Блок <else> может быть опущен. В таком случае при истинном условии
выполнится <оператор1> , а за ним – оператор, следующий после
условного.
Вместо <оператор1> и <оператор2> может использоваться любой
оператор, включая составной оператор ({}), операторы циклов,
операторы выбора и условный, вызова функции, пустой оператор (;)
и др.
if (условие)
оператор1;
else
оператор2;
http://www.slideshare.net/IgorShkulipa 32
Оператор выбора
Синтаксис выбирающего оператора допускает пустой составной оператор
и пустой оператор в качестве операторов, следующих за условием
выбирающего оператора:
switch (i) ;
switch (j) {}
switch (r) i++;
Общий вид оператора выбора:
switch (условие)
{
case <константное выражение 1>: <оператор 1>;
case <константное выражение 2>: <оператор 2>;
...
case <константное выражение N>: <оператор N>;
default: <оператор N+1>;
}
http://www.slideshare.net/IgorShkulipa 33
Схема выполнения оператора switch
● вычисляется выражение в круглых скобках после оператора switch
(предварительная стадия);
● это значение последовательно сравнивается со значениями
константных выражений за метками case (стадия определения
начальной точки выполнения оператора);
● если значения совпадают, управление передаётся соответствующему
помеченному оператору (стадия выполнения);
● если ни одно значение не совпадает и в теле оператора case есть
оператор, помеченный меткой default, управление передаётся этому
оператору (стадия выполнения);
● если ни одно значение не совпадает, и в теле оператора case нет
оператора, помеченного меткой default, управление передаётся
оператору, следующему за оператором switch (стадия выполнения).
На стадии выполнения все операторы от точки выполнения и до конца
тела оператора выполняются независимо от меток, если только какой-
нибудь из операторов не передаст управление за пределы оператора
выбора.
http://www.slideshare.net/IgorShkulipa 34
Оператор цикла «for»
for (<выражение1>; <выражение2>; <выражение3> )
<оператор>;
Цикл состоит из следующих этапов:
1. Выполняется оператор инициализации цикла (выражение1). Этот этап
можно назвать этапом инициализации цикла. Он выполняется один
раз, в самом начале работы цикла.
2. Затем вычисляется значение выражения2. Это выражение называется
выражением условия продолжения цикла.
3. Если значение этого выражения истинно, выполняется оператор
цикла.
4. После этого вычисляется значение выражения3.
5. Далее см. пункт 3
http://www.slideshare.net/IgorShkulipa 35
Циклы с условием
Цикл с предусловием
while (<условие>)
{
<оператор>
}
Цикл с постусловием
do
{
<оператор>
}
while (<условие>)
http://www.slideshare.net/IgorShkulipa 36
Операторы
Возвращение значения и выход из функции
return <выражение>;
Безусловный переход
goto <метка>;
Оператор прекращения. Прерывает выполнение текущего блока.
break;
Оператор продолжения. Прерывает выполнение текущей итерации
цикла и переходит к следующей.
continue;
Оператор вызова функции
<имя функции>(аргументы)
Оператор «typedef»
typedef <тип> <имя>;
typedef (unsigned char) byte;
http://www.slideshare.net/IgorShkulipa 37
Лабораторная работа №2. Операторы языка С++.
Создать консольный калькулятор, который выполняет
арифметические действия над числами в:
⚫ Десятичной системе исчисления
⚫ Двоичной системе исчисления
⚫ Шестнадцатеричной системе исчисления
Реализовать меню для управления вычислениями.

More Related Content

What's hot

Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Dima Dzuba
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Dima Dzuba
 
Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Dima Dzuba
 
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4
Объектно-Ориентированное Программирование на C++, Лекции  3 и 4 Объектно-Ориентированное Программирование на C++, Лекции  3 и 4
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4 Dima Dzuba
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Javametaform
 
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.C# Desktop. Занятие 02.
C# Desktop. Занятие 02.Igor Shkulipa
 
C++ осень 2013 лекция 4
C++ осень 2013 лекция 4C++ осень 2013 лекция 4
C++ осень 2013 лекция 4Technopark
 
C++ осень 2013 лекция 2
C++ осень 2013 лекция 2C++ осень 2013 лекция 2
C++ осень 2013 лекция 2Technopark
 
C# Desktop. Занятие 04.
C# Desktop. Занятие 04.C# Desktop. Занятие 04.
C# Desktop. Занятие 04.Igor Shkulipa
 
C++ Базовый. Занятие 11.
C++ Базовый. Занятие 11.C++ Базовый. Занятие 11.
C++ Базовый. Занятие 11.Igor Shkulipa
 
C++ осень 2013 лекция 9
C++ осень 2013 лекция 9C++ осень 2013 лекция 9
C++ осень 2013 лекция 9Technopark
 
C# Desktop. Занятие 07.
C# Desktop. Занятие 07.C# Desktop. Занятие 07.
C# Desktop. Занятие 07.Igor Shkulipa
 
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.Igor Shkulipa
 
C++ осень 2013 лекция 6
C++ осень 2013 лекция 6C++ осень 2013 лекция 6
C++ осень 2013 лекция 6Technopark
 
Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6Dima Dzuba
 

What's hot (16)

Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8.
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
 
Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10
 
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4
Объектно-Ориентированное Программирование на C++, Лекции  3 и 4 Объектно-Ориентированное Программирование на C++, Лекции  3 и 4
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4
 
java 8
java 8java 8
java 8
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Java
 
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.C# Desktop. Занятие 02.
C# Desktop. Занятие 02.
 
C++ осень 2013 лекция 4
C++ осень 2013 лекция 4C++ осень 2013 лекция 4
C++ осень 2013 лекция 4
 
C++ осень 2013 лекция 2
C++ осень 2013 лекция 2C++ осень 2013 лекция 2
C++ осень 2013 лекция 2
 
C# Desktop. Занятие 04.
C# Desktop. Занятие 04.C# Desktop. Занятие 04.
C# Desktop. Занятие 04.
 
C++ Базовый. Занятие 11.
C++ Базовый. Занятие 11.C++ Базовый. Занятие 11.
C++ Базовый. Занятие 11.
 
C++ осень 2013 лекция 9
C++ осень 2013 лекция 9C++ осень 2013 лекция 9
C++ осень 2013 лекция 9
 
C# Desktop. Занятие 07.
C# Desktop. Занятие 07.C# Desktop. Занятие 07.
C# Desktop. Занятие 07.
 
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
 
C++ осень 2013 лекция 6
C++ осень 2013 лекция 6C++ осень 2013 лекция 6
C++ осень 2013 лекция 6
 
Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6
 

Viewers also liked

Production diary 20
Production diary 20Production diary 20
Production diary 20Laila Jaleel
 
Challenge Passport-sm
Challenge Passport-smChallenge Passport-sm
Challenge Passport-smLewis Pitzer
 
Laura mulvey’s male gaze theory
Laura mulvey’s male gaze theoryLaura mulvey’s male gaze theory
Laura mulvey’s male gaze theoryLaila Jaleel
 
Vijay bhosekar published article organic agriculture
Vijay bhosekar  published article  organic agricultureVijay bhosekar  published article  organic agriculture
Vijay bhosekar published article organic agriculturevijay bhosekar
 
C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.Igor Shkulipa
 
C++ STL & Qt. Занятие 08.
C++ STL & Qt. Занятие 08.C++ STL & Qt. Занятие 08.
C++ STL & Qt. Занятие 08.Igor Shkulipa
 
Fotos de la tesis
Fotos de la tesisFotos de la tesis
Fotos de la tesisIda Morán
 
Happily_Disconnected
Happily_DisconnectedHappily_Disconnected
Happily_DisconnectedAmber Perkins
 
Bollywood Movie Poster
Bollywood Movie PosterBollywood Movie Poster
Bollywood Movie PosterAkash Hossain
 
Enhancing Energy Efficiency in Cloud Management through Code Annotations and ...
Enhancing Energy Efficiency in Cloud Management through Code Annotations and ...Enhancing Energy Efficiency in Cloud Management through Code Annotations and ...
Enhancing Energy Efficiency in Cloud Management through Code Annotations and ...Luigi Sambolino
 
XDAQ
XDAQXDAQ
XDAQAF
 
Vijay Bhosekar_ Research Article_ Frontiers in Plant Science
Vijay Bhosekar_ Research Article_ Frontiers in Plant ScienceVijay Bhosekar_ Research Article_ Frontiers in Plant Science
Vijay Bhosekar_ Research Article_ Frontiers in Plant Sciencevijay bhosekar
 
C# Desktop. Занятие 09.
C# Desktop. Занятие 09.C# Desktop. Занятие 09.
C# Desktop. Занятие 09.Igor Shkulipa
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.Igor Shkulipa
 
Capitulo IV análisis de resultados
Capitulo IV análisis de resultados Capitulo IV análisis de resultados
Capitulo IV análisis de resultados Ida Morán
 
AdminMgr&IntDesCV_3.30.15
AdminMgr&IntDesCV_3.30.15AdminMgr&IntDesCV_3.30.15
AdminMgr&IntDesCV_3.30.15Melanie Oringer
 

Viewers also liked (20)

Production diary 20
Production diary 20Production diary 20
Production diary 20
 
Challenge Passport-sm
Challenge Passport-smChallenge Passport-sm
Challenge Passport-sm
 
Laura mulvey’s male gaze theory
Laura mulvey’s male gaze theoryLaura mulvey’s male gaze theory
Laura mulvey’s male gaze theory
 
Vijay bhosekar published article organic agriculture
Vijay bhosekar  published article  organic agricultureVijay bhosekar  published article  organic agriculture
Vijay bhosekar published article organic agriculture
 
C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.
 
C++ STL & Qt. Занятие 08.
C++ STL & Qt. Занятие 08.C++ STL & Qt. Занятие 08.
C++ STL & Qt. Занятие 08.
 
Fotos de la tesis
Fotos de la tesisFotos de la tesis
Fotos de la tesis
 
Happily_Disconnected
Happily_DisconnectedHappily_Disconnected
Happily_Disconnected
 
Bollywood Movie Poster
Bollywood Movie PosterBollywood Movie Poster
Bollywood Movie Poster
 
Pest & Fumi-(Shiva Resume)
Pest & Fumi-(Shiva Resume)Pest & Fumi-(Shiva Resume)
Pest & Fumi-(Shiva Resume)
 
Enhancing Energy Efficiency in Cloud Management through Code Annotations and ...
Enhancing Energy Efficiency in Cloud Management through Code Annotations and ...Enhancing Energy Efficiency in Cloud Management through Code Annotations and ...
Enhancing Energy Efficiency in Cloud Management through Code Annotations and ...
 
Your Five Senses
Your Five SensesYour Five Senses
Your Five Senses
 
XDAQ
XDAQXDAQ
XDAQ
 
Vijay Bhosekar_ Research Article_ Frontiers in Plant Science
Vijay Bhosekar_ Research Article_ Frontiers in Plant ScienceVijay Bhosekar_ Research Article_ Frontiers in Plant Science
Vijay Bhosekar_ Research Article_ Frontiers in Plant Science
 
C# Desktop. Занятие 09.
C# Desktop. Занятие 09.C# Desktop. Занятие 09.
C# Desktop. Занятие 09.
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.
 
Capitulo IV análisis de resultados
Capitulo IV análisis de resultados Capitulo IV análisis de resultados
Capitulo IV análisis de resultados
 
psychiatry
psychiatrypsychiatry
psychiatry
 
AdminMgr&IntDesCV_3.30.15
AdminMgr&IntDesCV_3.30.15AdminMgr&IntDesCV_3.30.15
AdminMgr&IntDesCV_3.30.15
 
Nowhere But Niigata
Nowhere But NiigataNowhere But Niigata
Nowhere But Niigata
 

Similar to C++ Базовый. Занятие 02.

Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMTech Talks @NSU
 
C# Desktop. Занятие 16.
C# Desktop. Занятие 16.C# Desktop. Занятие 16.
C# Desktop. Занятие 16.Igor Shkulipa
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 27bits
 
Характерные черты функциональных языков программирования
Характерные черты функциональных языков программированияХарактерные черты функциональных языков программирования
Характерные черты функциональных языков программированияAlex.Kolonitsky
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3Eugeniy Tyumentcev
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3etyumentcev
 
статический анализ кода
статический анализ кодастатический анализ кода
статический анализ кодаAndrey Karpov
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода Pavel Tsukanov
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановYandex
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
 
Принципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioПринципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioAndrey Karpov
 
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++Pavel Tsukanov
 
Лекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksЛекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksMikhail Kurnosov
 

Similar to C++ Базовый. Занятие 02. (20)

Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVM
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVM
 
Bytecode
BytecodeBytecode
Bytecode
 
Programming c++ (begin-if-else)
Programming c++ (begin-if-else)Programming c++ (begin-if-else)
Programming c++ (begin-if-else)
 
C# Desktop. Занятие 16.
C# Desktop. Занятие 16.C# Desktop. Занятие 16.
C# Desktop. Занятие 16.
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2
 
Характерные черты функциональных языков программирования
Характерные черты функциональных языков программированияХарактерные черты функциональных языков программирования
Характерные черты функциональных языков программирования
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
 
статический анализ кода
статический анализ кодастатический анализ кода
статический анализ кода
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий Леванов
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
 
Принципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioПринципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-Studio
 
course js day 2
course js day 2course js day 2
course js day 2
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Scala on android
Scala on androidScala on android
Scala on android
 
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
 
Лекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksЛекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building Blocks
 

More from Igor Shkulipa

Общие темы. Тема 03.
Общие темы. Тема 03. Общие темы. Тема 03.
Общие темы. Тема 03. Igor Shkulipa
 
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.Igor Shkulipa
 
Общие темы. Тема 01.
Общие темы. Тема 01.Общие темы. Тема 01.
Общие темы. Тема 01.Igor Shkulipa
 
JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.Igor Shkulipa
 
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.Igor Shkulipa
 
JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.Igor Shkulipa
 
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.Igor Shkulipa
 
JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.Igor Shkulipa
 
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.Igor Shkulipa
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.Igor Shkulipa
 
JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.Igor Shkulipa
 
JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.Igor Shkulipa
 
JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.Igor Shkulipa
 
JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.Igor Shkulipa
 
C# Web. Занятие 09.
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.Igor Shkulipa
 
C# Web. Занятие 08.
C# Web. Занятие 08.C# Web. Занятие 08.
C# Web. Занятие 08.Igor Shkulipa
 
C# Web. Занятие 07.
C# Web. Занятие 07.C# Web. Занятие 07.
C# Web. Занятие 07.Igor Shkulipa
 
C# Web. Занятие 04.
C# Web. Занятие 04.C# Web. Занятие 04.
C# Web. Занятие 04.Igor Shkulipa
 
C# Web. Занятие 12.
C# Web. Занятие 12.C# Web. Занятие 12.
C# Web. Занятие 12.Igor Shkulipa
 
C# Web. Занятие 16.
C# Web. Занятие 16.C# Web. Занятие 16.
C# Web. Занятие 16.Igor Shkulipa
 

More from Igor Shkulipa (20)

Общие темы. Тема 03.
Общие темы. Тема 03. Общие темы. Тема 03.
Общие темы. Тема 03.
 
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.
 
Общие темы. Тема 01.
Общие темы. Тема 01.Общие темы. Тема 01.
Общие темы. Тема 01.
 
JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.
 
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.
 
JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
 
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.
 
JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.
 
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
 
JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.
 
JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.
 
JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.
 
JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.
 
C# Web. Занятие 09.
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.
 
C# Web. Занятие 08.
C# Web. Занятие 08.C# Web. Занятие 08.
C# Web. Занятие 08.
 
C# Web. Занятие 07.
C# Web. Занятие 07.C# Web. Занятие 07.
C# Web. Занятие 07.
 
C# Web. Занятие 04.
C# Web. Занятие 04.C# Web. Занятие 04.
C# Web. Занятие 04.
 
C# Web. Занятие 12.
C# Web. Занятие 12.C# Web. Занятие 12.
C# Web. Занятие 12.
 
C# Web. Занятие 16.
C# Web. Занятие 16.C# Web. Занятие 16.
C# Web. Занятие 16.
 

C++ Базовый. Занятие 02.

  • 1. Модуль 1: Базовые понятия языка программирования С++ Темы лекции: Форматированный ввод/вывод. Основные операции языка С++. Операторы языка С++. Практическое задание: Операторы языка С++. Тренер: Игорь Шкулипа, к.т.н. C++ Базовый. Занятие 2
  • 2. http://www.slideshare.net/IgorShkulipa 2 Тема 1. Форматированный ввод/вывод
  • 3. http://www.slideshare.net/IgorShkulipa 3 Функция стандартного вывода printf() Функция printf() является функцией стандартного вывода. С помощью этой функции можно вывести на экран монитора строку символов, число, значение переменной и т.д. Функция printf() имеет прототип в файле stdio.h int printf(char *управляющая строка, аргументы); В случае успеха функция printf() возвращает число выведенных символов. Управляющая строка содержит два типа информации: символы, которые непосредственно выводятся на экран, и спецификаторы формата, определяющие, как выводить аргументы. Функция printf() это функция форматированного вывода. Это означает, что в параметрах функции необходимо указать формат данных, которые будут выводиться. Формат данных указывается спецификаторами формата. Спецификатор формата начинается с символа % за которым следует код формата. Пример: printf(“Average mark=%d”, 5) Результат: Average mark=5
  • 4. http://www.slideshare.net/IgorShkulipa 4 Спецификаторы формата Формат Значение %с Символ %d Целое десятичное число со знаком %i Целое десятичное число со знаком %e Десятичное число в виде x.xx e+xx %E Десятичное число в виде x.xx E+xx %f Десятичное число с плавающей точкой xx.xxxx %F Десятичное число с плавающей точкой xx.xxxx %g Использует код %е или %f — тот из них, который короче (при использовании %g используется е нижнего регистра) %G Использует код %Е или %f — тот из них, который короче (при использовании %G используется Е верхнего регистра) %o Восьмеричное число %s Строка символов %u Беззнаковое десятичное число %x Шестнадцатеричное число (буквы нижнего регистра) %X Шестнадцатеричное число (буквы верхнего регистра) %% Символ % %p Выводит на экран значение указателя
  • 5. http://www.slideshare.net/IgorShkulipa 5 Спецификаторы формата %ld печать long int %hu печать short unsigned %Lf печать long double Кроме того, к командам формата могут быть применены модификаторы l и h
  • 6. http://www.slideshare.net/IgorShkulipa 6 Управляющие символы Символ Значение b BackSpace f Новая страница, перевод страницы n Новая строка, перевод строки r Возврат каретки t Горизонтальная табуляция v Вертикальная табуляция " Двойная кавычка ' Апостроф Обратная косая черта 0 Нулевой символ, нулевой байт a Сигнал N Восьмеричная константа xN Шестнадцатеричная константа ? Знак вопроса
  • 7. http://www.slideshare.net/IgorShkulipa 7 Функция стандартного ввода scanf() Функция scanf() - функция форматированного ввода. С её помощью можно вводить данные со стандартного устройства ввода (клавиатуры). Вводимыми данными могут быть целые числа, числа с плавающей запятой, символы, строки и указатели. Функция scanf() имеет прототип в файле stdio.h int scanf(char *управляющая строка, аргументы); Функция возвращает число переменных которым было присвоено значение. Управляющая строка содержит три вида символов: спецификаторы формата, пробелы и другие символы. Пример: scanf(“%d”, &iNumber) Результат: iNumber=введенное число;
  • 8. http://www.slideshare.net/IgorShkulipa 8 Спецификаторы формата Формат Значение %c Чтение символа %d Чтение десятичного целого %i Чтение десятичного целого %e Чтение числа типа float %h Чтение short int %o Чтение восьмеричного числа %s Чтение строки %x Чтение шестнадцатеричного числа %p Чтение указателя %n Чтение указателя в увеличенном формате
  • 9. http://www.slideshare.net/IgorShkulipa 9 Потоки ввода- вывода В C++ ввод и вывод информации можно осуществлять через потоки cin и cout. Они находятся в библиотеке с заголовочным файлом <iostream>. Для их использования необходимо использовать пространство имен std using namespace std; Либо операцию доступа “::” std::cin; std::cout; Ввод информации осуществляется с помощью потока cin. cin>>a1>>a2>>a3>>...>>an; a1, a2,..., an– имена переменных, которые нужно ввести <<– операция извлечения Вывод информации осуществляется с помощью потока cout. cout<<a1<<a2<<a3<<...<<an; a1, a2,..., an– имена переменных или строковые константы, которые нужно вывести на монитор. >>– операция вставки.
  • 10. http://www.slideshare.net/IgorShkulipa 10 Тема 2. Основные операции языка С++.
  • 11. http://www.slideshare.net/IgorShkulipa 11 Операция присваивания Простая форма операции присваивания. = Левый операнд операции присваивания является изменяемым выражением. В качестве правого операнда операции присваивания может выступать любое выражение. Значение правого операнда присваивается левому операнду. Правый операнд может состоять из множества выражений, соединенных операциями присваивания: An=…=A3=A2=A1; Операции присваивания группируются справа налево: An=(An-1=…=(A3=(A2=A1))…); В таком выражении все операнды, кроме самого правого, должны быть модифицируемыми выражениями.
  • 12. http://www.slideshare.net/IgorShkulipa 12 Арифметические операции + Сложение - Вычитание * Умножение / Деление % Остаток от деления
  • 13. http://www.slideshare.net/IgorShkulipa 13 Арифметические операции с присваиванием += Операция присваивания сложения -= Операция присваивания вычитания *= Операция присваивания умножения /= Операция присваивания деления %= Операция присваивания остатка от деления
  • 14. http://www.slideshare.net/IgorShkulipa 14 Логические операции && Логическое «И» (AND) || Логическое «ИЛИ» (OR) ! Логическое «НЕ» (NOT)
  • 15. http://www.slideshare.net/IgorShkulipa 15 Поразрядные логические операции & Логическое «И» (AND) ^ Исключающее «ИЛИ» (XOR) | Логическое «ИЛИ» (OR) ~ Инвертирование битов (NOT) Пример: x = 180; // 10110100 y = 166; // 10100110 x | y == 182 10110100 10100110 ----------- 10110110
  • 16. http://www.slideshare.net/IgorShkulipa 16 Поразрядные логические операции с присваиванием &= Логическое «И» (AND) ^= Исключающее «ИЛИ» (XOR) |= Логическое «ИЛИ» (OR)
  • 17. http://www.slideshare.net/IgorShkulipa 17 Операции сдвига >> Сдвиг вправо << Сдвиг влево >>= Сдвиг вправо с присваиванием <<= Сдвиг влево с присваиванием Сдвиг влево – умножение на 2 Сдвиг вправо – целочисленное деление на 2
  • 18. http://www.slideshare.net/IgorShkulipa 18 Операции проверки равенства/неравенства == Равенство != Неравенство > Больше < Меньше >= Не меньше <= Не больше
  • 19. http://www.slideshare.net/IgorShkulipa 19 Инкремент, декремент ++ Инкремент - увеличение переменной на единицу -- Декремент - уменьшение переменной на единицу Различают два вида этих операций: операции преинкремента и предекремента и операции постинкремента и посткинкремента. x=5; y = ++x; // y = 6, x = 6 y = --x; // y = 5, x = 5 y = x++; // y = 5, x = 6 y = x--; // y = 6, x = 5 При преникременте сначала происходит увеличение переменной на единицу, и потом это увеличенное значение участвует в выражении. При постинкременте переменная сначала участвует в выражении, а только затем она увеличивается.
  • 20. http://www.slideshare.net/IgorShkulipa 20 Условная операция «? :» Форма записи: "условие" ? "выражение 1" : "выражение 2"; Если условие истинно, то выполняется выражение 1, иначе выполняется выражение 2. Пример: a > b ? cout << a : cout << b; Если а > b, то выполняется cout << a, иначе выполняется cout<< b
  • 21. http://www.slideshare.net/IgorShkulipa 21 Операция определения размера sizeof Операция определения размера объекта или типа Различают два варианта этой операции: 1. В первом случае операндом может быть любое l-выражение (лево- допустимое выражение, т.е. ссылка на константу, переменную или функцию). 2. Во втором случае операндом является имя типа. Результатом этой операции является константа типа size_t. Этот производный целочисленный беззнаковый тип определяется конкретной реализацией. sizeof ( type name ); sizeof ( object ); sizeof object;
  • 22. http://www.slideshare.net/IgorShkulipa 22 Операции динамического распределения памяти new - операция выделения памяти. Позволяет выделить и сделать доступным участок в динамической памяти. В качестве операнда используется имя типа и, возможно, выражение инициализатор. Операция возвращает адрес размещённого в памяти объекта. delete - операция освобождения памяти. Освобождает ранее выделенную с помощью операции new область динамической памяти. В качестве операнда используется адрес освобождаемой области памяти.
  • 23. http://www.slideshare.net/IgorShkulipa 23 Операция доступа :: Операция доступа Обеспечивает обращение к именованной глобальной области памяти, находящейся вне области видимости. Эта операция применяется при работе с одноимёнными объектами, расположенными во вложенных областях действия имён. Когда объект во внутренней области действия имени скрывает одноименный объект, областью действия которого является файл. int iNumber; // Глобальная переменная int func() { int iNumber; // Локальная переменная iNumber = 100; // Присвоение значения локальной ::iNumber = 125; // Присвоение значения глобальной }
  • 24. http://www.slideshare.net/IgorShkulipa 24 Операции обращения к компонентам класса и объекта Операции выбора компонентов объекта : Операции обращения к компонентам класса: . Операция прямого выбора - точка -> Операция косвенного выбора .* Операция обращения к компонентам класса по имени объекта или ссылки на объект (левый операнд операции) и указателю на компонент класса (правый операнд операции) ->* Операция обращения к компонентам класса по указателю на объект (левый операнд операции) и указателю на компонент класса (правый операнд операции) :: Операция доступа к компонентам класса по имени класса и имени компонента
  • 25. http://www.slideshare.net/IgorShkulipa 25 Операция управления процессом вычисления значений выражение1 , выражение2 Пара выражений, разделенных запятой, вычисляется слева направо, значение левого выражения теряется. Тип и значение результата являются типом и значением правого операнда. Эта операция группирует слева направо. В контексте, где запятая имеет специальное значение, как например в списке фактических параметров функции и в списке инициализаторов операция запятая, как она описана в этом разделе, может появляться только в скобках; Например: f (a,(t=3,t+2),c) функция имеет три параметра, вторым из которых является значение 5
  • 26. http://www.slideshare.net/IgorShkulipa 26 Другие операции Операция явного преобразования типа () Операция индексации [] Операция typeid Операция typeid обеспечивает динамическую идентификацию типов. Возвращает id указанного типа.
  • 27. http://www.slideshare.net/IgorShkulipa 27 Приоритет операций Операция Приоритет Индексация массива [] 16 Вызов функции func(); 16 Прямого выбора . 16 Косвенного выбора -> 16 Постинкремент/декремент ++ -- 16 Прединкремент/декремент ++ -- 15 sizeof 15 Инверсия битов ~ 15 Отрицание ! 15 Взятие адреса & 15 Ссылка * 15 Приведение типов (тип) 14 Умножение, деление * / % 13 Сложение, вычитание + - 12 Сдвиг << >> 11 Сравнение < > <= >= 10 Равенство, неравенство == != 9 Битовый «AND» & 8 Битовый «XOR» ^ 7 Битовый «OR» | 6 Логический «AND» && 5 Логический «OR» || 4 Условная операция ?: 3 Операции присваивания = += -= *= /= %=<<= >>= &=^= |= 2 Операция управления процессом вычисления значений , 1
  • 28. http://www.slideshare.net/IgorShkulipa 28 Тема 3. Операторы языка С++
  • 31. http://www.slideshare.net/IgorShkulipa 31 Условный оператор Если <условие>==true, то выполнится <оператор1> , в ином случае - <оператор2>. Блок <else> может быть опущен. В таком случае при истинном условии выполнится <оператор1> , а за ним – оператор, следующий после условного. Вместо <оператор1> и <оператор2> может использоваться любой оператор, включая составной оператор ({}), операторы циклов, операторы выбора и условный, вызова функции, пустой оператор (;) и др. if (условие) оператор1; else оператор2;
  • 32. http://www.slideshare.net/IgorShkulipa 32 Оператор выбора Синтаксис выбирающего оператора допускает пустой составной оператор и пустой оператор в качестве операторов, следующих за условием выбирающего оператора: switch (i) ; switch (j) {} switch (r) i++; Общий вид оператора выбора: switch (условие) { case <константное выражение 1>: <оператор 1>; case <константное выражение 2>: <оператор 2>; ... case <константное выражение N>: <оператор N>; default: <оператор N+1>; }
  • 33. http://www.slideshare.net/IgorShkulipa 33 Схема выполнения оператора switch ● вычисляется выражение в круглых скобках после оператора switch (предварительная стадия); ● это значение последовательно сравнивается со значениями константных выражений за метками case (стадия определения начальной точки выполнения оператора); ● если значения совпадают, управление передаётся соответствующему помеченному оператору (стадия выполнения); ● если ни одно значение не совпадает и в теле оператора case есть оператор, помеченный меткой default, управление передаётся этому оператору (стадия выполнения); ● если ни одно значение не совпадает, и в теле оператора case нет оператора, помеченного меткой default, управление передаётся оператору, следующему за оператором switch (стадия выполнения). На стадии выполнения все операторы от точки выполнения и до конца тела оператора выполняются независимо от меток, если только какой- нибудь из операторов не передаст управление за пределы оператора выбора.
  • 34. http://www.slideshare.net/IgorShkulipa 34 Оператор цикла «for» for (<выражение1>; <выражение2>; <выражение3> ) <оператор>; Цикл состоит из следующих этапов: 1. Выполняется оператор инициализации цикла (выражение1). Этот этап можно назвать этапом инициализации цикла. Он выполняется один раз, в самом начале работы цикла. 2. Затем вычисляется значение выражения2. Это выражение называется выражением условия продолжения цикла. 3. Если значение этого выражения истинно, выполняется оператор цикла. 4. После этого вычисляется значение выражения3. 5. Далее см. пункт 3
  • 35. http://www.slideshare.net/IgorShkulipa 35 Циклы с условием Цикл с предусловием while (<условие>) { <оператор> } Цикл с постусловием do { <оператор> } while (<условие>)
  • 36. http://www.slideshare.net/IgorShkulipa 36 Операторы Возвращение значения и выход из функции return <выражение>; Безусловный переход goto <метка>; Оператор прекращения. Прерывает выполнение текущего блока. break; Оператор продолжения. Прерывает выполнение текущей итерации цикла и переходит к следующей. continue; Оператор вызова функции <имя функции>(аргументы) Оператор «typedef» typedef <тип> <имя>; typedef (unsigned char) byte;
  • 37. http://www.slideshare.net/IgorShkulipa 37 Лабораторная работа №2. Операторы языка С++. Создать консольный калькулятор, который выполняет арифметические действия над числами в: ⚫ Десятичной системе исчисления ⚫ Двоичной системе исчисления ⚫ Шестнадцатеричной системе исчисления Реализовать меню для управления вычислениями.