type
PRow = ^TRow;
TRow = array[0..16379] of Single;
PMat = ^TMat;
TMat = array[0..16379] of PRow;
var
Mat: PMat;
X, Y, Xmax, Ymax: Integer;
begin
Write('Задайте размер массива: ');
ReadLn(Xmax, Ymax);
if (Xmax <= 0) or (Xmax > 16380) or (Ymax <= 0) or (Ymax > 16380) thenbegin
WriteLn('Неверный диапазон. Не могу продолжить.');
Exit;
end;
GetMem(Mat, Xmax * SizeOf(PRow));
for X := 0 to Xmax - 1 dobegin
GetMem(Mat[X], Ymax * SizeOf(Single));
for Y := 0 to Ymax - 1 do
Mat^[X]^[Y] := 0.0;
end;
WriteLn('Массив инициализирован и готов к работе.');
WriteLn('Но эта программа закончила свою работу.');
end.
Программа на Паскале, которая создает двумерный массив типа Single с размерами, указанными пользователем. Программа проверяет валидность вводных значений и динамически выделяет память с помощью процедуры GetMem.
Разбивка кода:
Первая секция определяет типы:
PRow - указатель на массив из 16,380 значений типа Single.
TMat - массив указателей на PRow, что создает двумерный массив.
Программа объявляет переменные:
Mat: указатель на двумерный массив
X, Y, Xmax, Ymax: целые числа, используемые для хранения вводных значений пользователя
Основная секция программы:
Просит пользователя ввести размер матрицы (Xmax, Ymax)
Проверяет, если вводные значения находятся в валидном диапазоне (0-16,380) и выходит, если нет
Динамически выделяет память для матрицы с помощью GetMem
Инициализирует каждую строку матрицы, выделив память для нее и установив все элементы в 0.0
Выводит сообщение, указывающее, что матрица инициализирована и готова к использованию
Программа затем выводит еще одно сообщение, указывающее, что она закончила свою работу.
Некоторые предложения:
Рассмотрите добавление обработки ошибок для случаев, когда пользователь вводит невалидные значения (например, нечисловые значения)
Вам может понравиться добавить функциональность для заполнения матрицы реальными данными или выполнения операций над ней
Программа использует GetMem для выделения памяти, что может быть ошибочно. Рассмотрите использование safer альтернативы, такой как AllocMem
Программа не освобождает выделившуюся память после использования. Это важно для предотвращения утечек памяти. Используйте FreeMem для освобождения памяти.
В целом, это код предоставляет основное пример создания и инициализации двумерного массива в Паскале. Однако он может быть улучшен добавлением более robust обработки ошибок и функциональности.
В статье описывается создание многомерного массива на языке программирования Паскаль, который может содержать до 16 380 элементов в каждом из его измерений.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.