![](/user_photo/2706_HbeT2.jpg)
- •1.1. Элементы языка программирования
- •Основные правила записи программы:
- •1.2. Алфавит языка
- •1.3. Лексемы
- •1.4. Концепция данных
- •2.2. Операции
- •2.2.1. Арифметические операции
- •2.2.2. Операции присваивания
- •2.2.3. Операции отношения
- •2.2.4. Логические операции
- •2.2.5. Поразрядные операции
- •2.2.6. Вычисление выражений
- •3. Структурное программирование
- •3.1. Общая характеристика операторов
- •3.2. Оператор-выражение
- •3.3. Условный оператор
- •3.4. Составной оператор
- •3.5. Операторы для программирования циклов
- •3.5.1. Оператор цикла for
- •3.5.2. Оператор цикла while
- •3.5.3. Оператор цикла do while
- •3.5.4. Оператор break
- •3.5.5. Оператор continue
- •3.6. Оператор goto
- •3.7. Пустой оператор
- •3.8. Оператор switch
- •3.9. Оператор return
- •4. Массивы
- •4.1. Объявление массива
- •4.2. Обращение к элементам массива
- •4.3. Типовые алгоритмы работы с массивами
- •4.4. Многомерные массивы
- •5. Строки
- •5.1. Объявление строки
- •5.2. Посимвольная обработка строк
- •5.3. Ввод строк
- •5.4. Библиотечные функции для работы с текстом
- •6. Указатели
- •6.1. Объявление указателей
- •6.2. Операции над указателями
- •6.3. Связь между указателями и массивами
- •6.4. Функция strtok для выделения лексем из текста
- •6.5. Динамические массивы
- •7. Структуры и объединения
- •7.1. Объявление структуры
- •Компонент структуры может быть любого типа, кроме типа объявляемой структуры.
- •7.2. Операции над структурами
- •7.3. Объявление объединения
- •8. Модульное программирование
- •8.1. Нисходящее проектирование и программирование
- •8.2. Определение и вызов функции
- •8.3. Место определения функции в программе
- •8.4. Обмен данными между функциями
- •8.4.1. Использование глобальных переменных
- •8.4.2. Использование аппарата формальных и фактических параметров
- •8.4.3. Передача массивов в функцию
- •8.5. Перегрузка функции
- •8.6. Шаблон функции
- •8.7. Рекурсивные функции
- •8.8. Функции с параметрами по умолчанию
- •8.9. Передача в функцию другой функции
- •9. Работа с файлами
- •9.1. Текстовые и двоичные файлы
- •9.2. Объявление файловых переменных
- •9.3. Чтение текстового файла
- •9.4. Создание текстового файла
- •9.5. Изменение данных в текстовом файле
- •9.6. Вывод в двоичный файл
- •9.7. Чтение данных из двоичного файла
- •9.8. Изменение данных двоичного файла
- •9.9. Организация файла с произвольным доступом
- •10. Данные с динамической структурой
- •10.1. Линейный список
- •10.1.1. Специальные типы линейных списков
- •10.1.2. Реализация линейного списка с помощью массива
- •10.1.3. Реализация линейного списка с помощью связанного однонаправленного списка
- •10.1.4. Реализация линейного списка с помощью связанного двунаправленного списка
- •10.2. Деревья
- •10.2.1. Основная терминология
- •10.2.2. Реализация двоичных деревьев поиска Для реализации дерева поиска используются массивы и связанные указателями элементы [3, 4].
- •10.2.3. Сбалансированные деревья
- •Основные достоинства в-дерева:
- •10.3. Графы
- •10.3.1. Определения
- •10.3.2. Реализация графа с помощью списков смежности
- •10.3.3. Реализация графа с помощью матрицы смежности
- •10.3.4. Поиск кратчайших путей. Алгоритм Дейкстры
- •10.3.5. Матрица достижимости. Алгоритм Уоршалла
Основные правила записи программы:
Программа на языке С++ состоит из операторов, объявлений, определений функций, директив препроцессора и комментариев.
Все переменные должны быть объявлены до их первого использования в операторах.
Программа записывается с помощью символов, входящих в алфавит языка С++. Язык С++ является чувствительным к регистру: строчные и прописные буквы в программе различаются. Служебные слова языка и имена функций из стандартных библиотек пишутся строчными буквами, имена для переменных могут содержать как строчные, так и прописные буквы.
Программа записывается в свободном формате: вся программа может быть записана в одну строку, а один оператор (или объявление) может быть записан в нескольких строках. Компилятор распознает конец оператора или объявления по символу; (точка с запятой), котрым заканчивается каждый оператор и каждое объявление. Чтобы программа лучше читалась, желательно ее записывать структурно: размещать каждый оператор и каждое объявление с новой строки, делать отступы в 3-4 пробела для вложенных операторов.
1.2. Алфавит языка
Алфавит – это допустимый набор символов, используемых при записи программы. Алфавит языка С++ включает:
латинские буквы,
цифры,
специальные знаки:
+ - * % /
< > =
() {} []
. , ! ? ‘ “ : ;
| \ & # ~ ^ _
пробельные символы: пробел, табуляция, переход на новую строку.
1.3. Лексемы
Лексемы – последовательность символов алфавита, имеющая для компилятора определенный смысл. Лексемы строятся из символов алфавита языка по определенным в каждом языке правилам. В программах, написанных на языке С++, можно выделить следующие лексемы: идентификаторы, ключевые слова, знаки операций, разделители, константы.
Идентификатор – это имя программного объекта. Идентификатор может содержать буквы, цифры и символы подчеркивания. Первым символом идентификатора может быть буква или символ подчеркивания. Для улучшения читаемости программы следует задавать осмысленные идентификаторы. Идентификаторы не должен совпадать с ключевыми словами языка С++. Примеры правильной записи идентификаторов: a1, max, file_name.
Ключевые слова – зарезервированные слова языка, которые можно использовать только в определенных конструкциях языка. Список основных ключевых слов языка С++ приведен в табл. 1.
Таблица 1
Список ключевых слов С++
asm |
auto |
bool |
break |
case |
catch |
char |
class |
const |
continue |
default |
delete |
do |
double |
else |
enum |
extern |
false |
float |
for |
friend |
goto |
if |
inline |
int |
long |
namespace |
new |
operator |
private |
protected |
public |
register |
return |
short |
signed |
sizeof |
static |
struct |
switch |
template |
this |
throw |
true |
try |
typedef |
typename |
union |
unsigned |
using |
virtual |
void |
volatile |
while |
|
|
Знак операции – это один или более символов алфавита, определяющих действия над операндами. Примеры знаков операций: + <=.
Разделители – это скобки, знаки препинания (запятая, точка с запятой), пробельные символы, к которым относятся пробел, символ табуляции и символ перехода на новую строку.
Константы – это неизменяемые программные объекты. В табл. 2 приведены примеры констант разных типов.
Таблица 2
Константы языка С++
Тип константы |
Примеры |
Целая десятичная восьмеричная шестнадцатиричная |
5 0 -20 01 0577 0xA23 0X39DC |
Вещественная |
-1.234 5.1 2.2E-23 3.567E12 |
Символьная |
‘a’ ‘\065’ ‘\0x34’ ‘\n’ ‘\”’ |
Строковая |
“текст” “c:\\user\\a.txt” |
Логическая |
true false |