Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Proga_shpory.docx
Скачиваний:
44
Добавлен:
25.03.2015
Размер:
102.57 Кб
Скачать

7) Уточнение типа константы (литерала).

Константы

– неизменяемые величины. Различают целые, вещественные, символьные и строковые константы. Тип константы определяется её записью.

Целая константа может быть записана в 8-, 10-, 16-ричном формате. В 10-ричном формате константы начинаются не с нуля (8, 10, 0, 7, 15 и т.д.). В 8-ричном формате константа начинается с нуля, далее следуют 8-ричные цифры (01, 07, 0701 и т.д.). В 16-ричном формате константа начинается с OX (OXA, OX777, OX1 и т.д.).

Вещественная константа может быть записана в следующем виде:

[цифры].[цифры]

Например: 2.2 или .01 и т.д.

или в экспоненциальной форме

Записывается в виде:

[цифры][.][ цифры]{E|e}[+|-][ цифры]

Примеры записи:

0.2E5 .1e-5 10E5

Символьная константа – один или более символов в апострофах. Примеры:

`A’ `\h’ `\0’ `OX17’ и др.

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

Примеры:

“Привет”

8)Выражения. Арифметические операции, операции отношения.

Операции

Арифметические операции:

- (унарный минус), +(унарный плюс),

+ (сложение), - (вычитание),

/ (деление), * (умножение),

% (остаток от деления целых величин),

++ (увеличение значения переменной на 1),

-- (уменьшение значения переменной на 1).

Унарный минус изменяет знак операнда целого или вещественного типа на противоположный.

Операция деления применима к операндам арифметического типа. Если оба операнда целочисленные, результат операции округляется до целого числа, в противном случае тип результата определяется правилами преобразования ().

Операция определения остатка от деления применяется только к целочисленным операндам.

Операции увеличения и уменьшения на 1 (++ и --). Эти операции, называемые также инкрементом и декрементом, имеют две формы записи-- префиксную, когда операция записывается перед операндом, и постфиксную. В префиксной форме сначала изменяется операнд, а затем его значение становится результирующим значением выражения, а в постфиксной форме значением выражения является исходное значение операнда, после чего он изменяется.

++a или a++

Операции отношения (сравнения):

< <= > >= == !=

сравнивают первый операнд со вторым.

Операнды могут быть арифметического типа или указателями. Результатом

операции является значение true или false (любое значение, не равное нулю, интерпретируется как true). Операции сравнения на равенство и неравенство имеют меньший приоритет, чем остальные операции сравнения.

Пример

x=A>B;

Если сравнение верное, то значение результата выражения = 1, иначе 0

9) Операции в С/С++: логические операции, операция условие.

Операции логические

&& - логическое умножение (and)

|| - логическое сложение (or)

! - отрицание (not)

Операнды логических операций могут иметь арифметический тип или быть указателями, при этом операнды в каждой операции могут быть различных типов. Преобразования типов не производятся, каждый операнд оценивается с точки зрения его эквивалентности нулю (операнд, равный нулю, рассматривается как false, не равный нулю — как true).

Результатом логической операции является true или false. Результат операции логическое И имеет значение true только если оба операнда имеют значение true. Результат операции логическое ИЛИ имеет значение true, если хотя бы один из операндов имеет значение true. Логические операции выполняются слева направо.

Если значения первого операнда достаточно, чтобы определить результат

операции, второй операнд не вычисляется.

Выполнение операций

x=a && b; Если а!=0 и b!=0, то х=1, иначе х=0

x=a || b; Если а=0 и b!=0 или a!=0 и b=0 или a!=0 и b!=0, то х=1, иначе x=0

x=!a; Если a!=0, то x=0, иначе x=1

где 0 – false; 1- true

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

Эта операция тернарная, то есть имеет три операнда.

Ее формат:

операнд1 ? операнд2 : операнд3

Первый операнд может иметь арифметический тип или быть указателем. Он оценивается с точки зрения его эквивалентности нулю (операнд, равный нулю, рассматривается как false, не равный пулю — как true). Если результат вычисления операнда 1 равен true, то результатом условной операции будет значение второго операнда, иначе — третьего операнда. Вычисляется всегда либо второй операнд, либо третий. Их тип может различаться.

Формат записи можно представить и так:

(условие) ? (выражение1 при истине условия) : (выражение2, если условие ложь)

Примеры:

z = x > y ? sin(x)/(x*x+1) : cos(x+y);

z =

f = x < 10 ? x +1 : (x < 20 ? exp(x) : sin(x));

f =

10) Операции в С/С++: Поразрядные (побитовые) логические операции и операции сдвига.

Операции поразрядно-логические

& и

| или

~ инверсия

^ исключающее ИЛИ

Применяются только к целочисленным операндам и работают с их двоичными представлениями. При выполнении операций операнды сопоставляются побитово (первый бит первого операнда с первым битом

второго, второй бит первого операнда со вторым битом второго, и т д.).

В таблице приведено выполнение операций

А

B

A&b

A|B

~A

A^b

0

0

1

1

0

1

0

1

0

0

0

1

0

1

1

1

1

1

0

0

0

1

1

0

Примеры:

А=1110 В=1410

А=138 В=168

А=…0010112 В=…0011102

_______

К=а&b=…0010102=128=1010

К=a|b=…0011112=178=1510

К=~a=11111111111101002

Используются для быстрого выделения остатка от деления целых беззнаковых чисел на числа кратные 2, а так же для выделения одного или нескольких битов.

К=а&0х01;

Для определения остатка используется операция ‘и’ и следующие маски.

На 2

0x01

На 4

0x03

На 8

0x07

d = a & 0x01

Операции сдвига:

  1. Сдвиг влево, обозначается двумя знаками <<. Производится сдвиг влево операнда, стоящего слева от знака операции на количество разрядов, заданных операндом, стоящим справа.

  2. Сдвиг вправо, обозначается двумя знаками >>. Осуществляется сдвиг операнда, стоящего слева, вправо на количество разрядов, заданных операндом, стоящим справа.

a = b << c

b = 1101 a = 110100

c = 2

a = b >> с a = 0011

Сдвиг влево на 1, 2, 3 и более разрядов является наиболее быстрым способом умножения на 2, 4, 8, …. Сдвиг операндов вправо на 1.2,3 и более разрядов – быстрый способ деления на 2, 4, 8 …..

n=m>>1; c=m<<1; //деление 2, умножение на 2

11) Операции в С /С++: операция присваивания, операция sizeof.

Операция присваивание =

Операции присваивания могут использоваться в программе как законченные операторы.

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

переменная = выражение;

Например, y=2*x – 1/(x+1);

Выражение присваивание может быть записано в любом выражении.

Например, if ((t=x+b)>a) w=1;

Разрешено множественное присваивание

Переменная1=Переменная2=Переменная3=…=выражение;

Например, x=y=z=0;

4) Для рекуррентных соотношений типа

а = а операция выражение;

где а - переменная.

можно использовать сокращённую запись

а операция=выражение;

Например, х=х+2; это эквивалентно х+=2;

у=у/10; эквивалентно у/=10;

x=x*10; эквивалентно x*=10;

Операция определения размера sizeof предназначена для определения размера переменной или типа в байтах. Имеет две формы записи.

sizeof выражение

sizeof (тип)

Примеры

int c, k1;

char k;

double p;

k1=sizeof(c); //ответ 2 или 4

k1=sizeof int; // 2 or 4

k1=sizeof k; // 1

Можно определить размер массива и структуры.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]