среда, 1 мая 2013 г.

Переменные и константы [Третья часть]

Последняя часть из занятия "Переменные и константы".
Ну что ж приступим.

Константы:
Подобно переменным, константы представляют собой ячейки памяти предназначенные для хранения данных. Но в отличии от переменных, константы не изменяют значения!
Создаваемую константу нужно инициализировать, поскольку её значение позже изменить нельзя!
Литеральные константы:
Это значение, непосредственно вводимое в самой программе.
Например:
int myAge = 39;

myAge является переменной типа int, а число 39 - литеральной константой.
Нельзя присвоить никакое значение константе 39.

                                                          Символьные константы:
Константа, представленная именем. Однако в отличии от переменной , значение ин
инициализированной константы изменить нельзя.
Если в программе есть одна целочисленная переменная с именем students, а другая с именем classes, можно вычислить общее количество учеников школы при условии, что известно сколько классов в школе и сколько учеников в каждом классе.

students = classes * 15;
В этом примере 15 , является литеральной константой. Но если её изменить символьной то можно легче читать и изменять в будущем.

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

studentsPerClass
И тогда  придётся вносить изменения в каждую строку программы, где используется это значение.

Объявление константы:
В языке С++ существует два типа определения константы традиционый и ныне уже устаревший #define.

1)#define studentsPerClass 15;
Переменная не имеет типа (int, char, и т.д.), а директива выполняет простую текстовую подстановку.Каждый раз, когда препроцессор встраивает слово studentsPerClass, он заменяет его литералом 15.

2)const
const unsigned int  studentsPerClass = 15;
Этот способ имеет ряд примуществ.Есть тип и компилятор может проследить за использованием только непоназначению.(т.е. В соответствии с объявлённым типом.).

Константы перечислений:
Перечесления позволяют создавать новые типы данных, а затем определять переменные этих типов,  значения , которых ограниченны набором константных значений.
Для создания перечисления используется ключевое слово enum , за которым следует имя типа, открывающаяся фигурная скобка, список константных значений разделённых запятыми и закрывающая фигурная скобка.

enum COLOR { RED, BLUE, GREEN, WHITE, BLACK };
Это выражение выполняет две задачи:
  1. Создаёт перечисления с именем COLOR, являющаяся новым типом.
  2. Определяются символьные константы: RED со значением 0; BLUE со значением 1; GREEN со значением  2 и т.д.
Каждой константе перечисления соответствует значения. По умолчани. первая константа инициализируется значением 0, а каждая следующая значением на единицу больше предыдущего.
Однако любую константу можно инициализировать произвольным значением, а в этом случае не инициализрованные константы будут продолжать возрастающую последственность:
Например:
  
enum COLOR { RED= 500 , BLUE, GREEN = 700 , WHITE, BLACK = 1000 };
Следовательно значение BLUE будет равно 501, a White- 701.

Теперь можно определить переменные типа COLOR, но каждой из них можно присвоить только одно из перечисляемых значений.Переменной COLOR можно присвоить любое из значений, даже если оно не соответствует ни одному из разрешённых цветов, но в этой случае компилятор должен показать предупреждение.
Важно помнить, что переменные перечисления на самом деле имеют тип.
unsigned int и целочисленными переменными присваиваются заданые константы перечесления.
Однако при работе с цветами и днями недели и другими подобными наборами значений, несложно иметь возможность называть эти значения по имени.

В строке 4 определяется перечисления DAYS с семью константными значениями.Все они образуют последовательность чисел, начиная с нуля; таким образом значения Вторника = 2.
Такого же перечисления можно сделать используя константы целочисленного типа.
Const int Sunday = 0;
   Const int Monday = 1;
Const int Tuesday = 2; 

 Вывод:
На этом занятии я рассматривал числовые и символьные значения переменных и констант.
Числовые переменные могут быть ( char, short, long int) либо вещественными (Float и Double).
Кроме того они могут быть знаковые и без знаковые( unsigned ). Хотя на разных компьютерах все эти типы могут иметь разные размеры, но на одном компьютере, переменные одного и того же типа всегда имеют постоянный размер.
Переменную нужно объявить до её использования. При работе с данными необходимо следить, чтобы тип данных соответствовал объявленному типу переменной. Если поместить слишком большое число в целую переменную возникает переполнение, которое приводит к приводит к нулевому результату. 
Кроме того мы познакомились с литеральными, символьными и перечисленными константами, а также с двумя способами объявления символьных констант.

На этом конспектирование  по переменным и константам законченно.
На конспект у меня ушло три дня и тетрадка на 36 листов. Считайте это сжатое изложение материала в три части. На этом пожалуй и всё. Меня ждёт изучения операторов.

Источник: Книга "Освой самостоятельно С++ за 21 день" (Джесс Либерти)

Комментариев нет:

Отправить комментарий