Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Создание многомерного массива

Delphi , Синтаксис , Массивы

Создание многомерного массива

Автор: Steve Schafer


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) then
  begin
    WriteLn('Неверный диапазон. Не могу продолжить.');
    Exit;
  end;
  GetMem(Mat, Xmax * SizeOf(PRow));
  for X := 0 to Xmax - 1 do
  begin
    GetMem(Mat[X], Ymax * SizeOf(Single));
    for Y := 0 to Ymax - 1 do
      Mat^[X]^[Y] := 0.0;
  end;
  WriteLn('Массив инициализирован и готов к работе.');
  WriteLn('Но эта программа закончила свою работу.');
end.

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

Разбивка кода:

  1. Первая секция определяет типы:
    • PRow - указатель на массив из 16,380 значений типа Single.
    • TMat - массив указателей на PRow, что создает двумерный массив.
  2. Программа объявляет переменные:
    • Mat: указатель на двумерный массив
    • X, Y, Xmax, Ymax: целые числа, используемые для хранения вводных значений пользователя
  3. Основная секция программы:
    1. Просит пользователя ввести размер матрицы (Xmax, Ymax)
    2. Проверяет, если вводные значения находятся в валидном диапазоне (0-16,380) и выходит, если нет
    3. Динамически выделяет память для матрицы с помощью GetMem
    4. Инициализирует каждую строку матрицы, выделив память для нее и установив все элементы в 0.0
    5. Выводит сообщение, указывающее, что матрица инициализирована и готова к использованию

Программа затем выводит еще одно сообщение, указывающее, что она закончила свою работу.

Некоторые предложения:

  • Рассмотрите добавление обработки ошибок для случаев, когда пользователь вводит невалидные значения (например, нечисловые значения)
  • Вам может понравиться добавить функциональность для заполнения матрицы реальными данными или выполнения операций над ней
  • Программа использует GetMem для выделения памяти, что может быть ошибочно. Рассмотрите использование safer альтернативы, такой как AllocMem
  • Программа не освобождает выделившуюся память после использования. Это важно для предотвращения утечек памяти. Используйте FreeMem для освобождения памяти.

В целом, это код предоставляет основное пример создания и инициализации двумерного массива в Паскале. Однако он может быть улучшен добавлением более robust обработки ошибок и функциональности.

В статье описывается создание многомерного массива на языке программирования Паскаль, который может содержать до 16 380 элементов в каждом из его измерений.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Массивы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-07-01 23:08:13/0.0036818981170654/0