Thema: Delphi Zahlenquadrat

Einzelnen Beitrag anzeigen

Benutzerbild von Thunderbolt
Thunderbolt

Registriert seit: 29. Feb 2004
26 Beiträge
 
#1

Zahlenquadrat

  Alt 1. Feb 2005, 19:15
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
  Mit Zitat antworten Zitat