Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операции




Переменные и константы. Базовые типы. Арифметические операции

Лабораторная работа 2

 

Цель работы - познакомиться с типами данных языка С++ и операторами ввода-вывода, приобрести навыки в записи выражений на языке C++.

Теория

Элементы языка C++

1. Алфавит языка, который включает:

1) прописные и строчные латинские буквы и знак подчеркивания;

2) арабские цифры от 0 до 9;

3) специальные знаки “{},| []()+-/%*.\’:;&?<>=!#^

4) пробельные символы (пробел, символ табуляции, символы перехода на новую строку).

2. Из символов формируются лексемы языка:

1) идентификаторы – имена объектов C/C++-программ. В идентификаторе могут быть использованы латинские буквы, цифры и знак подчеркивания. Прописные и строчные буквы различаются, например, PROG1, prog1 и Prog1 – три различных идентификатора. Первым символом должна быть буква или знак подчеркивания (но не цифра). Пробелы в идентификаторах не допускаются;

2) ключевые (зарезервированные) слова – это слова, которые имеют специальное значение для компилятора. Их нельзя использовать в качестве идентификаторов;

3) знаки операций – это один или несколько символов, определяющих действие над операндами. Операции делятся на унарные, бинарные и тернарные по количеству участвующих в этой операции операндов;

4) константы – это неизменяемые величины. Существуют целые, вещественные, символьные и строковые константы. Компилятор выделяет константу в качестве лексемы (элементарной конструкции) и относит ее к одному из типов по ее внешнему виду;

5) разделители – скобки, точка, запятая пробельные символы.

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

 

Операция Описание
Унарные операции
++ Увеличение значения операнда на единицу: префиксная операция увеличивает операнд до его использования, постфиксная операция увеличивает операнд после его использования
-- Уменьшение значения операнда на единицу: префиксная операция уменьшает операнд до его использования, постфиксная операция уменьшает операнд после его использования
sizeof вычисление размера (в байтах) для объекта того типа, который имеет операнд
- Унарный минус
+ Унарный плюс
! Логическое отрицание (НЕ). В качестве логических значений используется 0 (false) - ложь и не 0 (true) - истина, отрицанием 0 будет 1, отрицанием любого ненулевого числа будет 0
& Получение адреса операнда
* Получение значения, находящегося по указанному адресу (разыменование)
new Выделение памяти
delete Освобождение памяти
(type) Преобразование типа
Бинарные операции
Мультипликативные
* умножение операндов арифметического типа
/ деление операндов арифметического типа
% получение остатка от деления целочисленных операндов

Продолжение табл.

Аддитивные
+ бинарный плюс (сложение арифметических операндов)
- бинарный минус (вычитание арифметических операндов)
Операции сравнения
< меньше, чем
<= меньше или равно
> больше
>= больше или равно
= равно
!= не равно
Логические операции
&& конъюнкция (И) целочисленных операндов или отношений, целочисленный результат ложь(0) или истина(не 0)
|| дизъюнкция (ИЛИ) целочисленных операндов или отношений, целочисленный результат ложь(0) или истина(не 0)
Тернарная операция
?: Условная операция в ней используется три операнда. Выражение1? Выражение2: Выражение3; Первым вычисляется значение выражения1. Если оно истинно, то вычисляется значение выражения2, которое становится результатом. Если при вычислении выражения1 получится 0, то в качестве результата берется значение выражения3. Например: x<0? -x: x; //вычисляется абсолютное значение x
Операция присваивания
= присваивание
*= умножение с присваиванием (мультипликативное присваивание)
/= деление с присваиванием
%= деление с остатком с присваиванием
+= сложение с присваиванием
-= вычитание с присваиванием

 

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

Далее приведены приоритеты операций (таблица).

 

Ранг Операции
  () [ ] ->.
  ! ~ - ++ -- & * (тип) sizeof тип()
  * / % (мультипликативные бинарные)
  + - (аддитивные бинарные)
  < > <= >= (отношения)
  ==!= (отношения)
  && (конъюнкция «И»)
  || (дизъюнкция «ИЛИ»)
  ?: (условная операция)
  = *= /= %= -= &= ^= |= <<= >>= (операция присваивания)
  , (операция запятая)

Константы в C++

Константа – это лексема, представляющая изображение фиксированного числового, строкового или символьного значения. Константы делятся на 5 групп:

1) целые;

2) вещественные (с плавающей точкой);

3) перечислимые;

4) символьные;

5) строковые.

Компилятор выделяет лексему и относит ее к той или другой группе, а затем внутри группы к определенному типу по ее форме записи в тексте программы и по числовому значению.

Целые константы могут быть десятичными, восьмеричными и шестнадцатеричными (таблица).

 

 

Название Определение Примеры
Десятичная константа Последовательность десятичных цифр, начинающаяся не с 0, если это число не 0 8, 0, 192345
Восьмеричная константа Последовательность восьмеричных цифр, которым предшествует 0 026, 034, 017
Шестнадцатеричная константа Последовательность шестнадцатеричных цифр, которым предшествуют символы 0х или 0Х 0хА, 0Х00F, 0х123

Вещественные константы могут иметь две формы представления: с фиксированной точкой и с плавающей точкой (таблица).

 

Название Вид Примеры
Константы с фиксированной точкой [цифры].[цифры] 5.7,.0001, 41.
Константа с плавающей точкой [цифры][.][цифры]E|e[+|-] [цифры] 0.5е5,.11е-5, 5Е3

 

Типизированные константы языка C++ – те же переменные, занимающие место в памяти и имеющие определенный тип, только их значение нельзя изменять, поэтому инициализация констант обязательно происходит сразу при объявлении. Чтобы сделать переменную неизменяемой, необходимо написать ключевое слово const перед ее объявлением, можно определить сразу несколько типизированных констант, разделяя их определения запятыми.

 

сonst Тип Имя константы 1=Значение константы 1, Имя константы 2=Значение константы 2;

 

Компилятор языка следит за тем, чтобы константа никогда не изменялась и считает ошибкой все операторы, где такое изменение могло бы произойти.

Перечислимые константы вводятся с помощью ключевого слова enum. Это обычные целые константы, которым приписаны уникальные и удобные для использования обозначения.

 

Пример

enum {one=1, two=2, three=3, four=4};

enum {zero,one,two,three};

enum {ten=10, three=3, four, five, six};

enum {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};

 

Символьные константы – это один или два символа, заключенные в апострофы. Символьные константы, состоящие из одного символа, имеют тип char и занимают в памяти один байт, символьные константы, состоящие из двух символов, имеют тип int и занимают два байта. Последовательности, начинающиеся со знака \, называются управляющими, они используются:

1) для представления символов, не имеющих графического отображения, например:

\a – звуковой сигнал,

\b – возврат на один шаг,

\n – перевод строки,

\t – горизонтальная табуляция;

2) для представления символов: \, ’,?, ” (\\, \’,\?,\”);

3) для представления символов с помощью шестнадцатеричных или восьмеричных кодов (\073, \0хF5);

4) строковая константа – это последовательность символов, заключенная в кавычки. Внутри строк также могут использоваться управляющие символы. Например:

”\nНовая строка”,

”\n\”Алгоритмические языки программирования””.

Переменные в С++

Переменные (variables) – поименованные области в памяти ЭВМ. ЯВУ используют переменные для хранения данных. Объявление переменной задает ее тип. Тип переменных определяет количество памяти, отводимой под переменную, а, также, ее правильное использование в программе. Имя переменной – правильный идентификатор (identifier).

Значение переменной – информация, которую содержит переменная в данный момент. Значение переменной может меняться. Наиболее явный способ изменить значение переменной заключается в использовании оператора присваивания (assignment statement). Первое присвоение значения переменной называется инициализацией (initialization). Если переменная не получила определенного значения, то говорят, что она не инициализирована.

Типы C++можно разделить на простые и составные. К простым типам относят типы, которые характеризуются одним значением. В языке C++ определено 6 простых типов данных:

1) int (целый);

2)

целочисленные
char (символьный);

3) wchar_t (расширенный символьный) (C++);

4) bool (логический) (C++);

5) float (вещественный);

6) double (вещественный с двойной точностью).

Типы float и double относятся к типам с плавающей точкой.

Существует 4 спецификатора типа, уточняющих внутреннее представление и диапазон стандартных типов

1) short (короткий);

2) long (длинный);

3) signed (знаковый);

4) unsigned (беззнаковый).

На разных машинах типы могут иметь различный размер, стандартом языка размер типов не установлен. Количество байт, действительно занимаемых типом в памяти, можно определить при помощи оператора sizeof. Например, если определена целая переменная int a, то ее размер – sizeof(a) байт.

char – символьный (занимает память как символ ASCII-кода –1 байт). Значение символьной переменной – любой допустимый символ, записываемый в апострофах. Например: 'ф', '5'. 'А' и 'а' – различаются;

int – целый размер и диапазон значений зависят от компилятора и процессора: 2 байта для 16-разрядного компилятора, 4 – для 32-разрядного;

float – вещественный – числа с плавающей точкой, представляются в памяти двумя значениями: мантиссой и порядком (123456 = 0.123456Е+6). Тип float занимает 4 байта памяти;

double – вещественный двойной точности – позволяет представлять вещественные числа с большей точностью, занимает 8 байт.

На разных машинах типы могут иметь различный размер, стандартом языка размер типов не установлен. Количество байт, действительно занимаемых типом в памяти, можно определить при помощи оператора sizeof. Например, если определена целая переменная int a, то ее размер – sizeof(a) байт.




Поделиться с друзьями:


Дата добавления: 2015-08-31; Просмотров: 361; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.03 сек.