- •1.1.Схема простой программы
- •1.2.Основы записи программ
- •1.2.1.Имена
- •1.2.2.Комментарии
- •1.2.3.Переменные и константы, объявления и присваивания
- •1.3.Основные конструкции: операторы, выражения, операции, операнды
- •2.1.Операторы объявления
- •2.2.“Линейные” операторы
- •2.3.Операторы управления программой
- •2.3.1.Условный оператор if (if-else)
- •2.3.2.Оператор выбора switch
- •2.3.3.Оператор цикла while
- •2.3.4.Оператор цикла do–while
- •2.3.5.Оператор цикла for
- •2.3.6.Операторы перехода break, continue и goto
- •3.1.Операция присваивания
- •3.2.Объединение действий с присваиванием
- •3.3.Операции увеличения и уменьшения на 1
- •3.4.Трактовка истинности
- •3.5.Операция ?
- •3.6.Операция «запятая»
- •3.7.Операция sizeof
- •4.1.Объявление, определение, параметры и вызов функции
- •4.2.Выход из функции
- •4.3.Организация памяти при выполнении программы
- •4.4.Правила видимости имен для функций
- •4.5.Одинаковое именование нескольких функций (перегрузка функций)
- •4.6.Параметры функций по умолчанию
- •4.7.Передача параметров функции по адресу
- •4.8.Библиотека стандартных функций
- •6.1.Целые числа
- •6.2.Вещественные числа
- •6.3.Логические значения
- •6.4.Символы
- •6.5.Преобразование типов
- •6.6.Вычисление значения выражения
- •7.1.Массивы
- •7.1.1.Одномерные массивы
- •7.1.2.Многомерные массивы
- •7.1.3.Строки
- •7.1.4.Массивы с неопределенным размером (безразмерные массивы)
- •7.2.Перечисления
7.1.Массивы
Массив – это конечная упорядоченная именованная последовательность элементов одного и того же типа. При объявлении массива после его имени в квадратных скобках задается его размер (число элементов). В общем случае измерений у массива может быть несколько. В соответствии с их количеством различают одномерные, двумерные, трехмерные и другие массивы.
7.1.1.Одномерные массивы
Математический “аналог” одномерного массива – вектор. Примером одномерного массива может служить набор из двенадцати целых чисел, соответствующих числу дней в каждом календарном месяце. Объявление этого массива в программе может быть, например, таким:
int days[12];
В данной строке объявлен массив с именем days, состоящий из 12 элементов типа int.
Для того чтобы обратиться к определенному элементу массива, используется операция индексирования []. В квадратных скобках указывается целочисленное выражение, определяющее порядковый номер (индекс) элемента массива. Операнды операции индексирования – массив и значение индекса, результат – значение соответствующего элемента массива. Операция индексирования – одна из операций, имеющих наивысший приоритет. Нумерация элементов массива начинается с 0.
Присвоим, например, всем элементам массива days начальные значения (инициализируем массив days), помня о том, что начальный элемент массива days имеет индекс 0, а последний, соответственно, 11:
days [0] = 31;
days [1] = 28;
. . .
days [11] = 31;
Размер массива должен быть известен в момент компиляции, поэтому при объявлении массива в качестве его размера можно указывать только целую константу. При обращении же к элементу массива в качестве значения индекса может выступать любая переменная или выражение, представляемое ими значение вычисляется во время выполнения программы и преобразуется к целому значению.
Вывести на экран все элементы массива days можно, например, с помощью оператора for:
for (int i=0; i<12; i++)
cout << days[i];
Элементы массива располагаются в памяти последовательно без промежутков. Размер памяти, распределяемой под массив, равен размеру памяти для размещения всех его элементов.
Возможны различные способы инициализации (присваивания начальных значений элементам) массивов. Первый способ – инициализация массива с помощью операций присваивания. Массив может инициализироваться также посредством ввода данных с внешнего носителя или клавиатуры:
int a[10];
for (int i = 0; i < 10; i++)
cin >> a[i];
Когда начальные значения элементов массива известны, при объявлении массива можно использовать список начальных значений, заключаемый в фигурные скобки:
int a[10] = { 71, 28, 40, -4, 231, 1, -30, 0, 30, 31};
Значений в списке может быть меньше, чем элементов в массиве, в этом случае оставшиеся элементы массива получают нулевые начальные значения.
Автоматическое генерирование случайных значений осуществляется стандартной функцией rand(), описанной в файле заголовков stdlib.h. Пример инициализации массива с помощью датчика случайных чисел:
#include <stdlib.h>
...
for (int i = 0; i < 10; i++)
a[i]=rand();
Алгоритм генерации случайных чисел “отталкивается” от значения выбранной начальной точки. При одной и той же начальной точке одним и тем же будет и набор генерируемых случайных значений. Стандартная начальная точка задается значением 1. При необходимости "точку отсчета" можно изменить с помощью стандартной функции srand(), например:
srand(2);