2. 2 Bearbeiten von Problemen mit PASCAL Delphi * ist ein Entwicklungssystem zum Erstellen von Windowsprogrammen * hat einen leistungsfähiger Pascal-Compiler, * hat visuelle Komponenten und * bietet die Möglichkeit des Erstellens von Datenbankprogrammen Vorteil von Windowsprogrammen * einheitlichen Bedienung * Menüleiste und ein Hauptfenster * Bedienung mit der Maus * Programme werden in Fenstern ausgeführt, die oft nur einen Teil des gesamten Bildschirmes beanspruchen * über Fenster und Dialoge, die so genannten Benutzerschnitt-stellen, kommuniziert der Anwender mit dem Programm
3. DOS WINDOWS nur ein Programm gestartet mehrere Programme gleichzeitig laufendes Programm besitzt alleinigen und uneingeschränkten Zugriff auf die Hardware mehrere Programme können gleichzeitig auf die Hardware zugreifen, z.B. auf den Drucker; Zugriff von Windows kontrolliert Hardware wird direkt programmiert Windows stellt Funktionen für Zugriff auf Hardware zur Verfügung Oberfläche ist textorientiert Oberfläche ist grafikorientiert 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 Ein- und Ausgabe ist bildschirmorientiert Ein- und Ausgabe ist fensterorientiert
5. * erste EDV-Anlagen (Ende der 40er Jahre) ließen sich nur maschinennah programmieren. * Programmcode wurde bitweise in den Speicher geschrieben * Vorteil: Programm direkt vom Computer ausgeführt * Nachteil: sehr genaue Rechnerkenntnisse erforderlich, da alle Anweisungen in Form von elementaren Befehlen sehr kleinschrittig beschrieben werden müssen Problematische Fehlersuche 1. Generation: Maschinensprachen Beispiel: 11001011 00110101 11100011 10111101
6. 2. Generation: Assemblersprachen * Befehlsvorrat speziell für jeden Rechnertyp zugeschnitten ist * Programm ist auf einem Computer nicht mehr direkt ablauffähig, sondern muss erst in ein entsprechendes Maschinenprogramm übersetzt werden Programm, das dies automatisch durchführt, bezeichnet man als Assembler * Nachteil: auf eine ganz bestimmte Hardware zugeschnitten sind und nur schwer auf andere Computertypen übertragbar Programme sehr umfangreich und damit wartungs- unfreundlich * Assemblersprachen hauptsächlich nur noch da, wo Programme und Programmsysteme schnell reagieren müssen Beispiel: ADD FELD_2 FELD_3 MOV BX, OFFSET FELD_3
7. 3. Generation: Prozedurale Programmiersprachen * Mehrheit der heute gebräuchlichen Programmiersprachen * unabhängig von einem Computersystem * Übersetzer (Interpreter oder Compiler) muss an System angepasst sein und entsprechenden Maschinencode erzeugen * Prozedurale Sprachen besitzen speziellen, der menschlichen Sprache angenäherten Befehlssatz * lehnen sich an die Denkweise des Programmierers an * auch ohne fundamentierte Programmierkenntnisse lassen sich diese Programme leicht nachvollziehen. * "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!";
8. 4. Generation: Nichtprozedurale Programmiersprachen * es wird nicht mehr festgelegt, wie ein Problem gelöst wird, sondern der Programmierer beschreibt lediglich, was das Programm leisten soll * diese Angaben werden vom Programmiersystem in ein Programm umgesetzt * Vorteil: keine umfangreiche Programmierausbildung notwendig; 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
9. 5. Generation: Programmiersprachen der künstlichen Intelligenz * 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 solche Systeme zur Spracherkennung eingesetzt Beispiel: Berechnung auswerten
10. b) Algorithmen und Programme In einem Programm stehen somit nur Anweisungen, die der Computer versteht und umsetzen kann Algorithmus 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 Programm eine Folge von Anweisungen (Algorithmus), die in einer Programmiersprache wie z.B. Pascal formuliert sind.
11. c) Interpreter und Compiler * 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. * übersetzt einen Programmtext vollständig in Maschinensprache und legt diesen in eigenständiger Programm-Datei ab. * während Compilierung wird Programmgröße und –geschwindigkeit optimiert * bei Neustart arbeitet der Prozessor direkt die Programmdatei ab * Programme 10 bis 20 mal schneller * Beispiele für Compiler-Sprachen: PASCAL, DELPHI, C++ * übersetzen (interpretieren) die Programme zeilenweise - Programm deshalb zur Laufzeit änderbar * 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 * Optimierungen können nicht vorgenommen werden, Programme laufen langsamer ab * Beispiele für Interpreter-Sprachen: Q-BASIC, JAVA, LOGO Compiler Interpreter
13. Formular zentrales Entwicklungsobjekt eines Delphi-Programms gewünschte Komponenten (wie Schaltflächen, Menüs und Eingabefelder) per Mausklick platziert und angepasst Erscheinungsbild entspricht dem Aussehen des Windows-Fensters, in dem das fertige Programm später ablaufen wird Komponentenpalette in verschiedene Register (Standard, Zusätzlich usw.) unterteilt Auswahl der benötigten Windows-Komponenten Objektinspektors Darstellungsweise und Verhalten der Objekte (Komponenten) in einem Formular sowie das Aussehen des Formulars festgelegt Erscheinungsbild wird über die Seite "Eigenschaften", das Verhalten beim Eintritt eines Ereignisses über die Seite "Ereignisse" eingestellt Quelltexteditor Schreiben des Programmcodes in Programmiersprache Pascal Delphi generiert für neu eingefügte Komponenten automatisch den Programmcode, der im Editor angezeigt wird. Programmierer muss "nur noch" die Algorithmen zur Ereignisbehandlung einarbeiten
14. e) Prinzip der Programmierung E V A Eingabe Verarbeitung Ausgabe Aktionen (Tastatureingaben, Mausbewegungen) eines Benutzers, wie zum Beispiel: * einfaches oder doppeltes Klicken auf eine Befehls- schaltfläche, * Verschieben, Öffnen oder Schließen eines Fensters mit der Maus, * Positionieren des Cursors in ein Eingabefeld mit der Tabulatortaste Interne Programmabläufe, wie zum Beispiel: * Berechnungen durchführen, * Öffnen und Schließen eines Fensters (vom Programm gesteuert), * Ermitteln von aktueller Uhrzeit und Datum Reaktionen wie zum Beispiel: * Öffnen eines Fensters * Ausgabe von Werten Informationsfluss