- •Оглавление
- •Лекция 1 Тема: Процесс построения программы.
- •Директивы #include
- •Комментарии
- •Лекция 2 Тема: Представление данных в с. Литералы
- •Встроенные типы данных
- •Типизированные константы
- •Операции и выражения
- •Семантика операций
- •Операции присваивания сама возвращает значение, что позволяет, например, написать:
- •Приведение типа
- •Смешанные выражения.
- •Поразрядные операции и сдвиги.
- •Инкремент и декремент
- •Запятая
- •Лекция 3 Управляющие конструкции с.
- •Условный оператор if... Else
- •Оператор выбора switch
- •1. Цикл while
- •2. Цикл do—while
- •3. Цикл for
- •Операторы прерывания блока
- •Escape-последовательности.
- •Лекция5 Функции
- •Задание
- •Лекция 6 Массивы и указатели
- •Последнее эквивалентно
- •Указатель на функцию
- •Лекция 7 Строки.
- •Лекция 8 Типы, определяемые пользователем.
- •Переименование типов.
- •Перечислимые типы
- •Структуры.
- •Объединения.
- •Лекция 9 Файлы.
- •Лекция 10 Связанные структуры.
- •Новый элемент Конец стека Начало стека
- •Лекция 11 Директивы препроцессора
- •Условная компиляция
- •Типичное применение препроцессорных директив Предотвращение включения файлов
- •Переключение разделов кода
- •Отладочные диагностические сообщения
- •Лекция 12 Тема: Состав проекта.
- •Лекция 13 Тема: Объектно-ориентированное программирование.
- •Лекция 14 Тема: Создание классов и их потомков. Перегрузка функций.
- •Лекция 15 Тема: Создание новых компонентов.
Комментарии
Комментарии совершенно игнорируются при компиляции программы, поэтому они могут содержать что угодно. Язык C++ поддерживает два типа комментариев:
Строка программы, начинающаяся с двух знаков дроби (//).
Последовательность символов, начинающаяся с комбинации дробной черты и звездочки (/*) и заканчивается теми же символами в обратном порядке (*/). Он может занимать несколько строк, а может быть вставлен в середину строки.
Функции — единственный тип подпрограмм С, в отличие, например, от языка Pascal, который различает функции и процедуры. Под процедурой обычно понимают подпрограмму, не возвращающую никакого значения. В С формально любая функция возвращает какой-либо тип, хотя в ANSI С этот тип может быть пустым (void). В нашем случае тело функции состоит из четырех операторов, первые три из которых являются, в свою очередь, вызовами функций. Значения, возвращаемые функциями, здесь игнорируются, т. е. функции вызываются аналогично процедурам языка Pascal. Применяемые здесь функции содержатся в стандартной (исполнительной) библиотеке С.
Лекция 2 Тема: Представление данных в с. Литералы
Данные могут присутствовать непосредственно в тексте программы в виде литеральных констант. Эти литералы могут быть числовыми, символьными и строковыми.
Строковые литералы - это последовательность символов, заключенная в двойные кавычки.
Символьный литерал служит для представления одиночного знака и заключается в одиночные кавычки (апострофы).
Числовые литералы могут быть вещественными (с плавающей точкой) и целыми. В случае целого литерала он может быть записан в десятичной (последовательность цифр, не начинающаяся с нуля - 123, 1999), восьмеричной (последовательность цифр от нуля до семерки, начинающаяся с нуля - 011, 0177) или шестнадцатеричной форме (последовательность шестнадцатеричных цифр (0 - 9 и А - F), перед которой стоит 0X или Оx - ОХ9А, Oxffff). Вещественный литерал записывается либо в обычной десятичной ( [цифры].[цифры] 123., 3.14, .99), либо в экспоненциальной нотации ([цифры]Е|е[+|-] цифры - Зе-10, 1.17е6).
Литеральной константе можно дать некоторое имя, определив ее в качестве макроса препроцессора #define. После этого вместо литерала используется его имя. Это особенно удобно в том случае, когда одна и та же константа встречается в различных частях программы.
#define PI 3.14159265
#define TRUE 1
#define FALSE 0
Встроенные типы данных
В языке имеется несколько встроенных, или простых, типов (возможны и другие типы данных, например, определяемые пользователем), которые перечислены в следующей таблице (для 16-ти разрядной архитектуры).
Тип данных |
Размер(байт)32разр |
Размер (байт)16разр |
Диапазон |
Char |
1 |
1 |
-128 - 127 |
unsigned char |
1 |
1 |
0 - 255 |
short int |
2 |
2 |
-32768 - 32767 |
unsigned short |
4 |
2 |
0 - 65535 |
int |
4 |
2 |
-32768 - 32767 |
unsigned int |
4 |
2 |
0 - 655535 . |
long |
4 |
4 |
-2147483648 - 2147483647 |
unsigned long |
4 |
4 |
0 - 4294967295 |
float |
4 |
4 |
3.4e-38 - 3.4e38 |
double |
8 |
8 |
1.7e-308 - 1.7e308 |
long double |
10 |
10 |
3.4e-4932 - 3.4e4932 |
Отрицательные целые числа представляются в машине в форме дополнения до двух. Чтобы изменить знак числа на противоположный, нужно инвертировать все его разряды (0 заменить на 1 и наоборот) и прибавить к полученному числу единицу. Например, взяв +1 типа char (00000001), инвертировав все биты (11111110) и прибавив 1, мы получим -1 (11 111 111).
Ключевые слова short, long и unsigned являются, строго говоря, модификаторами для типа int. Однако допускается сокращенная запись. Так, unsigned short — на самом деле сокращение для unsigned short int.
Размер и допустимый диапазон значений приведены именно для C++Builder 5, т. е. Для 32-разрядного компилятора.
Переменные.
Именованная единица памяти, предназначенная для хранения данных, называется переменной.
При объявлении переменных указывается тип, имена переменных и (при необходимости) начальные значения, которыми переменные инициализируются. Вот несколько примеров:
short i; // Объявление короткой целой переменной.
char quit = 'Q'; // Инициализация символьной переменной.
float fl, factor = 3.0, f2; // Три переменных типа float, одна из которых инициализируется.
Как и любой другой оператор С, он оканчивается точкой с запятой.
В именах переменных компилятор С различает регистр (прописные и строчные буквы).
