Upload
wolfgang-simen
View
228
Download
2
Embed Size (px)
Citation preview
Agenda für heute, 5. Januar 2007
• Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln• Grundlagen der Programmierung• Hilfsmittel für die Programmierung • Webprogrammierung
© Institut für Computational Science, ETHZ
Interaktion mit Informatikmitteln
Dialogbetrieb Echtzeitbetrieb Stapelbetrieb
2/37
© Institut für Computational Science, ETHZ
Interaktion mit Informatikmitteln
Dialogbetrieb
3/37
• Interaktive Eingabe von Instruktionen und Daten
• Ausgabe von Daten in Echtzeit
• Steuerung eines Programms während seiner Ausführung möglich
© Institut für Computational Science, ETHZ
Interaktion mit Informatikmitteln
Echtzeitbetrieb
4/37
• Kurze Reaktionszeiten
• Hohe Zuverlässigkeit
• Messen, Regeln, Ablauf-steuerungen
© Institut für Computational Science, ETHZ
Interaktion mit Informatikmitteln
Stapelbetrieb
5/37
• Vollständig spezifizierter Auftrag wird ausgeführt
• Keine Möglichkeit, auf den Programmablauf einzuwirken
• Rechenintensive Arbeiten, Routineaufgaben (z.B. autom. Backup)
• Batch-Dateien (.BAT), Makros
• Interaktion mit Informatikmitteln
• Grundlagen der ProgrammierungGrundlagen der Programmierung• Hilfsmittel für die Programmierung • Webprogrammierung
© Institut für Computational Science, ETHZ
Was ist ein Programm?
Eine Folge von Instruktionen, mit denen ein Computer(programm)
den Inhalt von Speicherzellen verändert.
Datenstrukturen
Algorithmus
SequenzVerzweigungWiederholung
Variable . . .. . . Datei . . .
. . . Objekt
6/37
© Institut für Computational Science, ETHZ
Instruktionen sind durch die Programmierumgebung vorgegeben
Anwendungs- Befehle der Anwendung + ev. Anweisungen programme: einer Programmiersprache
Betriebssystem: Anweisungen einer Kommandosprache
Webseite: Anweisungen einer Skriptsprache
Aber was führt der Prozessor schlussendlich aus?
7/37
© Institut für Computational Science, ETHZ
Hierarchische Gliederung von Programmierumgebungen
14 000016 01020015 000020 06010216 000022 010001
Anwendungsspezifische
Programme
Höhere
Programmiersprache
Assemblierer
Maschinensprache
011101000100101ProzessorBefehlssatz
INC R2 ;MOV R2,R0 ; CALCULATEADD R1,R2 ; F(3)
while not finished dobegin
if temp >= 32 then
Sub Makro1 ()Range("B6").Select
8/37
© Institut für Computational Science, ETHZ
Zwei Arten der Programmausführung (vereinfacht)
1) Programm wird kompiliert (übersetzt)
2) Programm wird interpretiert
Maschinen-codeCompiler
Quellcode
InterpreterQuellcode Maschinen-
code
Prozessor
Compiler
Prozessor
(Wird das Programm verändert, muss es neu kompiliert werden)
9/37
© Institut für Computational Science, ETHZ
Nobody's perfect: Fehlerquellen
• Falsche Programmlogik: diese Fehler müssen wir selber finden.
• Nichtbeachten der Regeln der Programmiersprache: Hier kann uns ein "Debugger" helfen.
• Falsche Daten: Verantwortung der Programmiererin,Programmiersprache kann helfen (Datentypen)
10/37
© Institut für Computational Science, ETHZ
Debugger (Entstörer)
• Sucht formale Fehler
• Prüft während der Ausführung
• Kann ein- oder ausgeschaltet werden
11/37
© Institut für Computational Science, ETHZ
Höhere Programmiersprachen: Historische Entwicklung (Bsp.)
1999 DELPHI 5 JINI 1998 Active Oberon19971996 JAVA1995 FORTRAN 95 DELPHI
19941992 Object-Pascal VBA1991 1989 1988 Oberon1986 Eiffel1985 Turbo-Pascal C++
1980 FORTRAN 77 PASCAL MODULA-2 SMALLTALK 80 C BASIC12/37
© Institut für Computational Science, ETHZ
Die wichtigsten Programmierparadigmen
13/37
(Paradigma: Denkmuster)
Imperative ProgrammierungBefehls- oder Anweisungsorientiert
Objektorientierte ProgrammierungObjekte mit Eigenschaften und Operationen
Deklarative Programmierung
Fakten & logische Aussagen (Regeln)
© Institut für Computational Science, ETHZ
Imperative Programmierung
14/37
Ein Befehl in der Eingabeaufforderung löst eine Folge von Anweisungen aus
Bildschirm Programmcode
Pascal-AnweisungsfolgeBefehlszeile
© Institut für Computational Science, ETHZ
Objektorientierte Programmierung
15/37
Click auf Fakultät löst Nachricht aus: "wende Methode M1 an"
Bildschirm Programmcode
Ganzzahl-ObjektGrafisches Objekt
• Interaktion mit Informatikmitteln• Grundlagen der Programmierung
• Hilfsmittel für die ProgrammierungHilfsmittel für die Programmierung • Webprogrammierung
© Institut für Computational Science, ETHZ
Hilfsmittel für den Programmentwurf
Pseudocode Natürlichsprachliche, knappe Beschreibungunter Einbezug der Notation einer Programmier-
sprache.
Flussdiagramme Gerichtete Liniendiagramme zur Illustrationvon Abläufen (Programmablaufplan).
Struktogramme Darstellung von Aktionen durch Blöcke, die aneinander gereiht oder ineinander
geschachtelt werden (Nassi-Shneiderman- Diagramm).
16/37
© Institut für Computational Science, ETHZ
Pseudocode
Beispiel: Temperaturwerte sollen von Grad Fahrenheit inGrad Celsius umgerechnet werden.
read(F)subtrahiere 32multipliziere mit 5/9write(C)
17/37
© Institut für Computational Science, ETHZ
Flussdiagramme
Drei elementare Konstruktionselemente für Algorithmen:
Sequenz, Fallunterscheidung und Wiederholung
Diese Elemente lassen sich durch geeignetes Aneinanderreihen der folgenden zwei Symbole grafisch darstellen:
18/37
Operation Fallunterscheidung Eingabe/Ausgabe
© Institut für Computational Science, ETHZ
Flussdiagramme: Sequenz
read(F)
T = F - 32
C = T x 5 / 9
write(C)
Am Beispiel der Temperaturumrechnung:
19/37
© Institut für Computational Science, ETHZ
Flussdiagramme: Fallunterscheidung
read(F)
T = F - 32
C = T x 5 / 9
write(C)
Angenommen, wir rechnen die Temperaturen nur um, falls sie über dem Gefrierpunkt sind, andernfalls geben wir eine Warnung aus.
F 32
Warnung
wahrfalsch
Pseudocode:read(F)if F >= 32then begin subtrahiere 32 multipliziere mit 5/9 write(C) endelse gebe warnung aus
20/37
© Institut für Computational Science, ETHZ
Flussdiagramme: Wiederholung
F = 0
Stopp
Nun möchten wir eine Umrechnungstabelle erstellen, die für jedes ganze Grad Fahrenheit zwischen 0 und 100 die entsprechende Temperatur in Celcius angibt.
F < 101Berechne Cwrite(F,C)erhöhe F
wahrfalsch
Pseudocode:F = 0solange F < 101begin subtrahiere 32 multipliziere mit 5/9 write(F,C) F = F + 1 end
21/37
© Institut für Computational Science, ETHZ
Beispielaus dem Labor
Automatische Titration
22/37
© Institut für Computational Science, ETHZ
Struktogramme: Sequenz, Fallunterscheidung
Sequenz
Anweisung 1
Anweisung 2
....
Anweisung n
Fallunterscheidung
Anweisung 1 Anweisung 2
ja neinBedingung b
23/37
© Institut für Computational Science, ETHZ
Struktogramme: Wiederholung
Schleife 0 bis n mal
Solange Bedingung b
tue Anweisungen
Schleife genau n mal
Schleife 1 bis n mal
Wiederhole Anweisungen
bis Bedingung b
Für i = Anfangswert bis Endwert
tue Anweisungen
In Struktogrammen sind unbedingte Sprünge (goto) nicht möglich.
24/37
© Institut für Computational Science, ETHZ
Struktogramme: Beispiele
Für F = 0 bis 100, Schrittw. 1
F = F -32
tue C = F • 5/9
Ausgabe C
Umrechnungstabelle, die für jedes ganze Grad Fahrenheit zwischen 0 und 100 die entsprechende Temperatur in Celcius angibt.
Lösung einer quadratischen Gleichung. Mitteilung falls nicht lösbar (Diskriminante < 0).
Eingabe: p, q
a = p / 2
d = a2 - q
ja d < 0 nein
Ausgabe: "nicht lösbar"
h = √ d
X1 = a + h
X2 = a -h
X1, X2
25/37
• Interaktion mit Informatikmitteln• Grundlagen der Programmierung• Hilfsmittel für die Programmierung
• WebprogrammierungWebprogrammierung
© Institut für Computational Science, ETHZ
Statische Webauftritte
Kommunikationsschema für Webseiten
Client Server
1. Anforderung
3. Antwort
2. Bearbeitung
HTML-Seite an Clientzur Interpretation senden
Interaktion zwischen Web und Nutzer auf Mausklicks beschränkt
"Plakatcharakter" der Kommunikation
26/37
Internet
© Institut für Computational Science, ETHZ
Dynamische Webauftritte
• ServerseitigServer beantwortet Anfragen qualifiziert
Webdokumente werden durch Programme des Servers für den Client bedarfsgerecht aufbereitet
Jede Anfrage erhält eine individuelle Antwort
• ClientseitigClient erhält HTML-Dokumente, die Programme enthalten, zur Steuerung des Erscheinungsbildes im Browser
Z.B. in Abhängigkeit von Mausaktionen oder von Zeitgebern (Animationen)
27/37
© Institut für Computational Science, ETHZ
Clientseitige dynamische Webauftritte
Client Server
1. Anforderung
3. Antwort
Dynamische Effekte um den Komfort der Benutzerschnittstelle zu verbessern (z.B. Erscheinen von neuen Fenstern mit Zusatz-informationen)
Bereichs- und Gültigkeitsüberprüfung von Zahlen und Texten in Formularen
Hervorheben von Dokumentteilen bei Erhalt des Mausfokus
2. Bearbeitung
HTML-Seite an Clientzur Interpretation senden
sorgfältig einsetzen!
4. Bearbeitung
28/37
© Institut für Computational Science, ETHZ
Serverseitige dynamische Webauftritte
Client Server
1. Anforderung
3. Antwort
2. Bearbeitung
Programmaufruf (*.pl)
CGI (Common Gateway Interface)
Am meisten verbreitete Technik um Programme in Webservern aufzurufen.Für die Programmierung selbst werden sog. Script-sprachen verwendet.
29/37
© Institut für Computational Science, ETHZ
Was sind Scriptsprachen?
Scripting Das Zusammenfassen von Programmaufrufen zu einem "Drehbuch" (script), das nach belieben auf-gerufen werden kann
Scriptsprache Erweiterung des Scripting um Programmier-sprachliche Elemente(Übergabe von Resultaten an Folgeprogramm, Überspringen von Programmen,
Wiederholungen)
30/37
© Institut für Computational Science, ETHZ
Clientseitige Dynamik: Beispiel
• Grundlage des Webs sind HTML-Dokumente (HyperText Markup Language)
• HTML-Dokumente sind Textdateien, deren Inhalt durch einen Browser interpretiert wird und die mittels Hypertext-Techniken andere Dokumente einbinden können
• Markups sind Anweisungen in einem HTML-Dokument, die angeben, wie Texte und grafische Elemente zu präsentieren sind
31/37
© Institut für Computational Science, ETHZ
Markups
Ein HTML-Dokument besteht aus einer Folge von Markups, die durch einen Browser der Reihe nach abgearbeitet werdenBeispiel<TABLE Border=1 Width=400 Heigth=300 BGcolor=silver>
<TR><TD Height=20% Colspan=2> </TD></TR><TR><TD Width=25%> </TD>
<TD> </TD></TR></TABLE>
Diese Markups codieren eine 400 x 300 Pixel grosseTabelle, die sichtbar gemacht wird (Border=1)
32/37
© Institut für Computational Science, ETHZ
Markups
Markups sind z.B.:<TR> . . . </TR> (Table Row) oder<TD> . . . </TD> (Table Data)
Die Symbole: <TR>, <TD>, <TABLE>
werden als Tags oder Marken bezeichnet, wobei <TR> eine Startmarke und </TR> eine Endmarke ist
Tags werden mit Attributen ergänzt, welche die Details der Darstellung angeben:<TABLE Border=1 Width=400 Heigth=300 BGcolor=silver>
http://www.willcam.com/cmat/html/tags.html
33/37
© Institut für Computational Science, ETHZ
Formulare: Interaktive Webseiten
Durch Drücken des "Bestellen!"-Knopfes (Submit-Knopf) wird das Formular zum Ziel gesandt (gegeben durch den URL der Webseite des Formulars)
34/37
© Institut für Computational Science, ETHZ
Formulare
"Abschicken" eines Formulars• Das Method-Attribut bestimmt, in welcher Form dies geschieht• Bei GET werden die Daten als "Query-String" an die Action-URL
geheftet• Die Daten schliessen sich dem Fragezeichen der URL an:
Ziel-URL/formular.html?Anzahl=6&Item=Birnen
DatenelementTrennzeichen
Hinweis: Kein Schutz gegen Missbrauch!!35/37
Der Query-String wird vom Webserver an dort ablaufende Programme weitergegeben (z.B. über CGI), kann aber auch HTML-Dokumenten auf der Client-Seite verfügbar gemacht werden
Programmieren kann in allen Bereichen des Informatik-
Arbeitsplatzes eingesetzt werden!
Datenverwaltung
InformationserzeugungDatenverarbeitung
Kommunikation
36/37
© Institut für Computational Science, ETHZ
Programmiervorlesungen für die Naturwissenschaften (SS)
• 251-0840-00 Anwendungsnahes Programmieren (Java)
• 251-0842-00 Programmieren und Problemlösen (Delphi)
37/37
Wir wünschen Ihnen ein schönes Wochenende.