Autor Beitrag
Scharfrichter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: So 12.12.04 14:42 
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.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 12.12.04 14:59 
Na, das ist einfach. Schreib dir das Array doch mal als Quadrat auf.
ausblenden Quelltext
1:
2:
3:
4:
5:
z.B. für N=16:
 (1)  2   3   4
  5  (6)  7   8
  9  10 (11) 12
 13  14  15 (16)

In Klammern stehen die Diagonalelemente. Welche Nummern haben die? 0+1, 4+2, 8+3, 12+4. Da muss man sich jetzt nur die Regelmäßigkeit raussuchen. Und dann sehen, wie das mit anderen Quadratzahlen entsprechend geht... und dann das ganze in eine Schleife packen.

_________________
We are, we were and will not be.
Scharfrichter Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: So 12.12.04 22:07 
Ok wie man die Diagonale herausbekommt ist mir klar, aber wie bekomme ich die Werte dann auf ein Quadrat zugewiesen. Im Array f sind alle Zahlen von 1 bis N und diese müssen nur den Elementen der Hauptdiagonalen zugewiesen werden so wie du es wunderbar aufgeschrieben hast. Ich hatte mir überlegt eine For Schleife anzulegen in der Prozedur die wie folgt aussieht:
For i:= 0 to N do
(Wurzel * i) + (i + 1)

Wurzel steht für die jeweilige Wurzel einer Quadratzahl, also 3 zb. von 9. Nur wie bekomme ich jetzt die Zahlen aus F auf meine Hauptdiagonale?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 12.12.04 22:37 
so vielleicht?
ausblenden Delphi-Quelltext
1:
2:
for i:=0 to Wurzel-1 do
    F[(Wurzel * i) + (i + 1)] := (Wurzel * i) + (i + 1);

_________________
We are, we were and will not be.
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Mo 13.12.04 12:25 
Ihr könnt ja mal folgende zwei Diskussionen hier mit einfließen lassen. 8)

DP und DG