Upload
gotthilf-easterlin
View
104
Download
2
Embed Size (px)
Citation preview
Agenda für heute, 6. Juni 2007
• Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln• Grundlagen der Programmierung
• Hilfsmittel für die Programmierung
• Webprogrammierung
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Interaktion mit Informatikmitteln
Dialogbetrieb Echtzeitbetrieb Stapelbetrieb
2/37
Programme
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
Programme
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Interaktion mit Informatikmitteln
Echtzeitbetrieb
4/37
• Kurze Reaktionszeiten
• Hohe Zuverlässigkeit
• Messen, Regeln, Ablauf-steuerungen
Programme
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
Programme
• Interaktion mit Informatikmitteln
• Grundlagen der ProgrammierungGrundlagen der Programmierung• Hilfsmittel für die Programmierung
• Webprogrammierung
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Instruktionen sind durch die Programmierumgebung vorgegeben
Aber was führt der Prozessor schlussendlich aus?
7/37
Anwendungs- Befehle der Anwendung + ev. Anweisungen programme: einer Programmiersprache
Betriebssystem: Anweisungen einer Kommandosprache
Webseite: Anweisungen einer Skriptsprache
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Hierarchische Gliederung von Programmierumgebungen
14 000016 010200
15 000020 060102
16 000022 010001
Assemblierer
Maschinensprache
011101000100101
ProzessorBefehlssatz
INC R2 ;
MOV R2,R0 ; CALCULATE
ADD R1,R2 ; F(3)
while not finished dobegin
if temp >= 32 then
Sub Makro1 ()Range("B6").Select
8/37
Anwendungsspezifische
Programme
Höhere
Programmiersprache
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Zwei Arten der Programmausführung (vereinfacht)
1) Programm wird kompiliert (übersetzt)
2) Programm wird interpretiert
Prozessor-Instruktionen
CompilerQuellcode
InterpreterQuellcode Prozessor-
Instruktionen
Prozessor
Compiler
Prozessor
Müssen nicht auf dem ausführenden Computer sein
9/37
Muss auf dem ausführenden Computer sein
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Debugger (Entstörer)
11/34
• Sucht formale Fehler
• Prüft während der Ausführung
• Kann ein- oder ausgeschaltet werden
11/37
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Programmiersprachen: Historische Entwicklung (Bsp.)
1999 DELPHI 2005 JINI
1998 Active Oberon
1997
1996 JAVA
1995 FORTRAN 95 DELPHI
1994
1992 Object-Pascal VBA
1991
1989
1988 Oberon
1986 Eiffel
1985 Turbo-Pascal C++
1980 FORTRAN 77 PASCAL MODULA-2 SMALLTALK 80 C BASIC
12/37
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Die wichtigsten Programmierparadigmen
13/37
(Paradigma: Denkmuster)
Imperative Programmierung
Befehls- oder Anweisungsorientiert
Objektorientierte Programmierung
Objekte mit Eigenschaften und Operationen
Deklarative Programmierung
Fakten & logische Aussagen (Regeln)
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Imperative Programmierung
14/37
Ein Befehl in der Eingabeaufforderung löst eine Folge von Anweisungen aus
Bildschirm Programmcode
Pascal-AnweisungsfolgeBefehlszeile
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Objektorientierte Programmierung
15/37
Konkretes oder imaginäres Objekt
• hat Eigenschaften
• kann Aktionen auslösen
• Interaktion mit Informatikmitteln
• Grundlagen der Programmierung
• Hilfsmittel für die ProgrammierungHilfsmittel für die Programmierung
• Webprogrammierung
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Pseudocode
Beispiel: Temperaturwerte sollen von Grad Fahrenheit in
Grad Celsius umgerechnet werden
read(F)
subtrahiere 32
multipliziere mit 5/9
write(C)
17/37
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Flussdiagramme
Drei elementare Konstruktionselemente für Algorithmen:
Sequenz, Fallunterscheidung und Wiederholung
Diese Elemente lassen sich durch geeignetes Aneinanderreihen der folgenden zwei Symbole grafisch darstellen:
Operation Fallunterscheidung
18/37
Eingabe/Ausgabe
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Flussdiagramme: Sequenz
read(F)
T = F - 32
C = T x 5 / 9
write(C)
Am Beispiel der Temperaturumrechnung:
19/37
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Flussdiagramme: Fallunterscheidung
read(F)
T = F - 32
C = T x 5 / 9
write(C)
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
Angenommen, wir rechnen die Temperaturen nur um, falls sie über dem Gefrierpunkt sind, andernfalls geben wir eine Warnung aus.
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Flussdiagramme: Wiederholung
F = 0
Stopp
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
Nun möchten wir eine Umrechnungstabelle erstellen, die für jedes ganze Grad Fahrenheit zwischen 0 und 100 die entsprechende Temperatur in Celcius angibt.
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Beispielaus dem Labor
Automatische Titration
22/37
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Struktogramme: Sequenz, Fallunterscheidung
Sequenz
Anweisung 1
Anweisung 2
....
Anweisung n
Fallunterscheidung
Anweisung 1 Anweisung 2
ja neinBedingung b
23/37
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
24/37
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Struktogramme: Beispiele
Für F = 0 bis 100, Schrittw. 1
F = F -32
tue C = F • 5/9
Ausgabe C
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
Lösung einer quadratischen Gleichung. Mitteilung falls nicht lösbar (Diskriminante < 0).
Umrechnungstabelle, die für jedes ganze Grad Fahrenheit zwischen 0 und 100 die entsprechende Temperatur in Celcius angibt.
• Interaktion mit Informatikmitteln
• Grundlagen der Programmierung
• Hilfsmittel für die Programmierung
• WebprogrammierungWebprogrammierung
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Dynamische Webauftritte
• Serverseitig
Server beantwortet Anfragen qualifiziert
Webdokumente werden durch Programme des Servers für den Client bedarfsgerecht aufbereitet
Jede Anfrage erhält eine individuelle Antwort
• Clientseitig
Client 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
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Clientseitige dynamische Webauftritte
Client Server
1. Anforderung
3. Antwort
Dynamische Effekte für komfortable Benutzerschnittstellen
(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
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Markups
Ein HTML-Dokument besteht aus einer Folge von Markups, die durch einen Browser der Reihe nach abgearbeitet werden
Beispiel<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
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
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
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
DatenelementTrennzeichen
Hinweis: Kein Schutz gegen Missbrauch!!
35/37
Programmieren kann in allen Bereichen des Informatik-
Arbeitsplatzes eingesetzt werden!
Datenverwaltung
InformationserzeugungDatenverarbeitung
Kommunikation
36/37
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Programmiervorlesungen für die Naturwissenschaften (SS)
• 251-0840-00 Anwendungsnahes Programmieren (Java)
• 251-0842-00 Programmieren und Problemlösen (Delphi)
37/37
Danke für Ihre Aufmerksamkeit