Datenstrukturen und Datentypen Lernziele: - Einfache und strukturierte Datentypen kennen. - Die OVAL-Methode zur Lösung von mathematischen Problemen einsetzen können (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 1 Datentypen Abstrakte Datentypen (Abstrakte Rechenstrukturen) 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. (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 2 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} (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 3 Einfache Standardtypen in 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) (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 4 integer Elemente: aus einer Teilmenge der Menge der ganzen Zahlen Operationen: +, -, *, div, mod (div ist die Ganzzahldivision, mod liefert den Rest bei der Ganzzahldivision) (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 5 boolean Elemente: true, false Operationen: NOT, AND, OR (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 6 char Elemente: aus einer Menge Schrift- und Steuerzeichen, kein allgemeingültiger Standard, meist ASCII Operationen: Es sind keine Operatoren definiert. (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 7 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. (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 8 Vergleichsoperatoren Für alle Standardtypen kann man die Vergleichsoperatoren verwenden: =, <, >, <=, >=, <> mit dem Ergebnistypen BOOLEAN (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 9 Weitere einfache Datentypen Aufzählungstyp: z.B. Wochentag = (Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag); Ausschnittstyp: z.B. Werktage = Montag .. Freitag; Zahlenbereich = 1 .. 10; (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 10 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 (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 11 Aufgabe und Lösung Welchem Standard-Datentyp kann man folgende Werte zuordnen? a) b) c) d) k 5.6E2 3,1456 0 (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz e) f) g) h) -4E-2 .1E3 31456e-4 Pi 12 Aufgabe und Lösung Welchem Standard-Datentyp kann man folgende Werte zuordnen? a) b) c) d) k 5.6E2 3,1456 0 char real integer (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz e) f) g) h) -4E-2 .1E3 31456e-4 Pi real real real - 13 Aufgabe Entwerfen Sie eine geeignete Datenstruktur, um Bücher in einen Katalog eintragen zu können. (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 14 Aufgabe Entwerfen Sie eine geeignete Datenstruktur, um Bücher in einen Katalog eintragen zu können. Autor Titel Verlag Ort Jahr ISBN-Nr. (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz string string string string integer string 15 Die OVAL-Methode Modell Objekte Variable und Konstanten Aussagen Lösung Validierung (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 16 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 vorbeifährt. Mit welcher Bremsbeschleunigung muss das Auto gebremst werden? (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 17 Zeichnung A v1 v2 P s sR (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz sB 18 Modell Die Kinematik stellt Bewegungsgleichungen für die gleichmässig beschleunigte und die unbeschleunigte Bewegung zur Verfügung: a 2 s t v0t s0 2 v at v0 (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 19 Objekte O1: Bewegung während der Reaktionszeit O2: Bremsbewegung (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz sR v1t a 2 sB t v1t s0 2 vB at v1 20 Variable und Konstante Name sR v1 tR sB a tB s0 vB s Bedeutung Reaktionsweg Anfangsgeschwindigkeit Reaktionszeit Bremsweg Bremsbeschleunigung Bremszeit Wegvorgabe Zielgeschwindigkeit Gesamtstrecke (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz Typ rational rational rational rational rational rational rational rational rational Bereich/Wert >0 100km/h 0.5s >0 <0 >0 0 60km/h 150m 21 Aussagen • Der Gesamtweg ist gleich der Summe aus Reaktionsweg und Bremsweg • Modell Reaktionsbewegung • Modell Bremsbewegung (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz s sR sB sR v1t R a 2 sB t B v1t B 2 vB at B v1 22 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} (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 23 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. (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 24 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 Quadratzentimeterpreis 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 Volumsinhalt 1000 cm3 sein soll. (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 25 Modell Die Stereometrie gibt Beziehungen zwischen Radius der Grundfläche, Höhe, Volumen und Oberfläche des Zylinders an. Mantel M 2rh Grundfläche G r OberflächeF M 2G 2 VolumenV r h 2 (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 26 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 (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 27 Variable und Konstante Name r h G M V p GP Bedeutung Radius H he Grundfl che Mantel Volumen Preis pro cm^2 Mantelfl che Geamtpreis (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz Typ real real real real real real real Bereich/Wert >0 >0 >0 >0 1000 0.002 1 28 Aussagen • Das Volumen wird aus r und h berechnet. • Die Grundfläche ist r2π. • Der Mantel ist 2rπh. • Der Gesamtpreis ist gleich Preis der Grundflächen und Preis für den Mantel. (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz V r 2h G r 2 M 2rh GP 2 G 2 p M p 29 Lösung (mit Maple) > restart:Digits:=3: V:=1000:p:=0.0014:GP:=1: # Gleichungssystem G1:=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ösung L:=solve({G1,G2,G3,G4},{r,h,G,M}); (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 30 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. (C) 1999-2002, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 31