Как сделать динамический массив постоянным?

Есть ли способ сделать константу массива х после того, как данные прочитаны пользователем? Есть ли способ сделать переменную неизменяемой после того, как ее значение прочитано пользователем (например, y)?

program hmm;
    uses crt;
    var 
        i, y: word;
        x: array of word;
begin
    readln(y);
    y:=y-1;
    SetLength(x,y); 
    for i := 0 to y do begin
        read(x[i]);
    end;
readkey;
end.

Чтобы сделать у постоянным, я попробовал что-то вроде этого, но это не сработает - у будет установлено значение 0.

program hmm;
    uses crt;
    var 
        i: word;
        x: array of word;
    const
    {$J+}
        y:word = 0;
    {$J-}
begin
    {$J+}
    readln(y);
    y:=y-1;
    {$J-}
    y:=0;
    SetLength(x,y); 
    for i := 0 to y do begin
        read(x[i]);
    end;
readkey;
end.

Спасибо за помощь.

1 ответ

Решение

Да. Не изменяйте ни один из них в своем коде после того, как вы установили начальное значение.

Кроме этого, нет пути. Динамический массив по определению является изменяемым, как и переменная, поэтому они имеют динамические и переменные в качестве имен.

Другие вопросы по тегам