Agenda für heute, 27. Januar 2006 Interaktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung Webprogrammierung
Interaktion mit Informatikmitteln Dialogbetrieb Echtzeitbetrieb Stapelbetrieb 2/32 © Institut für Computational Science, ETHZ
Interaktion mit Informatikmitteln Dialogbetrieb Interaktive Eingabe von Instruktionen und Daten Ausgabe von Daten in Echtzeit Steuerung eines Programms während seiner Ausführung möglich 3/32 © Institut für Computational Science, ETHZ
Interaktion mit Informatikmitteln Echtzeitbetrieb Kurze Reaktionszeiten Hohe Zuverlässigkeit Messen, Regeln, Ablauf-steuerungen 4/32 © Institut für Computational Science, ETHZ
Interaktion mit Informatikmitteln Stapelbetrieb 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 5/32 © Institut für Computational Science, ETHZ
Grundlagen der Programmierung Interaktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung Webprogrammierung
Was ist ein Programm? Algorithmus Sequenz Verzweigung Wiederholung Algorithmus Eine Folge von Instruktionen, mit denen ein Computer(programm) den Inhalt von Speicherzellen verändert. Datenstrukturen 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 Anwendungsspezifisch Sub Makro1 () Range("B6").Select while not finished do begin if temp >= 32 then Programmiersprache INC R2 ; MOV R2,R0 ; CALCULATE ADD R1,R2 ; F(3) Assemblierer 14 000016 010200 15 000020 060102 16 000022 010001 Maschinensprache 011101000100101 Prozessor Befehlssatz 8/32 © Institut für Computational Science, ETHZ
Zwei Arten der Programmausführung (vereinfacht) 1) Programm wird kompiliert (übersetzt) Quellcode Maschinen- code Compiler Prozessor (Wird das Programm verändert, muss es neu kompiliert werden) 2) Programm wird interpretiert Quellcode Maschinen- code Interpreter Compiler Prozessor 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
Hilfsmittel für die Programmierung Interaktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung Webprogrammierung © Institut für Computational Science, ETHZ
Hilfsmittel für den Programmentwurf Pseudocode Natürlichsprachliche, knappe Beschreibung unter Einbezug der Notation einer Programmier- sprache. Flussdiagramme Gerichtete Liniendiagramme zur Illustration von 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
Beispiel: Temperaturwerte sollen von Grad Fahrenheit in 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
Sequenz, Fallunterscheidung und Wiederholung Flussdiagramme Drei elementare Konstruktionselemente für Algorithmen: Sequenz, Fallunterscheidung und Wiederholung Diese Elemente lassen sich durch geeignetes Aneinanderreihen der folgenden zwei Symbole grafisch darstellen: Fallunterscheidung Operation 16/32 © Institut für Computational Science, ETHZ
Flussdiagramme: Sequenz Am Beispiel der Temperaturumrechnung: read(F) T = F - 32 C = T x 5 / 9 write(C) 17/32 © Institut für Computational Science, ETHZ
Flussdiagramme: Fallunterscheidung Angenommen, wir rechnen die Temperaturen nur um, falls sie über dem Gefrierpunkt sind, andernfalls geben wir eine Warnung aus. read(F) falsch F 32 wahr Pseudocode: read(F) if F >= 32 then begin subtrahiere 32 multipliziere mit 5/9 write(C) end else gebe warnung aus T = F - 32 Warnung C = T x 5 / 9 write(C) 18/32 © Institut für Computational Science, ETHZ
Flussdiagramme: Wiederholung Nun möchten wir eine Umrechnungstabelle erstellen, die für jedes ganze Grad Fahrenheit zwischen 0 und 100 die entsprechende Temperatur in Celcius angibt. Pseudocode: F = 0 solange F < 101 begin subtrahiere 32 multipliziere mit 5/9 write(F,C) F = F + 1 end F = 0 Berechne C write(F,C) erhöhe F falsch F < 101 wahr Stopp 19/32 © Institut für Computational Science, ETHZ
Struktogramme: Sequenz, Fallunterscheidung Anweisung 1 Anweisung 2 Bedingung b Anweisung 1 Anweisung 2 .... Anweisung n ja nein 20/32 © Institut für Computational Science, ETHZ
Struktogramme: Wiederholung Schleife genau n mal Schleife 0 bis n mal Solange Bedingung b tue Anweisungen Für i = Anfangswert bis Endwert tue Anweisungen Schleife 1 bis n mal Wiederhole Anweisungen bis Bedingung b In Struktogrammen sind unbedingte Sprünge (goto) nicht möglich. 21/32 © Institut für Computational Science, ETHZ
Struktogramme: Beispiele 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. 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 Für F = 0 bis 100, Schrittw. 1 F = F -32 tue C = F • 5/9 Ausgabe C 22/32 © Institut für Computational Science, ETHZ
Webprogrammierung Interaktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung Webprogrammierung
Statische Webauftritte Kommunikationsschema für Webseiten Client Server 2. Bearbeitung HTML-Seite an Client zur Interpretation senden 1. Anforderung 3. Antwort Internet Interaktion zwischen Web und Nutzer auf Mausklicks beschränkt "Plakatcharakter" der Kommunikation 23/32 © Institut für Computational Science, ETHZ
Dynamische Webauftritte 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) 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 24/32 © Institut für Computational Science, ETHZ
Clientseitige dynamische Webauftritte Server 1. Anforderung 2. Bearbeitung HTML-Seite an Client zur Interpretation senden 3. Antwort 4. Bearbeitung 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 sorgfältig einsetzen! 25/32 © Institut für Computational Science, ETHZ
Serverseitige dynamische Webauftritte Client Server 2. Bearbeitung 1. Anforderung 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. 3. Antwort 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
<TD> . . . </TD> (Table Data) Die Symbole: 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
"Abschicken" eines Formulars 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 Trennzeichen Datenelement 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. Hinweis: Kein Schutz gegen Missbrauch!! 32/32 © Institut für Computational Science, ETHZ
Programmieren kann in allen Bereichen des Informatik-Arbeitsplatzes eingesetzt werden! Datenverwaltung Kommunikation Datenverarbeitung Informationserzeugungung
Wir wünschen Ihnen ein schönes Wochenende.