Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Berechnung der Hauptdiagonalen eines Quadrates (https://www.delphipraxis.net/35834-berechnung-der-hauptdiagonalen-eines-quadrates.html)

Scharfrichter 12. Dez 2004 13:54


Berechnung der Hauptdiagonalen eines Quadrates
 
Hi,
ich hätte hier mal eine interessante Fragestellung bei der ich einfach nicht weiter komme, vielleicht könnt ihr mir helfen. Die Fragestellung lautet wie folgt:
Gegeben sei folgendes statisches array:
Const N=....;
var F: array[1..N] of integer;

Es wird nun angenommen, dass N eine Quadratzahl ist, und, dass F als Quadrat interpretiert wird. Die Aufgabe ist es eine Prozedur zu schreiben, welche die Hauptdiagonale des Quadrates aus F mit ihren Komponenten Nummern belegt.

nailor 12. Dez 2004 14:02

Re: Berechnung der Hauptdiagonalen eines Quadrates
 
a) warum kein 2d-array?
b) der (0n+0), (1n+1), (2n+2)... te wert liegt jeweils auf der diagonalen, wenn man mit 0 beginnt und n die seitenlänge ist.

Scharfrichter 12. Dez 2004 20:51

Re: Berechnung der Hauptdiagonalen eines Quadrates
 
Wie soll das den syntaktisch verarbeitet werden in einer Prozedur, per for Schleife und dann über die Laufveriable i die einzelnen Diagonalenfelder bestimmen und setzen?

nailor 12. Dez 2004 21:16

Re: Berechnung der Hauptdiagonalen eines Quadrates
 
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
const
  n = 2;
  max = n * n - 1;
var
  f: array[0..max] of integer;
  i: integer;
begin
  for i := 0 to max do
    f[i] := 0;

  i := 0;
  while (i <= max) do
    begin
      f[i] := 1;
      inc(i, n + 1);
    end;

  Memo1.Clear();
  i := 0;
  while (i <= max) do
    begin
      if i mod n = 0 then
        Memo1.Text := Memo1.Text + #13#10;

      Memo1.Text := Memo1.Text + inttostr(f[i]);
      inc(i);
    end;
end;
ps: mit nem 2d feld wäre es noch leichter, da könnte man einfach alle wo erster_index = zweiter_index auf 1 setzen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz