Язык С++
Содержание:
Введение
Данная работа посвящена теме «Выражения. Операторы выражений: присваивания, арифметические, логические, отношений, явного преобразования, типа, вычисления размера операнда».
В настоящее время язык С++ является одним из основных в практическом программировании. Достоинство языка С++ - это, прежде всего, его простота и лаконичность. Язык С++ легко учится. Главные понятия языка С++, такие, как статические и локальные переменные, массивы, указатели, функции и т.д., максимально приближены к архитектуре реальных компьютеров. Программист, пишущий на С++, всегда достаточно точно представляет себе, как созданная им программа будет работать на любой конкретной архитектуре. Другими словами, язык С++ предоставляет программисту полный контроль над компьютером.
Язык С++ применяется для разработок операционных систем. Язык С++ оказался очень удобен в программах обработки текстов и изображений, в научных и инженерных расчетах, он отлично подходит для программирования в оконных средах
Актуальность данной темы обусловлена широкой популярностью языка С++.
Целью данной работы является изучение выражений и операторов выражений.
Задачи исследования вытекают из поставленной цели:
- Дать понятие выражения в языке С++.
- Изучить основные операторы выражений языка С++.
Объектом исследования является язык программирования С++.
Предметом исследования являются выражения и операторы выражений языка С++.
В работе использовались различные источники, список которых приведен ниже.
1. Понятие выражения
Понятие выражения, как и понятие переменной, заимствовано из алгебры. Выражение - это группа символов, представляющее некоторое значение. Оно может содержать числа, символы для математических действий, такие как сложение или деление, и даже имена переменных. Например, выражение (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. Операторы выражений языка С++
Опишем набор операций, используемых в С++, а также правила записи и вычисления выражений.
2.1. Арифметические операции.
Арифметическим называется выражение, составленное из операндов арифметического типа и использующее только знаки арифметических операций и круглые скобки. Порядок вычисления определяется скобками и старшинством операций.
Арифметическое выражение
- Целая или действительная константа без знака;
- Целая или действительная переменная;
- Элемент массива целого или действительного типа;
- Функция, принимающая целое или действительное значение.
Арифметические операции выполняют арифметические действия в выражениях над значениями операндов целочисленных и вещественных типов.
К арифметическим операциям относятся:
- вычитание или унарный минус;
+ сложение или унарный плюс;
* умножение;
/ деление;
% деление по модулю;
++ унарная операция
увеличения на единицу (
- - унарная операция уменьшения на единицу (декремент).
Все операции, кроме деления по модулю, применимы к любым числовым типам данных. Операция % применима только целым числам.
Рассмотрим особенности выполнения операции деления. Если делимое и делитель — целые числа, то и результат — целое число. В этом случае операция / действует аналогично 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.
По убыванию старшинства арифметические операции расположены в следующем порядке:
++, --
- (унарный минус)
*, /, %
Одинаковые по старшинству операции выполняются в порядке слева направо. Как и в Паскале, для изменения порядка выполнения операций в выражениях могут применяться круглые скобки.
2.2. Операции отношения.
Выражением отношения называется словосочетание языка, в котором два выражения связаны знаком операции отношения. Выражение отношения определяет истинность или ложность результата. Операции отношения выполняют сравнение двух операндов и определяют, истинно значение выражения или ложно.
Операции отношения необходимы для проверки условий и выполнения команд в зависимости от того истинно или ложно условие.
Операции отношения всегда работают с двумя аргументами, как правило, одни и те же символы операций используются для сравнения различных данных (простых типов, множеств, указателей, строк).
Результатами операций отношения (<, <=, >, >=, ==, ~=) является ИСТИНА (true, 1) или ЛОЖЬ (false, 0).
В С++ используется тот же набор операций отношения, что и в языке Паскаль. Следует лишь обратить внимание на различие в записи операций «равно» и «не равно».
< меньше,
<= меньше или равно,
> больше,
>= больше или равно,
= = равно,
!= неравно.
В стандарте С++ нет логического типа данных. Поэтому результатом операции отношения является целое число: если отношение истинно — то 1, если ложно — то 0.
Примеры отношений:
а<0, 101>=105, 'а'=='А', 'а'! = 'А'
Результатом второго и третьего отношений будет 0 — ложь; результат четвертого отношения равен 1 — истина; результат первого отношения зависит от значения переменной а.
2.3. Логические операции.
Логические операции выполняются над логическими значениями ИСТИНА (true) и ЛОЖЬ (false). В языке С++ ложью является 0, а истина – любое значение, отличное от нуля. В С++ появился тип bool.
Когда необходимо объединить несколько операций сравнения в одном выражение используются логические операции, это бывает необходимо, так как операции сравнения сравнивают только два аргумента, а обычно условие бывает намного сложнее.
Три основные логические операции в языке С++ записываются следующим образом:
! операция отрицания (НЕ),
&& конъюнкция, логическое умножение (И),
| | дизъюнкция, логическое сложение (ИЛИ).
Логическое выражение, соответствующее системе неравенств 0 <х< 1 в программе на С++ запишется в виде следующего логического выражения:
х>0 && х<1
Следует обратить внимание на то обстоятельство, что здесь не понадобились круглые скобки для выделения операций отношения. В отличие от Паскаля, где операции отношения имеют самый низкий приоритет, в С++ операции отношения старше конъюнкции и дизъюнкции. По убыванию приоритета логические операции и операции отношения расположены в следующем порядке:
!
> < >= <=
= = !=
&&
| |
Помимо рассмотренных, в С++ имеются побитовые (поразрядные) логические операции.
Побитовые операции выполняют действия над каждым битом в числе. Бит минимальная единица представления информации компьютере, он может хранить только два значения 0 или 1.
Вся информация в компьютере представляется в двоичном виде, то есть в виде последовательностей бит, но бит слишком маленькая величина, поэтому минимальная единица, которую компьютеры могут хранить и с которой они могут работать это байт(впрочем, обычно компьютеры работают с 32 или 64 битами).В одном байте 8 бит.
Все числа в компьютере составлены из бит, например числа 131 это следующая последовательность бит 10000011. К сожалению, более подробные объяснения в книгу не поместятся.
Так как, логический тип очень похож на один бит (так как он принимает два значение истина или ложь),то и логические операции имеют свои аналоги в побитовых, которые работают одинаково, но это не значит, что логические и побитовые операции это одно и тоже.
Эти операции выполняются над каждой парой соответствующих двоичных разрядов внутреннего представления операндов.
Перечислим знаки битовых логических операций:
& поразрядная конъюнкция (И),
| поразрядная дизъюнкция (ИЛИ),
л поразрядное исключающее ИЛИ,
~ поразрядное отрицание (НЕ).
Битовые логические операции вместе с операциями поразрядного сдвига влево (<<) и вправо (») позволяют добраться до каждого бита внутреннего кода. Чаще всего такие действия приходится выполнять в системных программах. В данном пособии мы их рассматривать не будем.
2.4. Операция присваивания.
В С++ в отличие от других языков программирования операция присваивания может присутствовать в любом выражении, а не только в отдельном операторе. Знак операции присваивания =. В операторе присваивания слева всегда стоит имя переменной, а справа – значение, например:
a=b;
где a – имя переменной или элемента
массива, b – значение как таковое, выражение,
переменная, константа или функция.
В результате выполнения оператора a=b
переменной а присваивается значение
b. Если в операции присваивания встречаются
переменные разных типов, происходит преобразование
типов. В операции присваивания значение
в правой части преобразуется к типу переменной
левой части. Следует учитывать, что при
этом можно потерять информацию или получить
другое значение.
Присваивание в С++ является операцией, а не оператором. Следствием отмеченного факта является то, что присваивание, как любой другой знак операции, может несколько раз входить в выражение. Например:
а=b=с=х+у;
Данное свойство называется множественным присваиванием – присваивание нескольким переменным одного и того же значения.
Например:
a=b=c=3.14159/6;
Присваивание имеет самый низкий приоритет (ниже только у операции «запятая»). Кроме того, операция присваивания — правоассоциативная. Это значит, что несколько подряд расположенных присваиваний выполняются справа налево. Поэтому в приведенном выше выражении первой выполнится операция сложения, затем переменной с присвоится значение суммы, затем это значение присвоится переменной b и в конце — переменной а.
В языке С++ имеются дополнительные операции присваивания, совмещающие присваивание с выполнением других операций. Среди них: +=, -=, /=, *=, %=. Приоритет у них такой же, как и у простого присваивания.
Примеры использования этих операций:
а+=2 эквивалентно а=а+2,
х-=а+Ь эквивалентно х=х-(а+Ь),
р/=10 эквивалентно р=р/10,
m*=n эквивалентно m=m*n,
r%=5 эквивалентно r=r%5.
Заметим, что вместо выражения а=а+2 предпочтительнее писать в программе а+=2, поскольку второе выражение будет вычисляться быстрее.
2.5. Операция явного преобразования типа (операция «тип»).
Применение этой операции имеет следующий формат:
(имя_типа) операнд
Операндом могут быть константа, переменная, выражение. В результате значение операнда преобразуется к указанному типу. Примеры использования преобразования типа:
(long)8, (float)I, (int)x%2
По поводу последнего выражения заметим, что приоритет операции «тип» выше деления (и других бинарных арифметических операций), поэтому сначала значение переменной х приведется к целому типу (отбросится дробная часть), а затем выполнится деление по модулю.
Следующий фрагмент программы иллюстрирует одну из практических ситуаций, в которой потребовалось использовать преобразование типа:
float с;
int a=l, b-2;
с=(float)a/b;
В результате переменная с получит значение 0,5. Без преобразования типа ее значение стало бы равно 0.
2.6. Операторы вычисления размера операнда.
Операция sizeof вычисляет размер своего операнда в байтах. Операнд должен быть или выражением, которое не вычисляется, или именем типа в скобках. Операцию sizeof нельзя применять к функции, битовому полю, неопределенному классу, типу void или к массиву с неуказанными границами индексов. Байт никак не определяется языком, кроме как результата операции sizeof, именно sizeof(char) есть 1.
Если операция применяется к ссылке, результатом будет размер объекта, на который настроена ссылка. Если она применяется к классу, результатом будет размер объекта этого класса в байтах с учетом всех дополнительных байтов, которые потребуется для размещения такого объекта в массиве. Размер любого класса или объекта класса больше нуля. В случае массива операция выдает полное число байтов в массиве. Отсюда следует, что размер массива из n элементов равен размеру элемента, умноженному на n.
Операция sizeof может применяться к указателю на функцию, но не к самой функции. Результатом операции будет константа типа size_t. Этот тип определен в стандартном заголовочном файле <stddef.h> и является зависящим от реализации беззнаковым целочисленным типом.
Эта операция имеет две формы записи:
sizeof(тип) и sizeof(выражение)
Результатом операции является целое число, равное количеству байтов, которое занимает в памяти величина явно указанного типа или величина, полученная в результате вычисления выражения. Последняя определяется также по типу результата выражения. Хотя по форме записи это похоже на функцию, однако sizeof является именно операцией. Ее приоритет выше, чем у бинарных арифметических операций, логических операций и отношений. Примеры использования операции:
sizeof (int) результат — 2
sizeof (1) результат — 2
sizeof (0.1) результат —- 8
sizeof (1L) результат — 4
sizeof (char) результат— 1
sizeof (' a') результат — 2
2.7. Другие операторы
Операция «запятая».
Эта необычная операция используется для связывания нескольких выражений в одно. Несколько выражений, разделенных запятыми, вычисляются последовательно слева направо. В качестве результата такого совмещенного выражения принимается значение самого правого выражения. Например, если переменная х имеет тип int, то значение выражения (Х=3, 5*Х) будет равно 15, а переменная х примет значение 3.
Операция «условие ?:».
Это единственная операция, которая имеет три операнда. Формат операции:
выражение1 ? выражение2 : выражениеЗ
Данная операция реализует
алгоритмическую структуру ветв
Пример 1. Вычисление абсолютной величины переменной X можно организовать с помощью одной операции: X;
Х<0 ? -X : X;
Пример 2. Выбор большего значения из двух переменных а и Ь:
max= (a<=b)?b:a;
Пример 3. Заменить большее значение из двух переменных а и b на единицу:
(a>b)?a:b=l;
Правила языка в данном случае позволяют ставить условную операцию слева от знака присваивания.
Заключение
В заключение работы можно сделать следующие выводы:
1. Во всех языках программирования под выражением подразумевается конструкция, составленная из констант, переменных, знаков операций, функций, скобок. Выражение определяет порядок вычисления некоторого значения.
2. Арифметическим называется выражение, составленное из операндов арифметического типа и использующее только знаки арифметических операций и круглые скобки. Порядок вычисления определяется скобками и старшинством операций.
К арифметическим операциям относятся:
- вычитание или унарный минус;
+ сложение или унарный плюс;
* умножение;
/ деление;
% деление по модулю;
++ унарная
операция увеличения на
- - унарная операция уменьшения на единицу (декремент).
3. Операции отношения
выполняют сравнение двух
В С++ используется следующий набор операций отношения:
< меньше,
<= меньше или равно,
> больше,
>= больше или равно,
= = равно,
!= неравно.
4. Логические операции выполняются над логическими значениями ИСТИНА (true) и ЛОЖЬ (false). В языке С++ ложью является 0, а истина – любое значение, отличное от нуля. В С++ появился тип bool.
Три основные логические операции в языке С++ записываются следующим образом:
! операция отрицания (НЕ),
&& конъюнкция, логическое умножение (И),
| | дизъюнкция, логическое сложение (ИЛИ).
5. В С++ в отличие от других языков программирования операция присваивания может присутствовать в любом выражении, а не только в отдельном операторе. Знак операции присваивания =. В операторе присваивания слева всегда стоит имя переменной, а справа – значение, например:
a=b;
где a – имя переменной или элемента массива, b – значение как таковое, выражение, переменная, константа или функция.
Присваивание в С++ является операцией, а не оператором.
6. Операция явного преобразования типа (операция «тип»).
Применение этой операции имеет следующий формат:
(имя_типа) операнд
Операндом могут быть константа, переменная, выражение. В результате значение операнда преобразуется к указанному типу.
7. Операция sizeof вычисляет
размер своего операнда в
8.Кроме вышеперечисленных в операций в языке С++ еще используются следующие:
- Операция «запятая».
Эта необычная операция используется для связывания нескольких выражений в одно.
Операция «условие ?:».
Это единственная операция, которая имеет три операнда. Формат операции: выражение1 ? выражение2 : выражениеЗ
Список литературы
- Круглински Д. Дж. Программирование на Microsoft Visual C++ 6.0 для профессионалов / Д. Дж. Круглински - СПб.: Питер, 2001
- Подбельский В. В. Язык С++/ В. В. Подбельский – М.: Финансы и статистика, 2001
- Топп У. Структуры данных в С++ / У. Топп – М.: Бином, 2000
- www.softsvet.ru/2007/08/09/
uslovnyjj_operator__v_s.html - Условный оператор ?: в С++ » Новости из мира софта на СофтСвете
5. lib.ru/CPPHB/cpptut.txt - Бьерн Страуструп. Язык программирования С++

- Язык - символ нашей жизни
- Язык СМИ
- Язык современной рекламы
- Язык современной рекламы
- Язык современной рекламы
- Язык современной эстрадной песни
- Язык современных российских Масс-Медиа
- Язык рекламы
- Язык рекламы
- Язык рекламы
- Язык рекламы: прагматические особенности и лингвистическая экспертиза рекламных текстов
- Язык рекламы: прагматические особенности и лингвистическая экспертиза рекламных текстов
- Язык рекламы: прагматические особенности и лингвистическая экспертиза рекламных текстов
- Язык – речь – слово в духовной литературе