agenda für heute, 27. januar 2006 interaktion mit informatikmittelninteraktion mit...
TRANSCRIPT
Agenda für heute, 27. Januar 2006
• 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/32
© Institut für Computational Science, ETHZ
Interaktion mit Informatikmitteln
Dialogbetrieb
3/32
• 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/32
• Kurze Reaktionszeiten
• Hohe Zuverlässigkeit
• Messen, Regeln, Ablauf-steuerungen
© Institut für Computational Science, ETHZ
Interaktion mit Informatikmitteln
Stapelbetrieb
5/32
• 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/32
© 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/32
© Institut für Computational Science, ETHZ
Hierarchische Gliederung von Programmierumgebungen
14 000016 010200
15 000020 060102
16 000022 010001
Anwendungsspezifisch
Programmiersprache
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/32
© Institut für Computational Science, ETHZ
Zwei Arten der Programmausführung (vereinfacht)
1) Programm wird kompiliert (übersetzt)
2) Programm wird interpretiert
Maschinen-code
CompilerQuellcode
InterpreterQuellcode Maschinen-
code
Prozessor
Compiler
Prozessor
(Wird das Programm verändert, muss es neu kompiliert werden)
9/32
© 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.
10/32
© Institut für Computational Science, ETHZ
Debugger (Entstörer)
• Ein Fehlersuchprogramm, das jedes in einer Programmiersprache formulierte Programm Schritt für Schritt auf formale Fehler untersucht.
• Läuft das Programm, tested der Debugger auf weitere Fehler.
• Mit Hilfe des Debuggers werden laufende Programme angehalten und der Inhalt von Speicherplätzen dargestellt.
• Der Debugger kann ein- oder abgeschaltet werden.
11/32
© Institut für Computational Science, ETHZ
Programmiersprachen: Historische Entwicklung (Bsp.)
1999 DELPHI 5 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/32
© Institut für Computational Science, ETHZ
Spezialfall Objektorientierung
Instruktionen Objekt.Methode
Objekt
Speicher Objekt.Eigenschaften
13/32
© Institut für Computational Science, ETHZ
• 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).
14/32
© Institut für Computational Science, ETHZ
Pseudocode
Beispiel: Temperaturwerte sollen von Grad Fahrenheit in
Grad Celsius umgerechnet werden.
read(F)
subtrahiere 32
multipliziere mit 5/9
write(C)
15/32
© 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:
Operation Fallunterscheidung
16/32
© Institut für Computational Science, ETHZ
Flussdiagramme: Sequenz
read(F)
T = F - 32
C = T x 5 / 9
write(C)
Am Beispiel der Temperaturumrechnung:
17/32
© 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
18/32
© 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
19/32
© Institut für Computational Science, ETHZ
Struktogramme: Sequenz, Fallunterscheidung
Sequenz
Anweisung 1
Anweisung 2
....
Anweisung n
Fallunterscheidung
Anweisung 1 Anweisung 2
ja neinBedingung b
20/32
© 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.
21/32
© 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
22/32
• 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
23/32
Internet
© Institut für Computational Science, ETHZ
Dynamische Webauftritte
• Serverseitig
Der Server kann Anfragen qualifiziert beantworten
Webdokumente werden durch Programme des Servers für den Client bedarfsgerecht aufbereitet
Jede Anfrage erhält eine individuelle Antwort
• Clientseitig
Dem Client werden HTML-Dokumente gesandt, welche Programme enthalten, die das Erscheinungsbild im Browser in Abhängigkeit von Mausaktionen oder von Zeitgebern steuern (u.a. Animationen)
24/32
© 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
25/32
© 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.
26/32
© Institut für Computational Science, ETHZ
Was sind Scriptsprachen?
Scripting Ursprünglich das Zusammenfassen von Programm-aufrufen, z.B. von Betriebssystem-Befehlen, zu einem "Drehbuch" (script), das in einer Datei gespeichert, nach belieben aufgerufen werden kann.
Scriptsprache Erweiterung des Scripting um Programmier-sprachliche Elemente, um
Ausführungsergebnisse des Programms beim Ablauf eines Scripts weiter verwerten zu können.
(Übergabe von Resultaten an Folgeprogramm, Überspringen von Programmen,
Wiederholungen).
27/32
© 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 an andere Dokumente gekettet sind.
• Markups sind typographische Anweisungen in einem HTML-Dokument, die einem Browser angeben, wie Texte und grafische Elemente zu einem präsentablen Ganzen zu verbinden sind.
28/32
© Institut für Computational Science, ETHZ
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).
29/32
© 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
30/32
© 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).
31/32
© 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
Der Query-String wird gewöhnlich vom Webserver an dort ablaufende Programme weitergegeben (z.B. über CGI), kann im Falle der GET-Methode aber auch HTML-Dokumenten auf der Client-Seite verfügbar gemacht werden.
DatenelementTrennzeichen
Hinweis: Kein Schutz gegen Missbrauch!!
32/32
Programmieren kann in allen Bereichen des Informatik-
Arbeitsplatzes eingesetzt werden!
Datenverwaltung
InformationserzeugungungDatenverarbeitung
Kommunikation
Wir wünschen Ihnen ein schönes Wochenende.