Manuel M. T. Chakravarty Gabriele C. Keller Einführung in die Programmierung mit Haskell
|
|
- Teresa Krüger
- vor 6 Jahren
- Abrufe
Transkript
1 Manuel M. T. Chakravarty Gabriele C. Keller Einführung in die Programmierung mit Haskell ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam
2 Kapitel 3 Grundlegende Kontrollstrukturen und Typen»Man findet stets, dass sich ein funktionierendes komplexes System aus einem funktionierenden einfachen System entwickelt hat.«anonym Die Funktionen, die wir bislang definiert haben, waren auf Grundoperationen beschränkt, z. B. die Inkrementierung einer gegebenen Zahl. In diesem Kapitel werden etwas kompliziertere Funktionen besprochen und grundlegende Listenoperationen kurz dargestellt. 3.1 Programme werden aus Modulen gebildet Für gewöhnlich besteht ein Programm aus einer Vielzahl von Funktions- und Typdefinitionen. Offensichtlich ist es nicht ratsam, all dies in einer einzigen Datei zu speichern. Moderne Programmiersprachen bieten daher Möglichkeiten zur Strukturierung von Programmen, indem sie zulassen, dass verwandte Definitionen in logischen Einheiten zusammengefasst und in getrennten Dateien gespeichert werden. In Haskell werden diese Einheiten Module genannt. Sehen wir uns die folgende Definition eines Haskell-Moduls namens Simple an: Beispielmodul Manuel M. T. Chakravarty, Juli 2000 Dies ist ein einfaches Beispiel für eine Moduldefinition module Sample where Quadratwurzel einer gegebenen Zahl berechnen square :: Int -> Int square x = x * x Überprüfen, ob alle drei gegebenen Zahlen gleich sind threeequal :: Int -> Int -> Int -> Bool threeequal a b c = (a == b) && (b == c)
3 26 Kapitel 3 Grundlegende Kontrollstrukturen und Typen Das Modul beginnt mit dem Kopf, d. h. einem Kommentar, der eine einzeilige Beschreibung des Moduls, den Autor und das Erstellungsdatum enthält und den Zweck des Moduls kurz beschreibt. Die erste Quelltextzeile beginnt mit dem Schlüsselwort module, dem der Name des Moduls, das Schlüsselwort where und die zum Modul gehörigen Definitionen folgen. Beachten Sie, dass Modulnamen im Gegensatz zu Funktions- oder Variablennamen mit einem Großbuchstaben beginnen müssen. In Haskell gibt es ein spezielles Modul namens Prelude.hs, das beim Start von GHCi automatisch geladen wird. Das Modul Prelude enthält alle Funktionen, die in Haskell vordefiniert sind, z. B. +, length usw. Da wir mit einfachen, kurzen Programmen beginnen, fügen wir fürs Erste alle Funktionsdefinitionen eines Programms in ein einziges Modul ein. Später erklären wir, wie man komplexere Programme mithilfe von Modulen strukturieren kann. Dies ist ein zentrales Thema in der Softwareentwicklung, und Module spielen bei der Strukturierung umfangreicher Softwaresysteme eine wichtige Rolle. Wir kommen auf dieses Thema später zurück. 3.2 Verzweigungen im Programmablauf Bislang haben alle unsere Programme bedingungslos dieselben Berechnungen durchgeführt Wahlmöglichkeiten werden durch bedingte Anweisungen umgesetzt Wie können wir eine Funktion mit der Definition max :: Int -> Int -> Int implementieren, die das größere ihrer beiden Argumente zurückgibt; d. h. sowohl für den Ausdruck max 5 2 als auch für den Ausdruck max 2 5 soll das Ergebnis 5 berechnet werden, für max 1 7 das Ergebnis 7 etc.? Für zwei zufällig gewählte Zahlen x und y soll maxxy das Ergebnis x liefern, wenn x >= y, andernfalls soll y zurückgegeben werden. Dies kann in Haskell durch einen so genannten Bedingungsausdruck oder If-then-else- Ausdruck repräsentiert werden: if (Bedingung) then (Wert, wenn die Bedingung wahr ist) else (Wert, wenn die Bedingung falsch ist)
4 3.2 Verzweigungen im Programmablauf 27 Nun können wir max folgendermaßen implementieren: max :: Int -> Int -> Int max x y = if x >= y then x else y Sehen wir uns jetzt die Berechnung von max 5 2 an max 5 2 if 5 >= 2 then 5 else 2 if True then 5 else 2 5 Bedingte Anweisungen sind ein wichtiger Bestandteil der Programmierung, weil sie es uns ermöglichen, abhängig von verschiedenen Eingabewerten unterschiedliche Berechnungen durchzuführen. Es folgt ein weiteres Beispiel: signum :: Int -> Int signum x = if x < 0 then -1 else if x == 0 then 0 else Funktionsdefinitionen mit Seitenbedingungen Das Verschachteln von bedingten Anweisungen führt, wie wir in der obigen Definition von signum sehen, zu schlecht lesbaren Programmen. Daher ermöglichen manche Programiersprachen als alternative Syntax die Verwendung von Funktionsdefinitionen mit Seitenbedingungen. signum :: Int -> Int signum x x < 0 = -1 x == 0 = 0 x > 0 = 1 signum 7 (1) 1 Hier sind drei Zwischenschritte zu berechnen: 7 < 0 False 7 == 0 False 7 > 0 True Schließlich können wir die Definition von max wie folgt mithilfe von Funktionen mit Seitenbedingungen neu formulieren: max :: Int -> Int -> Int max x y x >= y = x otherwise = y Die Wahl der Schreibweise ist dem persönlichen Geschmack des Programmierers überlassen.
5 28 Kapitel 3 Grundlegende Kontrollstrukturen und Typen 3.3 Zuweisungen Mit einer Zuweisung wird einem Wert ein Name zugewiesen. Nachfolgend kann über diesen Namen auf den Wert Bezug genommen werden. Beispielsweise können wir nach der Zuweisung pi = einfach pi statt angeben Zuordnung von Namen und Werten Wir können den neu eingeführten Namen in einer anderen Funktionsdefinition verwenden: pi :: Float pi = circlearea :: Float -> Float circlearea radius = pi * radius * radius Gelegentlich müssen wir einen Namen definieren, der nur in innerhalb einer Funktion verwendet wird. In diesem Fall sollten wir eine lokale Variablenzuweisung benutzen. Beispiel: pi :: Float pi = circlearea' :: Float -> Float circlearea' diameter = pi * radius * radius where radius = diameter / 2.0 Diese Funktion wird folgendermaßen berechnet: circlearea' 6.0 pi * radius * radius where radius = 6.0 / 2.0 pi * radius * radius where radius =3.0 pi*3.0*3.0 pi * *
6 3.4 Tupel: Kombinationen verschiedener Datenelemente Tupel: Kombinationen verschiedener Datenelemente Wir haben gesehen, dass einer Funktion mehrere Werte übergeben werden, aber noch nicht, dass eine Funktion mehrere Werte zurückgeben kann. Dies lässt sich mithilfe von Tupeln erreichen: addmul :: Int -> Int -> (Int, Int) addmul xy = (x + y, x * y) Mit einem Tupel werden mehrere Komponenten (im obigen Beispiel zwei Werte vom Typ Int, also ganze Zahlen) zu einem Wert zusammengefasst. Dieser zusammengesetzte Wert kann wie eine Einheit bearbeitet und als Wert von einer Funktion zurückgegeben werden. Die Bildung eines zusammengesetzten Werts ist jedoch nur die eine Seite der Medaille. Wir brauchen auch eine Methode zum Zerlegen dieser Werte. Hierzu verwenden wir eine Notation, die ein Gegenstück zur Notation der Tupelbildung darstellt: fstfromintpair :: (Int, Int) -> Int fstfromintpair (x, y) = x sndfromintpair :: (Int, Int) -> Int sndfromintpair (x, y) = y Im Argument von fstfromlntpair nehmen wir nicht über eine Variable auf das zusammengesetzte Argument als Ganzes Bezug. Stattdessen zerlegen wir das Wertepaar in seine Komponenten x und y. Wenn wir addmul und fstfromlntpair kombinieren, erhalten wir: fstfromintpair (addmul 56) fstfromintpair (5 + 6, 5 * 6) fstfromintpair (11, 30) Beispiel: Punkte Tupel können nicht nur zur Rückgabe mehrerer Ergebniswerte eingesetzt werden, sondern auch zur Darstellung von Datenelementen, die sich nicht durch einen Wert eines grundlegenden Datentyps repräsentiert lassen. Ein schönes Beispiel hierfür sind die Punkte in einem zweidimensionalen kartesischen Koordinatensystem, die durch ein Paar ganzzahliger Werte beschrieben werden können. Damit wir nicht jedes Mal, wenn wir den Typ eines Punkts angeben, die wenig informative Angabe (Int, Int) wiederholen müssen, können wir den neuen Typnamen Point einführen (dies ähnelt der Einführung von Namen für häufig verwendete Werte, die weiter oben erläutert wurde): type Point = (Int, Int)
7 30 Kapitel 3 Grundlegende Kontrollstrukturen und Typen Mit dieser Definition können wir einige einfache Operationen mit Punkten definieren: Ursprung des Koordinatensystems origin :: Point origin = (0, 0) Einen gegebenen Punkt nach rechts verschieben moveright :: Point -> Int -> Point moveright (x, y) distance = (x + distance, y) Einen gegebenen Punkt nach oben verschieben moveup :: Point -> Int -> Point moveup (x, y) distance = (x, y + distance) Beispiel: Farbpunkte Wenn wir die Punkte um das Merkmal Colour (Farbe) erweitern, tritt eine weitere wichtige Eigenschaft der Tupel zu Tage: Die Komponenten von Tupeln können unterschiedlichen Typs sein. Wenn wir die Farbwerte in Worten beschreiben, also jeweils durch eine Zeichenfolge (String) repräsentieren, erhalten wir folgende Definition: Farben werden durch Zeichenfolgen beschrieben type Colour = String Neuer Name für den Typ, der Farbpunkte repräsentiert type ColourPoint = (Int, Int, Colour) Diese Definition lässt folgende Operationen mit Farbpunkten zu: Ursprung des Koordinatensystems in einer gegebenen Farbe origin :: Colour -> ColourPoint origin colour = (0, 0, colour) Einen Farbpunkt vertikal und horizontal verschieben move :: ColourPoint -> Int -> Int -> ColourPoint move (x, y, colour) xdistance ydistance = (x + xdistance, y + ydistance, colour) Abstand zwischen zwei Farbpunkten berechnen distance :: ColourPoint -> ColourPoint -> Float
8 3.4 Tupel: Kombinationen verschiedener Datenelemente 31 distance (xl, yl, colourl) (x2, y2, colour2) = sqrt (inttofloat (dx * dx + dy * dy)) where dx = x2 xl dy = y2 - yl Beachten Sie, dass wir in der letzten Definition eine where-klausel verwenden, um die Ausdrücke x2 - xl und y2 yl nicht wiederholen zu müssen. Die Hilfsfunktion intto Float ist wie folgt definiert: inttofloat :: Int -> Float inttofloat x = frominteger (tointeger x) Die beiden Funktionen frominteger und tointeger sind in Prelude vordefiniert und erleichtern Umwandlungen zwischen verschiedenen Typen numerischer Werte Wichtige Symmetrien in Haskell Wenn wir die Syntax der Werte und Typen von Tupel vergleichen, stellen wir fest, dass sie einander entsprechen. Betrachten Sie folgendes Beispiel: (10, 15, "green") :: (Int, Int, String) Wenn wir die Werte 10, 15 und "green" durch ihre jeweiligen Typen Int, Int und String ersetzen, erhalten wir den Typ des Tupels. Überdies gibt es eine Parallele zwischen der Bildung eines Terms und der Zerlegung des Terms. Betrachten Sie folgendes Beispiel: startpoint = (0, 0, "black") colourofpoint (x, y, colour) = colour Wenn wir die Komponenten der Tupelkonstruktion (0, 0, "black") durch Variablennamen (hier x, y, colour) ersetzen, erhalten wir das Muster, das zur Zerlegung des entsprechenden Tupels eingesetzt werden kann Einige Tupel mit speziellen Namen In der folgenden Tabelle sind einige Tupeltypen und ihre Namen aufgeführt: # Ausdruck Name 0 () Unit 1 nicht definiert nicht definiert 2 (x 1, x 2 ) Paar
9 32 Kapitel 3 Grundlegende Kontrollstrukturen und Typen 3.5 Listen: Viele Werte desselben Typs Tupel bieten die Möglichkeit, eine feste Anzahl von Werten unterschiedlichen Typs zu kombinieren. In vielen Anwendungen muss man jedoch in der Lage sein, zusammengesetzte Typen zu bearbeiten, die eine unterschiedliche Anzahl von Elementen eines einzigen Typs enthalten können. Zu diesem Zweck gibt es Listen. oddnumbers :: Int -> [Int] oddnumbers maxnumber = [1, 3..maxNumber] Die Anzahl der von dieser Funktion zurückgegebenen Werte hängt vom Argument ab, im Gegensatz zur weiter vorn vorgestellten Funktion addmul, bei der nur der Rückgabewert, aber nicht die Anzahl der Rückgabewerte von der Eingabe abhing. Betrachten Sie folgendes Beispiel: oddnumbers 10 [1, 3, 5, 7, 9] oddnumbers 15 [1, 3, 5, 7, 9, 11, 13, 15] Der Unterschied zwischen Tupel und Listen wird deutlich, wenn man ihre Typdefinitionen vergleicht, beispielsweise und # Ausdruck Name 3 (x 1, x 2, x 3 ) Tripel 4 (x 1, x 2, x 3, x 4 ) Quadrupel 5 (x 1, x 2, x 3, x 4, x 5 ) Quintupel n (x 1,, x n ) n-tupel (1, 2, "green") :: (Int, Int, String) [1, 2, 3, 4] :: [Int] Die Anzahl der Komponenten wird in der Typdefinition eines Tupels explizit angegeben, in der Typdefinition einer Liste dagegen nicht. Folglich können die Elemente von Tupeln heterogen sein, während die Elemente von Listen homogen sein müssen Nützliche Listenfunktionen Werte werden in eckige Klammern eingeschlossen: [4, 2, 6, 7, 2] ["red", "green", "blue"] [x, y, z]
10 3.5 Listen: Viele Werte desselben Typs 33 Wir können einer gegebenen Liste am Anfang ein weiteres Element hinzufügen: "yellow" : ["red", "green", "blue"] ["yellow", "red", "green", "blue"] Mit dem Operator : können nur Elemente am Listenanfang hinzugefügt werden. Daher gilt: ["red", "green", "blue"] : "yellow" Fehler! Mit dem Operator ++ können zwei Listen zusammengefügt werden: [4, 2, 3] ++ [3, 1, 2, 7] [4, 2, 3, 3, 1, 2, 7] Mit dem Operator!! können wir ein beliebiges Element ausgeben, das an einer bestimmten Position der Liste steht. [0, 1, 2, 3]!! 2 2 (Die Zählung des Listenindex beginnt bei 0!) Mit den beiden Funktionen head und tail kann eine Liste in das erste Element bzw. die übrigen Elemente unterteilt werden: head [0, 1, 2, 3] 0 tail [0, 1, 2, 3] [1, 2, 3] Die Länge einer Liste ermitteln wir mit length: length [0, 1, 2, 3] 4 Mit sum und product können wir die Elemente einer Liste addieren bzw. multiplizieren: sum [0, 1, 2, 3] 6 product [1, 2, 3, 4] 24 Wie können wir "yellow" mithilfe dieser Funktionen am Ende der Liste ["red", "green", "blue"] einfügen? Den Operator : können wir hierzu nicht verwenden. Wir müssen ++ folgendermaßen benutzen: ["red", "green", "blue"] ++ ["yellow"] Beachten Sie die eckigen Klammern um "yellow", mit denen eine Liste gebildet wird. Wir packen "yellow" also in eine aus einem Element bestehende Liste, die wir dann an die Liste ["red", "green", "blue"] anhängen.
11 34 Kapitel 3 Grundlegende Kontrollstrukturen und Typen Unterschiede zwischen Listen und Tupeln Da Listen und Tupel häufig verwechselt werden, geben wir im Folgenden einen Überblick über die Unterschiede zwischen Listen und Tupeln. Tupel haben die folgenden Eigenschaften: Feste Größe, d. h. feste Anzahl von Komponenten: (1, 2) :: (Int, Int)und (l, 2, 3) :: (Int, Int, Int) sind unterschiedlichen Typs. Die Komponenten können unterschiedlichen Typs sein: (5, "Hallo") ist völlig korrekt. Im Gegensatz dazu haben Listen die folgenden Eigenschaften: Variable Größe, d. h. die Anzahl von Komponenten kann variieren. Daher sind [1, 2] :: [Int] und [1, 2, 3] :: [Int] Listen desselben Typs. Die Komponenten müssen vom gleichen Typ sein. [5, "Hello"] ist unzulässig! Zeichenfolgen als Listen In Haskell sind Zeichenfolgen, also Werte vom Typ String, eigentlich eine spezielle Form von Listen. Der Typ String ist in Haskell folgendermaßen definiert: type String = [Char] Dies bedeutet insbesondere, dass mit Zeichenfolgen Listenoperationen durchgeführt werden können. "Hello"!! 1 'e' In Haskell gelten "Hello" und ['H', 'e', 'l', 'l', 'o'] als identische Ausdrücke. Dies ist sehr praktisch, weil es, wie wir später sehen werden, viele mächtige Listenbearbeitungsoperationen gibt und diese zur Bearbeitung von Zeichenfolgen sofort einsetzbar sind. 3.6 Layout Im Gegensatz zu vielen anderen Programmiersprachen berücksichtigt der Haskell-Interpreter oder -Compiler die Formatierung des Quelltexts. Mit anderen Worten, die Verwendung von Einrückungen und Zeilenumbrüchen ist mit einigen Einschränkungen verbunden. Auf diese Weise kann sich die Sprache einiger Konstruktionen entledigen, die in anderen Sprachen eingeführt wurden, um Doppeldeutigkeiten der Eingabe auszuräumen.
12 3.6 Layout 35 Vergleichen Sie mit foo x = a + b where a = 1 + x b = 2 foo x = a + b where a = 1 + x b = 2 Beides sind zulässige Programme. Im ersten Programm ist b lokal innerhalb von foo definiert, während im zweiten Programm die Verwendung von b nicht auf foo beschränkt ist. Als Beispiel für ein korrektes Layout wird hier die Funktion distance angeführt, die wir weiter oben besprochen haben: distance :: ColourPoint -> ColourPoint -> Float distance (x1, y1, colour1) (x2, y2, colour2) = sqrt (fromint (dx * dx + dy * dy)) where dx = x2 x1 dy = y2 - y1 Es gibt drei Layoutregeln, die Sie befolgen müssen, um syntaktisch korrekte Programme zu erhalten: 1. Der gesamte zu einer Funktionsdefinition gehörige Programmcode muss sich weiter rechts als das erste Zeichen der betreffenden Definition befinden (also rechts vom ersten Zeichen des Funktionsnamens stehen). Im Fall der Funktion distance muss sich der gesamte Quelltext rechts von der Spalte befinden, die den Buchstaben d des Funktionsnamens distance enthält. 2. Analog hierzu muss sich der gesamte Quelltext einer lokalen Definition in einer where-klausel rechts vom ersten Zeichen des Namens der definierten Variablen befinden. 3. Alle Definitionen innerhalb einer where-klausel müssen bündig untereinander ausgerichtet werden, beispielsweise beginnen die Definitionen von dx und dy im obigen Beispiel in derselben Spalte.
13 36 Kapitel 3 Grundlegende Kontrollstrukturen und Typen 3.7 Übungen 1. Schreiben Sie eine Funktion sort2 :: Int -> Int -> (Int, Int), die zwei Werte vom Typ Int als Argumente akzeptiert und diese als sortiertes Paar zurückgibt, so dass sort2 5 3 gleich (3, 5) ist. Wie definieren Sie diese Funktion mit einem Bedingungsausdruck, wie lösen Sie die Funktion unter Verwendung von Funktionen mit Seitenbedingungen? 2. Betrachten Sie die Funktion almostequal :: (Int, Int) -> (Int, Int) -> Bool, welche die Werte von zwei Wertepaaren des Typs Int miteinander vergleicht. Sie liefert das Ergebnis True, wenn beide Paare dieselben Werte enthalten, wobei deren Reihenfolge nicht von Belang ist. Beispielsweise gilt, almostequal (3,4) (4,3) ist True, aber almostequal (3,4) (3,5) ist False. Welche der folgenden Definitionen geben den korrekten Wert zurück? Welche Definition halten Sie für guten Programmierstil? Warum? Fügen Sie den korrekten Definitionen Kommentare hinzu, damit diese verständlicher und leichter lesbar werden. ((&&) :: Bool -> Bool -> Bool entspricht dem logischen 'Und', ( ) :: Bool -> Bool -> Bool entspricht dem logischen 'Oder', und (==) prüft, ob zwei Werte gleich sind.) almostequal (xl, yl) (x2, y2) (xl == x2) && (yl == y2) = True (xl == y2) && (yl == x2) = True otherwise = False almostequal (xl, yl) (x2, y2) (xl == x2) = (yl == y2) (xl == y2) = (yl == x2) otherwise = False almostequal pairl pair2 = (pairl == pair2) (swap pairl == pair2) where swap (x,y) = (y,x) almostequal pairl pair2 = (pairl == pair2) (swap pairl == swap pair2) where swap (x,y) = (y,x) almostequal (xl, yl) (x2, y2) = if (xl == x2) then then if (yl == y2) then True else False else if (xl == y2) then if (x2 == yl) then True else False else False
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
MehrWas bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):
Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel
MehrBeispiele: (Funktionen auf Listen) (3) Bemerkungen: Die Datenstrukturen der Paare (2) Die Datenstrukturen der Paare
Beispiele: (Funktionen auf Listen) (3) Bemerkungen: 5. Zusammenhängen der Elemente einer Liste von Listen: concat :: [[a]] -> [a] concat xl = if null xl then [] else append (head xl) ( concat (tail xl))
MehrGrundlagen. Kapitel 1
Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die
Mehr1. LPC - Lehmanns Programmier Contest - Lehmanns Logo
Aufgabe ist die Entwicklung einer vereinfachten Variante der beliebten Programmiersprache Logo. Die Aufgabe ist in drei Stufen zu erledigen, von der wir zunächst nur die erste Stufe bekannt geben. Die
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrArbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4
Arbeiten mit s Eine effiziente Programmierung mit PHP ohne seine s ist kaum vorstellbar. Diese Datenstruktur muss man verstanden haben, sonst brauchen wir mit weitergehenden Programmiertechniken wie der
MehrInformatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-
Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik
MehrPHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54
PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten
MehrFunktionale Programmierung mit Haskell. Jan Hermanns
Funktionale Programmierung mit Haskell Jan Hermanns 1 Programmiersprachen imperativ deklarativ konventionell OO logisch funktional Fortran Smalltalk Prolog Lisp C Eiffel ML Pascal Java Haskell 2 von Neumann
MehrÜbungspaket 19 Programmieren eigener Funktionen
Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame
MehrObjektorientiertes Programmieren für Ingenieure
Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen
MehrErwin Grüner 15.12.2005
FB Psychologie Uni Marburg 15.12.2005 Themenübersicht Mit Hilfe der Funktionen runif(), rnorm() usw. kann man (Pseudo-) erzeugen. Darüber hinaus gibt es in R noch zwei weitere interessante Zufallsfunktionen:
MehrProgrammierung in Python
Programmierung in Python imperativ, objekt-orientiert dynamische Typisierung rapid prototyping Script-Sprache Funktionales und rekursives Programmieren P raktische Informatik 1, W S 2004/05, F olien P
MehrJava Server Faces. Andy Bosch. Das Standard-Framework zum Aufbau webbasierter Anwendungen. An imprint of Pearson Education
Andy Bosch Java Server Faces Das Standard-Framework zum Aufbau webbasierter Anwendungen An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City
MehrPrinzipien der Softwareentwicklung S. Strahringer
Gliederung 1 Einführung Was ist ein Programm? Vorteile (und Nachteile) von PHP Erste PHP-Programme Ausführung von PHP-Programmen 2 Grundbegriffe der Programmierung Anweisungen, Variablen, Datentypen und
MehrGrundprinzipien der funktionalen Programmierung
Grundprinzipien der funktionalen Programmierung Funktionen haben keine Seiteneffekte Eine Funktion berechnet einen Ausgabewert der nur von den Eingabewerten abhängt: 12 inputs + output 46 34 2 Nicht nur
MehrPraktikum Funktionale Programmierung Teil 1: Lexen und Parsen
Praktikum Funktionale Programmierung Teil 1: Lexen und Parsen Professur für Künstliche Intelligenz und Softwaretechnologie Sommersemester 2009 Überblick Teil 1: Lexen und Parsen Die Sprache LFP +C Professur
MehrExcel Funktionen durch eigene Funktionen erweitern.
Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrFunktionale Programmierung. der direkte Weg vom Modell zum Programm
1 Funktionale Programmierung der direkte Weg vom Modell zum Programm Peter Padawitz, TU Dortmund 19. Juni 2010 2 Inhalt Modelle Bestandteile eines Modells Konstruktor- versus destruktorbasierte Modelle
MehrMCSE-Zertifizierungsupgrade auf Windows Server 2003
Stephan Hirsch, David Kube MCSE-Zertifizierungsupgrade auf Windows Server 2003 Für Examen Nr. 70 296 ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills,
MehrMagento Theme-Design. professionelle Themes für Ihren Shop Y%ADDISON-WESLEY. Entwerfen Sie Schritt für Schritt. Richard Carter
Richard Carter Magento Theme-Design Entwerfen Sie Schritt für Schritt professionelle Themes für Ihren Shop Y%ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England
MehrÜbung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9
Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere
MehrARBEITSBLATT ZU FORMALEN SPRACHEN
ARBEITSBLATT ZU FORMALEN SPRACHEN Aufgabe 1: Gegeben ist die folgende Formale Sprache L(G) mit G = (T, N, P, S). Die Produktionen lauten ZUWEISUNG ::= name zuweisungsoperator AUSDRUCK semikolon AUSDRUCK
MehrProgrammierkurs: Delphi: Einstieg
Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache
MehrDefinieren Sie eine Funktion circlearea zur Berechnung der Fläche eines Kreises mit gegebenen Radius (Float).
Haskell Funktionen Definieren Sie eine Funktion circlearea zur Berechnung der Fläche eines Kreises mit gegebenen Radius (Float). circlearea :: Float -> Float circlearea radius = 2 * pi * radius^2 Definieren
MehrArbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ
Arbeiten mit BlueJ Compilieren, Editieren, Objekte erzeugen, Methoden aufrufen, Objekte inspizieren, vorhandene Klassen benutzen, eigene Klassen und Methoden erstellen In BlueJ geht es einfach BlueJ durch
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include
Mehr1. Der Einstieg in Java. Was heißt Programmieren?
1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung
Mehr2 Einfache Rechnungen
2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,
MehrGrundlagen. Die Komponenten eines C Programms. Das erste Programm
Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen
MehrLinux Tutorium. 12. Shellprogrammierung. Version vom 02.07.2008 13:38:56
Linux Tutorium 12. Shellprogrammierung Version vom 02.07.2008 13:38:56 im Grunde ist ein Shell-Skript nichts anderes als eine Textdatei, welche Befehlsfolgen enthält Shell-Skripte werden im Wesentlichen
MehrTutorium - Haskell in der Schule. Ralf Dorn - Dennis Buchmann - Felix Last - Carl Ambroselli
Tutorium - Haskell in der Schule Wer sind wir? Otto-Nagel-Gymnasium in Berlin-Biesdorf Hochbegabtenförderung und MacBook-Schule Leistungskurse seit 2005 Einführung Was ist funktionale Programmierung? Einführung
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrJasmin Blanchette, Mark Summerfield
Jasmin Blanchette, Mark Summerfield Die offizielle Einführung 2., aktualisierte Auflage r,. t~. VV ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills,
MehrFunktionale Programmierung
Funktionale Programmierung Jörg Kreiker Uni Kassel und SMA Solar Technology AG Wintersemester 2011/2012 2 Teil II Typen mit Werten und Ausdruck, sogar listenweise 3 Haskell Programme Programm Module ein
MehrAlgorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.
Algorithmische Kernsprache Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Ausdrücke Anweisungen Ausdrücke bezeichnen einen Wert Kontext stellt Werte von Variablen Werte
MehrKontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
MehrJoomla! eigenen Joomla!-Website ^ADDISON-WESLEY. Die Schritt-für-Schritt-Anleitung zur. Stephen Bürge. An imprint of Pearson
Stephen Bürge Joomla! Die Schritt-für-Schritt-Anleitung zur eigenen Joomla!-Website ^ADDISON-WESLEY An imprint of Pearson München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City
MehrSQL objektorientiert
Dušan Petković SQL objektorientiert An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam Vorwort 11 Teil 1: Einführung 15
MehrProgrammiertechnik Operatoren, Kommentare, Ein-/Ausgabe
Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Operatoren? Ein Operator ist eine in die Programmiersprache eingebaute Funktion,
MehrGrundlagen der Programmiersprache C++
/ TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit
MehrSQL Server 2008 Der schnelle Einstieg
Klemens Konopasek SQL Server 2008 Der schnelle Einstieg Abfragen, Transact-SQL, Entwicklung und Verwaltung ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don
MehrZusammengesetzte Datentypen -- Arrays und Strukturen
Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14
MehrDr. Monika Meiler. Inhalt
Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6
MehrAutor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH
Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich
MehrEinführung in die Informatik Grammars & Parsers
Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme
Mehr4 Codierung nach Viginere (Lösung)
Kapitel 4 Codierung nach Viginere (Lösung) Seite 1/14 4 Codierung nach Viginere (Lösung) 4.1 Einführung Blaise de Vigenère lebte von 1523 bis 1596 in Frankreich und war nach dem Studium bei verschiedenen
MehrNachklausur Programmieren / Algorithmen und Datenstrukturen 1
Programmieren / Algorithmen und Datenstrukturen Autor: Prof. Dr. Bernhard Humm, FB Informatik, Hochschule Darmstadt Datum: 7. Oktober 200 Nachklausur Programmieren / Algorithmen und Datenstrukturen Spielregeln
MehrTutoraufgabe 1 (Datenstrukturen in Haskell):
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium)
MehrSQL Server 2005 Der schnelle Einstieg
Klemens Konopasek Ernst Tiemeyer SQL Server 2005 Der schnelle Einstieg Abfragen, Transact-SQL, Entwicklung und Verwaltung An imprint of Pearson Education München Boston San Francisco Harlow, England Don
MehrContao für Redakteure
Nina Gerling Contao für Redakteure Inhalte editieren und verwalten mit dem Open-Source-CMS ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
MehrÜbung 4: Schreiben eines Shell-Skripts
Aufgabenteil 1 Ziel der Übung Übung 4: Schreiben eines Shell-Skripts Anhand eines einfachen Linux-Skripts sollen die Grundlagen der Shell-Programmierung vermittelt werden. Das für die Bash-Shell zu erstellende
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK WS 11/12 Einführung in die Informatik II Übungsblatt 2 Univ.-Prof. Dr. Andrey Rybalchenko, M.Sc. Ruslán Ledesma Garza 8.11.2011 Dieses Blatt behandelt
Mehr25 kann ohne Rest durch 5 geteilt werden! ist wahr
Lehrbrief 2: Lektion 8 - C -Praxis 4-1 - 5.2 Einfache Entscheidungen mit if und die Vergleichsoperatoren Nun tauchen wir immer tiefer in die Geheimnisse von C ein und beschäftigen uns mit einem sehr wichtigen
MehrIT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken
IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken Im Folgenden finden Sie jeweils die korrekte Antwort zu den im Buch abgedruckten Prüfungsfragen, soweit die Antworten in Textform
MehrÜbungsblatt 2. Abgabe: Freitag, 7. November 2014, 18:00 Uhr
Informatik I: Einführung in die Programmierung Prof. Dr. Bernhard Nebel Dr. Christian Becker-Asano, Dr. Stefan Wölfl Wintersemester 2014/2015 Universität Freiburg Institut für Informatik Übungsblatt 2
MehrPHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.
PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden. Allgemein Ein Einzug sollte aus 4 Leerzeichen bestehen.
MehrKurzeinführung in C. Johannes J. Schneider 27.10.2004
Kurzeinführung in C Johannes J. Schneider 27.10.2004 1 Einleitung C ist eine in vielen Bereichen sehr häufig verwendete Programmiersprache, die von der Betriebssystemprogrammierung bis hin zur Programmierung
MehrObjektorientierte Softwaretechnik
Bernd Brügge, Allen H. Dutoit Objektorientierte Softwaretechnik mit UML, Entwurfsmustern und Java ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney
MehrWindows Scripting lernen
Holger Schwichtenberg, Sven Conrad, Thomas Gartner, Oliver Scheer Windows Scripting lernen Anfangen, anwenden, verstehen An imprint of Pearson Education München Boston San Francisco Harlow, England Don
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Aufgabenblatt 1 Prof. R. Westermann, A. Lehmann,
MehrPIWIN 1 Übung Blatt 5
Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:
MehrSS 2010. Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof.
SS 2010 Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1 Übungsblatt 1 Übung - Probeklausur SS 2010 Typ Prof.Humm Aufgabe : Bank-Verwaltungs-System In dieser Klausur werden
MehrJava 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7
Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
MehrEinführung in Python Übung 1
Einführung in Python Übung 1 Rebecca Breu, Bastian Tweddell Oktober 2007 Login: XXXloginXXX Passwort: XXXpasswortXXX Bitte das Passwort ändern (passwd)! Datentypen I Aufgabe 1 (Erste Schritte, Zahlen)
MehrSQL Server 2008 Performance-Optimierung
Holger Schmeling SQL Server 2008 Performance-Optimierung Das Praxisbuch für Entwickler und Administratoren ^ ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England
MehrM. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung
M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Der hat die früher handschriftlichen Folien lesbar gemacht. Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Heutige Themen Hello World!
MehrErstellen bedingter Formeln
Microsoft Office Excel Erstellen bedingter Formeln Alle ausblenden Bei vielen Aufgaben wird häufig getestet, ob Bedingungen wahr oder falsch sind. Außerdem werden häufig logische Vergleiche zwischen Ausdrücken
MehrInhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler
Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale
MehrEs gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:
3 Grundlagen 3.1 Starten eines C++ Programms Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 1. Programme, die vom Interpreter der Programmiersprache Zeile für Zeile interpretiert
MehrC++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek
C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage
MehrÜbungsblatt 3: Algorithmen in Java & Grammatiken
Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015
Mehr1. Der Einstieg in Java
1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen
MehrGliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik
Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrProgrammieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff
Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet
MehrWindows Scripting lernen
Holger Schwichtenberg, Sven Conrad, Thomas Gärtner, Oliver Scheer Windows Scripting lernen Anfangen, anwenden, verstehen ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow,
MehrÜbungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
MehrGrundwissen Informatik JS 10 24. September 2015
Grundwissen Informatik JS 10 24. September 2015 Grundlagen der Objektorientierung 1. Erkläre die Begriffe Klasse, Attribut, Attributwert, Objekt, Methode und Dienst. Beispiel! Allgemein Eine Klasse ist
MehrPython Programmieren. Variablen, Ausdrücke und Anweisungen
Python Programmieren Funktionen Module und Namensräume Datentypen in Python Was noch zu sagen bleibt... richard rascher-friesenhausen Programmierung SS 12 Daten: Wert und Typ Variablen Variablennamen und
MehrFachseminar WS 2008/09
Fachseminar WS 2008/09 Fachgebiet: Compilerbau Thema: Lexikalische Analyse (Scanner) Referent: Ali Sediq Betreuer: Prof. Dr. Helmut Weber 1 Inhaltsverzeichnis Lexikalische Analyse 1.0 Grundprobleme der
MehrAufgabenstellung und Zielsetzung
Aufgabenstellung und Zielsetzung In diesem Szenario werden Sie eine Bestellung, vorliegend im XML-Format, über einen Web-Client per HTTP zum XI- System senden. Dort wird die XML-Datei mittels eines HTTP-Interfaces
MehrFunktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Prof. Dr. Hans J. Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg Sommersemester 2011 I. Die
MehrHello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.
Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike
MehrLösungsvorschlag zur 9. Übung
Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 9. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche der folgenden Aussagen über
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.
MehrReihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03
Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Christian-Albrechts-Universität zu Kiel CAU 2-1 Datentypen und Formate Mit der Festlegung des Datentyps wird die Art bestimmt, mit der der Computer die Informationen
MehrAndre Willms. Spielend C++ lernen. oder wie man Käfern Beine macht. Galileo Press
Andre Willms Spielend C++ lernen oder wie man Käfern Beine macht Galileo Press Vorwort 11 1 Das Abenteuer beginnt 13 1.1 Die Programmierumgebung installieren 15 1.2 Der erste Start 20 1.2.1 Visual C++registrieren
MehrLuis Kornblueh. May 22, 2014
Einführung in die Bash Luis Kornblueh KlosterCluster Team 2013/2014, Klosterschule May 22, 2014 1 / 17 Inhaltsverzeichnis Einführung in das Scripting Einfache Beispiele Kommandos ersetzen Bedingungen Tests
MehrFelder, Rückblick Mehrdimensionale Felder. Programmieren in C
Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte
MehrCGI Programmierung mit Ha. Markus Schwarz
CGI Programmierung mit Ha Markus Schwarz Überblick Was ist funktionale Programmierung Einführung in Haskell CGI-Programmierung mit Haskell Ein etwas größeres Beispiel Was ist funktionale Programm Ein Programm
MehrFunktionale Programmierung
Schleifen 1 Funktionale Programmierung Jörg Kreiker Uni Kassel und SMA Solar Technology AG Wintersemester 2011/2012 3 Teil I Jedem Anfang wohnt ein Zauber inne 4 Über mich Diplom in Informatik in Saarbrücken
MehrFilterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2
Jörg Kapelle 15:19:08 Filterregeln Inhaltsverzeichnis Filterregeln... 1 Einführung... 1 Migration der bestehenden Filterregeln...1 Alle eingehenden Nachrichten weiterleiten...2 Abwesenheitsbenachrichtigung...2
Mehr