Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wert - Quadrat - Kubus (https://www.delphipraxis.net/160144-wert-quadrat-kubus.html)

Rakash 29. Apr 2011 14:00

Delphi-Version: 7

Wert - Quadrat - Kubus
 
Wie löse ich folgende Aufgabe;

Es soll eine Tabelle (!) der ersten n-Quadrate und Kubuszahlen ausgegeben werden!

?

Wert --- Quadrat --- Kubus

1 --- 10 --- 100
.
.
.
10 --- 100 --- 1000

etc.

mkinzler 29. Apr 2011 14:03

AW: Wert - Quadrat - Kubus
 
Z.B. mit einem StringGrid

Bummi 29. Apr 2011 14:04

AW: Wert - Quadrat - Kubus
 
[klugscheiß]
wobei das:
1 --- 10 --- 100

falsch ist....
[/klugscheiß]

Rakash 29. Apr 2011 14:10

AW: Wert - Quadrat - Kubus
 
Zitat:

Zitat von Bummi (Beitrag 1097643)
[klugscheiß]
wobei das:
1 --- 10 --- 100

falsch ist....
[/klugscheiß]

das weiß ich auch^^

das sollte nur ne tabelle symbolisieren.

nun ja. ich bin ein blutiger anfänger. ^^
sobald ich die tabelle hab - was dann? wie realisiere ich das mit dem ² und ³ ?

mkinzler 29. Apr 2011 14:12

AW: Wert - Quadrat - Kubus
 
Für das Potenzieren bietet Delphi die Power() Funktion

Bummi 29. Apr 2011 14:17

AW: Wert - Quadrat - Kubus
 
Delphi-Quellcode:
implementation
uses Math;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
C_LIMIT=100;
var
  i,j:Integer;
begin
  StringGrid1.RowCount := C_LIMIT + 1;
  StringGrid1.ColCount := 3;
  for I := 0 to C_LIMIT do
    begin
       for j := 1 to 3 do
       StringGrid1.Cells[j - 1,i] := FloatToStr(Power( i, j));
    end;
end;

Aphton 29. Apr 2011 14:28

AW: Wert - Quadrat - Kubus
 
Das könnte man noch stark optimieren, falls - mal angenommen - die Power Funktion nicht intern irgendeine schnelle Assembler Routine dafür verwendet.
Code:
Spalte1 - Spalte2   - Spalte3
X       - Spalte1*X - Spalte2*X

Bummi 29. Apr 2011 14:31

AW: Wert - Quadrat - Kubus
 
@Aphton

das ließe sich sicher stark optimieren, macht aber bei einer Ausgabe in ein Stringgrid wenig Sinn, da die Bremse in diesem Fall wo anders liegt.

Rakash 29. Apr 2011 14:37

AW: Wert - Quadrat - Kubus
 
Zitat:

Zitat von Bummi (Beitrag 1097647)
Delphi-Quellcode:
implementation
uses Math;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
C_LIMIT=100;
var
  i,j:Integer;
begin
  StringGrid1.RowCount := C_LIMIT + 1;
  StringGrid1.ColCount := 3;
  for I := 0 to C_LIMIT do
    begin
       for j := 1 to 3 do
       StringGrid1.Cells[j - 1,i] := FloatToStr(Power( i, j));
    end;
end;

aus welchem grund arbeitest du mit einer constante?

Aphton 29. Apr 2011 14:37

AW: Wert - Quadrat - Kubus
 
Du hast recht, aber ich wollte es nur mal erwähnt haben für den Fall, dass der Threadstarter für C_LIMIT einen sehr hohen Wert nimmt!

Edit:
Weil das dadurch übersichtlicher wird!
- for i:=0 to 100 do
ginge auch, jedoch versteht man nicht, was das für Grenzen sind. Durch Konstanten kannst du den Grenzen (0 und 100) Namen verpassen!
Weiters lassen sich Konstante überall definieren, dh. du kannst alle Konstanten an einem "Punkt" haben und musst nicht durch den ganzen Code scrollen, um mal kleinere Änderungen vorzunehmen.
Praktisch ists außerdem auch noch, wenn du mehrere Schleifen hast und alle dieselben Grenzen haben sollen, du, falls du mal die Grenze ändern willst, dies nur einmal bei der Konstante machen und nicht einzeln zu allen Schleifendeklaration scrollen musst.

Bummi 29. Apr 2011 14:40

AW: Wert - Quadrat - Kubus
 
Zitat:

aus welchem grund arbeitest du mit einer constante?
weil ich so nur an einer Stelle etwas ändern muß und für eine Variable (die z.B. aus einem Edit gefüllt werden könnte) keine Veranlassung sah.

Rakash 29. Apr 2011 19:20

AW: Wert - Quadrat - Kubus
 
Zitat:

Zitat von Aphton (Beitrag 1097652)
Du hast recht, aber ich wollte es nur mal erwähnt haben für den Fall, dass der Threadstarter für C_LIMIT einen sehr hohen Wert nimmt!

Edit:
Weil das dadurch übersichtlicher wird!
- for i:=0 to 100 do
ginge auch, jedoch versteht man nicht, was das für Grenzen sind. Durch Konstanten kannst du den Grenzen (0 und 100) Namen verpassen!
Weiters lassen sich Konstante überall definieren, dh. du kannst alle Konstanten an einem "Punkt" haben und musst nicht durch den ganzen Code scrollen, um mal kleinere Änderungen vorzunehmen.
Praktisch ists außerdem auch noch, wenn du mehrere Schleifen hast und alle dieselben Grenzen haben sollen, du, falls du mal die Grenze ändern willst, dies nur einmal bei der Konstante machen und nicht einzeln zu allen Schleifendeklaration scrollen musst.


klingt einleuchtend^^

Aphton 29. Apr 2011 19:27

AW: Wert - Quadrat - Kubus
 
Weißt du eigentlich, wie schön es ist, soetwas zu lesen?

In letzter Zeit ärgert man sich hier über einen bestimmten Nutzer, der nichts versteht... bzw. verstehen will!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:16 Uhr.

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