Lazarus/Computer-Mathematik: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
main>Peterdauscher
main>Peterdauscher
Keine Bearbeitungszusammenfassung
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Lazarus-Buch}}
"Computer" heißt wörtlich übersetzt "Rechner" und deshalb wäre es ja jetzt auch Zeit, ein Programm auch einmal etwas ausrechnen zu lassen.  
"Computer" heißt wörtlich übersetzt "Rechner" und deshalb wäre es ja jetzt auch Zeit, ein Programm auch einmal etwas ausrechnen zu lassen.  


Zeile 68: Zeile 69:
</source>
</source>


== Das ganze Programm ==
=== Das ganze Programm zum Rechnen mit Integer-Zahlen ===
Das folgende Programm funktioniert, wenn es auf der Oberfläche die Komponenten <tt>Edit1</tt>, <tt>Edit2</tt> und <tt>Button1</tt> gibt.
Das folgende Programm funktioniert, wenn es auf der Oberfläche die Komponenten <tt>Edit1</tt>, <tt>Edit2</tt> und <tt>Button1</tt> gibt.
{{kasten_blau|<source  line highlight="33-44" lang="pascal">
{{kasten_blau|<source  line highlight="33-46" lang="pascal">
unit zahlen_main;
unit zahlen_main;


Zeile 113: Zeile 114:


c:=a+b; // Addiere a und b und weise den Wert der Variable c zu
c:=a+b; // Addiere a und b und weise den Wert der Variable c zu
Edit3.Text:=IntToStr(c);
Edit3.Text:=IntToStr(c);
end;
end;


Zeile 121: Zeile 124:
end.
end.
</source>}}
</source>}}
==Arbeiten mit Reellen Zahlen==
Das Arbeiten mit reellen Zahlen vom Typ <tt>real</tt> oder <tt>double</tt> funktioniert sehr ähnlich, mit ein paar kleinen Unterschieden:
Statt <tt>IntToStr</tt> und <tt>StrToInt</tt> werden hier die Befehle <tt>FloatToStr</tt> und sinnvollerweise <tt>format</tt> verwendet.
Die Zeile
<source lang="pascal">
Edit3.Text:=format('%5.2f',[c]);
</source>
sorgt dafür, dass die double-Variable <tt>c</tt> in das Edit-Feld geschrieben wird, dass sie insgesamt 5 Stellen und 2 Nachkommastellen hat.
{{kasten_blau|<source  start=33 line highlight="1-14" lang="pascal">
procedure TForm1.Button1Click(Sender: TObject);
var a : double;  // wir erfinden eine Zahlen-Variable a
    b : double;  // wir erfinden eine Zahlen-Variable b
    c : double;  // wir erfinden eine Zahlen-Variable c
begin
a:=StrToFloat(Edit1.Text);  // belege die Variablen
b:=StrToFloat(Edit2.Text);  // mit den Inhalten der Edit-Felder
c:=a+b; // Addiere a und b und weise den Wert der Variable c zu
Edit3.Text:=format('%5.2f',[c]);
end;</source>
}}
Weitere Rechenoperationen für reelle Zahlen sind:
{| class ="wikitable toptextcells"
! Rechenoperation
! Rechenzeichen <br />in der Sprache Pascal
! Beispiel
|-
| Exponentialfunktion|| <nowiki>exp(x)</nowiki> || y:=exp(x);
|-
| Sinus-Funktion|| <nowiki>sin(x)</nowiki> || y:=sin(x);
|-
| Cosinus-Funktion|| <nowiki>cos(x)</nowiki> || y:=cos(x);
|-
| Tangens|| <nowiki>tan(x)</nowiki> || y:=tan(x);
|}
{{Lazarus-Buch}}

Version vom 5. Januar 2013, 17:03 Uhr

"Computer" heißt wörtlich übersetzt "Rechner" und deshalb wäre es ja jetzt auch Zeit, ein Programm auch einmal etwas ausrechnen zu lassen.

Dafür muss das Programm drei Dinge tun:

  • Die Zahlen, die verrechnet werden müssen, müssen von der Benutzeroberfläche eingelesen werden.
  • Die Zahlen müssen zu einem Ergebnis verrechnet werden.
  • Das Ergebnis der Verrechnung muss auf der Benutzeroberfläche ausgegeben werden.

Arbeiten von Integer-Variablen

Einlesen von Integer-Variablen

Gibt ein Benutzer eine Zahl ein, steht sie in der Eigenschaft Text. Jedenfalls stehen die einzelnen Ziffern als Zeichenkette in der Eigenschaft Text. Aus der Zeichenkette z.B. in Edit1.Text muss jetzt eine "richtige" Zahl (z.B. vom Typ integer) werden.

Das besorgt der Befehl StrToInt:

a:=StrToInt(Edit1.Text);

Diese Zeile sorgt dafür, dass der Integer-Variablen a die Wert zugewiesen wird, die der Benutzer in das Edit-Feld Edit1 geschrieben hat.

Bevor man jedoch der Variable a einen Wert zuweisen kann, muss der Computer wissen, dass es überhaupt eine Integer-Variable mit Namen a gibt.

Dies geschieht mit Hilfe einer so genannten Variablendeklaration:

var a : integer;

Wichtig: Dieser Befehl steht noch vor dem Begin.

Rechnen mit Integer-Variablen

Nehmen wir an, wir hätten drei Integer-Variablen, a,b und c. Das Programm soll nun die Summe der Werte in a und b ausrechnen; das Ergebnis soll in der Variablen c gespeichert werden.

Dies erreicht man wieder mit einem Zuweisungsbefehl mit dem stilisierten Pfeil nach links:

c := a+b;

Natürlich gibt es neben der Addition von Integer-Zahlen auch andere Rechenoperationen:

Rechenoperation Rechenzeichen
in der Sprache Pascal
Beispiel
Addition + c:=a+b;
Subtraktion - c:=a-b;
Multiplikation * c:=a*b;
(ganzzahlige) Division div c:=a div b;
Rest der (ganzzahligen) Division mod c:=a mod b;

Die ganzzahlige Division ist die Division, die die meisten von uns aus der Grundschule kennen:

Den Wert "6" würde dann die Rechenoperation 34 div 5 liefern, den Wert "4" die Operation 34 mod 5.

Ausgabe von Integer-Variablen

Bisher steht das Ergebnis nur in der Variable c. Der Benutzer des Programms sieht davon gar nichts. Der Wert muss noch irgendwie auf der Oberfläche erscheinen. Eine Möglichkeit dazu wäre, die Zahl in ein weiteres Edit-Feld zu schreiben:

Edit3.Text:=IntToStr(c);

Das ganze Programm zum Rechnen mit Integer-Zahlen

Das folgende Programm funktioniert, wenn es auf der Oberfläche die Komponenten Edit1, Edit2 und Button1 gibt. Vorlage:Kasten blau

Arbeiten mit Reellen Zahlen

Das Arbeiten mit reellen Zahlen vom Typ real oder double funktioniert sehr ähnlich, mit ein paar kleinen Unterschieden:

Statt IntToStr und StrToInt werden hier die Befehle FloatToStr und sinnvollerweise format verwendet.

Die Zeile

Edit3.Text:=format('%5.2f',[c]);

sorgt dafür, dass die double-Variable c in das Edit-Feld geschrieben wird, dass sie insgesamt 5 Stellen und 2 Nachkommastellen hat.

Vorlage:Kasten blau

Weitere Rechenoperationen für reelle Zahlen sind:


Rechenoperation Rechenzeichen
in der Sprache Pascal
Beispiel
Exponentialfunktion exp(x) y:=exp(x);
Sinus-Funktion sin(x) y:=sin(x);
Cosinus-Funktion cos(x) y:=cos(x);
Tangens tan(x) y:=tan(x);