athena.gif (7242 Byte)

 1.Einführung in Delphi
    
 1.1. Was ist Delphi?
 1.2. Algorithmen und Programme
 1.3. Entwicklung und Einteilung der Programmiersprachen
 1.4. Visuelles Programmieren mit Delphi

  1.1. Was ist Delphi?


Delphi ist ein Entwicklungssystem zum Erstellen von Windowsprogrammen. Dazu werden ein leistungsfähiger Pascal-Compiler, visuelle Komponenten und die Möglichkeit des Erstellens von Datenbankprogrammen in einem System vereinigt.

Mit Delphi kann jeder einfach, sicher und schnell Windowsprogramme entwickeln.

Der Vorteil von Windowsprogrammen liegt in ihrer einheitlichen Bedienung. Die meisten Windowsprogramme besitzen eine Menüleiste und ein Hauptfenster und lassen sich größtenteils mit der Maus bedienen. Programme werden in Fenstern ausgeführt, die oft nur einen Teil des gesamten Bildschirmes beanspruchen. Dieser Fenstertechnik verdankt Windows seinen Namen. Über Fenster und Dialoge, die sogenannten Benutzerschnittstellen, kommuniziert der Anwender mit dem Programm.

Die grafische Benutzeroberfläche von Windows unterscheidet sich in vielen Punkten vom textorientierten Betriebssystem DOS. Dies hat auch für den Programmierer Konsequenzen.

DOS WINDOWS
Unter DOS kann nur ein Programm gestartet werden. Mehrere Programme können gleichzeitig gestartet werden.
Das laufende Programm besitzt alleinigen und uneingeschränkten Zugriff auf die Hardware. Mehrere Programme können gleichzeitig auf die Hardware zugreifen, z.B. auf den Drucker.
Der Zugriff auf die Hardware wird von Windows kontrolliert.
Die Hardware wird direkt programmiert. Windows stellt Funktionen für den Zugriff auf die Hardware zur Verfügung. Es werden z.B. dieselben Funktionen zur Druckeransteuerung für Laser-, Tintenstrahl- und Nadeldrucker verwendet.
Die Oberfläche ist textorientiert. Die Oberfläche ist grafikorientiert.
Das Programm wartet auf Benutzereingaben, indem es in einer Schleife die Maus und die Tastatur abfragt. Windowsprogramme bekommen eine Nachricht, wenn für sie eine Maus- oder Tastatureingabe vorliegt.
Die Ein- und Ausgabe ist bildschirmorientiert. Die Ein- und Ausgabe ist fensterorientiert.

Seitenanfang

  1.2. Algorithmen und Programme


Die elektronische Datenverarbeitung (EDV) ermöglicht die Erleichterung der menschlichen Arbeit durch den Einsatz von Maschinen bzw. Computern. Damit der Computer verschiedene Arbeitsschritte automatisch ausführen kann, müssen diese vorher genau beschrieben werden. Ein Algorithmus ist eine Folge von Anweisungen, die genau diese Arbeitsschritte beschreiben.

Allgemein bezeichnet man einen Algorithmus als eine eindeutige Beschreibung eines endlichen Verfahrens zur Lösung einer Vielzahl von Problemen gleicher Art.

Jedes Problem, dessen Lösung durch einen Algorithmus beschrieben werden kann, ist im Prinzip durch einen Computer lösbar.

Ein Programm ist eine Folge von Anweisungen (Algorithmus), die in einer Programmiersprache wie z.B. Pascal formuliert sind.

In einem Programm stehen somit nur Anweisungen, die der Computer versteht und umsetzen kann.

Seitenanfang

  1.3. Entwicklung und Einteilung der Programmiersprachen


Da man noch nicht in natürlicher Sprache mit einem Rechner kommunizieren kann, wurden im Laufe der Jahre verschiedene Programmiersprachen entwickelt.
Der Unterschied zwischen gesprochenen Sprachen und Programmiersprachen liegt darin, dass die Worte einer Programmiersprache nur eine Bedeutung zulassen, während der Sinngehalt mancher Worte der Umgangssprache erst aus dem Kontext heraus deutlich werden kann. Ein Rechner benötigt aber stets eindeutig formulierte Anweisungen zur Bearbeitung.


Wie viele Programmiersprachen und Programmiersysteme es heute weltweit gibt, lässt sich nicht beantworten. Es können einige hundert sein, da viele Sprachen nur für spezielle Aufgaben und Einsatzgebiete konzipiert wurden. Die bekanntesten Programmiersprachen lassen sich in Auszügen in folgende Hauptgruppen unterteilen:

Einteilung der Programmiersprachen

 

1. Generation: Maschinensprachen

Die ersten EDV-Anlagen (Ende der 40er Jahre) ließen sich nur maschinennah programmieren. Der Programmcode musste bitweise in den Speicher des Rechners geschrieben werden. Der Vorteil der maschinennahen Programmierung liegt bis heute darin, dass diese Art von Programm direkt von einem Computer ausgeführt werden kann. Allerdings sind sehr genaue Rechnerkenntnisse erforderlich, da alle Anweisungen in Form von elementaren Befehlen sehr kleinschrittig beschrieben werden müssen. Problematisch gestaltet sich die Fehlersuche, wenn ein Programm überhaupt nicht läuft oder falsche Ergebnisse liefert.

Beispiel: 11001011
00110101
11100011
10111101
2. Generation: Assemblersprachen

Die Assemblersprachen, deren Befehlsvorrat speziell für jeden Rechnertyp zugeschnitten ist, verwenden anstelle des Binärcodes leichter verständliche Symbole, Mnemonics genannt. Ein Assemblerprogramm ist auf einem Computer nicht mehr direkt ablauffähig, sondern muss erst in ein entsprechendes Maschinenprogramm übersetzt werden. Ein Programm, das dies automatisch durchführt, bezeichnet man als Assembler, den Übersetzungsvorgang als assemblieren. Der Nachteil von Assemblerprogrammen besteht darin, dass sie auf eine ganz bestimmte Hardware zugeschnitten sind und sich nur schwer auf andere Computertypen übertragen lassen. Bei größeren Problemlösungen werden die Programme sehr umfangreich und damit wartungsunfreundlich. Daher werden Assemblersprachen hauptsächlich nur noch da, wo Programme und Programmsysteme schnell reagieren müssen, und für Teile des Betriebssystems eingesetzt.

Beispiel: ADD FELD_2 FELD_3
MOV BX, OFFSET FELD_3
3. Generation: Prozedurale Programmiersprachen

Diese Sprachengeneration, der die überwiegende Mehrheit der heute gebräuchlichen Programmiersprachen angehört, ist unabhängig von einem Computersystem. Lediglich der Übersetzer (Interpreter oder Compiler) muss an das jeweilige System angepasst sein und den entsprechenden Maschinencode erzeugen. Prozedurale Sprachen besitzen einen speziellen, der menschlichen Sprache angenäherten Befehlssatz, um Probleme aus einem bestimmten Anwendungsbereich zu lösen. Sie lehnen sich somit an die Denkweise des Programmierers an. Auch ohne fundamentierte Programmierkenntnisse lassen sich diese Programme leicht nachvollziehen. Die Bezeichnung "prozedural" kennzeichnet den modularen Aufbau der entsprechenden Programme in Prozeduren oder Funktionen.

Beispiel: Write('Fahrstrecke='); Readln(kilometer);
Write('Benzin='); Readln(liter);
verbrauch := liter/kilometer * 100;
Writeln('Sie verbrauchten auf 100 km ',verbrauch);
if verbrauch > 7 then writeln "Verbrauch zu hoch!";
4. Generation: Nichtprozedurale Programmiersprachen

Bei nichtprozeduralen Programmiersprachen wird nicht mehr festgelegt, wie ein Problem gelöst wird, sondern der Programmierer beschreibt lediglich, was das Programm leisten soll. Danach werden diese Angaben von dem Programmiersystem in ein Programm umgesetzt. Der Vorteil dieser Sprachen besteht darin, dass für diese Art der Programmierung keine umfangreiche Programmierausbildung notwendig ist. Nichtprozedurale Programmiersprachen werden z.B. für Datenbankabfragen oder Tabellenkalkulationen eingesetzt.
In Delphi verwendet man z.B. die visuellen Komponenten, um eine Benutzerschnittstelle zu erstellen.

Beispiel: select KUNDE from TABLE_1 where ALTER > 18
create ERWACHSENE
5. Generation: Programmiersprachen der künstlichen Intelligenz
Die Programmierung der künstlichen Intelligenz (KI) dient der fortgeschrittenen Programmierung. Es wird versucht, die natürliche Intelligenz des Menschen (z.B. seine Lernfähigkeit) durch entsprechend konstruierte Computer nachzuvollziehen. Hierbei fließt beispielsweise auch die natürliche Sprache in die Programmierung ein. KI-Programme werden überwiegend zu Forschungszwecken eingesetzt und beschreiben Schlussfolgerungen aus Forschungsergebnissen. Erfolgreich werden derartige Systeme zur Spracherkennung eingesetzt.

Beispiel: Berechnung auswerten.

Einordnung von Delphi:

    Als komplexes Programmiersystem lässt sich Delphi in zwei Generationen einordnen:

      • die von Delphi verwendete Programmiersprache Object Pascal ordnet man in der 3. Generation ein.
      • die visuellen und SQL-Komponenten gehören der 4. Generation an.

Aufgrund dieser Einordnung wird Delphi auch als eine hybride Programmiersprache bezeichnet.
Die Kombination der Funktionalität zweier Generationen von Programmiersprachen mit visuellen Programmiertechniken führen zu einer hohen Bedienerfreundlichkeit bei der Programmerstellung gepaart mit einer enormen Mächtigkeit der erzeugbaren Programme.


Seitenanfang

ru.gif (971 Byte) 1.4. Visuelles Programmieren mit Delphi

Interpreter und Compiler


Der Prozessor eines Computers kann nur Maschinenbefehle lesen (bestehend aus Binärcode 0/1). Programme, die nicht in Maschinensprache geschrieben sind, müssen erst in diese übersetzt werden.
Die Aufgabe des Übersetzens übernehmen eigens dafür entwickelte Programme, Interpreter oder Compiler genannt.

Interpreter Interpreter übersetzen (interpretieren) die Programme zeilenweise. Das Programm kann deshalb zur Laufzeit geändert werden. Die Befehle werden Zeile für Zeile in Maschinensprache übersetzt und vom Prozessor ausgeführt. Bei jedem Neustart des Programms muss dieses auch wieder neu interpretiert werden. Aus diesem Grund können keine Optimierungen vorgenommen werden, und die Programme laufen langsamer ab.

Beispiele für Interpreter-Sprachen: Q-BASIC, JAVA, LOGO

Compiler Ein Compiler übersetzt einen Programmtext vollständig in Maschinensprache und legt diesen in einer eigenständigen Programm-Datei ab. Während der Compilierung optimiert der Compiler die Programmgröße und -geschwindigkeit. Beim Neustart wird vom Prozessor direkt die Programmdatei abgearbeitet.
Dadurch laufen compilierte Programme 10 bis 20 mal schneller ab als zu interpretierende Programme.

Beispiele für Compiler-Sprachen: PASCAL, DELPHI, C++

Visuelles Programmieren


Delphi erleichtert durch seine visuellen Komponenten wie Menüs, Schaltflächen und Oberflächenkomponenten das Erstellen einer Benutzerschnittstelle in Windows. Dadurch wird die Komplexität der Windowsprogrammierung, die auf Fenstern und Botschaften beruht, wesentlich vereinfacht.
Hinter den visuellen Komponenten verbergen sich nicht nur grafische Darstellungen. Vielmehr stellt jede Komponente dem Programm eine oder mehrere Funktionen zur Verfügung.

Das Programmieren unter Windows baut auf zwei wichtigen Konzepten auf, den Fenstern und den Botschaften.

Die Abbildung zeigt ein typisches Dialogfenster, welches mit visuellen Komponenten in Sekundenschnelle und ganz ohne "Insiderkenntnisse" erstellt werden kann.
Der Anwender kommuniziert über dieses Fenster mit dem jeweiligen Programm. Im Eingabefeld kann ein beliebiger Text oder Zahlenwert eingegeben werden, der dann über das Anklicken eines Aktionsschalters vom Programm verarbeitet wird.
Dabei stellt das Ereignis "Schalter geklickt" eine Botschaft an das Programm dar, woraufhin dieses einen entsprechenden Algorithmus (Ereignisbehandlungsroutine) ausführt.