Пример программы обработки матриц — числовых двумерных массивов.

Заполнение матрицы случайными числами в диапазоне от 0 до 99 и поиск в ней максимального значения.

В результате этой программы получен следующий результат:

В данной программе имеются новые элементы.

В стандартной библиотеке с заголовочным файлом stdlib.h содержится функция, прототип которой имеет вид: int rand(void).

Результатом этой функции является целое случайное число из диапазона от 0 до RAND_MAX. Значение константы RAND_MAX определено в заголовочном файле stdlib.h и обычно равно 32767 — максимально допустимому целому числу. Для получения случайных чисел в диапазоне от 0 до N — 1 достаточно вычислить остаток от целого деления rand() на N. Функция с прототипом void randomize (void) выполняет первоначальную настройку датчика случайных чисел так, чтобы последовательность чисел не повторялась при повторном выполнении программы.

Другим новым элементом в программе является использование манипуляторов для управления потоковым выводом с помощью стандартного объекта cout. Манипуляторы объявляются в заголовочном файле iomanip.h. Манипулятор setw(n) влияет на формат следующего элемента выходного потока. Он указывает на то, что значение будет выводиться в n позиций на экране (в программе n = 6). Другой использованный манипулятор — endl — обозначает конец строки и переводит экранный курсор на начало новой строки. Его действие аналогично действию управляющего символа \n.


Упражнения

1. Дан вектор {zi, i = 1, ..., 50. Вычислить длину этого вектора:

 

2. Вычислить полином 10-й степени по формуле Горнера:

 

3. Для вектора {хi}, i = 1, ..., 20, подсчитать количество компонент, значения которых лежат в интервале [0,1].

4. Даны два вектора {х­}, {уi}, i = 1, ..., 10, упорядоченные по возрастанию. Слить их в один вектор {zi}, i = 1, ..., 20 так, чтобы сохранилась упорядоченность.

5. Дан массив, состоящий из 100 целых чисел.

а) Вывести все числа, которые встречаются в этом массиве несколько раз.

б) Вывести все числа, которые встречаются в массиве только по одному разу.

6. С помощью датчика случайных чисел заполнить двоичную матрицу 5 х 10. Определить номер строки с наибольшим количеством нулей.

7. Транспонировать целочисленную матрицу 5 х 5, т.е. отразить относительно главной диагонали.

8. В двоичной матрице 10 х 10 найти совпадающие строки.