Upload
mariele-heishman
View
107
Download
0
Embed Size (px)
Citation preview
Agenda für heute, 14. Mai 2008
• Interaktion mit Informatikmitteln: BetriebsartenInteraktion mit Informatikmitteln: Betriebsarten• Datenformate• 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
Drei Betriebsarten: • Dialog• Echtzeit • Stapel
2/46
Unzählige Datenformate:• ".a" (Archiv bei UNIX) bis • ".zvd" (Voice-Datei)
Zwei Interaktionstypen:• mit Anwendern• mit Daten
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Betriebsarten im Vergleich
Dialogbetrieb Echtzeitbetrieb Stapelbetrieb
3/46
ProgrammeProgramme
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Betriebsarten im Detail
Dialogbetrieb
4/46
• 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
Betriebsarten im Detail
Echtzeitbetrieb
5/46
• Kurze Reaktionszeiten
• Hohe Zuverlässigkeit
• Messen, Regeln, Ablauf-steuerungen
Programme
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Betriebsarten im DetailStapelbetrieb
6/46
• Vollständig spezifizierter Auftrag wird ausgeführt
• Keine Möglichkeit, auf den Programmablauf einzuwirken
• Rechenintensive Arbeiten, Routineaufgaben (z.B. autom. Backup)
• Makros, Batch-Dateien (.BAT)
Programmierung
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Betriebsarten
7/46
• Jedes Informatikmittel unterstützt bestimmte Betriebsarten, oft in Kombination.
• So können beispielsweise im Dialogbetrieb auch Stapelprogramme gestartet werden.
• Unabhängig von der Betriebsart verlangt ein Informatikmittel, dass die Daten in einem bestimmten Format gespeichert sind.
• Viele Informatikmittel unterstützen mehrere Datenformate
• Interaktion mit Informatikmitteln: Betriebsarten
• DatenformateDatenformate• Grundlagen der Programmierung• Hilfsmittel für die Programmierung • Webprogrammierung
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Standardisierung ermöglicht Datenaustausch
8/46
Traditionelle Standards für
• Zahlen (Prozessor, arithmetische Operationen)
• Zeichen (Alphabet, Zeichensätze, Programmsteuerung)
• Graphik (Bildverarbeitung, Ausgabemedien)
Neuere Standards beschreiben
• Darstellung der Daten (Dokumente, Bilder)
• Bedeutung der Daten (Beschreibung des Dateiinhalts)
und verwenden dazu standardisierte Zeichensätze.
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Datenformate: Ganze Zahlen
Ganze Zahlen aus dem Wertebereich 0..255
Dezimal- binäre Darstellung wert ohne Vorzeichen
0 0000 00001 0000 0001
127 0111 1111 128 1000 0000 254 1111 1110 255 1111 1111
Wert WertVorzeichen
9/46
Dezimal- binäre Darstellung wert mit Vorzeichen
-128 1 000 0000 -127 1 000 0001 -1 1 111 1111 0 0 000 0000 1 0 000 0001 127 0 111 1111
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Datenformate: Gleitkommazahlen
0 11000101 00000100001011101011101
10/46
+ -5 4'331'357
Mantisse x 2 hoch Exponent = 135'354.90625
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Wie kann ein Komma gleiten?
Mantisse = 0.125 Exponent = –2
Beispiel
Der Wert 0.00125 wird wie folgt umgewandelt:
0.00125 = 0.00125 x 100
= 0.0125 x 10-1
= 0.125 x 10-2
Grund: Erlaubt die Darstellung sehr kleiner Zahlen auch wenn für die Mantisse wenig Bits zur Verfügung stehen (kleine Präzision).
11/46
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Datenformate: Zeichen
Zeichen werden durch Zahlen codiert.
ASCII
128 Zeichen (American Standards Association)
Charsets
Unicode Consortium: Universal Character Set
ISO 10646 (216 Zeichen)
ISO 8859 (256 Zeichen)
12/46
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Grafik
Rastergrafik(aufgereihte Bildpunkte)
Vektorgrafik(Linienzüge, Kurven)
Skalierbar ohne Qualitätseinbusse
Qualitätsverlust bei Skalierung
13/46
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Prinzip der Rasterdaten
rot
rot
blau
gelb
türkis
grün
grün
schwarz
. . .
0
1
2
3
Farbe des Bild-punktes (Pixel):
1024
1025
1026
0
1
2
3
1024
1025
1026
rot grün blau
255 0 0
255 0 0
0 0 255
255 255 0
44 172 212
255 0 0
0 255 0
0 255 0
0 0 0
rgb-Werte,die als Bilddaten gespeichert werden:
14/46
4 4
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Prinzip der Vektorgrafik
Beispiel (PostScript Standard)Die Instruktionsfolge:
newpath50 50 moveto50 70 lineto40 60 moveto60 60 lineto50 60 10 0 360 arcstrokeshowpage
Listen mit Befehlen und Koordinaten geben einem Grafikprogramm an, was wo wie zu zeichnen ist.
Zeichnet einen Kreis mit Radius 10 um ein Fadenkreuz am Punkt 50, 60:
50
60
00
15/46
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Datenformate: Grafik
BMP-Dateien (Windows Bitmap) speichern für jeden Bildpunkt die intensität der Farben rot, grün und blau. In der Regel wird für jede Farbe 1 Byte (8 Bit) verwendet
Speicherintensiv weil unkomprimiert.
16/22
GIF-Dateien (Graphics Interchange Format, US Online-Dienst Compuserve) arbeitet mit "Paletten" von bis zu 256 Farben.
Verlustlose Komprimierung erspart Speicher.
JPEG-Dateien (Joint Photographic Experts Group, ISO 10980) wurde als Standard für die Komprimierung fotografischer Bilder eingeführt. Führt je nach Komprimierungsgrad zu mehr oder weniger Qualitätsverlust. Verbreitet bei Digitalkameras und Bildern auf dem Web.
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Datenformate: Dokumente
Rich Text Format (RTF, Microsoft).• Inhalt plus Beschreibung, wie dieser dargestellt werden soll.
• Ein öffentliches Dateiformat für Dokumente, das die meisten Textverarbeitungsprogramme lesen können.
• Die Datei ist reiner Text, ähnlich wie HTML.
17/46
RTF-Datei:
{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\par Dies ist ein {\b bold} Text.\par }
Darstellung:
Dies ist ein Text.
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Datenformate: Dokumente
Portable Document Format (PDF, Adobe, versch. ISO-Normen).
• Vektorbasierte Seitenbeschreibungssprache. Plattformunabhängige, originalgetreue Darstellung von Dokumenten.
• Seitengrösse nur durch Verarbeitungsprogramm beschränkt.
• Enthält Schutzmechanismen.
• Dateigrösse hängt u.a. davon ab, ob Schriften eingebettet sind.
• Ideal zum Publizieren von Inhalten.
• Bildkompressionsverfahren.
18/46
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Datenformate: Auszeichnungssprachen (markup languages)
Hypertext Markup Language (HTML, W3C).
• Die vorherrschende, textbasierte, Auszeichnungssprache für Webseiten.
• Verwendet zur Strukturierung von Inhalten wie Texte, Bilder und Hyperlinks in Dokumenten.
• Enthält zusätzliche Angaben z. B. über die im Text verwendete Sprache, die Autorin oder den Inhalt des Textes.
• Die Auszeichnungssprache wurde vom World Wide Web Consortium weiterentwickelt und soll durch XHTML ersetzt werden.
19/46
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)
20/46
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
21/46
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Datenformate: Auszeichnungssprachen (markup languages)
Extensible Markup Language (XML, W3C).• Textbasierte (im einfachsten Fall ASCII) Auszeichnungs-
sprache zur Darstellung von hierarchisch strukturierten Daten.
• XML-Dokument können in andere Dokumente transformiert werden, beispielsweise nach XHTML, um das Dokument in einem Webbrowser anzuzeigen.
• XML wird auch für den Austausch von Daten zwischen unterschiedlichen IT-Systemen eingesetzt.
• Um die Struktur von XML-Sprachen zu beschreiben, bedient man sich so genannter Schemasprachen wie DTD (Document Type Definition) oder XML Schema.
22/46
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Datenformate: Auszeichnungssprachen (markup languages)
23/46
DTD für Visulab-Daten<!ELEMENT VisulabData (data)><!ELEMENT data (variables, records)><!ELEMENT variables (realvariable)+>
<!ATTRLIST variablescount CDATA #REQUIRED>
XML-Datei für Visulab-Daten<?xml version="1.0" encoding="iso-8859-1"?><VisulabData> <data>
<variables count="4"> <realvariable name="sepal-leng" hide="1"/> <realvariable name="sepal-widt" hide="0"/> <realvariable name="petal-leng" hide="0"/>
• Interaktion mit Informatikmitteln: Betriebsarten• Datenformate
• 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
24/46
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Instruktionen sind durch die Programmierumgebung vorgegeben
25/46
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
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
26/46
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)
27/46
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
28/46
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Die wichtigsten Programmierparadigmen
29/46
(Paradigma: Denkmuster)
Imperative Programmierung
Befehls- oder Anweisungsorientiert (z.B. Pascal, C)
Objektorientierte Programmierung
Objekte mit Eigenschaften und Operationen (z.B. Java, Eiffel)
Deklarative Programmierung
Fakten & logische Aussagen (z.B. LISP, Prolog)
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Imperative Programmierung
30/46
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
31/46
Konkretes oder imaginäres Objekt
• hat Eigenschaften
• kann Aktionen auslösen
• Interaktion mit Informatikmitteln: Betriebsarten• Datenformate• Grundlagen der Programmierung
• Hilfsmittel für die Programmierung Hilfsmittel 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)
32/46
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)
33/46
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 drei Symbole grafisch darstellen:
Operation Fallunterscheidung
34/46
Eingabe/Ausgabe
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
35/46
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
36/46
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
Struktogramme: Sequenz, Fallunterscheidung
Sequenz
Anweisung 1
Anweisung 2
....
Anweisung n
Fallunterscheidung
Anweisung 1 Anweisung 2
ja neinBedingung b
37/46
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
38/46
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
39/46
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: Betriebsarten• Datenformate• 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
40/46
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)
41/46
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
42/46
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Beispiel für interaktive Webseiten: Formulare
Durch Drücken des "Bestellen!"-Knopfes (Submit-Knopf) wird das Formular zum Ziel gesandt (gegeben durch den URL der Webseite des Formulars)
43/46
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!!
44/46
Programmieren kann in allen Bereichen des Informatik-
Arbeitsplatzes eingesetzt werden!
Datenverwaltung
InformationserzeugungDatenverarbeitung
Kommunikation
45/46
Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich
Programmiervorlesungen für die Naturwissenschaften (FS)
• 251-0840-00 Anwendungsnahes Programmieren (Java)
• 251-0842-00 Programmieren und Problemlösen (Delphi)
46/46
Danke für Ihre Aufmerksamkeit