Algorithmen und Programmieren 1 Funktionale Programmierung - Musterlösung zu Übung 1 -
|
|
- Benjamin Bieber
- vor 7 Jahren
- Abrufe
Transkript
1 Algorithmen und Programmieren 1 Funktionale Programmierung - Musterlösung zu Übung 1 - Dozent: Prof. Dr. G. Rote Tutoren: J. Fleischer, T. Haimberger, N. Lehmann, C. Pockrandt, A. Steen Ziele dieser Übung Grundlagen von Haskell lernen und verstehen. In dieser Übung sollte man folgende Konzepte geübt und verstanden haben: Haskellprogramme schreiben, compilieren und ausführen Kommentare schreiben Signaturen schreiben Wahl guter Funktionsnamen Datentypen Int, Integer (ganzzahlige Werte) Float, Double (Gleitkommazahlen) Bool (Wahrheitswerte) einfache Funktionen schreiben Die Funktion: div Die Funktion: mod Die Funktion: max Präx- und Inx-Schreibweise von Funktionen (div,mod) Hilfsfunktionen Funktionen rufen Funktionen auf Weitergabe von Funktionsparametern 1
2 Aufgabe 1: Dreiecke Schreiben Sie eine Funktion zum Testen, ob x, y, z die Seitenlängen eines Dreiecks (mit positiver Fläche) sind. (Entartete Dreiecke, wo zum Beispiel zwei Ecken zusammenfallen, sind ausgeschlossen.) Lösung zu Aufgabe 1: -- Prüft, ob 3 Kanten ein Dreieck bilden können. istdreieck1::int->int->int->bool istdreieck1 x y z = x + y > z && x+z>y && z+y>x && x>0 && y>0 && z>0 -- Prüft, ob 3 Kanten ein Dreieck bilden können. istdreieck2::int->int->int->bool istdreieck2 x y z = x+y+z > 2*(max (max x y) z) Zusatzfrage: Beweisen Sie, dass man die drei Bedingungen x > 0, y > 0, z > 0 auch weglassen kann. Beweisen Sie, dass istdreieck2 äquivalent zu istdreieck1 ist. Aufgabe 2: Negative Argumente Die zweistelligen Funktionen mod x y und div x y bestimmen den Rest von x bei Division durch y, beziehungsweise den ganzzahligen Quotienten der Division unter Vernachlässigung des Restes. a) Finden Sie durch Probieren heraus, was passiert, wenn für x und y auch negative Werte oder 0 eingesetzt werden. Lösung zu Aufgabe 2a: div (+7) (+2) = (+3) div (-7) (+2) = (-4) div (+7) (-2) = (-4) div (-7) (-2) = (+3) div (+2) ( 0) = Program error: divide by zero mod (+8) (+3) = (+2) mod (-8) (+3) = (+1) mod (+8) (-3) = (-1) mod (-8) (-3) = (-2) mod (+2) ( 0) = Program error: divide by zero b) Welche Beziehung gilt immer (mit wenigen Ausnahmen; mit welchen?) zwischen x mod x y und div x y? Lösung zu Aufgabe 2b: x, y Z, y 0: x mod x y = (div x y) y c) Fassen Sie Ihre Ergebnisse zu Aufgabe a) in möglichst einfache Regeln. Lösung zu Aufgabe 2c: y = 0 ist nie erlaubt. Das Ergebnis von mod x y hat immer das Vorzeichen von y (oder es ist Null). mod x y < y Bei div x y wird das Ergebnis für y > 0 abgerundet (gegen ), für y < 0 aufgerundet (gegen + ). 2
3 Aufgabe 3: Überlauf Im Gegensatz zum Typ Integer haben Gröÿen vom Typ Int einen Wert von höchstens oder auch a) Was passiert, wenn bei einer Rechnung mit Gröÿen vom Type Int diese Grenze überschritten wird? (Bemerkung: Je nach Haskell-Umgebung oder Betriebssystem können Int-Werte auch bis zu groÿ sein.) Lösung zu Aufgabe 3a: Sobald man das Maximum des Denitionsbereichs von Int überschritten hat, geht es bei dem Minimum des Denitionsbereichs von Int weiter. (2^31)-1 +0::Int (2^31)-1 +1::Int (2^31)-1 +2::Int b) Welches ist der kleinste Wert, der im Typ Int dargestellt werden kann? Lösung zu Aufgabe 3b: Mit dem folgenden Haskell-Code kann man die untere Grenze von Int bestimmen: minbound::int Das Ergebnis ist oder auch Aufgabe 4: Zinseszinsberechnung Die folgende Funktion bestimmte die Zinsen einer Anlage von zinsfuÿ %. zinsen kapital zinsfuÿ = kapital * zinsfuÿ * 0.01 a) Denieren Sie unter Zuhilfenahme von zinsen eine Funktion endwert (mit geeigneten Parametern), die den Wert der Anlage (Kapital+Zinsen) am Ende einer Zinsperiode bestimmt. Lösung zu Aufgabe 4a: zinsen::double->double->double zinsen kapi zfus = kapi * zfus * Diese Funktion berechnet den Zinseszins nach einer Zeitperiode. endwert::double->double->double endwert kapital zinssatz = kapital+(zinsen kapital zinssatz) b) Denieren Sie eine Funktion endwert2, die den Wert nach zwei Zinsperioden berechnet, wenn die Zinsen am Ende der ersten Periode wieder angelegt werden. Lösung zu Aufgabe 4b: -- Diese Funktion berechnet den Zinseszins nach zwei Zeitperioden. endwert2::double->double->double endwert2 kapital2 zinsfuss2 = endwert (endwert kapital2 zinsfuss2) zinsfuss2 3
4 Zusatzlösung zu Aufgabe 4b: -- Diese Funktion berechnet endrekursiv den Zinseszins mit beliebiger Zeitperiode t endwertn::double->double->integer->double endwertn k z t t == 0 = k otherwise = endwertn (k+(zinsen k z)) z (t-1) c) Funktioniert es auch mit der folgenden Denition? zinsen kapital zinsfuÿ = kapital * zinsfuÿ / 100 Lösung zu Aufgabe 4c: Die Typklassen der Funktionen (*) und (/) unterscheiden sich zwar, :type (*) (*) :: Num a => a -> a -> a :type (/) (/) :: Fractional a => a -> a -> a da aber Float alle Eigenschaften beider Typklassen hat funktioniert es trotzdem. Aufgabe 5: Gleitkommarechnungen Vom mathematischen Standpunkt aus müsste die folgende Funktion immer 0 liefern: zero:: Float -> Float zero x = (1/x)*x - 1 Wegen Rundungsfehlern ist dies nicht immer der Fall. a) Finden Sie Werte x, bei denen das Ergebnis von 0 verschieden ist. -- Die Funktionen geben k Ergebnisse zurück, Lösung zu Aufgabe 5a: -- a) die die Funktion mit Float erfolgreich auf Abweichungen von 0 testen. zerof::float->float zerof x = (1/x )*x-1 zerotesterf::[(float,float)] zerotesterf k = take k [(n,(zerof n)) n<-[1.0,2.0..], (zerof n) /= 0] Ergebnisliste für k=3: [(41.0, e-008),(47.0, e-008),(55.0, e-008)] b) Ändert sich das Ergebnis beim Übergang zu Double? Lösung zu Aufgabe 5b: -- b) die die Funktion mit Float erfolgreich auf Abweichungen von 0 testen. zerod::double->double zerod x = (1/x )*x-1 zerotesterd::[(double,double)] zerotesterd k = take k [(n,(zerod n)) n<-[1.0,2.0..], (zerod n) /= 0] Ergebnisliste für k=3: [(49.0, e-016),(98.0, e-016), (103.0, e-016)] Warum ist das Ergebnis nie positiv?? 4
5 Aufgabe 6: Gröÿer als der Durchschnitt Schreiben Sie eine Funktion von drei Integer-Parametern, die ausgibt, wie viele der Eingabeparameter gröÿer als der Durchschnittswert sind. Lösung zu Aufgabe 6: -- Gibt 1 aus falls True, gibt 0 aus falls False. b2i::bool -> Integer b2i True = 1 b2i False = 0 -- Berechnet den Durchschnitt der 3 Eingabeparameter. -- Wichtig ist die Typumwandlung vor der Division avg::integer->integer->integer->double avg a b c = fromintegral (a+b+c) / 3 -- Zählt wie viel der Eingabeparameter gröÿer als der Durchschnitt sind. biggerthanavg::integer->integer->integer->integer biggerthanavg x y z = b2i (fromintegral x > avg x y z) + b2i (fromintegral y > avg x y z)+ b2i (fromintegral z > avg x y z) Diese Lösung kann versagen, wenn die Werte so groÿ sind, dass beim Umwandeln in eine Gleitkommazahl Rundungsfehler auftreten, zum Beispiel für x = und die Werte x, x, x + 1. Alternative: Man formt die Ungleichung x > (x + y + z)/3 um, indem man sie mit 3 multipliziert: 3x > x + y + z 2x > x + z biggerthanavg':: Integer->Integer->Integer->Integer biggerthanavg' x y z = b2i (2*x > y+z) + b2i (2*y > x+z)+ b2i (2*z > x+y) Alternative 2: Wenn man avg mit ganzzahliger Division deniert (zum Beispiel avg a b c = div (a+b+c) 3), dann funktioniert es auch. Der Grund ist, dass für ganzzahliges x und beliebiges α gilt x > α x > α Dabei steht α für den exakten Durchschnittswert, und α ist der abgerundete Wert von α. Mit kleiner oder statt gröÿer würde diese Lösung nicht funktionieren. 5
Algorithmen und Programmieren 1 Funktionale Programmierung - Musterlösung zu Übung 3 -
Algorithmen und Programmieren 1 Funktionale Programmierung - Musterlösung zu Übung 3 - Dozent: Prof. Dr. G. Rote Tutoren: J. Fleischer, T. Haimberger, N. Lehmann, C. Pockrandt, A. Steen 01.11.2011 Ziele
MehrAlgorithmen und Programmieren 1 Funktionale Programmierung - Musterlösung zu Übung 4 -
Algorithmen und Programmieren 1 Funktionale Programmierung - Musterlösung zu Übung 4 - Dozent: Prof. Dr. G. Rote Tutoren: J. Fleischer, T. Haimberger, N. Lehmann, C. Pockrandt, A. Steen 11.11.011 Ziele
MehrAlgorithmen und Programmieren 1 Funktionale Programmierung - Musterlösung zu Übung 9 -
Algorithmen und Programmieren 1 Funktionale Programmierung - Musterlösung zu Übung 9 - Dozent: Prof. Dr. G. Rote Tutoren: J. Fleischer, T. Haimberger, N. Lehmann, C. Pockrandt, A. Steen 10.01.2012 Ziele
MehrCrashkurs Haskell Mentoring WiSe 2016/17. Anja Wolffgramm Freie Universität Berlin
Crashkurs Haskell Mentoring WiSe 2016/17 Anja Wolffgramm Freie Universität Berlin 02/11/2016 , Inhalt Kommandozeile Haskell installieren & starten Ein 1. Haskell-Programm Funktionsdefinition Primitive
MehrEinführung in die funktionale Programmierung
Einführung in die funktionale Programmierung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 26. Oktober 2006 Haskell - Einführung Syntax Typen Auswertung Programmierung
MehrAlgorithmen und Programmieren 1 Funktionale Programmierung - Musterlösung zu Übung 8 -
Algorithmen und Programmieren 1 Funktionale Programmierung - Musterlösung zu Übung 8 - Dozent: Prof. Dr. G. Rote Tutoren: J. Fleischer, T. Haimberger, N. Lehmann, C. Pockrandt, A. Steen 03.01.2012 Ziele
MehrCrashkurs: Haskell. Mentoring FU Berlin Felix Droop
Crashkurs: Haskell Mentoring FU Berlin 7.11.2018 Felix Droop Crashkurs Haskell 1. GHCi Umgebung
MehrVorsemesterkurs Informatik
Vorsemesterkurs Informatik Sommersemester 2011 Grundlagen der Programmierung in Haskell SoSe 2011 Stand der Folien: 30. März 2011 Übersicht 1 Ausdrücke und Typen 2 Funktionen 3 Rekursion Vorkurs Informatik
MehrGrundlegende Datentypen
Grundlegende Datentypen (Funktionale Programmierung) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 21:08 Grundlegende Datentypen 1/16 Typen in Haskell ist alles streng typisiert Haskell verfügt über
MehrKapitel 3: Eine einfache Programmiersprache. Programmieren in Haskell 1
Kapitel 3: Eine einfache Programmiersprache Programmieren in Haskell 1 Datentypen, Datentypdefinitionen data Instrument = Oboe HonkyTonkPiano Cello VoiceAahs data Musik = Note Ton Dauer Pause Dauer Musik
MehrGrundlegende Datentypen
Funktionale Programmierung Grundlegende Datentypen Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 14.11.2017 15:37 Inhaltsverzeichnis Typen........................................
MehrMusterlösung zur 2. Aufgabe der 4. Übung
Musterlösung zur 2. Aufgabe der 4. Übung Da viele von Euch anscheinend noch Probleme mit dem Entfalten haben, gibt es für diese Aufgabe eine Beispiellösung von uns. Als erstes wollen wir uns noch einmal
MehrProgrammieren in Haskell Einstieg in Haskell
Programmieren in Haskell Einstieg in Haskell Peter Steffen Universität Bielefeld Technische Fakultät 24.10.2008 1 Programmieren in Haskell Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke
MehrBasiskonstrukte von Haskell
Basiskonstrukte von Haskell PD Dr. David Sabel Goethe-Universität Frankfurt am Main 29. September 2015 Basistypen und Operationen Ganzzahlen: Int = Ganzzahlen beschränkter Länge Integer = Ganzzahlen beliebiger
MehrProgrammieren in Haskell
Programmieren in Haskell Wir steigen ein... Programmieren in Haskell 1 Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke und Werte Datentypen Funktionen Aufgabe für diese Woche Programmieren
MehrFunktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel
MehrProgrammieren in Haskell
Programmieren in Haskell Wir steigen ein... Programmieren in Haskell 1 Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke und Werte Datentypen Funktionen Aufgabe für s Wochenende Programmieren
MehrPrimitive Datentypen in Haskell
Primitive Datentypen in Haskell Der Datentyp Bool Der Datentyp Bool dient zur Beschreibung von Wahrheitswerten und zum Rechnen mit solchen Werten. Bool hat nur zwei mögliche Werte True und False. Als Operationen
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
MehrEinführung in die Praktische Informatik. Übungsblatt 3. PD Dr. U. Köthe Heidelberg, 7. November Aufgabe 3.1 Gaußsche Osterregel [6 Punkte]
Einführung in die Praktische Informatik PD Dr. U. Köthe Heidelberg, 7. November 2016 Übungsblatt 3 Aufgabe 3.1 Gaußsche Osterregel [6 Punkte] Erstellen Sie ein Programm, das mit dem Algorithmus von Gauß
MehrFunktionale Programmierung Grundlegende Datentypen
Grundlegende Datentypen Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 06.11.2017 16:45 Inhaltsverzeichnis Typen........................................
MehrStandard.lib. Inhalt. WAGO-I/O-PRO 32 Bibliothek
Anhang A Weitere Bibliotheken WAGO-I/O-PRO 32 Bibliothek Standard.lib Inhalt ASCIIBYTE_TO_STRING...3 REAL_STATE...4 STANDARD_VERSION...6 STRING_COMPARE...7 STRING_TO_ASCIIBYTE...8 WAGO-I/O-PRO 32 Standard.lib
MehrJAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
MehrTutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen
MehrProinformatik Marco Block Dienstag, den 21. Juli 2009
2. Skript vom Dienstag, den 21. Juli 2009 zur Vorlesung Proinformatik Marco Block Dienstag, den 21. Juli 2009 1 Verschiedenes 1.1 let und where Am Anfang der Vorlesung haben wir uns ein paar einfache neue
MehrProgrammieren in Haskell Einführung
Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 17.10.2008 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:
MehrProjekt 3 Variablen und Operatoren
Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.
MehrGrundlegende Datentypen
Grundlegende Datentypen Funktionale Programmierung Prof. Dr. Oliver Braun Letzte Änderung: 22.10.2018 10:53 Grundlegende Datentypen 1/21 Typen in Haskell ist alles streng typisiert Haskell verfügt über
MehrVerarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen:
Verarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen: take 1 0 ( f i l t e r ( fn x => x mod 2=0) nat ) ; val it =
MehrAlgorithmen und Programmieren 1 Funktionale Programmierung - Musterlösung zur Übungsklausur -
Algorithmen und Programmieren 1 Funktionale Programmierung - Musterlösung zur Übungsklausur - Punkte: A1: 30, A2: 20, A3: 20, A4: 20, A5: 10, A6: 20 Punkte: /120 12.02.2012 Hinweis: Geben Sie bei allen
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die
MehrEinstieg in die Informatik mit Java
1 / 29 Einstieg in die Informatik mit Java Weitere Ausdrücke Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 29 1 Überblick 2 Kombinierte Zuweisungsoperatoren 3 Vergleichsoperatoren
MehrALP I Einführung in Haskell
ALP I Einführung in Haskell WS 2012/2013 Was ist Haskell? Haskell ist eine rein Funktionale Programmiersprache mit einer nach Bedarf Auswertung-Strategie oder "Lazy Evaluation". Was bedeutet rein funktional?
MehrC++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16
C++ Teil 4 Sven Groß IGPM, RWTH Aachen 30. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 4 30. Apr 2015 1 / 16 Themen der letzten Vorlesung Funktionen: Definition und Aufruf Wert- und Referenzparameter,
MehrÜbungen zur Vorlesung Wissenschaftliches Rechnen I
Übungen zur Vorlesung Wissenschaftliches Rechnen I Nicolas Gauger, René Lamour, Hella Rabus Wintersemester 2007/2008 Programmierung - Einführung Programmierung - Einführung Berechnung einer Formel y =
MehrTutoraufgabe 1 (Casting): Programmierung WS17/18 Übungsblatt 2 (Abgabe ) Allgemeine Hinweise:
Prof. aa Dr. J. Giesl Programmierung WS17/18 M. Hark, J. Hensel, D. Korzeniewski Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet
MehrEinstieg in die Informatik mit Java
Vorlesung vom 25.4.07, Ausdrücke Übersicht 1 Die wichtigsten arithmetischen Ausdrücke Arithmetische Operatoren Inkrement und Dekrementoperatoren Zuweisungsoperator Mathematische Standardfunktionen Vergleichsoperatoren
MehrGliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest
Gliederung Algorithmen und Datenstrukturen I Materialien zur Vorlesung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10,
MehrPrüfung Informatik D-MATH/D-PHYS
Prüfung Informatik D-MATH/D-PHYS 24.1.2011 Dr. Bernd Gartner, Prof. Juraj Hromkovic Lösung. Aufgabe 1. Die Variable x ist vom Typ int und hat zu Beginn jeder Auswertung den Wert 2. Die Variable b ist vom
Mehr1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.
Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten
MehrHASKELL KAPITEL 2.1. Notationen: Currying und das Lambda-Kalkül
HASKELL KAPITEL 2.1 Notationen: Currying und das Lambda-Kalkül Bisheriges (Ende VL-Teil 1) weite :: (Float,Float) ->Float weite (v0, phi) = (square(v0)/9.81) * sin(2 * phi) (10, 30 ) smaller ::(Integer,
MehrBehauptung: Wenn f : A -> W und g: W -> V Funktionen sind, dann ist g. f: A->V eine Funktion
Algorithmen und Programmierung 2. Aufgabenblatt Aufgabe 2.1 a) Jedes Konto besitzt einen Betrag: total Es gibt Konten mit dem gleichen Betrag, aber nicht alle Beträge kommen vor: nicht injektiv und nicht
MehrProgrammieren 1 C Überblick
Programmieren C Überblick. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
MehrDie einfachsten Anweisungen
2 Die einfachsten Anweisungen 2-1 Inhalt Die einfachsten Anweisungen Einführung Datentypen Arithmetische Operatoren Mathematische Funktionen Mehrfache Zuweisungen Übungsaufgaben Einführung Wir wollen unser
MehrDatentypen und Operatoren
Programmiervorkurs SS 2013 Datentypen und Operatoren Termin 2 Wiederholung: Einfache Datentypen Welche Datentypen kennt Ihr bereits? Einfache Datentypen Zeichen public class MyCharTest { char c1 = 'a';
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable
1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem
MehrALP I. Funktionale Programmierung
ALP I Funktionale Programmierung Typ-Klassen und SS 2011 Überladung von Datentypen Funktionen sollen oft auf verschiedene Datentypen anwendbar sein, aber nicht auf beliebige Datentypen. Beispiel: Die (+)
MehrParadigmen der Programmierung
SS 11 Prüfungsklausur 25.07.2011 Aufgabe 5 (6+9 = 15 Punkte) a) Bestimmen Sie jeweils den Typ der folgenden Haskell-Ausdrücke: ( 1, 2 :"3", 4 < 5) :: (Char, String, Bool) [(last, tail), (head, take 5)]
MehrOperatoren und Ausdrücke
Operatoren und Ausdrücke Zuweisungsoperator Arithmetische Operatoren Vergleichsoperatoren Logische Operatoren und Ausdrücke Implizite Typ-Umwandlung Rangordnung der Operatoren / Reihenfolge der Auswertung
MehrGanze Zahlen. Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren
Ganze Zahlen Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren Celsius to Fahrenheit // Program: fahrenheit.cpp // Convert temperatures from Celsius to Fahrenheit.
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,
MehrFunktionales Programmieren
3. Funktionales Programmieren 3.0 Kapitel 3 Funktionales Programmieren Arnd Poetzsch-Heffter TU Kaiserslautern 157 3. Funktionales Programmieren 3.0 Übersicht 3. Funktionales Programmieren Grundkonzepte
Mehr7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele
MehrInformatik A WS 2007/08. Nachklausur
Informatik A WS 2007/08 Nachklausur 18.04.2008 Name:.............................. Matrikelnummer:.................. Tutor:.................. Bitte Zutreffendes ankreuzen: Hauptfach Bioinformatik Hauptfach
MehrProInformatik: Funktionale Programmierung. Punkte
ProInformatik: Funktionale Programmierung 27.7-22.8.2008, M. Knobelsdorf Probeklausur Ihre persönliche Klausurnummer: Vorname, Nachname: Aufgabe 1 2 3 4 5 6 7 8 Punkte 12 4 4 4 4 2 4 6 40 Erz. Punkte Zum
MehrKapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für
Mehr5 Zahlenformate und deren Grenzen
1 5 Zahlenformate und deren Grenzen 5.1 Erinnerung B-adische Zahlendarstellung Stellenwertsystem: Jede Ziffer hat ihren Wert, und die Stelle der Ziffer in der Zahl modifiziert den Wert. 745 = 7 100 + 4
MehrProgrammiervorkurs Einführung in Java Tag 1
Programmiervorkurs Einführung in Java Tag 1 Sebastian Glutsch SS 2018 namen Inhaltsübersicht Vorkurs Tag 1:,, en,, Einführung Tag 2: Boolesche Ausdrücke,, If-Abfragen, Switch-Case Tag 3: Arrays, (Do-)While-Schleife,
MehrFunktionale Programmierung Mehr funktionale Muster
Mehr funktionale Muster Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 07.12.2017 06:56 Inhaltsverzeichnis Pattern Matching..................................
MehrPrüfung Funktionale Programmierung
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF, IB, IC Sommersemester 2014 Prüfung Funktionale Programmierung Datum : 16.07.2014, 12:30 Uhr Bearbeitungszeit
MehrDie Zahl ist: (z 2, z 1, z 0 ) (z ) : 7 = 0 Rest z 2
Übungen zur Vorlesung Technische Informatik I, SS Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 4 Rechnerarithmetik Aufgabe : a) Bestimmen Sie die Darstellung der Zahl 3 zur Basis 7. 3 = 7 (Sehen Sie
Mehr- Welche konkreten Invarianten müssen gelten? Berücksichtigen: Invarianten aus Modell und Implem.
234 Implementierung von Abstrakten Datentypen und Korrektheitskriterien Ziel: Zusammenhang zwischen Spezifikation (Modell!) und Implementierung(en) herstellen Spezifikation Implementierung abstraktes Modell?
Mehr2x 10x 5x 7x 8x 6xy 2xy. 4xy. 6xy z 12xy z 10xy z. 8xy z. 8 x. Gleichartige Terme
Gleichartige Terme 1Banane+3Bananen=4Bananen 1x1x 2x 10x 5x 7x 8x 6xy 2xy 4xy 2 2 2 6xy z 12xy z 10xy z 2 x 10x 5x 7x Gleichartige Dinge kann man addieren und Subtrahieren. 2 8xy z x y x y 8x y 23 15 klar
MehrWS 2011/2012. Robert Giegerich. October 17, 2012
in in WS 2011/2012 Robert AG Praktische Informatik October 17, 2012 Sprechstunden in GZI-Arbeitsraum (V2-240) Tutoren-Sprechstunden (V2-228) http://www.techfak.uni-bielefeld.de/ags/pi/ lehre/audiws12/#ueb
MehrC++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16
C++ Teil 5 Sven Groß IGPM, RWTH Aachen 12. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 12. Nov 2014 1 / 16 Themen der letzten Vorlesung Eingabestrom, Verhalten von cin Namensräume Live Programming
Mehr1 Algorithmische Grundlagen
1 Algorithmische Grundlagen Klocke/17.03.2003 1.1 1.1 Begriffsklärung Fragen Begriffsklärungen Abstraktionsebenen für Algorithmen und Datenstrukturen Algorithmus Qualität von Algorithmen Klocke/17.03.2003
MehrÜbungen zu Algorithmen
Institut für Informatik Universität Osnabrück, 08.11.2016 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/~ainf Lukas Kalbertodt, B.Sc. Testat bis 16.11.2016, 14:00 Uhr Nils Haldenwang, M.Sc. Übungen
MehrC-Programmierung: Ausdrücke und Operatoren#Division.2F
C-Programmierung: Ausdrücke und Operatoren#Division.2F http://de.wikibooks.org/wiki/c-programmierung:_ausdrücke_und_operatoren#division_.2f This Book Is Generated By Wb2PDF using RenderX XEP, XML to PDF
MehrFunktionale Programmierung ALP I. Algebraische Datentypen und Abstrakte Datentypen. SS 2013 Prof. Dr. Margarita Esponda. Prof. Dr.
Funktionale Programmierung AP I Algebraische Datentypen und Abstrakte Datentypen SS 2013 Abstrakt Datentypen Beispiel: Algebraischen Datentypen für Bäume data SBTree = SBTree SBTree AP I: Margarita Esponda,
MehrAlgorithmen & Programmierung. Ausdrücke & Operatoren (1)
Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck
Mehr1.1 Abstrakte Datentypen 1.2 Lineare Strukturen 1.3 Bäume 1.4 Prioritätsschlangen 1.5 Graphen
1 Datenstrukturen 1.1 Abstrakte Datentypen 1.2 Lineare Strukturen 1.3 Bäume 1.4 Prioritätsschlangen 1.5 Graphen 1 Abstrakte Datentypen Spezifizieren Form und Funktionalität der zu verarbeitenden Daten
MehrÜbungskomplex Reelle Zahlen. Rechnen mit Gleitkommazahlen
Übungskomplex Reelle Zahlen Rechnen mit Gleitkommazahlen Hinweise zur Übung Benötigter Vorlesungsstoff Einheiten 1-3 (C-Tutorial) Einheiten Reelle Zahlen 61 Aufgabe Kreisberechnung a) Schreiben Sie zwei
MehrProgrammieren in Haskell
Programmieren in Haskell Syntax und Semantik von Haskell Programmieren in Haskell 1 Was wir heute (und nächstes mal) machen Datentypdefinitionen Wertdefinitionen, Variablenbindungen Musterbindungen Funktionsbindungen
MehrEuklidische Algorithmus, Restklassenringe (Z m,, )
Euklidische Algorithmus, Restklassenringe (Z m,, ) Manfred Gruber http://www.cs.hm.edu/~gruber SS 2008, KW 14 Gröÿter gemeinsamer Teiler Denition 1. [Teiler] Eine Zahl m N ist Teiler von n Z, wenn der
MehrEinstieg in die Informatik mit Java
1 / 21 Einstieg in die Informatik mit Java Einfache Ausdrücke Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 21 1 Überblick 2 Arithmetische Operatoren 3 Inkrement und Dekrementoperatoren
MehrProgrammierung WS18/19 Übungsblatt 9 (Abgabe Freitag, den um 12 Uhr)
Prof. aa Dr. J. Giesl S. Dollase, M. Hark, D. Korzeniewski Aufgabe 2 (Datenstrukturen in Haskell): (2 + 1 + 2 + 2.5 + 3.5 = 11 Punkte) In dieser Aufgabe geht es darum, arithmetische Ausdrücke auszuwerten.
MehrFunktionale Programmierung
Monaden LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 30. April 2009 Monaden Eine Monade ist ein Programmier-Schema für sequentielle Berechnungen. In Haskell
MehrHello World! Eine Einführung in das Programmieren Variablen
Hello World! Eine Einführung in das Programmieren Variablen Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Wie werden Daten in Programmen gespeichert und manipuliert?
MehrC++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
MehrÜbungsblatt 1. Java Vorkurs (WS 2017)
Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die
MehrAbschnitt 11: Korrektheit von imperativen Programmen
Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961
MehrC++ Teil 5. Sven Groß. 16. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16
C++ Teil 5 Sven Groß 16. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 16. Nov 2015 1 / 16 Themen der letzten Vorlesung Namensräume Live Programming zu A2 Gleitkommazahlen Rundungsfehler Auswirkung
Mehr4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen
. Gleitkommazahlen In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen Umrechnen von Einheiten und Währungen Jede Zahl x Q mit x 0 lässt sich folgendermaßen schreiben: x = s m e mit
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Unser erstes Java Programm Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 39 Hello World!
MehrProgrammieren in Haskell Einführung
Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:
MehrFunktionale Programmierung. Das Funktionale Quiz. Das Funktionale Quiz. Das Funktionale Quiz
Funktionale Programmierung Das Funktionale Quiz 31.5.2005 Nenne eine Gemeinsamkeit zwischen Typklassen und OO-Klassen Das Funktionale Quiz Das Funktionale Quiz Nenne einen Unterschied zwischen Typklassen
MehrRechnungen, wo kein sinnvoller Wert rauskommt Bsp.: 1/0, *0, sqrt(-1.0) Beispiel: Quadratische Gleichungen
Float-Arithmetik Implementiert IEEE 754-1985 Standard Überlauf ("overflow"): Zahl wird zu groß / zu klein Beispiel: max.float * 2 Resultat = + bzw. - Underflow: Zahlen liegen zu dicht an der 0 Resultat
MehrKapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp ZAIK Universität zu Köln WS 07/08 1 / 6 Datentypen Arten von Datentypen
MehrAlgorithmen und ihre Programmierung
Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung Veronika Waue WS 07/08 Einführung Definition: Algorithmus Ein Algorithmus ist eine genau definierte Folge von Anweisungen zur Lösung eines
MehrJava - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue
Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt? Bei
MehrGirls Day 2017 Programmierung
Girls Day 2017 Programmierung Anke Brocker Quality Management Würselen, 27. April 2017 www.lancom-systems.de Programmierung 27.04.2017 - Übersicht Programmieren mit der Arduino IDE Die Arduino IDE Der
MehrHaskell. (Compiler) Prof. Dr. Oliver Braun. Letzte Änderung: :58. Haskell 1/28
Haskell (Compiler) Prof. Dr. Oliver Braun Letzte Änderung: 03.05.2017 14:58 Haskell 1/28 Haskell vs. imperative Sprachen https://www.haskell.org/ rein funktionale Sprache funktionale Programmierung ==
MehrWS2017/ Oktober 2017
Ronja Düffel WS2017/18 05. Oktober 2017 mit Python Programmieren (vereinfacht) 1 Problem beschreiben und analysieren 2 Enwicklung und Beschreibung einer Lösung 3 Übertragung/Umsetzung in eine Programmiersprache
MehrTutoraufgabe 1 (Auswertungsstrategie):
Prof. aa Dr. M. Müller C. Aschermann, J. Hensel, J. Protze, P. Reble Allgemeine ˆ Die Hausaufgaben sollen in Gruppen von je 3 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet werden.
MehrLabor Software-Entwicklung 1
Fakultät für Technik STUDIENGANG MEDIZINTECHNIK Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 2 C-Programmierung Mathematische Berechnungen Wintersemester 205/206 Seite von 5 Vorbemerkungen
MehrProgrammieren in Haskell Das Haskell Typsystem
Programmieren in Haskell Das Haskell Typsystem Peter Steffen Robert Giegerich Universität Bielefeld Technische Fakultät 22.01.2010 1 Programmieren in Haskell Belauscht... Lisa Lista: Ohne Typen keine korrekten
MehrKlausur zu Grundlagen der Programmierung in C
Prof. G. Zachmann Dipl.-Inf. C. Giesemann TU Clausthal Institut für Informatik 14. 2. 2006 Klausur zu Grundlagen der Programmierung in C Wintersemester 2005/2006 Ganze Veranstaltung Name:... Matrikelnummer:...
Mehr