Das Berechnen von Wertetabellen an sich ist in Pascal das kleinere Problem. Allerdings muss man sich erst an die Ausgabe-Komponenten gewöhnen. Der Komponenten-Typ TStringGrid stellt ein zweidimensionales Feld zur Verfügung, das man sich mit Hilfe des Objekt-Inspektors maßschneidern kann. Interessant sind dabei zunächst folgende Eigenschaften:
TStringGrid.ColCount : Maximale Spaltenzahl TStringGrid.RowCount : Maximale Reihezahl TStringGrid.FixedCols : fixiert für Überschriften TStringGrid.FixedRows : fixiert für Überschriften TStringGrid.Cell[x,y] : Inhalt der Zellen (strings)
Die Breite einer Spalte TStringGrid.ColWidth erscheint nicht im Objekt-Inspektor sondern, lässt sich nur während der Laufzeit ändern |
procedure TForm1.Button1Click(Sender: TObject);
var n : integer;
begin
for n:= 1 to 20 do begin
Tabelle.Cells[0,n] := IntToStr(x);
Tabelle.Cells[1,n] :=IntToStr(x*x);
end;
end;
Die obige Prozedur ist aus verschiedenen Gründen sehr unflexibel:
1. Die Funktionswerte können nur für ganzzahlige x-Werte berechnet werdenDieses Problem lässt sich mit Hilfe eines anderen Schleifen-Konstrukts lösen und zwar mit einer sog. while ... do - Wiederholungsschleife. Zunächst muss der x-Wert mit dem Startwert der Tabelle initialisiert werden. Der Zeilenzähler für die Tabelle wird mit zz := 1 für die Zeile Nummer 1 initialisiert.
Bei jedem Schleifendurchgang müssen folgendes gemacht werden:
1. Berechne y := x*xDie Schleife wird abgebrochen, sobald die Bedingung x < =10 nicht mehr erfüllt ist:
procedure TForm1.Button1Click(Sender: TObject);
var zz : integer;
x,y : real;
begin
zz := 1; x := 0;
// Initialisierung
while x <= 10 do begin
y := x*x;
// Berechnung der Funktionswerte
Tabelle.Cells[0,zz] := FloatToStr(x);
// Ausgabe der x-Werte
Tabelle.Cells[1,zz] := FloatToStr(y);
// Ausgabe der y-Werte
x := x+0.5; inc(zz); //
Vorbereitung f. nächsten Durchgang
end;
end;
© Dietrich Praclik