Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект С++ (Часть 1).doc
Скачиваний:
17
Добавлен:
09.11.2019
Размер:
1.24 Mб
Скачать

Приоритеты рассмотренных операций

Результат вычисления выражений зависит от приоритета операций и от порядка выполнения операций с одинаковым приоритетом.

Для правильной записи выражений очень важно знать, в каком порядке выполняются операции внутри выражения. Например:

5 + 4 * 3 / 2 + 3

Если выполнить операции слева направо, то результат будет равен 16:

5 + 4 = 9

9 * 3 = 27

27 / 2 = 13

13 + 3 = 16

Но, поскольку, операции умножения и деления имеют одинаковый приоритет, и он выше, чем у операции сложения, на самом деле результат будет равен 14:

4 * 3 = 12

12 / 6 = 6

5 + 6 = 11

11 + 3 = 14

В арифметических и логических выражениях операции с одинаковым приоритетом выполняются слева направо. А вот выражения с операторами присваивания выполняются справа налево.

В следующей таблице приведен перечень рассмотренных выше операций в порядке уменьшения приоритетов. Операции, имеющий одинаковый приоритет, сгруппированы по секциям.

Операция

Действие

++

Постфиксный оператор инкремента

--

Постфиксный оператор декремента

++

Префиксный оператор инкремента

--

Префиксный оператор декремента

!

Логическое «НЕ»

-

Унарный минус

+

Унарный плюс

тип

Явное преобразование типа

sizeof

Получение размерности операнда в байтах

*

Умножение

/

Деление

%

Остаток (деление по модулю)

+

Сложение

-

Вычитание

<<

Сдвиг влево

>>

Сдвиг вправо

<

Меньше

<=

Меньше или равно

>

Больше

>=

Больше или равно

==

Равно

!=

Не равно

&

Побитовое «И»

^

Побитовое исключающее «ИЛИ»

|

Побитовое «ИЛИ»

&&

Логическое «И»

||

Логическое «ИЛИ»

? :

Условная операция

=, +=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^=

Простое и составные присваивания

Изменить порядок выполнения операций внутри выражения можно с помощью круглых скобок. В любом случае, когда возникают сомнения в определении приоритета выполнения операций лучше использовать круглые скобки (на первых порах это особенно рекомендуется).

3.7. Ввод и вывод простых типов данных

Ввод/вывод данных является неотъемлемой составляющей любой программы - без ввода исходных данных для обработки и без вывода результатов не обходится ни одна программа.

В этом разделе будут рассмотрены только некоторые аспекты организации ввода/вывода в языке C++, относящиеся к консольному вводу/выводу простых типов данных.

В языке C++ нет встроенных средств ввода/вывода — он осуществляется с помощью функций и объектов, содержащихся в стандартных библиотеках.

В C++ можно использовать два различных способа реализации ввода-вывода.

Первый способ (унаследованный от языка C) основан на использовании ряда библиотечных функций, наиболее употребимыми из которых являются функции printf и scanf. Они выполняют форматированный ввод и вывод произвольного количества величин в соответствии со строкой формата. Строка формата содержит символы, которые при выводе копируются в поток (на экран) или запрашиваются из потока (с клавиатуры) при вводе, и спецификации преобразования, начинающиеся со знака %, которые при вводе и выводе заменяются конкретными величинами. Например:

#include <iostream>

using namespace std;

int main ()

{

setlocale (0, "");

int a;

printf ("Введите целое число:\t");

scanf ("%d", &a);

printf ("Вы ввели значение:\t%d\n\n", a);

system ("Pause");

return 0;

}

Второй способ, характерный для C++, основан на использовании стандартных потоков ввода (cin) и вывода (cout). Та же самая программа в стиле C++ будет выглядеть так:

#include <iostream>

using namespace std;

int main ()

{

setlocale (0, "");

int a;

cout << "Введите целое число:\t";

cin >> a;

cout << "Вы ввели значение:\t" << a << "\n\n";

// cout << "Вы ввели значение:\t" << a << endl << endl;

system ("Pause");

return 0;

}

В одной и той же программе совмещать эти два способа не рекомендуется.

В дальнейшем будем использовать именно второй способ организации ввода/вывода.

При использовании потоков для вывода данных на экран используется операция <<, которая так и называется: операция вывода или операция вставки (данные "вставляются" в поток вывода).

Ввод данных с клавиатуры осуществляется с помощью операции ввода >> (операция извлечения данных из потока ввода).

Обе эти операции "знают" как осуществлять ввод и вывод стандартных простых типов данных. Более того эти операции можно "научить", как осуществлять ввод/вывод нестандартных пользовательских типов данных (перегрузка операций, которая будет рассмотрена позднее).

А сейчас перейдем к изучению приемов ввода/вывода простых стандартных типов данных.