1 (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz Datenstrukturen und Datentypen...

Post on 05-Apr-2015

106 views 1 download

Transcript of 1 (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz Datenstrukturen und Datentypen...

1(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Datenstrukturen und Datentypen

Lernziele:

- Einfache und strukturierte Datentypen kennen.

- Die OVAL-Methode zur Lösung von mathematischen Problemen einsetzen können

2(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Datentypen

Abstrakte Datentypen (Abstrakte Rechen-strukturen) stellen die Zugriffssicht für eine Sorte oder eine Menge von Sorten dar.

Sie definieren die Operationen mit ihren Funktionalitäten und den geforderten Eigenschaften für eine Sorte.

3(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Beispiele für einfache Datentypen

Form = {Rechteck,Quadrat,Ellipse,Kreis}

Farbe = {rot,grün,blau}

Geschlecht = {männlich,weiblich}

Wochentag = {Montag,Dienstag,Mittwoch,Donnerstag, Freitag,Samstag,Sonntag}

Fahrzeug = {Zug,Bus,Auto,Schiff,Flugzeug}

4(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Einfache Standardtypenin der Informatik

integer (eine Teilmenge der ganzen Zahlen)

boolean (true,false)

char (Menge der Schriftzeichen z.B. gemäss ASCII)

real (eine Teilmenge der reellen Zahlen)

5(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

integer

Elemente: aus einer Teilmenge der Menge der ganzen Zahlen

Operationen: +, -, *, div, mod

(div ist die Ganzzahldivision, mod liefert den Rest bei der Ganzzahl-division)

6(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

boolean

Elemente: true, false

Operationen: NOT, AND, OR

7(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

char

Elemente: aus einer Menge Schrift- und Steuerzeichen,kein allgemeingültiger Standard,meist ASCII

Operationen: Es sind keine Operatoren definiert.

8(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

real

Elemente: aus einer Teilmenge der Menge der reellen Zahlen.Darstellung mit Mantisse und Exponent (z.B. 2.75343 E-12)

Operationen: +, -, *, /Achtung: Bei Ueberlauf wird die Zahl abgeschnitten.

9(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Vergleichsoperatoren

Für alle Standardtypen kann man die Vergleichsoperatoren verwenden:

=, <, >, <=, >=, <>

mit dem Ergebnistypen BOOLEAN

10(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Weitere einfache Datentypen

Aufzählungstyp: z.B.Wochentag = (Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag);

Ausschnittstyp: z.B.Werktage = Montag .. Freitag;Zahlenbereich = 1 .. 10;

11(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Strukturierte Datentypen

array Vektor, Matrix

string Zeichenkette

record Verbund, z.B. für die Aufnahme einer Adresse (Name,Vorname,Strasse,PLZ,Ort)

set Zur Angabe von Mengen

12(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Aufgabe und Lösung

Welchem Standard-Datentyp kann man folgende Werte zuordnen?

a) kb) 5.6E2c) 3,1456d) 0

e) -4E-2f) .1E3g) 31456e-4h) Pi

13(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Aufgabe und Lösung

Welchem Standard-Datentyp kann man folgende Werte zuordnen?

a) k charb) 5.6E2 realc) 3,1456 -d) 0 integer

e) -4E-2 realf) .1E3 realg) 31456e-4 realh) Pi -

14(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Aufgabe

Entwerfen Sie eine geeignete Datenstruktur, um Bücher in einen Katalog eintragen zu können.

15(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Aufgabe

Entwerfen Sie eine geeignete Datenstruktur, um Bücher in einen Katalog eintragen zu können.

Autor stringTitel stringVerlag stringOrt stringJahr integerISBN-Nr. string

16(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Modell

Objekte

Variable und Konstanten

Aussagen

Lösung

Validierung

Die OVAL-Methode

17(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Ein Beispiel aus der Physik

Ein Auto fährt mit 100 km/h. Der Autofahrer sieht nun 150 m weiter vorne eine Polizeikontrolle und bremst nach einer Reaktionszeit von 0.5 s ab, sodass das Auto beim Kontrollpunkt mit 60 km/h vorbei-fährt.

Mit welcher Bremsbeschleunigung muss das Auto gebremst werden?

18(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Zeichnung

A

P

v2v1

s

sR sB

19(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Modell

Die Kinematik stellt Bewegungsgleichungen für die gleichmässig beschleunigte und die unbeschleunigte Bewegung zur Verfügung:

0

002

2vatv

stvta

s

+=

++=

20(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Objekte

O1: Bewegung während der Reaktionszeit

O2: Bremsbewegung

tvsR 1=

1

012

2vatv

stvta

s

B

B

+=

++=

21(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Variable und KonstanteName Bedeutung Typ Bereich/WertsR Reaktionsweg rational >0v1 Anfangsgeschwindigkeit rational 100km/htR Reaktionszeit rational 0.5ssB Bremsweg rational >0a Bremsbeschleunigung rational <0tB Bremszeit rational >0s0 Wegvorgabe rational 0vB Zielgeschwindigkeit rational 60km/hs Gesamtstrecke rational 150m

22(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Aussagen

• Der Gesamtweg ist gleich der Summe aus Reaktions-weg und Bremsweg

• Modell Reaktionsbewegung

• Modell Bremsbewegung

s=sR +sB

sR =v1tR

sB =a2

tB2 +v1tB

vB =atB +v1

4 Gleichungen/4 Variable

23(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Lösung (mit Maple)

> s:=150:v1:=100/3.6:vB:=60/3.6:tR:=0.5:

gleichung1:=s=sR+sB;

gleichung2:=sR=v1*tR;

gleichung3:=sB=a/2*tB^2+v1*tB;

gleichung4:=vB=a*tB+v1;

L:=solve({gleichung1,gleichung2,gleichung3, gleichung4},{sR,sB,a,tB});

L := {sB = 136., tB = 6.12, a = -1.81, sR = 13.9}

24(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Validierung

L := [{sB = 136., tB = 6.12, a = -1.81, sR = 13.9}]

Die Lösung ist eindeutig.

Die Beschleunigung ist tatsächlich negativ.

Mit einem Betrag von 1.81 m/s2 ist die Beschleunigung beim Bremsen auch noch erträglich.

25(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Aufgabe

Es sollen zylindrische Konservendosen aus Metall produziert werden. Bekannt sind die Produktionskosten pro cm2 Mantelfläche, sie betragen Fr. 0.0014. Für die Herstellung der Grundflächen ist mit dem doppelten Quadratzentimeter-preis wie für den Mantel zu rechnen, weil die Grundflächen noch durch eine Wellpresse durch müssen.Der Gesamtpreis für die Herstellung einer Konservendose wird mit Fr. 1.- vorge-geben. Bestimmen Sie die Produktionsmasse (Radius der Grundfläche und Höhe) einer Dose, wenn der Volums-inhalt 1000 cm3 sein soll.

26(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Modell

Die Stereometrie gibt Beziehungen zwischen Radius der Grundfläche, Höhe, Volumen und Oberfläche des Zylinders an.

Mantel M =2rπh

Grundfläche G =r2π

Oberfläche F =M +2G

Volumen V =r2πh

27(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Objekte

O1: Konservendose [r, h]

Das Objekt Konservendose ist mit Radius r und Höhe h voll charakterisiert und damit gegeben. Volumen, Mantel und Oberfläche und auch der Gesamtpreis können damit berechnet werden

28(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Variable und Konstante

Name Bedeutung Typ Bereich/Wertr Radius real >0h Höhe real >0G Grundfläche real >0M Mantel real >0V Volumen real 1000p Preis pro cm^2 Mantelfläche real 0.002GP Geamtpreis real 1

29(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Aussagen

• Das Volumen wird aus r und h berechnet.

• Die Grundfläche ist r2π.

• Der Mantel ist 2rπh.

• Der Gesamtpreis ist gleichPreis der Grundflächen und Preis für den Mantel.

4 Gleichungen/4 Variable

V =r2πh

G =r2π

M =2rπh

GP =2⋅G ⋅2p+M ⋅ p

30(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Lösung (mit Maple)

> restart:Digits:=3:V:=1000:p:=0.0014:GP:=1:# GleichungssystemG1:=V=r^2*Pi*h;G2:=G=r^2*Pi;G3:=M=2*r*Pi*h;G4:=GP=2*G*2*p+M*p;# LösungL:=solve({G1,G2,G3,G4},{r,h,G,M});

L := {sB = 136., tB = 6.12, a = -1.81, sR = 13.9}

31(C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz

Validierung

L := {M = -231., G = 236., h = 4.23, r = -8.67},{h = 23.6, M = 545., G = 42.3, r = 3.67},{r = 5.00, G = 78.6, M = 400., h = 12.7}

Mögliche Lösungen sind die 2. und die 3. Lösung. Die erste fällt aus, weil r nicht negativ sein darf.

Mir gefällt die 3. Lösung besser, weil ich das Verhältnis zwischen Durchmesser und Höhe besser finde.