Hannes Reisingers Programmiergrundlagen mit Übungen
empfohlene Veranstaltungsdauer
20 Stunden
Zielgruppe
Erfahrene AnwednerInnen von Standardprogrammen (WinWord, Excel, Access, dBase, FoxPro),
die sich mit der Makro- oder VBA-Programmierung beschäftigen möchten, EinsteigerInnen in
höhere Programmiersprachen (C, Pascal, VB), Assembler- oder MikroprozessorprogrammiererInnen.
Voraussetzung für die Veranstaltung
Kenntnisse in einem Standardprogramm und ein guter Überblick über DOS und Windows
Benötigte Software/Hardware
- 1 PC pro Teilnehmer
- 1 PC für den Vortragenden
- Auf allen Rechnern die Entwicklungsumgebungen Visual C++, Visual Basic, WinWord (für
Wordmakros), MS-Access, Turbo-Pascal und Quick-Basic in aktuellen Versionen installiert
- 1 Videobeamer oder 1 Overheaddisplay an den PC des Vortragenden angeschlossen
- 1 Overheadprojektor mit Reserveglühbirne und Folie zum Beschreiben
- u.U. eine Tafel + weiße Kreiden wegen der Flexibilität
Detailplanung über Ziele und Inhalte/Zeitbudget/Erreichungsgrad
Praktischer Umgang mit einem Programmiersystem - Prototyping - Daten -
Variablen und Konstanten - Masken - Struktogramme - Entscheidungen
(+Auswahlen) und Schleifen - Prozeduren und Funktionen - Übergabeparameter
und viele kleine Programmierbeispiele zum Üben.
Folien
Ziele und Pläne für die "Praktischen Programmiergrundlagen mit Übungen"
- Daten - Variablen und Konstanten
- Struktogramme und Flußdiagramme
- Anweisungen und Steuerstrukturen
- Entscheidung und Auswahl
- Schleifen
- Prozeduren und Funktionen - Übergabeparameter
- Programmiersprachen
- Praktischer Umgang mit einem Programmiersystem
- Prototyping
- Wie der Name schon sagt - viele Übungen
1. Arbeitsblatt
- Erhaltene Diskette formatieren
- Auf der Diskette und auf der Festplatte (Laufwerk D:) ein Verzeichnis \PRG einrichten
- Zwei Batchdateien: SAVE.BAT und REST.BAT
- "QBASIC" starten
- Berühmt-berüchtigtes "Hello, World!" erstellen und erweitern
Um ein beliebiges Problem zu lösen, muß ein Programm:
- Daten von irgendwoher erhalten - Eingabe
- Platz zur Speicherung dieser Daten zur Verfügung stellen - Datentypen
- Anweisungen zur Bearbeitung der Daten enthalten
- Operationen (Zuweisung, Kombination, Vergleich)
- bedingte Ausführung / Auswahl
- Schleifen
- Unterprogramme
- Die Ergebnisse der Bearbeitung an den Benutzer ausgeben - Ausgabe
Aufgaben von Programmen
- Numerische Berechnungen
z.B. das Lösen von Gleichungssystemen für ein ingenieurwissenschaftliches Problem
- Verwaltung und Bearbeitung großer Datenbestände
z.B. die Lagerverwaltung in einem Versandhaus
- Überwachung und Steuerung von Abläufen
z.B. von industriellen Fertigungsprozessen wie etwa Robotersteuerungen oder bei militärischen Anwendungen
- Symbolische Datenverarbeitung
z.B. logische Ableitungen, Schlüsse und Beweise (KI)
Historische Entwicklung
- von Neumann
- Binärziffern, Maschinensprache, Assembler
- Macroassembler
- FORTRAN (Entwicklung der Fa. IBM - Mitte der 50er)
- COBOL (um 1960)
- usw.
Interpreter gegenüber Compiler + Linker
- Interpreter
Es wird jeder Befehl unmittelbar nach der Übersetzung ausgeführt
bzw. zur Ausführung jedesmal übersetzt.
- Compiler + Linker
Der Compiler übersetzt den Quellcode als Ganzes und erzeugt (verschiebbaren) Maschinencode.
Der Linker verbindet diesen "Objectcode" mit Routinen aus Standard- und Programmbibliotheken.
Operatoren
- Wertzuweisungen / Zuweisungsoperatoren
- Arithmetische Operatoren
- Vergleichsoperatoren (Relationale Operat.)
- Verknüpfungsoperatoren (Logische Operat.)
- Unäre Operatoren (z.B. +, -)
- Operatoren zur Bitmanipulationen
- Diverse andere Operatoren (z.B. Adreßoperator und Inhaltsoperator)
Elementare Datentypen
- Ganze Zahlen
- BYTE - 8Bit => 28=256 Kombinationsmöglichkeiten
- WORD - 16Bit => 216= 65.536 Kombinationsmöglichkeiten
- DWORD - 32Bit => 232= 4.294.967.296 Kombinationsmöglichkeiten
- QWORD - 64Bit => 264= 1,8446744E19 Kombinationsmöglichkeiten
- Gleitkommazahlen und Exponentialzahlen
- Zeichen und Zeichenketten
Regeln für Bezeichner
- Bezeichner müssen mit einem Buchstaben (A..Z, a..z) oder einem Unterstrich (_) beginnen.
- Auf dieses erste Zeichen können weitere Buchstaben, Ziffern (0..9) und Unterstriche folgen.
Die landesspezifischen Zeichen (deutschen Umlaute oder das 'ß') und die diversen Sonderzeichen ({, [, ...) sind in sämtlichen mir bekannten Sprachen unzulässig.
- Nur eine gewisse Anzahl von Zeichen eines Bezeichners sind signifikant.
Das bedeutet: Wenn die ersten soundsoviel Zeichen (je nach Sprache) zweier Bezeichner identisch sind, werden diese Bezeichner als identisch behandelt - unabhängig davon, ob auf diese (soundsoviel) Zeichen noch weitere (eventuell unterschiedliche) Zeichen folgen.
- Je nach Sprache wird zwischen Groß- und Kleinschreibung unterschieden oder nicht unterschieden.
Es können also Index, INDEX und index drei verschiedene Bezeichner darstellen, die nichts miteinander zu tun haben.
- Reservierte Wörter (wie z.B. PRINT, for oder while) können nicht als Bezeichner verwendet werden.
abgeleitete Datentypen
- Logische Größe bzw. Boolean
- Zeiger (Pointer) = Adresse
- Felder (Vektoren, Arrays)
- Verbundvariablen (Strukturen)
Kontrollstrukturen
- Bedingungen
- Auswahl
- Schleifen
- Schleife mit Eingangsbedingung
- Schleife mit Austrittsbedingung
- Zählschleife
Grafische Beschreibungsmöglichkeiten
Flußdiagramm
Struktogramm (Nassi-Schneidermann-Diagramm)
Klassischer Softwareentwicklungsprozeß
- Anforderungsanalyse und Spezifikation
Was sollte das System können ?
- Softwareentwurf und Spezifikation
Module und Schnittstellen des Systems
- Implementierung (Codierung)
- Prüfung
- Wartung
Kosten meistens so hoch wie in allen vorangegangenen Schritten zusammen
Unterprogramme
- Funktionen, Prozeduren
- Parameter, Argumente
- Geltungsbereich und Lebendauer einer Variablen
- Rekursion
![[ Haupt- / Unterprogramme ]](img/Prozedur.gif)
![[ Rekursion ]](img/Rekurs.gif)
Windows-Porgrammierung
- traditionelle Programme:
Der Benutzer muß die Information in der Reihenfolge eingeben, wie es das Programm fordert
- Ereignis-gesteuerte Programme:
Der Benutzer legt fest, wann er welche Information eingeben möchte
Einteilung von Daten - 1. nach dem ZWECK
- Identifizierende Daten
Eindeutigen Unterscheidung. z.B. Persnr.
- Quantifizierende Daten
Auskunft über Menge, Größe, Gewicht usw.
- Deskriptive Daten
Verbale Präzisierung der identifizierenden Daten.
Ausgabe nur in unveränderter Form Bsp.: Geburtsdatum
- Textdaten
Ähnlich den deskriptiven Daten, jedoch manipulierbar.Bsp.:
Namen, Adresse usw.
- Wird aus Anwendersicht praktischüberhaupt nicht benötigt
Einteilung von Daten - 2. nach der Zusammensetzung ihrer Zeichen
- Numerische Daten
Ziffern
(oft auch Vorzeichen, Tausender und Dezimaltrennzeichen)
- Alphabetische Daten
Groß- und Kleinbuchstaben eines Alphabets.
- Alphanumerische Daten
numerische + alphabetische Daten
Zusätzlich noch sogenannte Sonderzeichen(Satz-, Währungskurz-, Operationszeichen u. a.)
- Häufig bei der Erstellung von Abfragen
Bsp.: in bestimmtes Feld nur Ziffern
Einteilung von Daten - 3. nach der Häufigkeit ihrer Veränderung
- Stammdaten
ändern sich gar nicht oder sehr seltenBsp.: Geschlecht, Geburtsdatum, Namen, Adressen, Familienstand u.ä.
- Änderungsdaten
hingegen passen sich immer wieder einem neuen Sachverhalt an
- Unterscheidung, mit der der Anwenderam häufigsten konfrontiert wird
Anwendungsbeispiel
Firma mit Kunden, Artikel und Bestellungen
Systemprogrammierung
- Mittels DEBUG Assembler programmieren!
- Einige wichtige Befehle
INT, INTO, IRET
MOV, PUSH, POP
ADD, DEC, INC, DIV, MUL
CMP, AND, NOT, OR, XOR
CALL, JMP, LOOP
- Weiterführende Literatur
Programmers Reference zu iAPX 86/88, 186/188 usw., Intel Corporation
PC intern 5, Michael Tischler, Data Becker
Die Prozessorregister
![[ Prozessor ]](img/Prozessr.gif)
Zurück zur HomePage von Hannes Reisinger
Weitere Informationen über Persönliche HomePages
Zur CompuServe HomePage
5. Oktober 1996, Hannes Reisinger,
100540.1533@CompuServe.com