Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по С++.doc
Скачиваний:
27
Добавлен:
20.08.2019
Размер:
2.26 Mб
Скачать

Объявление переменных простого типа

Формат объявления переменных:

<Тип> <идентификатор>;

Тип идентификатор1, … ,идентификаторN;

Тип идентификатор = значение;

Тип идентификатор1 = значение1, … ,идентификаторN = значениеN;

Согласно указанным форматам можно объявить одну переменную в строке программы или несколько однотипных переменны.

Пример объявления переменных разного типа

float sum = 0.0 ;

double average ;

unsigned char a ;

bool flag ;

short birthYear = 1703, calendarYear = 2006 ;

int m_capacity, j = 0 ;

long x, y, z ;

Int а1, а2 = 123, а3;

float в, с = а2 + sin(3);

Объявление констант простого типа

Формат объявления констант:

const тип идентификатор = значение;

(объявление одной константы)

const тип идентификатор1 = значение1, … , идентификаторN = значениеN ;

(объявление нескольких констант одного типа)

Пример объявления констант разного типа

const float F = 1.25 ;

const double D = 9.42478 ;

const long double LD = 1.7E+300 ;

const unsigned short X = 123 ;

const char A = 'a' ;

const char COPYA = A ;

const bool T = true ;

const char TRUE [ ] = "true" ;

const char* SAYING = "Slow and steady wins the race." ;

const float A = 1,2345;

D= А/3,14;

char S1= | S |;

Перечисляемые переменные.

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

Формат:

Enum {список_значений};

Или

enum имя_перечислимого типа{список_значений_типа};

или

Enum имя_перечислимого_типа имя_переменной;

enum spectrum{red, orange, yellow, green, blue }; // объявляет имя нового типа

Этот оператор делает две вещи:

  • объявляет имя нового типа – spectrum;

  • устанавливает red, orange, yellow, green, blue как символические константы для целочисленных значений 0 – 4. это константы называются перечислителями. По умолчанию перечилителям присваиваются целые значения от 0 до 4 соответственно

можно использовать имя перечисления для объявления переменной типа этого перечисления: spectrum band;

Единственные допустимые значения, которые можно присваивать переменной типа перечисления без необходимости приведения типа – это те значения, которые использованы в определении этого перечисления.

band=blue; переменная ограничена только пятью допустимыми значениями.

  1. enum {red, orange, yellow, green, blue }; // объявляет только константы

  2. enum typsvet{ kr,gel,zal }; //объявление типа

  3. enum typsvet svetofor; //объявление переменной

  4. enum typsvet { kr=5,gel=2,zal=7 };объявление константы перечисл.

Логические операции

Над данными любого типа могут выполняться логические операции в порядке убывания приоритета от высшего к низшему.

! (не), &&(и), //(или),

<, <=, >, >=, = =, !=

операндами этих логических операций могут быть результаты выражений любого типа. Перед выполнением логических операций значение результатов выражений – операндов преобразуются в логические значения – истина 1 или ложь Ø. Все значения отличные от Ø, интерпретируются как истинные, а если равно Ø, то ложно.

  1. Первичные операции

() – Выражение в скобках (Слева направо)

[] – Ограничитель индексов массивов (Слева направо)

-> – Указатель поля структуры (Слева направо)

. – Ограничитель имени поля структуры (Слева направо)

2.- Унарные операции – это операции, которые выполняются с одним операндом.

! – Логическое НЕ (Слева направо)

~ – Побитовое отрицание (Слева направо)

+,- – Унарный плюс, унарный минус (Слева направо)

++ – Инкремент (увеличение на единицу) (Слева направо)

-- – Декремент (уменьшение на единицу) (Слева направо)

& – Определение адреса (Слева направо)

* – Обращение по адресу (Слева направо)

3 - Бинарные операции (мультипликативные)

*, /,% – Умножение, деление, остаток от деления (Слева направо)

+, - – Сложение, вычитание (Слева направо)

<<, >> – Сдвиги (Слева направо)

<, <=, >, >= – Отношения (Слева направо)

==, != – Равенство, неравенство (Слева направо)

4 – Бинарные логические операции

& – Побитовая операция И (Слева направо)

^ – Побитовая операция исключающая ИЛИ (Слева направо)

| – Побитовая операция ИЛИ (Слева направо)

&& – Логическое И (умножение) (Слева направо)

|| – Логическое ИЛИ (сложение) (Слева направо)

?: – Условие в условных выражениях (Справа налево)

5.- Арифметические операции

= – Присваивания (Справа налево)

on= – Изменить и заменить«on» (Справа налево)

Результат логических операций.

Опер.1 опер.2 ! && //

Ø Ø 1 Ø Ø

Ø 1 1 Ø 1

1 Ø Ø Ø 1

1 1 Ø 1 1

Пример:

Целые числа: ί = 12 ĵ = 34 ĸ = 0

Вещественные числа: а=12,34 в = 0,0 с = 1,0

Логические операции

!а=0 !в=0 !с=0 логическое отрицание

ί&& ĵ=1 ί&& ĸ = Ø логическое

а&&в=0 в&&c=1 умножение

ί //ĵ=1 ί// ĸ =1 логическое

а//в=1 а//с=1 сложение

Объявление нового типа.

В С++ можно создавать новые имена типов данных. Для этого можно использовать директиву define или спецификатор typedef.

Typedef не создает нового типа данных, а заменяет имя определенного типа

данных (стандартного или пользовательского) на новое имя. Это

удобно для переноса программ из одной системы в другую.

Формат

typedef <старое_имя_типа_> <новое_имя_типа>;

Пример:

typedef float real;

(теперь будем использовать real вместо float )

typedef struct stud. STUD;

(определение имени типа стрктуры)

STUD {….}

(используем STUD вместо struct stud)

Формат директивы определения макроса.

#define имя_макро (список параметров) тело_макро

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

Пример: #define GM “good morning”

#define M 100

#define power 2 (a) a*a

char S[M]; // char s [100];

puts (GM); // puts (“good morning”);

y= power 2 (x); // y= (x)*(x);

Директива отмены отрицания макроса.

Формат: #undef имя_макро

Пример:

#undef GM