Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln...

41
Agenda für heute, 6. Juni 2007 Interaktion mit Informatikmitteln Interaktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung • Webprogrammierung

Transcript of Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln...

Page 1: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Agenda für heute, 6. Juni 2007

• Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln• Grundlagen der Programmierung

• Hilfsmittel für die Programmierung

• Webprogrammierung

Page 2: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Interaktion mit Informatikmitteln

Dialogbetrieb Echtzeitbetrieb Stapelbetrieb

2/37

Programme

Page 3: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Interaktion mit Informatikmitteln

Dialogbetrieb

3/37

• Interaktive Eingabe von Instruktionen und Daten

• Ausgabe von Daten in Echtzeit

• Steuerung eines Programms während seiner Ausführung möglich

Programme

Page 4: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Interaktion mit Informatikmitteln

Echtzeitbetrieb

4/37

• Kurze Reaktionszeiten

• Hohe Zuverlässigkeit

• Messen, Regeln, Ablauf-steuerungen

Programme

Page 5: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Interaktion mit Informatikmitteln

Stapelbetrieb

5/37

• 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

Programme

Page 6: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

• Interaktion mit Informatikmitteln

• Grundlagen der ProgrammierungGrundlagen der Programmierung• Hilfsmittel für die Programmierung

• Webprogrammierung

Page 7: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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

6/37

Page 8: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Instruktionen sind durch die Programmierumgebung vorgegeben

Aber was führt der Prozessor schlussendlich aus?

7/37

Anwendungs- Befehle der Anwendung + ev. Anweisungen programme: einer Programmiersprache

Betriebssystem: Anweisungen einer Kommandosprache

Webseite: Anweisungen einer Skriptsprache

Page 9: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Hierarchische Gliederung von Programmierumgebungen

14 000016 010200

15 000020 060102

16 000022 010001

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/37

Anwendungsspezifische

Programme

Höhere

Programmiersprache

Page 10: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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

9/37

Muss auf dem ausführenden Computer sein

Page 11: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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)

10/37

Page 12: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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

11/37

Page 13: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Programmiersprachen: Historische Entwicklung (Bsp.)

1999 DELPHI 2005 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/37

Page 14: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Die wichtigsten Programmierparadigmen

13/37

(Paradigma: Denkmuster)

Imperative Programmierung

Befehls- oder Anweisungsorientiert

Objektorientierte Programmierung

Objekte mit Eigenschaften und Operationen

Deklarative Programmierung

Fakten & logische Aussagen (Regeln)

Page 15: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Imperative Programmierung

14/37

Ein Befehl in der Eingabeaufforderung löst eine Folge von Anweisungen aus

Bildschirm Programmcode

Pascal-AnweisungsfolgeBefehlszeile

Page 16: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Objektorientierte Programmierung

15/37

Konkretes oder imaginäres Objekt

• hat Eigenschaften

• kann Aktionen auslösen

Page 17: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

• Interaktion mit Informatikmitteln

• Grundlagen der Programmierung

• Hilfsmittel für die ProgrammierungHilfsmittel für die Programmierung

• Webprogrammierung

Page 18: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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)

16/37

Page 19: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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)

17/37

Page 20: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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 zwei Symbole grafisch darstellen:

Operation Fallunterscheidung

18/37

Eingabe/Ausgabe

Page 21: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Flussdiagramme: Sequenz

read(F)

T = F - 32

C = T x 5 / 9

write(C)

Am Beispiel der Temperaturumrechnung:

19/37

Page 22: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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

20/37

Angenommen, wir rechnen die Temperaturen nur um, falls sie über dem Gefrierpunkt sind, andernfalls geben wir eine Warnung aus.

Page 23: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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

21/37

Nun möchten wir eine Umrechnungstabelle erstellen, die für jedes ganze Grad Fahrenheit zwischen 0 und 100 die entsprechende Temperatur in Celcius angibt.

Page 24: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Beispielaus dem Labor

Automatische Titration

22/37

Page 25: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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

23/37

Page 26: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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

24/37

Page 27: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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

25/37

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.

Page 28: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

• Interaktion mit Informatikmitteln

• Grundlagen der Programmierung

• Hilfsmittel für die Programmierung

• WebprogrammierungWebprogrammierung

Page 29: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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

26/37

Internet

Page 30: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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)

27/37

Page 31: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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

28/37

Page 32: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

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

29/37

Page 33: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Was sind Scriptsprachen?

Scripting Das Zusammenfassen von Programmaufrufen zu einem "Drehbuch" (script), das nach belieben auf-gerufen werden kann

Scriptsprache Erweiterung des Scripting um Programmier-sprachliche Elemente

(Übergabe von Resultaten an Folgeprogramm, Überspringen von Programmen,

Wiederholungen)

30/37

Page 34: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

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 andere Dokumente einbinden können

• Markups sind Anweisungen in einem HTML-Dokument, die angeben, wie Texte und grafische Elemente zu präsentieren sind

31/37

Page 35: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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> &nbsp; </TD></TR><TR><TD Width=25%> &nbsp; </TD>

<TD> &nbsp; </TD></TR></TABLE>

Diese Markups codieren eine 400 x 300 Pixel grosseTabelle, die sichtbar gemacht wird (Border=1)

32/37

Page 36: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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

33/37

Page 37: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

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)

34/37

Page 38: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

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!!

35/37

Page 39: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Programmieren kann in allen Bereichen des Informatik-

Arbeitsplatzes eingesetzt werden!

Datenverwaltung

InformationserzeugungDatenverarbeitung

Kommunikation

36/37

Page 40: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Programmiervorlesungen für die Naturwissenschaften (SS)

• 251-0840-00 Anwendungsnahes Programmieren (Java)

• 251-0842-00 Programmieren und Problemlösen (Delphi)

37/37

Page 41: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung.

Danke für Ihre Aufmerksamkeit