Agenda fr heute 4 Dezember 2009 Interaktion mit
Agenda für heute, 4. Dezember 2009 • 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) • • • ". zvd" (Voice-Datei) 2/44 © 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/44 © Departement Informatik, ETH Zürich
Betriebsarten im Vergleich Echtzeitbetrieb • Kurze Reaktionszeiten (μsek. ) • Hohe Zuverlässigkeit (Redundanz) • Messen, Regeln, Ablaufsteuerungen Programme 4/44 © 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/44 © Departement Informatik, ETH Zürich
• 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 • Graphik (Alphabet: Zeichensätze, Programmsteuerung) (Bildverarbeitung, Ausgabemedien) Neuere Standards beschreiben • Darstellung der Daten (Dokumente, Bilder) • Bedeutung der Daten (Beschreibung des Dateiinhalts) 6/44 © Departement Informatik, ETH Zürich
Datenformate: Ganze Zahlen aus dem Wertebereich 0. . 255 Ganze Zahlen aus dem Wertebereich -128. . 127 Dezimal wert binäre Darstellung ohne Vorzeichen Dezimal wert binäre Darstellung mit Vorzeichen 0 1 4 127 128 254 255 0000 0001 0000 0111 1111 1000 0000 1111 -127 -4 -1 -0 0 1 127 1 1111 1 000 0100 1 0001 1 000 0000 0 0001 0 1111 Wert Vorzeichen 7/44 © Departement Informatik, ETH Zürich
Datenformate: Ganze Zahlen aus dem Wertebereich 0. . 255 Dezimal wert binäre Darstellung Zweierkomplement Positive Zahlen haben eine führende 0 -128 -1 -4 0 1 4 127 1000 0000 1111 1100 0000 0001 0000 0111 1111 Nur eine Darstellung für 0 Umrechnung negativer Zahlen: sämtliche Stellen werden negiert zum Ergebnis wird 1 addiert Bsp. -4: negiert: plus 1 Resultat: Wert 8/44 1111 1100 0011 1 0000 0100 © Departement Informatik, ETH Zürich
Datenformate: Gleitkommazahlen 0 11000101 000001011101 + -5 4'331'357 Mantisse 2 Exponent = 135'354. 90625 9/44 © 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/44 © Departement Informatik, ETH Zürich
Datenformate: Zeichen werden durch Zahlen codiert. ASCII 128 Zeichen (American Standards Association) Charsets Unicode Consortium: Universal Character Set ISO 10644 (216 Zeichen) ISO 8859 (256 Zeichen) 11/44 © Departement Informatik, ETH Zürich
Grafik Rastergrafik Vektorgrafik (aufgereihte Bildpunkte) (Linienzüge, Kurven) Skalierbar ohne Qualitätseinbusse Qualitätsverlust bei Skalierung 12/44 © Departement Informatik, ETH Zürich
Prinzip der Rasterdaten rgb-Werte, die als Bilddaten gespeichert werden: Farbe des Bildpunktes (Pixel): rot grün blau Kombinierter rgb-Wert: 0 rot 0 255 0 0 0 16'711'680 1 rot 1 255 0 0 1 16'711'680 2 blau 0 0 255 2 255 3 4 gelb 2 3 255 0 16'776'960 türkis 4 44 172 212 3 4 . . . 2'927'828. . . 00101100 11010100 13/44 © Departement Informatik, ETH Zürich
Prinzip der Vektorgrafik Listen mit Befehlen und Koordinaten geben einem Grafikprogramm an, was wo wie zu zeichnen ist. Beispiel (Post. Script Standard) Die Instruktionsfolge: Zeichnet einen Kreis mit Radius 10 um ein Fadenkreuz am Punkt 50, 60: newpath 50 50 moveto 50 70 lineto 40 60 moveto 60 60 lineto 50 60 10 0 360 arc stroke showpage 60 0 14/44 0 50 © 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/44 © 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: {rtf 1ansi{fonttblf 0fswiss Helvetica; }f 0par Dies ist ein {b bold} Text. par } Darstellung: Dies ist ein Text. 16/44 © 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/44 © Departement Informatik, ETH Zürich
Datenformate: Hypertext Markup Language (HTML, W 3 C). • 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. • Diese Auszeichnungssprache wurde vom World Wide Web Consortium weiterentwickelt und soll durch XHTML ersetzt werden. 18/44 © Departement Informatik, ETH Zürich
Datenformate: Hypertext-Dokumente Extensible Markup Language (XML, W 3 C). • Textbasierte (im einfachsten Fall ASCII) Auszeichnungssprache 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. 19/44 © Departement Informatik, ETH Zürich
Datenformate: Hypertext-Dokumente DTD für Visulab-Daten <!ELEMENT Visulab. Data (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"? > <Visulab. Data> <data> <variables count="4"> <realvariable name="sepal-leng" hide="1"/> <realvariable name="sepal-widt" hide="0"/> <realvariable name="petal-leng" hide="0"/> 20/44 © Departement Informatik, ETH Zürich
• Interaktion mit Informatikmitteln: Betriebsarten • Datenformate • Programmierung • Hilfsmittel für die Programmierung • Webprogrammierung
Was ist ein Programm? 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 21/44 © Departement Informatik, ETH Zürich
Die Programmierumgebung stellt Instruktionen zur Verfügung Anwendungs- programme: Befehle der Anwendung + ev. Anweisungen einer Programmiersprache Programmierumgebung: Anweisungen einer Programmiersprache + ev. vorprogrammierte Elemente Betriebssystem: Anweisungen einer Kommandosprache Webseite: Anweisungen einer Skriptsprache 22/44 © Departement Informatik, ETH Zürich
Die Problemstellung diktiert die Datenstrukturen + 13 Berechnungen: Variablen 6 Fixe Listen: Felder (Arrays) T A M I F U 1 2 3 4 5 6 x 19 y z Dynamische Listen: verkettete Variablen (Records) T 2 A 1 3 M 2 4 3 I 5 4 F 5 6 U 6 Permanente Daten: Dateien (Files) T A M I F U 1 2 3 4 5 6 M output 23/44 © Departement Informatik, ETH Zürich
Die Problemstellung diktiert die Datenstrukturen + 13 Berechnungen: Variablen 6 Fixe Listen: Felder (Arrays) T A M I F U 1 2 3 4 5 6 x 19 y z Dynamische Listen: verkettete Variablen (Records) T 2 A 1 3 M 2 4 3 I 5 4 F 5 7 U 6 L 6 7 Permanente Daten: Dateien (Files) T A M I F U 1 2 3 4 5 6 M output 23/44 © Departement Informatik, ETH Zürich
Zwei Arten der Programmausführung (vereinfacht) 1) Programm wird kompiliert (übersetzt) Quellcode Prozessor. Instruktionen Compiler Müssen nicht auf dem ausführenden Computer sein Prozessor Muss auf dem ausführenden Computer sein 2) Programm wird interpretiert Quellcode Interpreter Compiler Prozessor. Instruktionen Prozessor 24/44 © 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) 25/44 © Departement Informatik, ETH Zürich
Debugger (Entstörer) • Sucht formale Fehler • Prüft während der Ausführung • Kann ein- oder ausgeschaltet werden 11/34 26/44 © 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) 27/44 © Departement Informatik, ETH Zürich
Imperative Programmierung Ein Befehl in der Eingabeaufforderung löst eine Folge von Anweisungen aus Befehlszeile Pascal-Anweisungsfolge Bildschirm Programmcode 28/44 © Departement Informatik, ETH Zürich
Objektorientierte Programmierung Konkretes oder imaginäres Objekt • hat Eigenschaften • kann Aktionen auslösen (kommuniziert) 2944 © Departement Informatik, ETH Zürich
• 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 Programmiersprache 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) 30/44 © Departement Informatik, 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) 31/44 © Departement Informatik, 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 32/44 Eingabe/Ausgabe © 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. Pseudocode: read(F) falsch T = F - 32 read(F) if F >= 32 then begin subtrahiere 32 multipliziere mit 5/9 write(C) end else gebe warnung aus F 32 wahr Warnung C = T x 5 / 9 write(C) 33/44 © 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. F = 0 Pseudocode: F = 0 solange F < 101 begin subtrahiere 32 multipliziere mit 5/9 write(F, C) F = F + 1 end falsch wahr Berechne C F < 101 write(F, C) erhöhe F Stopp 34/44 © Departement Informatik, ETH Zürich
Struktogramme: Sequenz, Fallunterscheidung Sequenz Fallunterscheidung Bedingung b Anweisung 1 ja Anweisung 2 Anweisung 1 nein Anweisung 2 . . Anweisung n 35/44 © Departement Informatik, ETH Zürich
Struktogramme: Wiederholung Schleife 0 bis n mal Solange Bedingung b tue Schleife genau n mal Für i = Anfangswert bis Endwert tue Anweisungen 36/44 Anweisungen © Departement Informatik, ETH Zürich
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 = a 2 - q Für F = 0 bis 100, Schrittw. 1 ja d < 0 nein F = F -32 tue h = √ d C = F • 5/9 Ausgabe: "nicht lösbar" Ausgabe C X 1 = a + h X 2 = a - h X 1, X 2 37/44 © Departement Informatik, ETH Zürich
• • Interaktion mit Informatikmitteln: Betriebsarten Datenformate Programmierung Hilfsmittel für die Programmierung • Webprogrammierung
Statische Webauftritte Kommunikationsschema für Webseiten Server Client 2. Bearbeitung 1. Anforderung HTML-Seite an Client zur Interpretation senden 3. Antwort Internet Interaktion zwischen Web und Nutzer auf Mausklicks beschränkt "Plakatcharakter" der Kommunikation 38/44 © Departement Informatik, ETH Zürich
Dynamische Webauftritte • Clientseitig Client erhält HTML-Dokumente, die Programme enthalten, welche das Erscheinungsbild im Browser steuern Z. B. in Abhängigkeit von Mausaktionen oder von Zeitgebern (Animationen) • Serverseitig Server beantwortet Anfragen qualifiziert Webdokumente werden durch Programnme des Servers für den Client bedarfsgerecht aufbereitet Jede Anfrage erhält eine individuelle Antwort 39/44 © Departement Informatik, ETH Zürich
Clientseitige dynamische Webauftritte Client Server 2. Bearbeitung 1. Anforderung 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 40/44 © 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) 41/44 © Departement Informatik, 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 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!! 42/44 © Departement Informatik, ETH Zürich
Programmieren kann in allen Bereichen des Informatik. Arbeitsplatzes eingesetzt werden! Datenverwaltung Kommunikation Datenverarbeitung Informationserzeugung 43/44 © 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) 44/44 © Departement Informatik, ETH Zürich
Wir wünschen Ihnen ein schönes Wochenende und viel Erfolg bei der Semesterende-Prüfung
- Slides: 50