Применение случайных чисел при работе с массивами

В языке Паскаль массив описывается заранее до его использования и во время исполнения программы не меняется его длина, размерность и тип элементов. Такие массивы называются статическими. Другой подход – это когда массив создаётся во время работы программы. Такой массив называют динамическим. В этом курсе мы будем работать только со статическими массивами. Это означает, что при описании мы должны указать максимально возможную длину массива по каждому индексу.

При создании произвольных массивов чаще всего используют функцию-генератор случайных чисел. Приведём пример создания произвольного одномерного целочисленного массива и вывода его на экран.

program p8_7;

uses CRT;

const

n:= 1000; { максимальный размер массива }

var

М: array[1.. n] of integer;

i, k : integer;

begin

write('Введи длину массива:');

Readln(k); { k – текущая длина массива; k <= n }

{ Создание массива и вывод его элементов на экран }

Writeln(' Созданный массив'); { Вывод заголовка на экран }

for i := 1 to k do

begin

{ Элементы массива – случайные числа в интервале от -150 до 150 }

M[i] := random(301) – 150;

Write( М[ i ]:4, ' ' );

If i mod 8 = 0 then writeln; {Через каждые 8 чисел – перевод строки }

end;

readkey;

end.

То же самое повторим для двумерного массива - квадратной матрицы.

 

program p8_8;

uses CRT;

const

n := 10; { максимальное число строк в матрице }

m := 10; { максимальное число столбцов в матрице }

var

М: array[1.. n, 1.. m] of real;

i, j, k : integer;

begin

write('Введи размер матрицы:');

Readln(k); { k – текущий размер матрицы; k <= n }

{ Создание массива и вывод его элементов на экран }

Writeln(' Созданный массив'); { Вывод заголовка на экран }

for i := 1 to k do { цикл по строкам }

for j := 1 to k do { цикл по столбцам }

begin

{ Элементы массива – случайные действительные числа

в интервале от -200 до 200 }

M[i, j] := 400*random – 200;

Write( М[ i, j ] : 8 : 2, ' ' );

end;

writeln; { после вывода строки чисел – переход на следующую строку }

readkey;

end.