
- •«Технология программирования» методические указания
- •Самара 2007
- •Содержание
- •Введение
- •1.2.1 Состав языка
- •1.2.2 Алфавит языка
- •1.2.3 Идентификаторы
- •1.2.4 Ключевые (служебные) слова
- •1.2.5 Знаки операций
- •1.2.6 Константы
- •1.2.7 Комментарии
- •1.3.1 Концепция типа данных
- •1.3.2 Основные типы данных
- •1.3.3 Структура программы
- •1.4 Переменные и выражения
- •1.4.1 Переменные
- •1.4.2 Операции
- •1.4.3 Выражения
- •2. Программа выполнения работы
- •2.1 Задача 1.1. Расчет по формуле
- •2.3 Отладка программы
- •2.4 Описание переменных
- •2.5 Задача 1.2. Временной интервал
- •3. Содержание отчета
- •4. Контрольные вопросы
- •5. Задания
- •Библиографический список
- •Приложение 1. Спецификации формата для функций семейства printf
- •Модификаторы формата
- •Приложение 2. Арифметические преобразования типов
- •Приложение 3. Правила оформления текстов программ
1.2.2 Алфавит языка
Алфавит C++ включает:
прописные и строчные латинские буквы и знак подчеркивания;
арабские цифры от 0 до 9;
специальные знаки:
“ { } , | [ ] ( ) + - / % * . \ ‘ : ? < = > ! & # ~ ; ^
пробельные символы: пробел, символы табуляции, символы перехода на новую строку.
Из символов алфавита формируются лексемы языка:
идентификаторы;
ключевые (зарезервированные) слова;
знаки операций;
константы;
разделители (скобки, точка, запятая, пробельные символы).
Границы лексем определяются другими лексемами, такими, как разделители или знаки операций.
1.2.3 Идентификаторы
Идентификатор – это имя программного объекта. В идентификаторе могут использоваться латинские буквы, цифры и знак подчеркивания. Прописные и строчные буквы различаются, например, sysop, SySoP и SYSOP – три различных имени. Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра. Пробелы внутри имен не допускаются.
СОВЕТ: Для улучшения читаемости программы следует давать объектам осмысленные имена. Существует соглашение о правилах создания имен, называемое венгерской нотацией (поскольку предложил ее сотрудник компании Microsoft венгр по национальности), по которому каждое слово, составляющее идентификатор, начинается с прописной буквы, а вначале ставится префикс, соответствующий типу величины, например, iMaxLength, IpfnSetFirstDialog. Другая традиция – разделять слова, составляющие имя, знаками подчеркивания: max_length, number_of_galosh.
Длина идентификатора по стандарту не ограничена, но некоторые компиляторы и компоновщики налагают на нее ограничения. Идентификатор создается на этапе объявления переменной, функции, типа и т. п., после этого его можно использовать в последующих операторах программы. При выборе идентификатора необходимо иметь в виду следующее:
идентификатор не должен совпадать с ключевыми словами и именами используемых стандартных объектов языка;
не рекомендуется начинать идентификаторы с символа подчеркивания, поскольку они могут совпасть с именами системных функций или переменных, и, кроме того, это снижает мобильность программы;
на идентификаторы, используемые для определения внешних переменных, налагаются ограничения компоновщика (использование различных компоновщиков или версий компоновщика накладывает разные требования на имена внешних переменных).
1.2.4 Ключевые (служебные) слова
Ключевые слова – это зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Они не могут быть использованы как свободно выбираемые имена. Полный список ключевых (служебных) слов зависит от реализации языка, т.е. различается для разных компиляторов. Однако суще6ствует неизменное ядро, которое определено стандартом С++ (табл. 1.)
Дополнительные к этому списку ключевые слова приведены в описаниях конкретных реализаций С++. Некоторые из них начинаются с символа подчеркивания, например: _export, _ds, _AH и др. Суще6ствуют ключевые слова, начинающиеся с двойного подчеркивания. В связи с этим программисту не рекомендуется использовать в своей программе идентификаторы, начинающиеся с одного или двух подчеркиваний, во избежание совпадения с ключевыми словами.
Таблица 1-Список ключевых (служебных) слов
asm auto bool break case catch char class const const_cast continue default delete |
do double dynamic_cast else enum explicit export extern falst float for friend goto |
if inline int long mutable namespace new operator private protected public register reinterpret_cast |
return short signed sizeof static static_cast struct switch template this throw true try |
typedef typeid typename union unsigned using virtual void volatile wchar_t whilt |