- •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. Матрица достижимости. Алгоритм Уоршалла
 
1.4. Концепция данных
Язык С++ является типизированным языком. Это означает, что каждая переменная, константа или результат вычисления выражения программы принадлежат к одному из определенных в языке типов данных. Тип данных определяет:
множество допустимых значений, которые могут принимать данные;
допустимые операции над данным;
формат хранения данных в памяти компьютера.
Принадлежность переменных к определенному типу данных определяется в обязательном объявлении каждой переменной программы до ее использования. Пример объявления вещественной переменной:
float x;
Принадлежность константы к определенному типу задается ее записью. Например, в операторе-выражении х=2; компилятор отнесет константу 2 к целому типу данных, так как в записи константы отсутствует точка. Тип значения вычисляемого выражения определяется правилами языка для типа выражений, которые будут рассмотрены позже.
Основные типы данных
Все типы данных С++ можно разделить на два класса: класс основных типов и класс производных типов. К основным типам данных относятся целый, вещественный, вещественный с двойной точностью, символьный, логический и тип void. Производные типы данных строятся на их основе. К производным типам данных относятся массивы, структуры, объединения, классы, функции, указатели и перечисления.
Обьявление переменных
Переменная – это программный объект, который предназначен для хранения данных. Переменная имеет имя (идентификатор) и значение, которое может изменяться при работе программы. Имя переменная получает при объявлении. Объявление переменной должно располагаться в программе до ее первого использования. При объявлении переменной с ее именем связывается область оперативной памяти, в которой будет храниться значение переменной.
Синтаксис объявления переменных основных типов:
Тип список_имен_переменных;
Тип переменных задается одним из ключевых слов: int, float, double, char, bool. Перед типом переменных могут использоваться модификаторы типа: short, long, signed, unsigned. Модификаторы short и long изменяют размер оперативной памяти, выделяемую переменной для хранения данных в соответствии с ее типом, а модификаторы signed и unsigned изменяют способ использования старшего бита. При использовании модификатора unsigned старший бит рассматривается как часть кода числа. Диапазон значений и размер памяти для данных основных типов приведенны в табл. 3.
Таблица 3
Диапазон и размер данных основных типов
| 
			 Тип  | 
			 Размер (в байтах)  | 
			 Диапазон значений  | 
| 
			 int (signed int)  | 
			 2 или 4 определяется процессором  | 
			 -32768 - 32767 или -2147483648 - 2147483647  | 
| 
			 short (signed short int)  | 
			 2  | 
			 -32768 - 32767  | 
| 
			 unsigned short int  | 
			 2  | 
			 0 - 65535  | 
| 
			 unsigned long int  | 
			 4  | 
			 0 - 4 294 967 295  | 
| 
			 signed long int  | 
			 4  | 
			 -2147483648 - 2147483647  | 
| 
			 char  | 
			 1  | 
			 0 - 255  | 
| 
			 signed char  | 
			 1  | 
			 -127 - 128  | 
| 
			 unsigned char  | 
			 1  | 
			 0 - 255  | 
| 
			 float  | 
			 4  | 
			 3.4Е-38 - 3.4Е38  | 
| 
			 double  | 
			 8  | 
			 1.7Е-308 - 1.7Е308  | 
| 
			 long double  | 
			 10  | 
			 3.4E-4932 - 3.4E+4932  | 
| 
			 bool  | 
			 1  | 
			 true, false  | 
Примеры объявлений переменных:
int a,b;
long double y;
unsigned short w;
Переменной при объявлении можно присвоить начальное значение (инициализировать ее).
Примеры инициализации переменной:
int k=0; //инициализация со знаком присваивания
int x (100); //инициализация с использованием круглых скобок
const float pi=3.1459; //объявление именованной константы
Переменная, объявленная с модификатором const, называется именованной константной, или просто константой: изменять ее значение в программе нельзя.
Пример программы вычисления площади прямоугольника:
#include <iostream.h>
#include <conio.h>
void main()
{
float a, b, s; //основание, высота и площадь
cout<<”a, b? “;
cin>>a>>b;
s=a*b;
cout<<”s=”<<s;
getch();
}
В этой программе для переменных, в которых хранятся значения размеров прямоугольника и его площадь, указан вещесвенный тип.
После выделения памяти под переменные a, b и s эти переменные содержат случайные значения. При вводе значений в переменные a и b вводимые значения замещают значения, ранее хранившиеся в них. При присваивании переменной s выражения a*b значение выражения вычисляется для текущих значений переменных a и b, а затем результат выражения заносится в область памяти, выделенную под переменную s. При выводе значения переменной s на экран значение s в памяти не разрушается, так как для вывода на экран используется копия значения s.
