Agenda für heute, 5. Dezember 2008

Slides:



Advertisements
Ähnliche Präsentationen
Dauermagnete Bei magnetischen Materialien unterscheidet man Eisenkerne bzw. Weicheisenstücke und Dauermagnete bzw. Hart-magnetische Materialien. Dauermagnete.
Advertisements

TAGUNG DER DEUTSCH-LUSITANISCHEN JURISTENVEREINIGUNG O processo penal português Panorâmica introdutória Der portugiesische Strafprozess ein einführender.
Ach wie gut, daß niemand weiß Der Schutz von Wissen
Herzlich Willkommen bei SIMPLE STABLE BULDING
Adjektivendungen Tabellen und Übungen.
ZWILLING Neuheiten 2008.
Das Hexenkochbuch Nicht Rattenschwänze, Spinnenbein
 Präsentation transkript:

Agenda für heute, 5. Dezember 2008 Interaktion mit Informatikmitteln: Betriebsarten Datenformate Programmierung Hilfsmittel für die Programmierung Webprogrammierung

Interaktion mit Informatikmitteln Zwei Interaktionstypen: mit Anwendern mit Daten Drei Betriebsarten: Dialog Echtzeit Stapel Unzählige Datenformate: ".a" (Archiv bei UNIX) bis ".zvd" (Voice-Datei) 2/46 © Departement Informatik, ETH Zürich

Betriebsarten im Vergleich Dialogbetrieb Interaktive Eingabe von Instruktionen und Daten Sofortige Ausgabe von Daten (< 0.1 sec.) Steuerung eines Programms während seiner Ausführung möglich Programme 3/46 © Departement Informatik, ETH Zürich

Betriebsarten im Vergleich Echtzeitbetrieb Kurze Reaktionszeiten (μsek.) Hohe Zuverlässigkeit (Redundanz) Messen, Regeln, Ablaufsteuerungen Programme 4/46 © Departement Informatik, ETH Zürich

Betriebsarten im Vergleich Stapelbetrieb Vollständig spezifizierter Auftrag wird selbständig ausgeführt Keine Möglichkeit, auf den Programmablauf einzuwirken Rechenintensive Arbeiten, Routineaufgaben (z.B. autom. Backup) Makros, Batch-Dateien (.BAT) Programmierung 5/46 © Departement Informatik, ETH Zürich

Datenformate Programmierung Hilfsmittel für die Programmierung Interaktion mit Informatikmitteln: Betriebsarten Datenformate Programmierung Hilfsmittel für die Programmierung Webprogrammierung

Standardisierung ermöglicht Datenaustausch 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) 6/46 © Departement Informatik, ETH Zürich

Datenformate: Ganze Zahlen Ganze Zahlen aus dem Wertebereich 0..255 Ganze Zahlen aus dem Wertebereich -128..127 Dezimal- binäre Darstellung wert ohne Vorzeichen 0 0000 0000 1 0000 0001 4 0000 0100 127 0111 1111 128 1000 0000 254 1111 1110 255 1111 1111 Dezimal- binäre Darstellung wert mit Vorzeichen -127 1 111 1111 -4 1 000 0100 -1 1 000 0001 -0 1 000 0000 0 0 000 0000 1 0 000 0001 127 0 111 1111 Wert Wert Vorzeichen 7/46 © Departement Informatik, ETH Zürich

Datenformate: Ganze Zahlen Ganze Zahlen aus dem Wertebereich 0..255 Dezimal- binäre Darstellung wert Zweierkomplement -128 1000 0000 -1 1111 1111 -4 1111 1100 0 0000 0000 1 0000 0001 4 0000 0100 127 0111 1111 Positive Zahlen haben eine führende 0 Nur eine Darstellung für 0 Umrechnung negativer Zahlen: sämtliche Stellen werden negiert zum Ergebnis wird 1 addiert Bsp. -4: 1111 1100 negiert: 0000 0011 plus 1 1 Resultat: 0000 0100 Wert 8/46 © Departement Informatik, ETH Zürich

Datenformate: Gleitkommazahlen 0 11000101 00000100001011101011101 + -5 4'331'357 Mantisse  2Exponent = 135'354.90625 9/46 © Departement Informatik, ETH Zürich

Wie kann ein Komma gleiten? 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 Mantisse = 0.125 Exponent = –2 Grund: Erlaubt die Darstellung sehr kleiner Zahlen auch wenn für die Mantisse wenig Bits zur Verfügung stehen (kleine Präzision). 10/46 © Departement Informatik, 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) 11/46 © Departement Informatik, ETH Zürich

Rastergrafik Vektorgrafik (aufgereihte Bildpunkte) Vektorgrafik (Linienzüge, Kurven) Skalierbar ohne Qualitätseinbusse Qualitätsverlust bei Skalierung 12/46 © Departement Informatik, ETH Zürich

Prinzip der Rasterdaten rgb-Werte,die als Bilddaten gespeichert werden: Farbe des Bild-punktes (Pixel): Kombinierter rgb-Wert: rot grün blau 255 44 172 212 . . . rot blau gelb türkis . . . 16'711'680 255 16'776'960 2'927'828 . . . 1 1 1 2 2 2 3 3 3 4 4 4 00101100 10101100 11010100 13/46 © Departement Informatik, ETH Zürich

Prinzip der Vektorgrafik Listen mit Befehlen und Koordinaten geben einem Grafikprogramm an, was wo wie zu zeichnen ist. Beispiel (PostScript Standard) Die Instruktionsfolge: newpath 50 50 moveto 50 70 lineto 40 60 moveto 60 60 lineto 50 60 10 0 360 arc stroke showpage Zeichnet einen Kreis mit Radius 10 um ein Fadenkreuz am Punkt 50, 60: 60 50 14/46 © Departement Informatik, 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. 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. 15/46 © Departement Informatik, 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. RTF-Datei: {\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\par Dies ist ein {\b bold} Text.\par } Darstellung: Dies ist ein Text. 16/46 © Departement Informatik, 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. 17/46 © Departement Informatik, ETH Zürich

Datenformate: Hypertext 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. HTML wurde vom World Wide Web Consortium weiterentwickelt und soll durch XHTML ersetzt werden. 18/46 © Departement Informatik, 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) 19/46 © Departement Informatik, ETH Zürich

<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 20/46 © Departement Informatik, ETH Zürich

Datenformate: Hypertext-Dokumente 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. 21/46 © Departement Informatik, ETH Zürich

Datenformate: Hypertext-Dokumente DTD für Visulab-Daten <!ELEMENT VisulabData (data)> <!ELEMENT data (variables, records)> <!ELEMENT variables (realvariable)+> <!ATTRLIST variables count 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"/> 22/46 © Departement Informatik, ETH Zürich

Programmierung Hilfsmittel für die Programmierung Webprogrammierung Interaktion mit Informatikmitteln: Betriebsarten Datenformate 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 Algorithmen + Datenstrukturen = Programme 23/46 © Departement Informatik, ETH Zürich

Die Programmierumgebung stellt Instruktionen zur Verfügung Anwendungs- Befehle der Anwendung + ev. Anweisungen programme: einer Programmiersprache Programmier- Anweisungen einer Programmiersprache umgebung: + ev. vorprogrammierte Elemente Betriebssystem: Anweisungen einer Kommandosprache Webseite: Anweisungen einer Skriptsprache 24/46 © Departement Informatik, ETH Zürich

Die Problemstellung diktiert die Datenstrukturen Berechnungen: Variablen Fixe Listen: Felder (Arrays) Dynamische Listen: verkettete Variablen (Records) Permanente Daten: Dateien (Files) 6 + 13  19 x y z A F L P T X 1 2 3 4 5 6 A 2 F 3 P 4 T  1 2 3 4  A F L P T X 1 2 3 4 5 6 L output 25/46 © Departement Informatik, ETH Zürich

Zwei Arten der Programmausführung (vereinfacht) 1) Programm wird kompiliert (übersetzt) Quellcode Prozessor- Instruktionen Compiler Prozessor Müssen nicht auf dem ausführenden Computer sein Muss auf dem ausführenden Computer sein 2) Programm wird interpretiert Quellcode Prozessor- Instruktionen Interpreter Compiler Prozessor 26/46 © Departement Informatik, 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 © Departement Informatik, ETH Zürich

Debugger (Entstörer) Sucht formale Fehler Prüft während der Ausführung Kann ein- oder ausgeschaltet werden 28/46 11/34 © Departement Informatik, ETH Zürich

Die wichtigsten Programmierparadigmen (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) 29/46 © Departement Informatik, ETH Zürich

Imperative Programmierung Ein Befehl in der Eingabeaufforderung löst eine Folge von Anweisungen aus Befehlszeile Pascal-Anweisungsfolge Bildschirm Programmcode 30/46 © Departement Informatik, ETH Zürich

Objektorientierte Programmierung Konkretes oder imaginäres Objekt hat Eigenschaften kann Aktionen auslösen (kommuniziert) 31/46 © Departement Informatik, ETH Zürich

Hilfsmittel für die Programmierung Interaktion mit Informatikmitteln: Betriebsarten Datenformate Programmierung Hilfsmittel für die Programmierung Webprogrammierung

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) 32/46 © Departement Informatik, ETH Zürich

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) 33/46 © Departement Informatik, ETH Zürich

Sequenz, Fallunterscheidung und Wiederholung 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 Eingabe/Ausgabe 34/46 © Departement Informatik, ETH Zürich

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) 35/46 © Departement Informatik, ETH Zürich

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 36/46 © Departement Informatik, ETH Zürich

Struktogramme: Sequenz, Fallunterscheidung Anweisung 1 Anweisung 2 Bedingung b Anweisung 1 Anweisung 2 .... Anweisung n ja nein 37/46 © Departement Informatik, ETH Zürich

Struktogramme: Wiederholung Schleife genau n mal Schleife 0 bis n mal Solange Bedingung b tue Anweisungen Für i = Anfangswert bis Endwert tue Anweisungen 38/46 © Departement Informatik, ETH Zürich

Struktogramme: Beispiele 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 Für F = 0 bis 100, Schrittw. 1 F = F -32 tue C = F • 5/9 Ausgabe C 39/46 © Departement Informatik, ETH Zürich

Webprogrammierung Interaktion mit Informatikmitteln: Betriebsarten Datenformate 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 40/46 © Departement Informatik, ETH Zürich

Dynamische Webauftritte Clientseitig Client erhält HTML-Dokumente, die Programme enthalten, welche das Erscheinungsbild im Browser steuern Serverseitig Server beantwortet Anfragen qualifiziert Webdokumente werden durch den Server für den Client bedarfsgerecht aufbereitet Jede Anfrage erhält eine individuelle Antwort 41/46 © Departement Informatik, ETH Zürich

Clientseitige dynamische Webauftritte Server 1. Anforderung 2. Bearbeitung HTML-Seite an Client zur Interpretation senden 3. Antwort 4. Bearbeitung Dynamische Effekte für komfortable Benutzerschnittstellen Bereichs- und Gültigkeitsüberprüfung von Zahlen und Texten in Formularen Hervorheben von Dokumentteilen bei Erhalt des Mausfokus 42/46 © Departement Informatik, 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 © Departement Informatik, ETH Zürich

"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 vom Webserver an dort ablaufende Programme weitergegeben (z.B. über CGI), kann aber auch HTML-Dokumenten auf der Client-Seite verfügbar gemacht werden Hinweis: Kein Schutz gegen Missbrauch!! 44/46 © Departement Informatik, ETH Zürich

Programmieren kann in allen Bereichen des Informatik-Arbeitsplatzes eingesetzt werden! Datenverwaltung Kommunikation Datenverarbeitung Informationserzeugung 45/46 © Departement Informatik, ETH Zürich

Programmiervorlesungen für die Naturwissenschaften (FS) 251-0840-00 Anwendungsnahes Programmieren (Matlab) 251-0842-00 Programmieren und Problemlösen (Delphi) 46/46 © Departement Informatik, ETH Zürich

Wir wünschen Ihnen ein schönes Wochenende und viel Erfolg bei der Semesterende-Prüfung