Ich brauch mal kurz Hilfe. Mein Delphi spinnt rum und schreibt ganz komische Sachen.
Die Aufgabenstellung ist die Folgende:
1. Man hat ein Quadrat mit n Feldern höhe und breite (bei unserem Beispiel 5).
2. In das Mittlere Feld der ersten "Zeile" schreibt man eine 1 hin.
3. Nun füllt man die restlichen Zahlen (2 bis n^2) in die Felder nach folgenden Regeln:
1. Folgt die Zahl einem Teiler von n, kommt diese in das Feld darunter.
2. Ist sie kein Teiler kommt die Zahl in das Feld rechts oben (1 nach rechts, 1 nach oben).
3. Ist man am Rand angelangt, springt die Zahl auf die Gegenseite.
Ein Dreieck mit n=5 sähe also so aus:
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
dazu hab ich schnell einen quelltext geschrieben:
Delphi-Quellcode:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type zweidimensional=array [1..10,1..10]
of word;
var
matrix :zweidimensional;
i,x,y :integer;
const
n=5;
procedure ausgeben;
var k,l:integer;
begin
for k:=1
to n
do
begin
for l:=1
to n
do write(matrix[x,y]:3);
writeln;
end;
end;
begin
x:= (n
div 2)+1;
y:=1;
matrix[x,y]:=1;
ausgeben;
for i:=2
to sqr(n)
do
begin
if (i-1
mod n)=0
then
begin
if y=n
then y:=1
else inc(y);
matrix[x,y]:=i;
end
else
begin
if x=n
then x:=1
else inc(x);
if y=1
then y:=n
else dec(y);
matrix[x,y]:=i;
end;
ausgeben;
//zum fortschritt debuggen
end;
ausgeben;
readln;
end.
seltsamerweise spuckt das programm sehr seltsame ergebnisse aus bei den zwischenausgaben. schaut sie euch bitte mal an. ich finde den fehler irgendwie nicht
Ich habe in der Vergangenheit gute Entscheidungen getroffen. Ich habe in der Zukunft gute Entscheidungen getroffen.
George W. Bush