русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Перечисления


Дата добавления: 2015-01-08; просмотров: 614; Нарушение авторских прав


Перечисления используются для улучшения читабельности программы и представляют собой список целочисленных констант с названиями на естественном языке. Для определения перечислений используется следующий синтаксис:

enum имя_типа {

список_перечисления

} список_переменных;

В списке перечисления указывается перечень разделённых запятыми имен, которые и будут составлять перечисление. Имя типа задает название нового типа данных, которое будет сопоставлено перечислению. Список переменных указывать не обязательно – их можно объявить потом используя тип созданного перечисления.

Например, пусть необходима переменная, описывающая состояние светофора. Логично будет сопоставить каждому состоянию целое значение. К примеру, ноль будет обозначать красный цвет, единица – желтый, а двойка – зеленый. Но запоминать и использовать целые значения неудобно и программа получится сложной для понимания.

Если же воспользоваться перечислимыми типами, то можно дать следующее описание светофора:

enum light_type {

red, // красный

yellow, // желтый

green // зеленый

} svetofor;

Здесь создаются перечисление, имеющее тип light_type, и переменная этого типа – svetofor.

В дальнейшем в программе можно задать и другие переменные типа light_type:

light_type sv;

или

enum light_type sv;

Вторая форма записи – с указанием ключевого слова enum при задании переменной – унаследована от C и считается устаревшей.

Пример использования перечисления:

#include <iostream>

using namespace std;

enum light_type {

red,

yellow,

green

};

void main(){

light_type svetofor = green;

if (svetofor == red)

cout << "Красный\n";

else if (svetofor == yellow)

cout << "Желтый\n";

else if (svetofor == green)

cout << "Зеленый\n";



else

cout << "Непонятный\n";

system("pause");

}

Каждый элемент в списке перечисления означает целое число, причем каждое следующее число на единицу больше предыдущего. По умолчанию значение первого элемента перечисления равно нулю. Следовательно, в приведённом примере red = 0, yellow = 1, green = 2. Несмотря на то, что элементы перечисления представляют собой целые числа и при использовании автоматически к ним преобразуются, явно использовать числа при работе с перечислениями запрещено. Например, следующее присваивание корректно:

light_type svetofor = green;

Здесь в svetofor присваивается целое значение, соответствующее элементу перечисления green, т.е. 2. А если это сделать явно, то произойдет ошибка:

light_type svetofor = 2;

Компилятор не сможет преобразовать целое число к типу перечисления.

При определении перечисления можно явно указать целые значения, которые будут соответствовать его элементам:

enum signals

{

sighup = 1,

sigterm = 15,

sigkill = 9,

sigsegv = 11

}

В перечислении signals для каждого элемента задается явное целое значение. Конкретное значение можно задать и для одной переменной. Тогда следующему элементу присвоится значение на единицу большее предыдущего и т.д. Например:

enum months

{

jan = 1,

feb,

mar,

apr,

may,

jun,

jul,

aug,

sep,

oct,

nov,

dec

}

Здесь константе jan присваивается значение 1, следующей за ней feb – 2, mar – 3 и т.д.

Еще один пример создания перечисления:

enum diffs {

first, // 0

second, // 1

third = 8, // 8

fourth, // 9

fifth = 3, // 3

sixth // 4

}



<== предыдущая лекция | следующая лекция ==>
Приведение типов | Тема 5. Механизмы ввода-вывода


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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