Основы программирования на C++, PASCAL
В результате выполнения этой программы на экран выведется упорядоченная числовая последовательность
1 2 3 4 5 6 7 8 9 10
Многомерные массивы. Двумерный массив трактуется как одномерный массив, элементами которого является массив с указанным в описании типом элементов. Например, оператор
float R[5][10];
объявляет массив из пяти элементов, каждый из которых есть массив из десяти вещественных чисел. Отдельные величины этого массива обозначаются именами с двумя индексами: R[0] [0], R[0][l], ..., R[4][9]. Объединять индексы в одну пару скобок нельзя, т. е. запись R[2,3] ошибочна. Пример описания трехмерного массива:
double X[3] [7] [20];
Как и в Паскале, порядок расположения элементов многомерного массива в памяти такой, что прежде всего меняется последний индекс, затем предпоследний и т.д., и лишь один раз пробегает свои значения первый индекс.
При описании многомерных массивов их также можно инициализировать. Делать это удобно так:
int M[3][3]={11,12,13,
21,22,23,
31,32,33};
Рассмотрим примеры программ обработки матриц — числовых двумерных массивов.
Пример 4. Вычисление и вывод на экран таблицы умножения в форме матрицы Пифагора.
По данной программе в двумерном массиве а не будут заполнены нулевая строка и нулевой столбец. По-прежнему интерпретируем первый индекс двумерного массива как номер строки матрицы, а второй индекс — как номер столбца.
Пример 5. Заполнение матрицы случайными числами в диапазоне от 0 до 99 и поиск в ней максимального значения.
В результате тестирования этой программы получен следующий результат:
В данной программе имеются новые элементы, использование которых требует пояснения. В стандартной библиотеке с заголовочным файлом stdlib.h содержится функция, прототип которой имеет вид: int rand(void).
Результатом этой функции является целое случайное число из диапазона от 0 до RAND_MAX. Значение константы RAND_MAX определено в заголовочном файле stdlib.h и обычно равно 32767 — максимально допустимому целому числу. Для получения случайных чисел в диапазоне от 0 до N — 1 достаточно вычислить остаток от целого деления rand() на N. Функция с прототипом void randomize (void) выполняет первоначальную настройку датчика случайных чисел так, чтобы последовательность чисел не повторялась при повторном выполнении программы.