Как создать массив, если его размер заранее не известен? [Pascal]

программирование

Вот, например, пользователь хочет посчитать значение функции для N различных Х, которые надо ввести в программу. Однако в Pascal размерность массива следует задавать заранее - на этапе инициализации программы. Соответственно вопрос - куда писать значения Х, если мы сделали массив на (например) 50 значений, а пользователь захотел ввести (например) 80 значений?
Ответы:
Нужно или оговорить максимально возможный размер массива, к примеру сделать 200 или ещё больше
Или использовать указатели
Никак, просто не давать пользователю вводить большее значение.
var mas : array [1..32767] of integer;
i,n : integer;
begin
randomize;
write('enter nr n : ');
readln(n);
for i:=1 to n do begin
mas[i]:=random(11);
write(mas[i]:4);
end;
end.
В таких случаях используются динамические массивы (примеры внизу). В Delphi всё просто, а в Turbo Pascal изначально нет динамических массивов, но с помощью указателей можно легко создать самому.
Массивы бывают статические и динамические.
Динамическим называется массив, размер которого может меняться во время исполнения программы. Для изменения размера динамического массива язык программирования, поддерживающий такие массивы, должен предоставлять встроенную функцию или оператор. Динамические массивы дают возможность более гибкой работы с данными, так как позволяют не прогнозировать хранимые объёмы данных, а регулировать размер массива в соответствии с реально необходимыми объёмами. Обычные, не динамические массивы называют статическими.
В Delphi есть динамические массивы. Просто перед записью нужно будет увеличивать его размер до необходимого


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.