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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

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

 

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 Получение размерности операнда в байтах
* Умножение
/ Деление
% Остаток (деление по модулю)
+ Сложение
- Вычитание
<< Сдвиг влево
>> Сдвиг вправо
< Меньше
<= Меньше или равно
> Больше
>= Больше или равно
== Равно
!= Не равно
& Побитовое «И»
^ Побитовое исключающее «ИЛИ»
| Побитовое «ИЛИ»
&& Логическое «И»
|| Логическое «ИЛИ»
?: Условная операция
=, +=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^= Простое и составные присваивания

 

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

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

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

В этом разделе будут рассмотрены только некоторые аспекты организации ввода/вывода в языке 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;

}

 

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

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

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

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

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

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

Вывод текстовых строк

Текстовые (строковые) литералы в C++ представляются как последовательность символов, заключенная в двойные кавычки. Например:

 

"Это пример текстовой строки".

 

Вывод текстовых строк на экран осуществляется через стандартный поток вывода с помощью операции вывода <<:

 

cout << "Это пример текстовой строки";

 

Внутрь текстовых строк можно вставлять управляющие escape -последовательности. Escape-последовательности служат для управления выводом, и представляют собой специальные последовательности из двух или более символов, начинающиеся символом обратной наклонной черты - \. При этом каждая такая последовательность воспринимается компилятором как 1 символ. Примерами таких управляющих последовательностей в предыдущих программах являются \t - символ табуляции и \n - символ перевода строки (все эти последовательности приведены в разделе 3.5). С помощью Escape-последовательностей в текстовую строку можно включить любой символ с помощью его восьмеричного или шестнадцатеричного кода (в том числе и символы, которых нет на клавиатуре). Например:

 

cout << "Это символ с восьмеричным кодом 254:\t\254\n";

cout << "А это символ с шестнадцатеричным кодом xAA:\t\xAA\n";

 

На экран будут выведены две строки:

 

Это символ с восьмеричным кодом 254: ┐



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 158; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.171.180 (0.014 с.)