- •10. Константы. Правила построения и создания своих собственных (перечислимых) констант.
- •11. Литерные константы (видимые). Литерные константы esc-последовательности. Расширенная таблица ascii. Пример программы.
- •12. Строковые константы. Особенности и примеры их применения.
- •13. Числовые целые константы. Особенности и примеры их применения.
- •14. Числовые вещественные константы. Особенности и примеры их применения.
- •15. Операция присваивания. Пример линейной программы.
- •16. Синтаксис и семантика операторов выражения, перехода и возврата, ветвления и выбора. Пример программы ветвления.
- •17. Синтаксис и семантика операторов цикла, прерывания и продолжения. Пример циклической программы.
- •18. Классификация типов данных. Основные и производные типы данных. Правила преобразования арифметических типов: по умолчанию и явное.
- •19. Арифметические операции и их приоритеты.
- •20. Логические операции. Синтаксис и семантика. Условная операция.
- •21. Виды выражений. Приоритеты операций.
- •22. Символьный тип данных. Операции над данными символьного типа.
- •23. Одномерные массивы. Индексация выражения. Массив как параметр функций.
- •24. Многомерные массивы. Индексация выражения. Массив как параметр функций.
- •25. Массивы с элементами типа char и строковые массивы.
- •26. Указатели: понятие, синтаксис и семантика объявления. Операция выделения значения. Адрес-константа. Операции адресации, адресная арифметика.
- •27. Взаимодействие между массивами и указателями. Динамические массивы. Операции выделения и освобождения памяти.
- •28. Тип данных «структура». Объявление, синтаксис и особенности использования.
- •29. Динамические типы данных. Список. Основные операции над элементами списка. Примеры.
- •30. Динамические типы данных. Очередь. Основные операции над элементами очереди. Примеры.
- •31. Динамические типы данных. Стек. Основные операции над элементами стека. Примеры.
- •32. Динамические типы данных. Бинарное сбалансированное дерево. Правила обхода. Основные операции над элементами. Примеры.
- •33. Классы памяти. Точки описания переменных. Автоматическая, регистровая, внешняя, статическая память. Области объявления и видимости имен переменных. Примеры.
- •34. Ссылки: понятие, синтаксис и семантика объявления. Примеры использования.
- •35. Синтаксис, семантика и прагматика функций. Указатели функций. Примеры.
- •36. Механизм передачи значений между параметрами и аргументами функции. Примеры.
- •37. Рекурсивные функции. Примеры явной и косвенной рекурсии.
- •38. Перегрузка функций. Шаблоны функций. Примеры.
- •39. Препроцессор. Команды препроцессора. Использование макроподстановок и макроимен. Команды условной компиляции.
- •40. Объектно-ориентированное программирование. Инкапсуляция, наследование, полиморфизм.
- •41. Понятие объекта и класса. Данные и методы. Инкапсуляция данных и методов класса.
- •42. Тип данных class. Статусы доступа к данным. Указатель this. Конструкторы и деструкторы.
- •43. Дружественные функции, методы, классы. Статические члены класса.
- •44 Наследование классов и производные классы.
17. Синтаксис и семантика операторов цикла, прерывания и продолжения. Пример циклической программы.
Цикл с предусловием (while) имеет вид:
while ( выражение ) оператор
Выражение определяет условие повторения тела цикла, представленного простым или составным оператором. Выполнение оператора начинается с вычисления выражения. Если оно истинно (не равно false), выполняется оператор цикла. Если при первой проверке выражение равно false, цикл не выполнится ни разу.
Распространенный прием программирования — организация бесконечного цикла с заголовком while (true) либо while (1) и принудительным выходом из тела цикла по выполнению какого-либо условия. В круглых скобках после ключевого слова while можно вводить описание переменной.
Областью ее действия является цикл:
while (int х = 0){ ... / * область действия х */ }
Цикл с постусловием (do while)
do оператор while выражение;
Сначала выполняется простой или составной оператор, составляющий тело цикла, а затем вычисляется выражение. Если оно истинно (не равно fаlse), тело цикла выполняется еще раз. Цикл завершается, когда выражение станет равным false или в теле цикла будет выполнен какой-либо оператор передачи управления. Тип выражения должен быть арифметическим или приводимым к нему.
Цикл с параметром (for) имеет следующий формат:
for (инициализация: выражение: модификации) оператор;
Инициализация используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько операторов, разделенных запятой (операцией «последовательное выполнение»). Любая из частей оператора for может быть опущена (но точки с запятой надо оставить на своих местах!).
Оператор break используется внутри операторов цикла или switch для обеспечения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится break.
Оператор перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации.
18. Классификация типов данных. Основные и производные типы данных. Правила преобразования арифметических типов: по умолчанию и явное.
Основные (стандартные) типы данных часто называют арифметическими, поскольку их можно использовать в арифметических операциях. Для описания основных типов определены следующие ключевые слова:
int (целый);
char (символьный);
wchar_t (расширенный символьный);
bool (логический);
float (вещественный);
double (вещественный с двойной точностью).
Существует четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов:
short (короткий);
long (длинный);
signed (знаковый);
unsigned (беззнаковый).
Производные типы можно условно подразделить на две группы:
Непосредственно производные типы. Эти типы являются производными от некоторых существующих типов, реализуя типы указателей, ссылки, функции преобразования типов. В группу непосредственно производных типов входят:
массивы
указатели
ссылки
перечисления
указатели на члены класса.
Составные производные типы. В группу составных производных типов входят:
классы
структуры
объединения
Неявное преобразование типов
Язык определяет набор стандартных преобразований между объектами встроенного типа, неявно выполняющихся компилятором в следующих случаях:
Арифметическое выражение с операндами разных типов: все операнды приводятся к наибольшему типу из встретившихся. Это называется арифметическим преобразованием.
Присваивание значения выражения одного типа объекту другого типа. В этом случае результирующим является тип объекта, которому значение присваивается.
Передача функции аргумента, тип которого отличается от типа соответствующего формального параметра. Тип фактического аргумента приводится к типу параметра.
Возврат из функции значения, тип которого не совпадает с типом возвращаемого результата, заданным в объявлении функции. Тип фактически возвращаемого значения приводится к объявленному.
Явное преобразование типов производится при помощи следующих операторов: static_cast, dynamic_cast, const_cast и reinterpret_cast. Заметим, что, хотя иногда явное преобразование необходимо, оно служит потенциальным источником ошибок, поскольку подавляет проверку типов, выполняемую компилятором.
Операция static_cast используется для преобразования типа на этапе компиляции между: целыми типами; целыми и вещественными типами; целыми и перечисляемыми типами; указателями и ссылками на объекты одной иерархии, при условии, что оно однозначно и не связано с понижающим преобразованием виртуального базового класса.
static_cast <тип> (выражение)
Результат операции имеет указанный тип, который может быть ссылкой, указателем, арифметическим или перечисляемым типом.
Операция reinterpret_cast применяется для преобразования не связанных между собой типов, например, указателей в целые или наоборот, а также указателей типа void* в конкретный тип. При этом внутреннее представление данных остается неизменным, а изменяется только точка зрения компилятора на данные. Формат операции:
reinterpret_cast <тип> (выражение)
Результат операции имеет указанный тип, который может быть ссылкой, указателем, целым или вещественным типом.