Ich habe dieses Problem falsch auf meinen Hausaufgaben, und ich kann nicht herausfinden, warum:Warum habe ich diesen Artikel bei meinen Hausaufgaben falsch verstanden?
procedure Main is
X: Integer;
procedure Sub1 is
X: Integer;
begin -- of Sub1
Put(X);
end; -- of Sub1
procedure Sub2 is
X: Integer;
begin -- of Sub2
X:=5;
Sub1;
end; -- of Sub2
begin -- of Main
X:=12;
Sub2;
end; -- of Main
Die Frage ist: Angenommen, das folgende Ada-Programm kompiliert wurde, und führt statisch-Scoping-Regeln. Welcher Wert von X wird in der Prozedur von Sub1 gedruckt? Was wäre, wenn es unter den Dyncamic-Scoping-Regeln stünde?
Ich habe 12 und 5, aber das wurde als falsch markiert. Warum?
Ist es die neue initialisierte Ganzzahl? Was wäre also X, wenn es nicht mit einem Wert erklärt wird? 0? – kylex
Ich erinnere mich nicht, wenn Ada Variablen für Sie initialisiert oder nicht. Ich müsste irgendwo mein Lehrbuch aus dem Keller ausgraben. Ich vermute, deine ist leichter zu erreichen ;-) –