Il y a un moyen de rendre x array constant après que les données ont été lues par l'utilisateur? Il y a un moyen de rendre variable non modifiable après que sa valeur soit lue par l'utilisateur (par exemple y)?Comment rendre la matrice dynamique constante?
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.
Pour y faire constante que j'ai essayé quelque chose comme cela, mais il ne fonctionnera pas - y sera défini comme 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.
Merci pour l'aide.
Donc c'est aussi bête, de ne pas dire stupide: /. À mon humble avis il devrait y avoir un moyen d'attribuer la valeur des constantes à l'exécution, non seulement avant la compilation, mais pouvez-vous me dire pourquoi {$ J +} et {$ J-} ne fonctionnent pas? – Isinlor
Je n'ai aucune idée de pourquoi ils ne fonctionnent pas; Je ne les ai jamais utilisés. En ce qui concerne votre question, je n'ai pas dit que c'était stupide ou stupide; si j'avais pensé cela, j'aurais baissé les taux et voté pour fermer au lieu de répondre. Il n'y a pas besoin d'écrire sur les constantes, jamais, IMO. Acceptez simplement l'entrée de l'utilisateur une fois, puis n'écrivez plus dans les variables dans votre code. C'est très facile à appliquer (c'est ** votre code, après tout), et quand vous passez les variables à d'autres routines, définissez les paramètres comme 'const SomeVar: Integer' et il ne peut pas être changé dans le code de réception du tout. –
BTW: La seule raison, AFAICT, qu'il existe toujours un support pour la "constante inscriptible" ridicule est la prise en charge du code hérité; il a été obsolète depuis la sortie de Delphi 2 (et '{$ J +/-}' a été introduit). –