Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file 2...

Preview:

Citation preview

Vorlesung:

Prof. Dr. F. Bellosa

Übungsleitung:

Dipl.-Inform. A. Merkel

Tutorium:

Tutor:

Informatik I TutoriumWS 07/08

Tutorium 3: Dienstag 13. November 2007

12

Jens Kehne

http://info1.informatik.uni-karlsruhe.de

2

Übersicht Tutorium

Übersicht heute

• EBNF und Syntaxdiagramm

• Bits & Bytes

• Hello World

http://info1.informatik.uni-karlsruhe.de

3

EBNF & Syntaxdiagramm

http://info1.informatik.uni-karlsruhe.de

4

Warum EBNF?

• Formale Sprachen Grundlage für jede

Programmiersprache

• „Klären“ die Frage wie Anweisungen geschrieben und

verschachtelt werden können

• Z.B.:

• y := x + z;

http://info1.informatik.uni-karlsruhe.de

5

Metazeichen der Erweiterten Backus-Naur-Form (EBNF)

• Metazeichen dienen zur Beschreibung der Grammatikregeln, durch die die zu einer Sprache gehörenden Sätze festgelegt werden

= trennt linke und rechte Regelseite

. schließt Regel ab

| trennt Alternativen• Beispiel: x | y beschreibt: x, y

() klammert Alternativen• Beispiel: (x | y) z beschreibt: xz, yz

[] wahlweises Vorkommen• Beispiel: [x] y beschreibt: xy, y

{} 0-maliges bis n-maliges Vorkommen• Beispiel: {x} y beschreibt: y, xy, xxy, xxxxy, ....

http://info1.informatik.uni-karlsruhe.de

6

Darstellung von EBNF-Metazeichen als Syntaxdiagramm

• Ein Syntaxdiagramm ist eine graphische

Darstellungsform einer Grammatik

• Jedes EBNF-Metazeichen wird hierzu in Form einer

graphischen Darstellung umgesetzt

• x | y

• [x] y

x

y• (x | y) z

• {x} y

x

y

z

y

x

y

x

http://info1.informatik.uni-karlsruhe.de

7

Terminal-Symbole bei Syntaxdiagramm und Grammatik

• Unterscheidung von so genannten Terminal-Symbolen und

Nichtterminal-Symbolen• "0" ... "9" Terminal-Symbole

• Zahl, Ziffer Nichtterminal-Symbole

• Unterscheidung der beiden Symbolarten in

Syntaxdiagrammen

• Terminale in Kreis-Symbolen

• Nichtterminale in Rechteck-Symbolen

http://info1.informatik.uni-karlsruhe.de

8

EBNF-Grammatik

Gegeben sei folgendes Syntaxdiagramm.

Wie sieht die zugehörige EBNF-Grammatik aus?

a

b

c

,

a

b

c

,

c

a

b

a

b

c

(„a“|„b“|„c“),{(„a“|„b“|„c“)},{(„c“|„a“|„b“{„b“})}(„a“|„b“|„c“)

http://info1.informatik.uni-karlsruhe.de

9

Fragen zur EBNF

Wie lassen sich folgende Bedingungen in EBNF ausdrücken:

• "a" soll zwei Mal nacheinander auftreten und danach "b"

• "a" soll mindestens drei Mal nacheinander auftreten und danach "b"

• "a" soll zwischen zwei und vier Mal auftreten und danach "b"

• "a" soll nicht mehr als vier Mal in Folge auftreten und danach "b"

• "a" soll im gesamten Wort nicht häufiger als zwei Mal in Folge

auftreten

„a“„a“„b“

„a“„a“„a“{„a“}„b“

„a“„a“[(„a“|„a“„a“)]„b“

[(„a“|„a“„a“|„a“„a“„a“|„a“„a“„a“„a“)]„b“

{[(„a“|„a“„a“)]„b“}

http://info1.informatik.uni-karlsruhe.de

10

EBNF-Grammatik für Dateinamen

• Wie sieht eine EBNF-Grammatik für Dateinamen aus?

• Randbedingung:

• Nur Buchstaben, Ziffern und Unterstriche erlaubt

• Nichtterminalsymbol Buchstabe gegeben

Buchstabe =

("a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|"i"|"j"|"k"|"l"|"m"|"n"|"o"|"p"|"q"|

|"r"|"s"|"t" |"u"|"v"|"w"|"x"|"y"|"z").

Ziffer = („0“|“1“|“2“|“3“|“4“|“5“|“6“|“7“|“8“|“9“)

Zeichen = (Buchstabe|Ziffer|“_“).

Zeichen{Zeichen}[„.“Zeichen{Zeichen}].

http://info1.informatik.uni-karlsruhe.de

11

Syntaxdiagramm für Dateinamen

• Wie sieht ein Syntaxdiagramm für Dateinamen aus?

Zeichen

Zeichen

Zeichen

Zeichen

.

http://info1.informatik.uni-karlsruhe.de

12

Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

Gegeben seien folgende Datumsformate:

1. November 2004

1. 11. 04

1. 11. 2004

2004-11-01

04-11-01

Geben Sie:

a) ein Syntaxdiagramm (8T) und

b) eine EBNF-Grammatik (8T)

an, die diese Datumsformate beschreiben.

c) Nennen sie drei Nebenbedingungen für dieses Beispiel, die benötigt werden,

um neben der syntaktischen auch die semantische Korrektheit

sicherzustellen? (3T)

Hinweise zur Aufgabe:

Bei dieser Aufgabe kann das Nichtterminalsymbol Ziffer aus der Vorlesung verwendet werden.

Zu weiteren verwendeten Nichtterminalsymbolen muss der Aufbau im Aufgabenteil a) mit einem

Syntaxdiagramm im Aufgabenteil b) mit Regeln der EBNF-Grammatik festgelegt werden.

http://info1.informatik.uni-karlsruhe.de

13

Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

Tag

Jahr Monat

.

-

Jahr

Monat

Monatsname

.

- Tag

Lösung a): Syntaxdiagramm 1. November

2004

1. 11. 04

1. 11. 2004

2004-11-01

04-11-01

http://info1.informatik.uni-karlsruhe.de

14

Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

Ziffer ZifferTag

Monat Ziffer Ziffer

Jahr Ziffer Ziffer Ziffer Ziffer

Lösung a): Syntaxdiagramm 1. November

2004

1. 11. 04

1. 11. 2004

2004-11-01

04-11-01

http://info1.informatik.uni-karlsruhe.de

15

Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

Monatsnamen

Januar

Februar

März

April

Mai

Juni

Juli

August

September

Oktober

November

Dezember

Lösung a):

Syntaxdiagramm

1. November

2004

1. 11. 04

1. 11. 2004

2004-11-01

04-11-01

http://info1.informatik.uni-karlsruhe.de

16

Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

Lösung b): EBNF Grammatik

Datum = Tag "." (Monat "." | Monatsname ) Jahr | Jahr "-" Monat "-" Tag.

Tag = Ziffer [Ziffer].

Monat = Ziffer [Ziffer].

Monatsname = "Januar" | "Februar" | "März" | "April" | "Mai" | "Juni" | "Juli" | "August" |

"September" | "Oktober" | "November" | "Dezember".

Jahr = Ziffer Ziffer [Ziffer Ziffer].

1. November

2004

1. 11. 04

1. 11. 2004

2004-11-01

04-11-01

Tag

Jahr Monat

.

-

Jahr

Monat

Monatsname

.

- Tag

http://info1.informatik.uni-karlsruhe.de

17

Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

Gegeben seien folgende Datumsformate:

1. November 2004

1. 11. 04

1. 11. 2004

2004-11-01

04-11-01

Geben Sie:

c) Nennen sie drei Nebenbedingungen für dieses Beispiel, die benötigt werden,

um neben der syntaktischen auch die semantische Korrektheit

sicherzustellen? (3T)

Lösung c):

• Eine Tagesangabe muss zwischen 1 und 31 liegen.

• Eine Monatsangabe muss zwischen 1 und 12 liegen.

• Wenn Monat aus {4,6,9,11} dann gilt Tag zwischen 1 und 30

• …

http://info1.informatik.uni-karlsruhe.de

18

TheorieUmrechnung Dezimal - Binärsystem

http://info1.informatik.uni-karlsruhe.de

19

Bits & Bytes – Umrechnen von Dual in Dezimal

• Zahlen besitzen generell Stellenwertigkeiten:

• 123 = 1 * 100 + 2 *10 + 3 * 1 = 1*102 + 2*101 + 3 * 100

• Dezimal Zahlen besitzen Basis 10

• Dual Zahlen besitzen Basis 2

• Beispiel

• 1011002 in Dezimal

• 0 * 20 + 0 * 21 + 1*22 + 1*23 + 0 *24 +1 *25 = 44

http://info1.informatik.uni-karlsruhe.de

20

Bits & Bytes – Dezimal in Dual

• Die Zahl 44 in Dual:

• 44 : 2 = 22 R 0

• 22 : 2 = 11 R 0

• 11 : 2 = 5 R 1

• 5 : 2 = 2 R 1

• 2 : 2 = 1 R 0

• 1 : 2 = 0 R 1

• 101100

http://info1.informatik.uni-karlsruhe.de

21

Java

http://info1.informatik.uni-karlsruhe.de

22

Java

• Java-Installationsanleitung auf der Informatik 1 Homepage verfügbar

• In den Poolräumen ist Java bereits installiert

Wichtig

• In/Out-Klassen von der Informatik 1 Homepage nutzen

• In das gleiche Verzeichnis wie der Quell-Code

• Aufruf von javac zum Übersetzen

• Mehr kann ich euch nicht verraten sonst müsste ich die Aufgabe machen

http://info1.informatik.uni-karlsruhe.de

23

Java

• Editor ist euch freigestellt

• Texteditor reicht eigentlich

• Ich empfehle:

http://lernen.bildung.hessen.de/informatik/javaeditor/inde

x.htm

• Dort gibt es das Programm + Installationsanleitung

• Am besten die Java-Dokumentation dazu installieren und in der

Konfiguration unter „Programme“ angeben

• Am besten Finger weg von Eclipse

http://info1.informatik.uni-karlsruhe.de

24

Fragen? Questions?

Fragen? Questions?

Fragen? Questions?

Fragen? Questions?

Fragen? Questions?Fragen? Questions?

Fragen? Questions?

Fragen? Questions?

Fragen? Questions? Fragen? Questions?

Fragen? Questions? Fragen? Questions?

Fragen? Questions?

Questions?

Fragen?

http://info1.informatik.uni-karlsruhe.de

25

Bis bald …

http://info1.informatik.uni-karlsruhe.de

26

Credits

• Erstellung und Zusammenstellung des Materials:

• Christian Maier (Zusammenstellung)

• Stephan Kessler (Überarbeitung und Erweiterung)

Recommended