Programmieren mit Lazarus. Die Programmoberfläche das Hauptfenster der Objektinspektor das Formular der Quelltexteditor Komponenten...... hier einfügen...

Slides:



Advertisements
Ähnliche Präsentationen
Forschungszentrum caesar
Advertisements

10. Grundlagen imperativer Programmiersprachen
12. Iteration und Rekursion
DINAMISCHE STRUKTUREN FACHBEGRIFFE 1. DER POINTERDER POINTER 2. DER BUFFERDER BUFFER 3. DER KNOTENDER KNOTEN DIE EINFACHVERKETTETE LISTE DEFINITION DEFINITION.
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
V AdresseWert public static void main(...){ int[] v; v=new int[2]; } Was veranlasst diese Anweisung im Arbeitsspeicher ? Es wird im Arbeitsspeicher.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Imperative Programmierung
Der C-Präprozessor EDV1 - 04Präprozessor.
Der C-Präprozessor 08-CPräprozessor.
Delphi Eine objektorientierte Programmiersprache © Beushausen 2000.
Grundkonzepte Java - Klassendefinition
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
Eine Einführung in die Entwicklung ereignisgesteuerter Programme
Delphi II - OOP IFB Fortbildung
INHALT INHALT Inhalt Delphi IDE ObjectPascal Hello World! Delphi IDE
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Einführung in die Programmierung
Einführung in die objektbasierte Programmierung mit Delphi
Einführung in die Programmiersprache C 4
Wiederholte Programmausführung
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Konzept einer Programmiersprache!
Grundlagen von Objekt-Pascal Erstellt von J. Rudolf überarbeitet von H.Brehm.
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Programiersprache Mustafa SÖYLEMEZ e
MODULA-2.
Agenda für heute, 20. April, 2006 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Agenda für heute, 12. Mai, 2005 ProzedurenProzeduren Funktionsprozeduren Prozedurparameter Lokale und globale Variablen Datentypen: Ordinaltypen.
Agenda für heute, 14. April, 2005 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Erste Schritte in DELPHI
PHP: Operatoren und Kontrollstrukturen
Zeichenketten in PASCAL
Hochschule Fulda – FB ET Sommersemester 2014
Vorkurs Programmierungstechnik Einführung in Pascal Michael Gellner Lehrstuhl für Softwaretechnik am Institut für praktische Informatik der Universität.
Schleifen
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
Der Datentyp Verbund (record)
Agenda für heute, 21. April, 2005 Interaktion mit Pascal-ProgrammenInteraktion mit Pascal-Programmen Dateneingabe Programmsteuerung Debugging Datentypen:
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
(Syntax, Strings/Zahlen, Variablen, Arrays)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
MATLAB Control Statements.
Delphi Chars und Strings
The Programming Language Pascal
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Prüfungsbesprechung Barbara Scheuner Vorlesung: Programmieren und Problemlösen Prof. Hans Hinterberger.
Programmiersprache PASCAL
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
1 freedroidz – spielend Programmieren lernen. 2 Was ist freedroidz?
Wiederholte Programmausführung
Konstruktoren.
Entwicklungsumgebung Lazarus
Objektorientierte Programmierung
Datentypen: integer, char, string, boolean
Prüfungsbesprechung Barbara Scheuner
Datentypen: integer, char, string, boolean
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
Die Struktur einer Java-Klasse
Unterschiedliche Kontrollstrukturen
6. Wiederholungen und Zählschleifen
SS 04 Christiane Rauh Christian Hellinger
Arten von Kontrollstrukturen
Unterschiedliche Arten von Kontrollstrukturen
Schleifen mit der Turtle
GRUNDLAGEN WISSENSCHAFTLICHEN ARBEITENS MODULA-2 SONAY SUBAYAZ
Schleifen Datenfelder (Arrays) Verzweigungen
The Programming Language Pascal
 Präsentation transkript:

Programmieren mit Lazarus

Die Programmoberfläche das Hauptfenster der Objektinspektor das Formular der Quelltexteditor Komponenten hier einfügen... hier Eigen- schaften ändern... hier Ereignisse programmieren compilieren und starten

Object-Pascal Ereignis (Knopf 1 drücken) procedure TForm1.Button1Click(Sender: TObject); var a,b:integer; begin a:=strtoint(edit1.Text); b:=a*a; edit2.Text:=inttostr(b) end; Definition der Variablen Anweisungs- block Zuweisung (links ergibt sich aus rechts) Textinhalt eines Eingabefeldes Formatumwandlung (Festkommazahl in Zeichenkette) Semikolon schließt Anweisung ab Berechnung

Eine Prozedur programmieren ● Erzeugen der notwendigen Komponenten im Formular ● Doppelklick auf das Element erzeugt eine Prozedur namens TForm1.Button1Click... im Quelltexteditor (andere Ereignisse mit Objektinspektor erzeugen) ● notwendige Variablendefinitionen vor begin einfügen ● Programmtext zwischen begin und end einfügen dann speichern, compilieren und testen

Das erste Programm ● Programmiere einen Rechner, der ganze Zahlen addieren und subtrahieren kann! – zwei Eingabe- und ein Ausgabefeld (TEdit) – je ein Button für Addition und Subtraktion (TButton, Beschriftung im Objektinspektor unter „Caption“ anpassen) – Variablendefinition: var a,b,c:integer; – Formatumwandlungen: ● Variable := strtoint( Eingabefeldtext ) ● Ausgabefeldtext := inttostr( Variable ) – einen Button zum Schließen ergänzen ( close )

Verbesserungen ● Ergänze Multiplikation und Division! – Der Zahlenbereich muss verändert werden, da bei der Division gebrochene Zahlen auftreten können! ● statt var a,b,c:interger; verwendet man die Variab- lendefinition var a,b,c:real; ● statt strtoint() bzw. inttostr() verwendet man die Anweisungen strtofloat() bzw. floattostr() ● Kommazahlen müssen im laufenden Programm mit einem Punkt als Dezimaltrenner eingegeben werden!

Kommentare ● Umfangreichere Quelltexte können schnell unübersichtlich werden. Deshalb besteht die Möglichkeit, Kommentare in den Quelltext einzufügen. Kommentare werden vom Compiler beim Übersetzen des Programms ignoriert. ● Object Pascal bietet zwei Schreibweisen: – geschweifte Klammern: { Kommentar } – diese Kommentare können auch mehrzeilig sein – zwei Schrägstriche an den Anfang: // Kommentar – alles was rechts vom Kommentarzeichen steht wird als Kommentar interpretiert – Lazarus hebt Kommentare blau und fett hervor!

lokale und globale Variablen ● Variable, die innerhalb einer Prozedur definiert werden, gelten auch jeweils nur für die eine Prozedur (d.h. der Speicher wird nur beim Ausführen dieser Prozedur belegt) → lokale Variablen ● Werden Variablen für mehrere Prozeduren benötigt, ist es sinnvoll, sie als globale Variablen zu definieren. Sie gelten dann für die gesamte Unit (d.h. der Speicher wird bereits beim Ausführen der Unit, = Erzeugen des Fensters, reserviert).

globale Variablen ● globale Variablen werden an folgender Stelle im Kopf der Unit definiert:... private { private declarations } public { public declarations } end; var Form1: TForm1; a,b,c: real; implementation { TForm1 }... Deklarationen globale Variablen Implementation

Selektion ● bedingte Auswahl:if → then ● alternative Auswahl:if → then / else Bedingung ja (erfüllt) Prozedur 1 ausführen nein (nicht erfüllt) Prozedur 2 ausführen

Beispiel: Abfangen nicht erlaubter Operationen einzeln stehende Anweisungen müssen nicht in begin und end eingefasst werden ● Division durch 0 ist nicht erlaubt: procedure TForm1.Button4Click(Sender: TObject); begin a:=strtofloat(edit1.Text); b:=strtofloat(edit2.Text); if b=0 then edit3.Text:='nicht erlaubt' else begin a:=strtofloat(edit1.Text); b:=strtofloat(edit2.Text); c:=a/b; edit3.Text:=floattostr(c) end; kein Semikolon vor else!

Aufgaben ● Ergänze deinen Programmtext mit sinnvollen Kommentaren! ● Definiere die in allen Prozeduren zur Berechnung verwendeten Variablen global! ● Fange alle Divisionen durch 0 (Division und Wurzel) durch alternative Selektionen ab! ● Zusatz: – Teste dein Programm auf weitere unerlaubte Operationen (z.B. Zahlenbereichsüberschreitungen beim Potenzieren) und fange sie ebenfalls mit alternativen Selektionen ab!

weitere Kontrollstrukturen ● Neben der Selektion (if → then → else) existieren noch weitere Kontrollstrukturen: – die case-Anweisung (Mehrfachauswahl) – Schleifen: ● for-Schleife (Zählschleife) ● while-Schleife (überprüft die Bedingung vor dem Schleifendurchlauf) ● repeat-Schleife (überprüft die Bedingung erst nach dem Schleifendurchlauf)

Mehrfachauswahl ● Die case-Anweisung vermeidet komplizierte if- then-Konstrukte. Sie benötigt einen ordinalen (abzählbaren) Datentyp (z.B. integer, char). ● Beispiel: var farbe:integer;... case farbe of 0: memo1.Color:=clWhite; 1: memo1.Color:=clAqua; 2: memo1.Color:=clRed; 3: memo1.Color:=clLime; end ordinaler Datentyp! Anweisungsblöcke mit begin und end kapseln!

Mehrfachauswahl case farbe of 0: memo1.Color:=clWhite; 1: memo1.Color:=clAqua;... entspricht: if farbe=0 then memo1.Color:=clWhite; if farbe=1 then memo1.Color:=clAqua;... Analog zu if-then kann man auch die case- Anweisung mit einem else-Zweig (für alle anderen Fälle) kombinieren.

Zählschleife ● Zählschleifen wiederholen den Inhalt so oft wie festgelegt. ● Beispiel: var i,j:integer;... j:=SpinEdit1.Value; for i:=1 to j do begin //Anweisungen end; Anzahl festlegen Einzelanweisungen müssen nicht mit begin und end gekapselt werden

while-Schleife ● Eine while-Schleife wird sooft durchlaufen, wie die Bedingung erfüllt ist. Sie wird im Extremfall (Bedingung schon zu Beginn nicht erfüllt) gar nicht durchlaufen. ● Beispiel: while j<i do begin //Anweisungen j:=j+1 end Achtung! Gefahr einer Endlosschleife (falls Bedingung immer erfüllt bleibt)

repeat-Schleife ● Im Gegensatz zur while-Schleife wird hier die Bedingung erst überprüft, nachdem die Schleife durchlaufen wurde. Sie wird also mindestens einmal durchlaufen. ● Beispiel: repeat // Anweisungen i:=i+1; until i<100; begin und end auch bei Anweisungsblöcken nicht notwendig! Achtung! Ebenfalls Gefahr einer Endlosschleife