Mathematische Operatoren

Grundrecharten Rechner

Mathematischen Operatoren

Die Mathematischen Operatoren erklärt anhand eines Grundrechenarten Rechners Abbildung 1.00.

Der Aufbau des Grundrechenarten Rechners.

Im Kopfbereich ist das Copyright mit Logo. Dies basiert auf einem TPanel Komponente und einem zentrierten TImage Komponente.

Der eigentliche Rechner hat als Basis Content Bereich ein TPageControl. Der Eingabe, Button und Ergebnisbereich sind zusätzlich mit jeweils einem TPabel hinterlegt und farblich gestaltet über die Eigenschaft Color. Die Caption der Komponente TPanel wird leer gelassen. Im Eingabebereich und Ergebnisbereich ist die Überschrift mit der Komponente TDividerBevel erstellt. Im Eingabebereich sind Zahl1 und Zahl2 zwei Komponenten vom Typ TLabel mit den Namen LblZahl1 und LblZahl2. Die Eingabefenster sind vom Typ TEdit und tragen den Namen EdtZahl1 und EdtZahl2. Im blauen Button Bereich sind vier Buttons mit der Aufschrift Addition +, Subtraktion -, Multiplikation *, und Division / die Namen der einzelnen Button lautet wie folgt: BtnAddition, BtnSubtraktion, BtnMultiplikation und BtnDivision. Damit wir auch bei einem größeren programm die Komponenten unterscheiden können werden zusätze wie Edt für Editfeld, Lbl für Label oder Btn für Button zu den eigentlichen Namen hinzugefügt. Bei großen Software Projekten beschriftet man die Komponenten zusätzlich noch mit dem Bereichsnamen. Als Beispiel wurde da der Button nicht BtnAddition, sondern BtnGrReRAddition heißen für die Abkürzung Button (Btn) Grundrechenarten Rechner (GrReR) Addition. So kommt es bei einem großen Programm nicht dazu das zwei Button den gleichen Namen tragen.

7.1 Der Additionsoperator, Plus Operator

Die erste Prozedur ist die Addition, diese ist bei der Button Eigenschaft im Objektinspektor hinterlegt. Die Eigenschaft die wir hier verwenden ist ein OnClick Ereignis.

Nachfolgend kann du dir den Quellcode ansehen.
procedure TForm1.BtnAddititionClick(Sender: TObject);
var
douErgebnis : double;
begin
douErgebnis := StrToFloat(EdtZahl1.Text) + StrToFloat(EdtZahl2.Text);
EdtErgebnis.Text := FloatToStr(douErgebnis);
end;
In Zeile eins siehst du den Prozedur Header mit dem zugehörigen Form1 und dem Prozedurnamen. Der Prozedur Name wird automatisch festgelegt, durch den Klick auf die Eigenschaft OnClick mit den drei Punkten. In der zweiten Zeile leite wir die Variablendeklaration ein. Die dritte Zeile ist für die Festlegung der Variablen da. Wir definieren die Variable douErgebnis als Double. Double ist eine Gleitkommazahl. Danach folgt in der vierten Zeile mit dem Wort begin, die Einleitung des Prozedur Rumpfes. In der fünften Zeile wird die eigentliche Operation durchgeführt, die Addition. Die in den Editfeldern hinterlegen Zahlen sind Texte, daher müssen sie mit der Funktion StrToFloat erst in eine Zahl umgewandelt werden. Danach wird die Addition ausgeführt und das Ergebnis in strErgebnis gespeichert. In Zeile sechs wird das Ergebnis von douErgebnis durch die Funktion FloatToStr() wieder in einen Text umgewandelt. Und im Editfeld EdtErgebnis gespeichert.

7.2 Der Subtraktionsoperator, Minus Operator

Nachfolgend kannst du dir den Code für den Subtraktionsoperator ansehen

procedure TForm1.BtnSubtraktionClick(Sender: TObject);
var
douErgebnis : double;
begin
douErgebnis := StrToFloat(EdtZahl1.Text) - StrToFloat(EdtZahl2.Text);
EdtErgebnis.Text := FloatToStr(douErgebnis);
end;

Die Prozedur sieht exakt gleich aus wie beim Plusoperator bis das in Zeile eins der Prozedurname ändert und in Zeile 5 ein Minuszeichen eingesetzt wird.

7.3 Der Multiplikationsoperator, Mal Operator
Nachfolgend kannst du dir den Code für den Subtraktionsoperator ansehen.

procedure TForm1.BtnMultiplikationClick(Sender: TObject);
var
douErgebnis : double;
begin
douErgebnis := StrToFloat(EdtZahl1.Text) * StrToFloat(EdtZahl2.Text);
EdtErgebnis.Text := FloatToStr(douErgebnis);
end;
Bei dem Multiplikationsoperator wiederholt sich das Ganze noch einmal.

7.4 Der Divisionsoperator, Teilen Operator
Nachfolgend kannst du dir den Code für den Subtraktionsoperator ansehen.

procedure TForm1.BtnDivisionClick(Sender: TObject);
var
douErgebnis : double;
begin
douErgebnis := StrToFloat(EdtZahl1.Text) / StrToFloat(EdtZahl2.Text);
EdtErgebnis.Text := FloatToStr(douErgebnis);
end;

Bei dem Divisionsoperator wiederholt sich das Ganze ein weiteres mal.

Fehler und Anzeigen im Debugger.

Abb. 1.01 Debugger Fehler 01
Abb. 1.01 Debugger Fehler 01

Hier im Bild seht ihr einen Quellcode Auszug der Prozedur BtnDivisionClick aus unserem Programm und das Nachrichtenfenster von Lazarus. In Zeile 81 fehlt am Ende ein Komma. Die Nachricht des Debuggerfensters lautet: Fatal: System error. “;“ expected but “identifier EDTERGEBNIS“ found. Der Debugger beschreibt damit den Fehler sehr gut er vermisst ein Semikolon vor EdtErgebnis.

Abb. 1.02 Debugger Fehler 02
Abb. 1.02 Debugger Fehler 02

Der zweite Fehler zeigt das unsere definierte Variable in Zeile 79 kein Double, sondern ein Integer ist. Ein Integer ist eine Ganzzahl. Bei einer Division von Ganzzahlen kann auch eine Zahl mit Komma herauskommen. Ein Beispiel 5 / 2 = 2,5.
Im Nachrichtenfenster siehst du den Fehler: Use DIV instead to get an integer result = Verwenden Sie DIV um ein Integer Resultat zu erhalten. Der zweite Fehler Error: Incompatible types: got “Double“ expected LongInt. Inkompatible Typen bekam Double erwarte Integer. Das liegt daran das ich in Zeile 79 unsere Variable von Double nach Integer geändert habe. Er erwartet einen Integer Wert in Zeile 81 bekommt durch die Funktion StrToFloat aber einen Double Wert.
Gut, das soll es auch zu den Mathematischen Operatoren gewesen sein. Ich hoffe ich konnte euch ein wenig Neues beibringen und es geht im nächsten Kapitel weiter mit den Vergleichsoperatoren.

Inhaltsverzeichnis

Kapitel 01: Aufbau
1.1 Vorwort und Kursaufbau
1.2 Ressourcen
1.3 Der Autor und Kontakt
1.4 Das E-Book / PDF Dokumente
1.5 Der Videokurs

Kapitel 02: Installation
2.1 Lazarus IDE Bezugsquellen
2.2 Installation unter Windows
2.3 Installation unter Linux

Kapitel 03: Überblick
3.1 Die Lazarus-IDE
3.1 Projekt neu starten
3.2 Projekteinstellungen
3.2.1 Form Icon ändern
3.2.2 Compiler Einstellungen
3.2.3 Versionsinformationen
3.3 Das Form
3.4 Objektinspektor
3.5 Nachrichten
3.6 Projekt speichern

Kapitel 04: Eingabe und Ausgabe
4.1 In der Windows Konsole
4.2 Im Fenster mit GUI
4.3 TLabel: Label -> Text
4.4 TEdit: Editfeld
4.5 TButton: Button
4.6 TBitBtn: Button mit Bild
4.7 TMainMenu: Das Hauptmenü
4.8 TCombobox: PullDown Menü
4.9 TPageControl
4.10 Die Komponenten Bibliothek

Kapitel 05: Variablen und Konstanten
5.Variablen mit ganzen Zahlen
5.2 Variablen mit Komma
5.3 Variablen mit einem Zeichen
5.4 Variablen mit Text
5.5 Konstanten

Kapitel 06: Stings
6.1 Länge eines Strings
6.2 Wortsuche im String
6.3 Zeichen ersetzen
6.4 Position Ab
6.5 Wort an Pos X einfügen

Kapitel 07: Arithmetische Operatoren
7.1 Der Additionoerator, Plus Operator
7.2 Der Subtraktionsoperator, Minus Operator
7.3 Der Multiplikation, Mal Operator
7.4 Der Divisionsoperator, Teilen Operator

Kapitel 08: Vergleichsoperatoren
8.1 Der Gleichoperator
8.2 Der kleiner Operator
8.3 der größer Operator
8.4 Der Kleiner-Gleichoperator
8.5 Der Größer-Gleichoperator

Kapitel 09: Abfragen mit IF-Else
9.1 If Abfrage
9.1 If Else Abfrage
9.2 verschachtelte IF Else Abfragen

Kapitel 10: Array
10.1 Grundlagen zum Array
10.2 Statisches Array
10.3 Eindimensonale Arrays
10.3 Mehrdimensonale Arrays
10.4 Dynamische Arrays
10.5 Zugriff auf ein Array

Kapitel 11: Schleifen
11.1 Die For Schleife
11.2 Die For Schleife mit Array
11.3 Die While Schleife
11.4 Die Do While Schleife
11.4 Die Repeat Unitl Schleife

Kapitel 12: Prozeduren und Funktionen
12.1 Prozeduren
12.2 Funktionen

Kapitel 13: Programmierkonzepte
13.1 Das 2 Schichtenmodell
13.2 Das 3 Schichtenmodell
13.3 Das Mehrschichtenbnmodell

Kapitel 14: objektorientierte Programmierung (kurz OOP)
14.1 Das Konzept
14.2 Eigene Units (Klassen)
14.3 Instanzen und Objekte
14.4 Methoden
14.5 Attribute (Eigenschaften)
14.6 Interface (Schnittstellen)

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.