Задача:
Напишите программу, которая создает матрицу размером n x n и заполняет ее случайными числами. Turbo Pascal.
План:
- Алгоритм решения
- Код программы
- Примеры входных данных и ожидаемых результатов
- Объяснение кода программы
- Блок-схема
Алгоритм решения:
-
Инициализация генератора случайных чисел с помощью
randomize
. -
Запрос размера матрицы у пользователя:
- Вывод приглашения для ввода
- Считывание значения
n
-
Проверка корректности введенного размера:
- Если
n > 0
иn <= MAX_SIZE
, продолжить выполнение - Иначе вывести сообщение об ошибке и завершить программу
- Если
-
Заполнение матрицы случайными числами:
- Использование вложенных циклов для перебора элементов
- Внешний цикл: от 1 до n (строки)
- Внутренний цикл: от 1 до n (столбцы)
- Заполнение каждого элемента случайным числом от 0 до 99
-
Вывод сгенерированной матрицы:
- Вывод заголовка "Generated matrix:"
- Использование вложенных циклов для перебора элементов
- Внешний цикл: от 1 до n (строки)
- Внутренний цикл: от 1 до n (столбцы)
- Вывод каждого элемента с шириной поля 4 символа
- Переход на новую строку после вывода каждой строки матрицы
-
Ожидание нажатия клавиши перед завершением программы
Код программы на языке Turbo Pascal:
Код Turbo Pascal
program RandomMatrix;
uses crt;
const
MAX_SIZE = 100;
var
matrix: array[1..MAX_SIZE, 1..MAX_SIZE] of integer;
n, i, j: integer;
begin
randomize;
write('Enter the size of the matrix (n x n): ');
readln(n);
if (n > 0) and (n <= MAX_SIZE) then
begin
for i := 1 to n do
begin
for j := 1 to n do
begin
matrix[i, j] := random(100);
end;
end;
writeln('Generated matrix:');
for i := 1 to n do
begin
for j := 1 to n do
begin
write(matrix[i, j]:4);
end;
writeln;
end;
end
else
writeln('Invalid matrix size. Please enter a value between 1 and ', MAX_SIZE);
readln;
end.
Примеры входных данных и ожидаемых результатов:
Input:
Enter the size of the matrix (n x n): 3
Possible Output:
Generated matrix:
17 82 39
54 6 23
91 68 75
Input:
Enter the size of the matrix (n x n): 5
Possible Output:
Generated matrix:
42 13 95 27 61
8 36 79 54 20
73 2 48 31 67
15 89 52 6 40
93 24 58 81 11
Input:
Enter the size of the matrix (n x n): 0
Output:
Invalid matrix size. Please enter a value between 1 and 100
Input:
Enter the size of the matrix (n x n): 101
Output:
Invalid matrix size. Please enter a value between 1 and 100
Объяснение кода программы:
-
Объявление программы и подключение модуля:
Объявляется программа с именем RandomMatrix и подключается модуль crt для работы с консолью.program RandomMatrix; uses crt;
-
Объявление константы и переменных:
Определяется константа MAX_SIZE и объявляются переменные: двумерный массив matrix и целочисленные переменные n, i, j.const MAX_SIZE = 100; var matrix: array[1..MAX_SIZE, 1..MAX_SIZE] of integer; n, i, j: integer;
-
Инициализация генератора случайных чисел:
Инициализируется генератор случайных чисел для получения разных последовательностей при каждом запуске программы.randomize;
-
Ввод размера матрицы:
Пользователю предлагается ввести размер матрицы, который сохраняется в переменной n.write('Enter the size of the matrix (n x n): '); readln(n);
-
Проверка корректности введенного размера:
Проверяется, что введенный размер матрицы находится в допустимом диапазоне.if (n > 0) and (n <= MAX_SIZE) then
-
Заполнение матрицы случайными числами:
Используются вложенные циклы для заполнения матрицы случайными числами от 0 до 99.for i := 1 to n do begin for j := 1 to n do begin matrix[i, j] := random(100); end; end;
-
Вывод сгенерированной матрицы:
Выводится заголовок и сама матрица, используя вложенные циклы. Каждый элемент выводится с шириной 4 символа.writeln('Generated matrix:'); for i := 1 to n do begin for j := 1 to n do begin write(matrix[i, j]:4); end; writeln; end;
-
Обработка некорректного ввода:
Если введенный размер матрицы некорректен, выводится сообщение об ошибке.else writeln('Invalid matrix size. Please enter a value between 1 and ', MAX_SIZE);
-
Ожидание нажатия клавиши:
Программа ожидает нажатия клавиши Enter перед завершением.readln;