
- •Общие сведения
- •Средства разработки
- •Структура программы
- •Алфавит
- •Лексемы
- •1.2. Переменные. Типы данных
- •Простые типы данных
- •Структурированные типы данных
- •1.3. Константы
- •1.4. Операции Арифметические
- •Присваивание
- •1.5. Операторы ветвления и цикла
- •1.6. Функции Описание и вызов
- •Неявно заданные параметры функции
- •Рекурсия
- •Механизм вызова функций, подставляемые функции
- •Перегрузка функций. Параметры по умолчанию
- •1.7. Указатели. Массивы. Строки Обзор
- •Приведение типов
- •Типизированные и нетипизированные указатели
- •Операции над указателями
- •Массивы
- •Многомерные массивы
- •Указатели в качестве параметров функций
- •Указатель на функцию
- •Функции работы с указателями и памятью
- •Строки.
- •1.8. Организация ввода-вывода
- •Форматированный ввод-вывод
- •1.9. Директивы препроцессора
- •1.10. Метки. Безусловный переход
- •1.11. Время жизни и область видимости переменных
- •1. 12. Многофайловые проекты
- •1.13. Введение в объектно-ориентированное программирование
- •2.3. Проблемы разработки сложных программных систем
- •2.4. Жизненный цикл программного продукта
- •Модели жц.
- •Экстремальное программирование
- •2.5. Оценка качества процессов создания программного обеспечения
- •2.6. Проектирование надёжного программного средства
- •2.7. Процессы проектирования
- •2.8. Требования, цели
- •2.9. Внешнее проектирование
- •Диаграммы потоков данных (Data Flow Diagrams).
- •Диаграммы переходов состояний (State Transition Diagrams). Функциональные диаграммы.
- •Описание структур данных
- •2.10. Проектирование архитектуры
- •2.11. Проектирование модульной структуры. Модуль
- •Внешнее проектирование модулей
- •Модульная декомпозиция
- •2.12. Кодирование.
- •2.13. Тестирование
- •2.14. Документирование
- •2.15. Проектирование пользовательского интерфейса
- •Реализация многомерных массивов
- •Очередь и стек
- •Ассоциативные массивы
- •3.3. Упорядоченные структуры данных.
- •Сортировка методом пузырька
- •Быстрая сортировка
- •3.4. Деревья
- •Бинарное дерево
- •Обход дерева
- •3.5. Множества, графы Множества
- •3.6. Строки Константные строки
- •Списковое представление строк
- •Представление массива строк
- •3.7. Библиотека stl
- •3.8. Реализация некоторых структур данных Реализация двусвязанного списка.
- •Реализация массива переменного размера:
- •Примеры программ
- •Список литературы
Структурированные типы данных
К структурированным типам данных относятся структуры и объединения.
struct <name> // структура
{
type1 name1a[,name1b[…]];
[type2 name2a[,name2b[…]];]
[…]
} [объявление_переменных_с_данным_типом];
union <name> // структура // объединение (все данные размещены с одного адреса в памяти).
{
type1 name1a[,name1b[…]];
[type2 name2a[,name2b[…]];]
[…]
} [объявление_переменных_с_данным_типом];
Замечание. Точка с запятой после объявления структуры и объединения является обязательной.
Примеры будут рассмотрены далее.
1.3. Константы
Целые константы задаются с помощью целых чисел без разделяющей точки и имеют тип int. Можно явно указать при помощи суффиксов тип long («l» или «L»), long long («ll» или «LL») или unsigned («u» или «U»).
Пример: 123L, 43u, 53lu, 63UL
Шестнадцитеричные константы определяются добавлением префикса "0х":
0x1F, 0xAD
Восьмиричные константы определяются добавлением префикса "0":
071, 016
Константа с плавающей точкой может включать семь частей: целая часть, десятичная точка, дробная часть, символ экспоненты, показатель десятичной степени (со знаком или без), суффикс. При отсутствии суффикса константы имеют представление double, суффикс f или F соответствует float, суффикс l или L – long double.
В записях вещественных констант могут опускаться (не одновременно): или целая или дробная часть; или десятичная точка или признак экспоненты; суффикс.
Примеры: 45. .6 4.6 1.25f 3.5e-4 5E+6L
Перечислимые константы вводятся при помощи служебного слова enum. Это целочисленные константы, которым присвоены идентификаторы. Идентификаторы могут быть перечислены через запятую, тогда им последовательно присваиваются значения от нуля. Или для каких-нибудь из них могут быть указаны значения, которые меняют порядок присвоения.
Примеры:
enum {zero ,one, two, three} соответствует zero=0, one=1, two=2, three=3.
enum {one=1, two, three} соответствует one=1, two=2, three=3.
enum {ten=10, two=2, three} соответствует ten=10, two=2, three=3.
Символьные (литерные) константы – это один или несколько символов, заключённые в апострофы. Во время компиляции символьные константы заменяются их кодами. Для записи специальных символов используют эскейп-последовательности, которые состоят из двух-четырёх символов и начинаются с символа «обратный слеш». Например \n соответствует переводу строки (код 10), \r – возврат каретки (код 13), \t – табуляция (код 09) и т.д. Для записи некоторых символов также используются эскейп-последовательности: \\ – обратный слеш, \” – двойная кавычка, \’ – одинарная кавычка, \? – знак вопроса.
Использование символьных констант допустимо везде, где возможно использование целочисленных констант. Обратное также верно.
ВНИМАНИЕ Частой ошибкой является запись «\» вместо «\\», например, в полном имени файла.
Строковые константы – это набор символов, заключённый в двойные кавычки. В строковых константах также могут быть применены эскейп-последовательности. Для записи строковой константы, которая занимает несколько строк, в конце каждой из них должен быть использован символ «\».
Переменные могут быть объявлены константными, тогда их значение не может быть изменено в программе. Для этого определено служебное слово const, стоящее перед типом данного при объявлении переменной.
Пример:
const int t = 0;
t = 5; // ошибка, нельзя переприсваивать значения константных переменных