Автор: Пользователь скрыл имя, 17 Февраля 2013 в 11:33, реферат
В настоящее время язык С++ является одним из основных в практическом программировании. Достоинство языка С++ - это, прежде всего, его простота и лаконичность. Язык С++ легко учится. Главные понятия языка С++, такие, как статические и локальные переменные, массивы, указатели, функции и т.д., максимально приближены к архитектуре реальных компьютеров. Программист, пишущий на С++, всегда достаточно точно представляет себе, как созданная им программа будет работать на любой конкретной архитектуре. Другими словами, язык С++ предоставляет программисту полный контроль над компьютером.
Введение 3
1. Понятие выражения 4
2. Операторы выражений языка С++ 5
2.1. Арифметические операции. 5
2.2. Операции отношения. 7
2.3. Логические операции. 8
2.4. Операция присваивания. 10
2.5. Операция явного преобразования типа (операция «тип»). 11
2.6. Операторы вычисления размера операнда. 12
2.7. Другие операторы 13
Заключение. 15
Список литературы 17
Содержание:
Данная работа посвящена теме «Выражения. Операторы выражений: присваивания, арифметические, логические, отношений, явного преобразования, типа, вычисления размера операнда».
В настоящее время язык С++ является одним из основных в практическом программировании. Достоинство языка С++ - это, прежде всего, его простота и лаконичность. Язык С++ легко учится. Главные понятия языка С++, такие, как статические и локальные переменные, массивы, указатели, функции и т.д., максимально приближены к архитектуре реальных компьютеров. Программист, пишущий на С++, всегда достаточно точно представляет себе, как созданная им программа будет работать на любой конкретной архитектуре. Другими словами, язык С++ предоставляет программисту полный контроль над компьютером.
Язык С++ применяется для разработок операционных систем. Язык С++ оказался очень удобен в программах обработки текстов и изображений, в научных и инженерных расчетах, он отлично подходит для программирования в оконных средах
Актуальность данной темы обусловлена широкой популярностью языка С++.
Целью данной работы является изучение выражений и операторов выражений.
Задачи исследования вытекают из поставленной цели:
Объектом исследования является язык программирования С++.
Предметом исследования являются выражения и операторы выражений языка С++.
В работе использовались различные источники, список которых приведен ниже.
Понятие выражения, как и понятие переменной, заимствовано из алгебры. Выражение - это группа символов, представляющее некоторое значение. Оно может содержать числа, символы для математических действий, такие как сложение или деление, и даже имена переменных. Например, выражение (4 х 5) - 4 представляет значение 16. Почленная интерпретация этого выражения - "взять число 4, умножить его на 5, из результата вычесть 4".
Во всех языках программирования под выражением подразумевается конструкция, составленная из констант, переменных, знаков операций, функций, скобок.
Выражение определяет порядок вычисления некоторого значения. Если это числовое значение, то такое выражение называют арифметическим.
В языке С++ существует три типа выражений:
- математическое выражение, дающее численный результат;
- текстовое выражение, дающее строку символов;
- логическое выражение, дающее в результате 1 или 0 (интерпретируемые как "истина" или "ложь").
В зависимости от типа выражения в языке С++ используются те или иные операции. Арность операции - это количество задействованных в операции операндов. Например, 2 + 3 - бинарная (двуместная) операция, -4 - унарная (одноместная) операция.
Приведем несколько примеров арифметических выражений, записанных по правилам языка С++:
a+b
2.5-z
2*(X+Y)
х++
x+++b
--n*2
2. Операторы выражений языка С++
Опишем набор операций, используемых в С++, а также правила записи и вычисления выражений.
Арифметическим называется выражение, составленное из операндов арифметического типа и использующее только знаки арифметических операций и круглые скобки. Порядок вычисления определяется скобками и старшинством операций.
Арифметическое выражение
- Целая или действительная константа без знака;
- Целая или действительная переменная;
- Элемент массива целого или действительного типа;
- Функция, принимающая целое или действительное значение.
Арифметические операции выполняют арифметические действия в выражениях над значениями операндов целочисленных и вещественных типов.
К арифметическим операциям относятся:
- вычитание или унарный минус;
+ сложение или унарный плюс;
* умножение;
/ деление;
% деление по модулю;
++ унарная операция
увеличения на единицу (
- - унарная операция уменьшения на единицу (декремент).
Все операции, кроме деления по модулю, применимы к любым числовым типам данных. Операция % применима только целым числам.
Рассмотрим особенности выполнения операции деления. Если делимое и делитель — целые числа, то и результат — целое число. В этом случае операция / действует аналогично Div в Паскале. Например, значение выражения 5/3 будет равно 2, а при вычислении 1/5 получится 0.
Если хотя бы один из операндов имеет вещественный тип, то и результат будет вещественным. Например, операции 5./3, 5./3., 5/3. дадут вещественный результат 1.6666.
Операции инкремента и декремента могут применяться только к переменным и не могут — к константам и выражениям. Операция ++ увеличивает значение переменной на единицу, операция — уменьшает значение переменной на единицу. Оба знака операции могут записываться как перед операндом (префиксная форма), так и после операнда (постфиксная форма), например: ++х или Х++, - -а или а- -. Три следующих оператора дают один и тот же результат:
х=х+1; ++х; х++;
Различие проявляется при использовании префиксной и постфиксной форм в выражениях.
Проиллюстрируем это на примерах.
Первый пример:
а=3; b=2;
с=а++*Ь++;
В результате выполнения переменные получат следующие значения: а = 4, b = 3, с = 6.
Второй пример:
а=3; b=2; с=++а*++Ь;
Результаты будут такими: а = 4, b = 3, с = 12.
Объяснение следующее: при использовании постфиксной формы операции ++ и - - выполняются после того, как значение переменной было использовано в выражении, а префиксные операции — до использования. Поэтому в первом примере значение переменной с вычислялось как произведение 3 на 2, а во втором — как произведение 4 на 3.
По убыванию старшинства арифметические операции расположены в следующем порядке:
++, --
- (унарный минус)
*, /, %
Одинаковые по старшинству операции выполняются в порядке слева направо. Как и в Паскале, для изменения порядка выполнения операций в выражениях могут применяться круглые скобки.
Выражением отношения называется словосочетание языка, в котором два выражения связаны знаком операции отношения. Выражение отношения определяет истинность или ложность результата. Операции отношения выполняют сравнение двух операндов и определяют, истинно значение выражения или ложно.
Операции отношения необходимы для проверки условий и выполнения команд в зависимости от того истинно или ложно условие.
Операции отношения всегда работают с двумя аргументами, как правило, одни и те же символы операций используются для сравнения различных данных (простых типов, множеств, указателей, строк).
Результатами операций отношения (<, <=, >, >=, ==, ~=) является ИСТИНА (true, 1) или ЛОЖЬ (false, 0).
В С++ используется тот же набор операций отношения, что и в языке Паскаль. Следует лишь обратить внимание на различие в записи операций «равно» и «не равно».
< меньше,
<= меньше или равно,
> больше,
>= больше или равно,
= = равно,
!= неравно.
В стандарте С++ нет логического типа данных. Поэтому результатом операции отношения является целое число: если отношение истинно — то 1, если ложно — то 0.
Примеры отношений:
а<0, 101>=105, 'а'=='А', 'а'! = 'А'
Результатом второго и третьего отношений будет 0 — ложь; результат четвертого отношения равен 1 — истина; результат первого отношения зависит от значения переменной а.
Логические операции выполняются над логическими значениями ИСТИНА (true) и ЛОЖЬ (false). В языке С++ ложью является 0, а истина – любое значение, отличное от нуля. В С++ появился тип bool.
Когда необходимо объединить несколько операций сравнения в одном выражение используются логические операции, это бывает необходимо, так как операции сравнения сравнивают только два аргумента, а обычно условие бывает намного сложнее.
Три основные логические операции в языке С++ записываются следующим образом:
! операция отрицания (НЕ),
&& конъюнкция, логическое умножение (И),
| | дизъюнкция, логическое сложение (ИЛИ).
Логическое выражение, соответствующее системе неравенств 0 <х< 1 в программе на С++ запишется в виде следующего логического выражения:
х>0 && х<1
Следует обратить внимание на то обстоятельство, что здесь не понадобились круглые скобки для выделения операций отношения. В отличие от Паскаля, где операции отношения имеют самый низкий приоритет, в С++ операции отношения старше конъюнкции и дизъюнкции. По убыванию приоритета логические операции и операции отношения расположены в следующем порядке:
!
> < >= <=
= = !=
&&
| |
Помимо рассмотренных, в С++ имеются побитовые (поразрядные) логические операции.
Побитовые операции выполняют действия над каждым битом в числе. Бит минимальная единица представления информации компьютере, он может хранить только два значения 0 или 1.
Вся информация в компьютере представляется в двоичном виде, то есть в виде последовательностей бит, но бит слишком маленькая величина, поэтому минимальная единица, которую компьютеры могут хранить и с которой они могут работать это байт(впрочем, обычно компьютеры работают с 32 или 64 битами).В одном байте 8 бит.
Все числа в компьютере составлены из бит, например числа 131 это следующая последовательность бит 10000011. К сожалению, более подробные объяснения в книгу не поместятся.
Так как, логический тип очень похож на один бит (так как он принимает два значение истина или ложь),то и логические операции имеют свои аналоги в побитовых, которые работают одинаково, но это не значит, что логические и побитовые операции это одно и тоже.
Эти операции выполняются над каждой парой соответствующих двоичных разрядов внутреннего представления операндов.
Перечислим знаки битовых логических операций:
& поразрядная конъюнкция (И),
| поразрядная дизъюнкция (ИЛИ),
л поразрядное исключающее ИЛИ,
~ поразрядное отрицание (НЕ).
Битовые логические операции вместе с операциями поразрядного сдвига влево (<<) и вправо (») позволяют добраться до каждого бита внутреннего кода. Чаще всего такие действия приходится выполнять в системных программах. В данном пособии мы их рассматривать не будем.
В С++ в отличие от других языков программирования операция присваивания может присутствовать в любом выражении, а не только в отдельном операторе. Знак операции присваивания =. В операторе присваивания слева всегда стоит имя переменной, а справа – значение, например:
a=b;
где a – имя переменной или элемента
массива, b – значение как таковое, выражение,
переменная, константа или функция.
В результате выполнения оператора a=b
переменной а присваивается значение
b. Если в операции присваивания встречаются
переменные разных типов, происходит преобразование
типов. В операции присваивания значение
в правой части преобразуется к типу переменной
левой части. Следует учитывать, что при
этом можно потерять информацию или получить
другое значение.
Присваивание в С++ является операцией, а не оператором. Следствием отмеченного факта является то, что присваивание, как любой другой знак операции, может несколько раз входить в выражение. Например:
а=b=с=х+у;
Данное свойство называется множественным присваиванием – присваивание нескольким переменным одного и того же значения.
Например:
a=b=c=3.14159/6;
Присваивание имеет самый низкий приоритет (ниже только у операции «запятая»). Кроме того, операция присваивания — правоассоциативная. Это значит, что несколько подряд расположенных присваиваний выполняются справа налево. Поэтому в приведенном выше выражении первой выполнится операция сложения, затем переменной с присвоится значение суммы, затем это значение присвоится переменной b и в конце — переменной а.
В языке С++ имеются дополнительные операции присваивания, совмещающие присваивание с выполнением других операций. Среди них: +=, -=, /=, *=, %=. Приоритет у них такой же, как и у простого присваивания.