ich hab' als Neuling schon mal gleich ein Problem und frag' mich selbst ob noch alle Latten am Zaun sind.
Ich esrtellte in FreePascal folgendes kleine Progrämmchen:
Code: Alles auswählen
program arraytest;
uses math;
var x, y: array [0..10] of integer;
i: integer;
const dx=1;
begin
for i:=0 to high(x) do begin
x[i]:=0; //Erstmal Nullen reinpumpen
y[i]:=0;
end;
//Mit den Arrays rechnen
for i:=0 to high(x) do begin
x[i+1]:=x[i]+dx;
y[i]:=sqr(x[i]);
writeln(x[i],' ',y[i]);
end;
readln;
end.
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
10 100
Prima Sache, funktioniert.
Nur unter Lazarus, auch bei Konsolenanwendung erscheint die Fehlermeldung:
"Project raised exception. Class Externel: SIGSEGV.
Das SIGSEGV ist hier schon mehrfach aufgetaucht.
Lazarus mag scheinbar den Aufruf:
x[i+1]:=x+dt;
nicht.
Aber ich kenne Array-Behandlung eigentlich nicht anders. In SCILAB mache ich es genauso.
Wenn ich es wie folgt abändere:
Code: Alles auswählen
for i:=1 to high(x) do begin
x[i]:=x[i-1]+dx;
y[i]:=sqr(x[i]);
writeln(x[i],' ',y[i]);
end;
Muß ich bei Lazarus und Array's grundsätzlich umdenken?
Blöd ist dabei nur, daß ich einen Algorithmus aus einem Buch abgetippt habe, der recht umfangreich ist, dieser sich an SCILAB orientiert
und ich ihn eigentlich nicht abändern wollte.
Kann mir jemand auf die Sprünge helfen?
MfG
Volker