Funktionale Programmierung am Beispiel Haskell

Größe: px
Ab Seite anzeigen:

Download "Funktionale Programmierung am Beispiel Haskell"

Transkript

1 Funktionale Programmierung am Beispiel Haskell Heiko Waldschmidt Matrikel Nr Baunatal, den

2 Inhaltsverzeichnis 1. Einleitung 3 2. Die Geschichte der funktionalen Programmierung Das Lambda-Kalkül 4 3. Prototypen Experiment 5 4. Syntaktische Möglichkeiten von Haskell Typisierung Syntaktische Besonderheiten Lazy evaluation Modularisierung Seiteneffekte Pattern Matching und Case As-Pattern Wild Cards With-Pattern / guards Case Let Expressions Where clauses IO Typ classes Typklassen Weitere Möglichkeiten von Haskell Interpreter und Compiler Fazit Literaturverzeichnis 19 Seite 2

3 1. Einleitung Dieser Vortrag ist im Rahmen des Seminars Programmiersprachen bei Frau Prof. Leopold entstanden. Er soll Aufzeigen wo die Vorteile (und Nachteile) von funktionaler Programmierung und speziell von Haskell liegen und bei welchen Problemen diese Sprache bzw. funktionale Programmierung bevorzugt eingesetzt werden sollte. Um dies zu zeigen beginne ich zunächst mit der geschichtlichen Entwicklung von funktionaler Programmierung bis zur Entwicklung von Haskell 98. Als zweites versuche ich ein (meiner Meinung nach beeindruckendes) Beispiel vorzustellen an dem man erkennen kann, das funktionale Programmierung zu verwenden deutliche Vorteile haben kann. Anschließend versuche ich einige Möglichkeiten und Vorteile dieser Sprache aufzuzeigen und diese am Schluss noch einmal kurz aufzugreifen. 2. Die Geschichte der funktionalen Programmierung Die funktionale Programmierung entstand als noch kaum jemand an die heutige Art der Programmierung (mittels Höherer Programmiersprachen) dachte. Ihr Ursprung liegt in der Mathematik. Church entwickelte 1932 das Lambda-Kalkül, dessen Nutzen in der Programmierung 1936 von Kleene und Rosser bewiesen wurde d.h. das nachgewiesen wurde das man das Lambda-Kalkül zur Umsetzung von Funktionen in der Informatik nutzen kann bewies Turing, das das Lambda-Kalkül turing-äquivalent ist. Heutige rein funktional geschriebene Programme können in Lambda-Kalküle umgewandelt werden wurde LISP als erste funktionale Sprache von McCarthy entwickelt. Ein großer Vorteil von LISP liegt in seiner Erweiterbarkeit und somit wurden einige erweiterte Sprachen entwickelt (z.b. Common LISP and Scheme). Ende der 70er entwickelte Backus FP. Er hatte die Idee von Funktionen höherer Ordnung und setzte diese in FP um. Gleichzeitig entwickelte man in Edinburgh an der Universität ML. Man suchte nach einer Sprache, mit der man Theoreme beweisen konnte. Auch aus ML entstanden einige Dialekte (z.b. SML, CAML). Seite 3

4 Eine weitere Sprache auf dem Weg bis zur Entwicklung von Haskell ist Miranda. Miranda wurde entwickelt. In Miranda wurde zum ersten Mal lazy evaluation benutzt. Die Entwickler von Miranda wurden gefragt ob man es als Basis zur Entwicklung von Haskell nutzen dürfte, doch sie lehnten ab. Die heute in der Industrie meist genutzte funktionale Sprache ist Erlang, das ende der 80er von Ericsson für Anwendungen in der Telekommunikation entwickelt wurde. Mit Erlang ist parallele funktionale Programmierung möglich. Haskell entstand 1990 (Version 1.0). In Haskell wurden die Ideen der älteren funktionalen Programmiersprachen vereinigt (Funktionen höherer Ordnung, type inference, und lazy Semantik. Eine Neuheit von Haskell sind Typklassen mit denen man Methoden auf ähnlich Art und Weise wie in der Objekt orientierten Programmierung Überladen kann.) Bis 1997 entstanden vier weitere Versionen (bis 1.4). Auf dem Haskell Workshop 1997 in Amsterdam wurde beschlossen, dass eine stabile einheitliche Variante nötig sei. Hierdurch entstand Haskell 98. [Hask] 2.1 Das Lambda-Kalkül Das Lambda-Kalkül ist eine mathematische Schreibweise für Funktionen. Dazu ein Beispiel: mittelwert == λ a, b. ((a+b)/2) -- nun das Beispiel in Haskell: mittelwert (a,b) == ((a+b)/2) Der Vorteil des Lambda-Kalküls liegt darin, dass Programme die im Lambda Kalkül geschrieben sind bezüglich Korrektheit bewiesen werden können. Alle Programme die rein funktional geschrieben wurden können in Lambda-Kalküle umgewandelt werden. Somit kann man die Korrektheit dieser Programme - und damit auch aller Programme die in Haskell 98 geschrieben wurden - beweisen. Hierzu gibt es auch Seite 4

5 eine Berechnungsvorschrift (evtl. ist es sogar ein Algorithmus). Für weitere informationen siehe [Pepp]. 3. Prototypen Experiment 1989 wurde von der ARPA (Advanced Research Project Agency) und dem Office of Naval Research (ONR) ein Projekt ins leben gerufen, bei dem es darum ging Sprachen und Tools zur Verbesserung der Erstellung von Prototypen zu entwickeln würde im Zuge diese ProtoTyp Programmes ein Versuch durchgeführt. Es ging darum einen Prototyp in mehrere Programmiersprachen zum selben Problem zu schreiben. Programmanforderungen: Ein Geo-Server bekommt als Eingabe Informationen über Standorte von Schiffen, Flugzeugen etc. und anderen Sicherheitsrelevanten Objekten. Als Ausgabe soll er die Beziehungen zwischen diesen Objekten liefern. Freundliche Schiffe, Kriegsschiffe, Flugzeuge sollen durch Dreiecke dargestellt werden. Hinzu kommen Zonen, die dargestellt werden sollten z.b. Waffenreichweite, Flugzonen, Regionen von befreundeten Schiffen,die beschützt werden müssen. (Die Beschreibung war noch deutlich detaillierter, doch würde hier den Rahmen sprengen.) Die Beurteilung der fertigen Prototypen übernahm ein Komitee der Navy. Die Ergebnisse: Language Lines of Code Lines of Documentation Development time (hours) (1) Haskell (2) Ada (3) Ada9X (4) C (5) Awk\Nawk (6) Rapide (7) Griffin (8) Proteus (9) Relational Lisp ((10) Haskell) Seite 5

6 (1) wurde von Mark P. Jones geschrieben einem der Autoren von [EiSPP]. Die Auswertung der Programm und der oben aufgeführten Tabelle ergab, dass das Programm in Haskell wesentlich kürzer war als die meisten anderen. (Ich bin mir nicht sicher wessen Meinung dies ist. Es handelt sich entweder um die des Navy Komitees oder die der Autoren von [EiSPP].) Es hatte auch eine im Vergleich sehr kurze Entwicklungszeit und war trotz allem eines der am besten kommentierten Programme. Der Code wurde als sehr gut lesbar bzw. sehr einfach zu verstehen beurteilt. Hierdurch zeigt sich das Haskell sich besonders gut für Prototypenentwicklung eignet. Für weitere Informationen siehe [EiSPP] 4. Syntaktische Möglichkeiten von Haskell 4.1 Typisierung Haskell ist stark typisiert. Die Typisierung kann allerdings implizit durch Haskell erfolgen, d.h. es ist keine explizite Typangabe notwendig. Dies wird im englischen als type inference bezeichnet. Handelt es sich bei dem letzten Schritt vor der Übergabe der Rüchgabeparameter z.b. um eine Division von zwei Integer, do setzt Haskell den Typ des Rückgabeparameters auf Integer und verfolgt die Auswirkungen dieser Typfestlegung über das ganze Programm um evtl. weitere Typen\Parameter festlegen zu können. Diese Typisierung hat den Vorteil, dass schon zu compile-zeit Fehler entdeckt werden können. [agith] Seite 6

7 4.2 Syntaktische Besonderheiten In Haskell gibt es ein paar Besonderheiten. Um Fehler zu vermeiden, wurde auf die Semikolons am Ende der Zeilen verzichtet, da diese in anderen Programmiersprachen von den Programmierern häufig vergessen werden. Ungewöhnlich in Haskell ist, dass die Einrückung der Zeilen vom Compiler mit ausgewertet wird. Rückt man die Zeilen falsch ein kann dies zu falscher Semantik führen. Darauf muss man speziell bei if Verschachtelungen achten. Weitere Informationen findet man in meinen Quellen. [PePP] 4.3 Lazy evaluation Lazy evaluation (Bedarfauswertung) bedeutet, dass Ausdrücke immer erst dann ausgewertet werden, wenn sie benötigt werden und dass eine Auswertung immer nur einmal vorgenommen wird. Beispiel.: f(g(x)) dabei sei f eine Funktion, die auf einer Liste arbeitet. Diese Liste wird ihr von der Funktion g übergeben und zwar ein Element nach dem anderen. Die Funktion g erzeugt (rekursiv) eine unendlich lange Liste. Würde es sich hierbei nicht um lazy evaluation handeln, würde das bedeuten, dass die Funktion g unendlich lange läuft und wir hätten wahrscheinlich ein schlechtes Programm geschrieben. Durch lazy evaluation geschieht nun aber folgendes: Die äußere Funktion f wird zuerst gestartet (wie auch ohne lazy evaluation) und fordert einen Wert / ein Listenelement von der Funktion g an. Anschließend wird dieser Wert der Funktion f bearbeitet und dann fordert sie wieder einen Wert an. Hier entsteht nun der Unterschied, erst jetzt erzeugt die Funktion g ein weiteres Listenelement. Wenn die Funktion f sich beendet, dann wird auch die Funktion g beendet. Dieses Seite 7

8 Programm läuft also nur endlos, wenn f auch eine Endlosschleife erzeugt und von keiner höher geordneten Funktion beendet wird. Lazy evaluation kann also genutzt werden, damit man sich in niedrig geordneten Funktionen keine Gedanken darüber machen braucht wie lange eine zu erzeugende Liste sein muss, da die höher geordnete Funktion sich darum kümmern kann. Hierdurch kann man die Funktion auch für mehrere höher geordnete Funktionen nutzen, die eine unterschiedliche Anzahl an Werten benötigen. Durch lazy evaluation kann man also unendliche Listen erzeugen. Man hat hierdurch eine gute Möglichkeit sehr einfach unendliche Datenstrukturen zu erzeugen (dies geht aber auch noch anders). Ein Nachteil besteht allerdings auch wieder darin, dass sich höher geordnete Funktionen um das Enden der Funktion kümmern müssen, wenn das Programm nicht endlos laufen soll. Dies kann zu Fehlern führen, wenn der Programmiere vergisst sich darum zu kümmern. Eine Möglichkeit dies zu verhindern besteht in entsprechender Modularisierung (siehe Modularisierung), durch welche man nur bestimmten Funktionen erlaubt auf eine bestimmte endlos laufende Funktion zurückzugreifen. Dass eine Auswertung nur einmal in einem Programm durchgeführt wird, bedeutet dass z.b. 3+4 nur einmal berechnet wird, selbst wenn diese Rechnung an den unterschiedlichsten Stellen im Programm geschieht. Hierdurch kann Rechenleistung gespart werden, allerdings erhöht die natürlich auch den Speicherverbrauch, da alle Auswertungen zunächst im Speicher verbleiben. Die führt dazu dass man garbage collection benötigt. [agith] [PePP] Seite 8

9 4.4 Modularisierung Hier zunächst ein Beispiel an dem ich die Modularisierung erklären will: module A where import B funktiona = (...) ( ) module B where import C funktionb = (...) ( ) module C where funktionc = (...) funktionc2 = (...) ( ) In Haskell wird hier folgendes passieren: Modul B importiert die Funktionen aus Modul C und Modul A importiert die Funktionen aus Modul B; Modul A importiert allerdings nicht die Funktionen aus C, da Module in Haskell die Funktionen die sie importieren nicht wieder automatisch exportieren. Um in Modul A die Funktionen aus C zu importieren, müsste man entweder import C hinzufügen oder Modul B folgendermaßen abändern: module B (funktionb, module C) where (...) oder Seite 9

10 module B (funktionb, funktionc, ) where ( ) je nachdem ob man alle Funktionen oder nur bestimmte Funktionen exportieren will. Hierbei handelt es sich um einen gezielten Export. In Haskell gibt es nicht nur gezielten Export sondern auch gezielten Import. z.b.: module B where import C (funktionc) Hier wird aus Modul C nur noch die funktionc importiert. Alternativ kann man auch eine Negativliste angeben, also alle Funktionen die nicht importiert werden sollen. module B where import C hiding (funktionc2) Zusätzlich sind noch Umbenennungen der zu importierenden Funktionen möglich: module B where import C (funktionc) renaming (funktionc to helloworld) Um kurz auf das Problem der Endlosrekursionen aus dem Kapitel lazy evaluation zurückzukommen: Man kann die Modularisierung dazu nutzen, die lazy functions vom Export auszuschließen, so dass sie niemand benutzt, der evtl. dann nicht weiß was er da tut. Haskell erlaubt es also gezielt zu importieren und zu exportieren. Man kann deutlich genauere Einschränkungen treffen als z.b. in Java. [agith] Seite 10

11 4.5 Seiteneffekte In rein funktionaler Programmierung sind keine Seiteneffekte erlaubt, da funktionale Programmierer davon überzeugt sind das durch Seiteneffekte viele Fehler entstehen. Eine Funktion soll immer nur genau eine Sache tun: ein gewünschtes Ergebnis zurückliefern und dabei keine anderen Dinge tun wie z.b. Variablen Hochzuzählen. Ein Extrembeispiel ist folgendes: a[i++] = b[i++] + c[i++]; Einem Programmierer ist meist nicht klar was hier passiert. Dies hängt häufig vom verwendeten Compiler ab. Damit so etwas erst gar nicht passieren kann sind Seiteneffekte in Haskell nicht erlaubt. Dies wird hauptsächlich dadurch verhindert, dass es in rein funktionaler Programmierung keine Variablen gibt. Man kann nur Konstanten deklarieren die dann zur Substitution genutzt werden können (siehe Let und where clauses). Was auch noch notwendig und möglich ist sind Parameter, an denen für gewöhnlich aber nicht mehr manipuliert wird (hier entstehen also keine Seiteneffekte). Es kann sich bei den Parametern auch um Tupel handeln (siehe Quellen aus dem Literaturverzeichnis). [Zuen] [FPML] 4.6 Pattern Matching und Case Haskell bietet viele Möglichkeiten des Pattern Matching die ich hier an Beispielen erklären will. In Haskell gibt es außerdem ein Case, wofür ich auch ein kurzes Beispiel aufführe. Seite 11

12 4.6.1 As-Pattern Die Funktion: f (x:xs) = x:x:xs verdoppelt das erste Element einer Liste, dies kann in Haskell auch auch mit einem as-pattern geschrieben werden. Das entsprechende as-pattern zu obigem Beispiel sieht folgendermaßen aus: f s@ (x:xs) = x:s [agith] Wild Cards: Funtionen, die head bzw. tail zurückgeben: head (x:_) tail (_:xs) = x = xs Der _ ist hier eine wild card. Da in der funktion head, tail nicht mehr weiter gebraucht wird, benutzt man hier die wild card. [agith] With-Pattern / guards sign x x > 0 = 1 x == 0 = 0 x < 0 = -1 Seite 12

13 Diese pattern werden guards genannt und mit dem dargestellt. Ein guard ist immer ein boolscher Ausdruck, ist er wahr, so wird die Funktion zu dem bewachten Ausdruck hin ausgewertet. Die guards werden von oben nach unten überprüft. Pattern matching zur Definition von Funktionen+ take 0 _ = [] take _ [] = [] take n (x:xs) = x : take (n-1) xs [agith] [PePP] Case So schreibt man die take Funktion mit einem Case: Take m ys = case (m,ys) of (0,_) -> [] (_,[]) -> [] (n,x:xs) -> x : take (n-1) xs [agith] Let Expressions let a = b + c in a/d d = e * f Let-Ausdrücke dienen zur Vereinfachung von Ausdrücken. Hier geschieht nichts anderes als eine Substitution. Im in Teil darf nur ein Ausdruck vorkommen. Sollte Seite 13

14 man mehrere benötigen, so muss man auf where clauses zurückgreifen. Es handelt sich hierbei um lokale Definitionen. [agith] Where clauses funktiona a = (b,c) where b = - (abs a) c = abs a [agith] 4.7 IO IO stellt in funktionaler Programmierung ein großes Problem dar. Die meisten funktionalen Programmiersprachen erlauben hier Seiteneffekte um das Problem zu lösen obwohl sie diese eigentlich strikt ablehnen. Dieses Problem gibt es weil IO etwas Imperatives darstellt. Ließ ein Zeichen mache etwas damit und gib es wieder aus, ist eine typische imperative Anweisung die sich in funktionaler Programmierung nur schlecht lösen lässt In Haskell geschieht IO rein funktional. In Haskell gibt es dafür einen eigenen Typ mit Namen IO. Die Funktion main muss in Haskellprogrammen vorhanden sein und muss einen IO Typ haben. Für gewöhnlich IO (). Der Code für ein einfaches getchar, es ließt ein Zeichen und gibt es gleich wieder aus: main :: IO () main = do c <-getchar putchar c Seite 14

15 Nach einem do folgen statements, in diesem Fall besteht das Statement aus einem Pattern (c) das durch <- an die Funktion getchar gebunden wird. Die Statements werden der Reihe nach ausgeführt. Das zweite Statement ist putchar c, das in diesem Fall eine Funktion ist. (Die dritte Möglichkeit für Statements sind lokale Definitionen durch let.) Dies ist der Code zum Einlesen von Zeilen in Haskell: getline :: IO String getline = do c <- getchar if c == \n then return else do l <- getline return (c:l) Die Funktion getline ließt Elemente von Typ IO und gibt einen String zurück. Durch do wird das Pattern c an die Funktion getchar gebunden. Solange kein Zeilenende eingelesen wird, wird das Zeichen auf den Stack gelegt und gleichzeitig wird getline an l gebunden. Die funktion getline ruft sich anschließend wieder rekursiv auf. Der rekursive Aufruf erfolgt so lange bis die Zeile zu Ende ist, dann wird der Stack wieder abgebaut und zwar in umgekehrter Reihenfolge zum Aufbauen des Stacks, d.h. die Zeile wird von hinten nach vorne wieder zusammengesetzt. Dies geschieht durch return (c:l). [agith] 4.8 Type Classes Typklassen Eine Besonderheit von Haskell sind Typklassen. Aus Java kennt man Überladung von Klassen bzw. Funktionen aus Klassen. Haskell versucht diese Idee auch für sich zu nutzen in dem es ähnliche Möglichkeiten für Typen bietet. Da zu gibt es in Haskell eine Klassehierarchien der Standarttypen. (Diese ist zu finden in [HaKu] ) Seite 15

16 Hier nun ein Beispiel: class Eq a where (==) :: a -> a -> Bool (/=) :: a -> a -> Bool Hierdurch definiert man eine Klasse von Typen. Sie beinhaltet alle Typen für die die Funktionen == und /= definiert sind. Man kann nun eine Funktion schreiben, die einen oder mehrere Parameter dieser Typklasse benutzt. Diese Funktion definiert man somit für alle Parameter für die die Funktionen == und /= definiert sind. Dadurch dass in Haskell auch gewöhnliches Überladen erlaubt ist kann man somit höher geordnete Funktionen schon dadurch Überladen, das man Funktionen als Parameter benutzt, die ihrerseits einen Typ einer Typklasse zurückgeben. Man Überlädt Funktionen dadurch in Bezug auf ihre Verschachtelung von Innen nach außen und erbt damit in einer höheren Funktion die Überladung. 4.9 Weitere Möglichkeiten von Haskell Wietere Möglichkeiten die Haskell bietet sind Monaden, garbage collection (siehe [Ggch]), lazy patterns, Polymorphie, Überladen, Funktionen höherer Ordnung, Tupel, Currying, unendliche Datenstrukturen. Diese Möglichkeiten kann ich ihm Rahmen dieses Vortrages nicht aufführen, da dies denselben sprengen würde. Einige dieser Dinge wurden auch schon im Vortrag meines Kommilitonen Oliver Trosien [OlTr] näher erläutert und somit möchte ich auf seinen Vortrag und auf meine anderen Quellen Verwiesen. Seite 16

17 5. Interpreter und Compiler Es gibt mehrere Interpreter und Compiler für Haskell. Der Standard-Interpreter ist Hugs. Er läuft auf fast allen Betriebssystemen (Unix, Linux, Windows 3.x, Win 32 and Macintoshs) und kann als interaktiver Interpreter genutzt werden. Es gibt mehrere Compiler (GHC, nhc98, (HBI) und HBC, Helium) die unterschiedliche Vorteile haben. Sie sind alle (auch Hugs) frei verfügbar und laufen auf unterschiedlich vielen Betriebssystemen. GHC erzeugt den schnellsten Code. Helium implementiert Haskell nur unvollständig hat allerdings eine besonders verständliche Fehlerausgabe und ist daher speziell zum lernen von Grundzügen von Haskell gut geeignet. GHC, nhc98, HBI und HBC implementieren mehr als den Haskell 98 Standard und man sollte sich dessen bewusst sein, da ein Haskell Programm evtl. mit einem anderen Compiler nicht mehr funktioniert. Mit HBI und HBC wird versucht dem Programmierer die Vorteile von Compilern und Interpretern zu ermöglichen. Denn sie implementieren den gleichen Code auf die gleiche Art wobei HBI ein Interpreter und HBC ein Compiler ist. Die Vorteile eines Compilers liegen darin, das das fertige Programm schneller ausgeführt werden kann und die eines Interpreters liegen darin, das man es als Programmierer leichter hat, da man das Programm nicht immer erst kompilieren muss um es zu testen sondern alles in einem Schritt erledigen kann. [Hask] 6. Fazit Wie ich hoffentlich zumindest in einigen Bereichen zeigen konnte hat funktionale Programmierung einige Vorteile. Die Korrektheit von Haskellprogrammen kann mit Hilfe des Lambda-Kalkül bewiesen werden. Haskell vermeidet Fehler durch Vermeidung von Seiteneffekten und starke Typisierung. Zusätzlich wird zur Fehlervermeidung noch auf Semikolons zum Abschluss von Zeilen verzichtet was in anderen Sprachen zu Fehlern führt. Typen können von Haskell selbstständig erkannt werden und müssen nicht explizit angegeben werden. Haskell bietet unendliche Datenstrukturen und spart Rechenzeit durch lazy evaluation und auch garbage collection um Daten die zunächst für lazy evaluation zunächst aufgehoben werden auch wieder aus dem Speicher zu entfernen. Die Fehler die durch Endlosrekursionen Seite 17

18 mit Hilfe von lazy evaluation entstehen können, können durch eine sehr viel genauere Modularisierung vermieden werden. Diese Art der Modularisierung kann natürlich auch noch zu anderen / den üblichen Zwecken eingesetzt werden. Hinzu kommt pattern matching und etwas auf was Haskell Programmierer viel wert legen, nämlich das es geschafft wurde auch IO rein funktional zu behandeln. Und Typklassen bieten erweiterte Möglichkeiten der Überladung und sind Neuentwicklung für Haskell. Haskell besitzt auch umfangreiche Bibliotheken (in denen auch die obige Funktion getline schon implementiert ist) und stellt sowohl Interpreter als auch Compiler zur frei zur Verfügung. Hinzu kommen noch einige Möglichkeiten auf die ich nicht näher eingegangen bin (siehe 4.10). An meinem Beispiel des Prototypen Experiments lässt sich auch erkennen, dass man sich Haskell auf jeden Fall ansehen sollte wenn man vorhat einen Prototypen zu schreiben. Haskell scheint sich außerdem für die Programmierung von Compilern & Interpretern (es gibt einen LaTeX Preprocessor, ein Haskell Compiler Front End, einen Interpreter für das Lambda-Kalkül), Netzwerk- und Webanwendungen (es gibt einen Webserver HWS-WP, linkchk ein Monitor für Netzwerkverbindungen in einem LAN) und Grafikprogramme (QuakeHaskell und einen Grafikeditor) zu eignen. Weiter Programme siehe [HaskP]. Ich kann also abschließend sagen, das Haskell mehr Möglichkeiten bietet, als ein Referat in diesem Umfang erschlagen kann und Haskell damit eine durchaus Interessante und nützliche Sprache darstellt. Seite 18

19 7. Literaturverzeichnis [Pepp] Prof. Dr. Peter Pepper, Funktionale Programmierung in OPAL, ML, HASKELL und GOFER, Springer, Berlin Heidelberg New York, 2. Auflage, 2003 [CoFP] Simon Thompson, The Craft of Funktional Programming, Addison Wesley Longman Limited, Dorchester, 1999 [FpuH] Antony J.T.Davie, An introduktion to funktional programming using Haskell, Cambridge University Press, 1992 [Hask] die Haskell Webseite [HaskP] [WhyFp] John Hughes, Why Functional Programming Matters [agith] Paul Hudak, John Peterson, Joseph Fasel, A Gentle Introduction to Haskell Version 98, Yale Univesity & Los Alamos National Laboratory, June [EiSPP] Paul Hudak, Mark P. Jones, Haskell vs. Ada vs. C++ vs Awk vs.... An Experiment in Software Prototyping Productivity, Yale Univesity Department of Computer Science, 4 July 1994 [Ggch] Patrick m Sansom, Simon L. Peyton Jones,Generational garbage collection for Haskell, Dept. of Compunter Science, University of Glasgow [HaKu] Haskell-Kurs [OlTr] Oliver Trosien, Funktionale Programmierung am Beispiel ML, Seite 19

20 [Zuen] Aus einer Vorlesung von Professor Zündorf, Uni-Kassel, 2004 [FPML] Oliver Trosien, Funktionale Programmierung am Beispiel ML, 2004 Seite 20

Programmierparadigmen: Funktionale Programmierung

Programmierparadigmen: Funktionale Programmierung Programmierparadigmen: Funktionale Programmierung Thilo Gorfer 6. Juni 2013 Zusammenfassung Ein kurzer Überblick über die funktionale Programmierung am Beispiel Haskell Abstract A short overview of functional

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut Von Susanne Göbel und Josef Ströbl Die Ideen der Persönlichen Zukunftsplanung stammen aus Nordamerika. Dort werden Zukunftsplanungen schon

Mehr

Programmieren in Haskell Einführung

Programmieren 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:

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung

AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung Problem: Um AutoCAD abwechselnd auf mehreren Rechnern einsetzen zu können konnte man bis AutoCAD 2000 einfach den Dongle umstecken. Seit AutoCAD 2000i

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel

Mehr

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

ONLINE-AKADEMIE. Diplomierter NLP Anwender für Schule und Unterricht Ziele ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits

Mehr

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999 Mind Mapping am PC für Präsentationen, Vorträge, Selbstmanagement von Isolde Kommer, Helmut Reinke 1. Auflage Hanser München 1999 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 21222 0 schnell

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Dateiname: ecdl5_01_02_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Access

Mehr

Programmierkurs Java

Programmierkurs 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

Mehr

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) 3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere

Mehr

Mehr Geld verdienen! Lesen Sie... Peter von Karst. Ihre Leseprobe. der schlüssel zum leben. So gehen Sie konkret vor!

Mehr Geld verdienen! Lesen Sie... Peter von Karst. Ihre Leseprobe. der schlüssel zum leben. So gehen Sie konkret vor! Peter von Karst Mehr Geld verdienen! So gehen Sie konkret vor! Ihre Leseprobe Lesen Sie...... wie Sie mit wenigen, aber effektiven Schritten Ihre gesteckten Ziele erreichen.... wie Sie die richtigen Entscheidungen

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software Wie erzeugt man ein Fotobuch im Internet bei Schlecker Seite Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software Punkt 12 bis 24: -Wir arbeiten mit der Software 8-16 -Erstellung

Mehr

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Einführung Mit welchen Erwartungen gehen Jugendliche eigentlich in ihre Ausbildung? Wir haben zu dieser Frage einmal die Meinungen von Auszubildenden

Mehr

1. Standortbestimmung

1. Standortbestimmung 1. Standortbestimmung Wer ein Ziel erreichen will, muss dieses kennen. Dazu kommen wir noch. Er muss aber auch wissen, wo er sich befindet, wie weit er schon ist und welche Strecke bereits hinter ihm liegt.

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 - Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung

Mehr

Gutes Leben was ist das?

Gutes Leben was ist das? Lukas Bayer Jahrgangsstufe 12 Im Hirschgarten 1 67435 Neustadt Kurfürst-Ruprecht-Gymnasium Landwehrstraße22 67433 Neustadt a. d. Weinstraße Gutes Leben was ist das? Gutes Leben für alle was genau ist das

Mehr

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Wir wollen, dass ihr einfach für eure Ideen und Vorschläge werben könnt. Egal ob in ausgedruckten Flyern, oder in sozialen Netzwerken und

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel Sehr vielen Mitarbeitern fällt es schwer, Serienbriefe an Kunden zu verschicken, wenn sie die Serienbrieffunktion von Word nicht beherrschen. Wenn die Kunden mit Excel verwaltet werden, genügen nur ein

Mehr

Woche 1: Was ist NLP? Die Geschichte des NLP.

Woche 1: Was ist NLP? Die Geschichte des NLP. Woche 1: Was ist NLP? Die Geschichte des NLP. Liebe(r) Kursteilnehmer(in)! Im ersten Theorieteil der heutigen Woche beschäftigen wir uns mit der Entstehungsgeschichte des NLP. Zuerst aber eine Frage: Wissen

Mehr

CodeSaver. Vorwort. Seite 1 von 6

CodeSaver. Vorwort. Seite 1 von 6 CodeSaver Vorwort Die Flut der Passwörter nimmt immer mehr zu. Kontopasswörter, Passwörter für Homepages, Shellzugriffe, Registrierungscodes für Programme und und und. Da ich aber nicht sonderlich viel

Mehr

Gruppenrichtlinien und Softwareverteilung

Gruppenrichtlinien und Softwareverteilung Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? UErörterung zu dem Thema Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? 2000 by christoph hoffmann Seite I Gliederung 1. In zu großen Mengen ist alles schädlich. 2.

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Rohstoffanalyse - COT Daten - Gold, Fleischmärkte, Orangensaft, Crude Oil, US Zinsen, S&P500 - KW 07/2009

Rohstoffanalyse - COT Daten - Gold, Fleischmärkte, Orangensaft, Crude Oil, US Zinsen, S&P500 - KW 07/2009 MikeC.Kock Rohstoffanalyse - COT Daten - Gold, Fleischmärkte, Orangensaft, Crude Oil, US Zinsen, S&P500 - KW 07/2009 Zwei Märkte stehen seit Wochen im Mittelpunkt aller Marktteilnehmer? Gold und Crude

Mehr

Workshop: Wie ich mein Handikap verbessere erfolgreich Leben mit Multiple Sklerose!

Workshop: Wie ich mein Handikap verbessere erfolgreich Leben mit Multiple Sklerose! INTEGRA 7.-9.Mai 2014 Gernot Morgenfurt - Weissensee/Kärnten lebe seit Anfang der 90iger mit MS habe in 2002 eine SHG (Multiple Sklerose) gegründet und möchte viele Menschen zu einer etwas anderen Sichtweise

Mehr

Hohe Kontraste zwischen Himmel und Landschaft abmildern

Hohe Kontraste zwischen Himmel und Landschaft abmildern PhotoLine-Bildbearbeitung Erstellt mit Version 16.11 In diesem Beispiel möchte ich zeigen, wie ich zur Zeit Landschaftsbilder mit hohen Kontrasten bearbeite. "Zur Zeit" deshalb, weil sich das natürlich

Mehr

Anleitung für die Version 2.4.1 von online 1. Schritt: Rufen Sie die Website auf...

Anleitung für die Version 2.4.1 von online 1. Schritt: Rufen Sie die Website auf... 1. Schritt: Rufen Sie die Website auf... www.profax.ch oder http://plc.profax.ch (www.profax.de - www.profax.at) auf und wählen Sie Registration für Klassen und Schulen. Wählen Sie bitte die Variante aus,

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Warum Sie jetzt kein Onlinemarketing brauchen! Ab wann ist Onlinemarketing. So finden Sie heraus, wann Ihre Website bereit ist optimiert zu werden

Warum Sie jetzt kein Onlinemarketing brauchen! Ab wann ist Onlinemarketing. So finden Sie heraus, wann Ihre Website bereit ist optimiert zu werden CoachingBrief 02/2016 Warum Sie jetzt kein Onlinemarketing brauchen! Eine Frage gleich zu Anfang: Wie viele Mails haben Sie in dieser Woche erhalten, in denen behauptet wurde: Inhalt Ihre Webseite sei

Mehr

Kreativ visualisieren

Kreativ visualisieren Kreativ visualisieren Haben Sie schon einmal etwas von sogenannten»sich selbst erfüllenden Prophezeiungen«gehört? Damit ist gemeint, dass ein Ereignis mit hoher Wahrscheinlichkeit eintritt, wenn wir uns

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt. Gentlemen", bitte zur Kasse! Ravensburger Spiele Nr. 01 264 0 Autoren: Wolfgang Kramer und Jürgen P. K. Grunau Grafik: Erhard Dietl Ein Gaunerspiel für 3-6 Gentlemen" ab 10 Jahren Inhalt: 35 Tresor-Karten

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Information zum Projekt. Mitwirkung von Menschen mit Demenz in ihrem Stadtteil oder Quartier

Information zum Projekt. Mitwirkung von Menschen mit Demenz in ihrem Stadtteil oder Quartier Information zum Projekt Mitwirkung von Menschen mit Demenz in ihrem Stadtteil oder Quartier Sehr geehrte Dame, sehr geehrter Herr Wir führen ein Projekt durch zur Mitwirkung von Menschen mit Demenz in

Mehr

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1 Zahlenwinkel: Forscherkarte 1 alleine Tipp 1 Lege die Ziffern von 1 bis 9 so in den Zahlenwinkel, dass jeder Arm des Zahlenwinkels zusammengezählt das gleiche Ergebnis ergibt! Finde möglichst viele verschiedene

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Herzlich Willkommen beim Webinar: Was verkaufen wir eigentlich?

Herzlich Willkommen beim Webinar: Was verkaufen wir eigentlich? Herzlich Willkommen beim Webinar: Was verkaufen wir eigentlich? Was verkaufen wir eigentlich? Provokativ gefragt! Ein Hotel Marketing Konzept Was ist das? Keine Webseite, kein SEO, kein Paket,. Was verkaufen

Mehr

Informationen zur Verwendung von Visual Studio und cmake

Informationen zur Verwendung von Visual Studio und cmake Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von

Mehr

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003 Nicht kopieren Der neue Report von: Stefan Ploberger 1. Ausgabe 2003 Herausgeber: Verlag Ploberger & Partner 2003 by: Stefan Ploberger Verlag Ploberger & Partner, Postfach 11 46, D-82065 Baierbrunn Tel.

Mehr

Liebe oder doch Hass (13)

Liebe oder doch Hass (13) Liebe oder doch Hass (13) von SternenJuwel online unter: http://www.testedich.de/quiz37/quiz/1442500524/liebe-oder-doch-hass-13 Möglich gemacht durch www.testedich.de Einleitung Yuna gibt jetzt also Rima

Mehr

1. Was ihr in dieser Anleitung

1. Was ihr in dieser Anleitung Leseprobe 1. Was ihr in dieser Anleitung erfahren könnt 2 Liebe Musiker, in diesem PDF erhaltet ihr eine Anleitung, wie ihr eure Musik online kostenlos per Werbevideo bewerben könnt, ohne dabei Geld für

Mehr

Doku zur Gebäudebrüter Datenbank

Doku zur Gebäudebrüter Datenbank Autor: Christina Baradari, christina.baradari@berlin.de, 0162 2008 114 Doku zur Gebäudebrüter Datenbank Team Web Programmierer: Rahim Baradari Inhaltsverzeichnis 1 Suchen nach Kartierungsdaten... 2 1.1

Mehr

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen. Wir wollen mit Ihnen Ihren Auftritt gestalten Steil-Vorlage ist ein österreichisches Start-up mit mehr als zehn Jahren Erfahrung in IT und Kommunikation. Unser Ziel ist, dass jede einzelne Mitarbeiterin

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Die Captimizer BTZ-Datei 2015

Die Captimizer BTZ-Datei 2015 Dipl.-Math. Rainer Schwindt Captimizer s Secrets behind the User Interface 2 Die Captimizer BTZ-Datei 2015 Regeln zur BTZ bei laufendem Navigator und Navigator-Neustart beim Jahreswechsel Geheimnisse hinter

Mehr

Statuten in leichter Sprache

Statuten in leichter Sprache Statuten in leichter Sprache Zweck vom Verein Artikel 1: Zivil-Gesetz-Buch Es gibt einen Verein der selbstbestimmung.ch heisst. Der Verein ist so aufgebaut, wie es im Zivil-Gesetz-Buch steht. Im Zivil-Gesetz-Buch

Mehr

10 Erweiterung und Portierung

10 Erweiterung und Portierung 10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

GEONET Anleitung für Web-Autoren

GEONET Anleitung für Web-Autoren GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden

Mehr

Abschluss Version 1.0

Abschluss Version 1.0 Beschreibung Der Abschluss wird normalerweise nur einmal jährlich durchgeführt. Dieses Tech-Note soll helfen, diesen doch seltenen aber periodisch notwendigen Vorgang problemlos durchzuführen. Abschlussvarianten

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Kulturelle Evolution 12

Kulturelle Evolution 12 3.3 Kulturelle Evolution Kulturelle Evolution Kulturelle Evolution 12 Seit die Menschen Erfindungen machen wie z.b. das Rad oder den Pflug, haben sie sich im Körperbau kaum mehr verändert. Dafür war einfach

Mehr

Geld Verdienen im Internet leicht gemacht

Geld Verdienen im Internet leicht gemacht Geld Verdienen im Internet leicht gemacht Hallo, Sie haben sich dieses E-book wahrscheinlich herunter geladen, weil Sie gerne lernen würden wie sie im Internet Geld verdienen können, oder? Denn genau das

Mehr

Das Leitbild vom Verein WIR

Das Leitbild vom Verein WIR Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich

Mehr

iphone- und ipad-praxis: Kalender optimal synchronisieren

iphone- und ipad-praxis: Kalender optimal synchronisieren 42 iphone- und ipad-praxis: Kalender optimal synchronisieren Die Synchronisierung von ios mit anderen Kalendern ist eine elementare Funktion. Die Standard-App bildet eine gute Basis, für eine optimale

Mehr

BUCHHALTUNG BUCHFÜHRUNG WO IST ER EIGENTLICH? - DER UNTERSCHIED?

BUCHHALTUNG BUCHFÜHRUNG WO IST ER EIGENTLICH? - DER UNTERSCHIED? BUCHHALTUNG BUCHFÜHRUNG WO IST ER EIGENTLICH? - DER UNTERSCHIED? Wenn auch die Begriffe "Buchhaltung Buchführung" in der letzten Zeit immer mehr zusammen zuwachsen scheinen, so ist er doch noch da: Der

Mehr

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! 9 TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! An den SeniorNETclub 50+ Währinger Str. 57/7 1090 Wien Und zwar gleich in doppelter Hinsicht:!"Beantworten Sie die folgenden Fragen und vertiefen Sie damit Ihr

Mehr

Repetitionsaufgaben Wurzelgleichungen

Repetitionsaufgaben Wurzelgleichungen Repetitionsaufgaben Wurzelgleichungen Inhaltsverzeichnis A) Vorbemerkungen B) Lernziele C) Theorie mit Aufgaben D) Aufgaben mit Musterlösungen 4 A) Vorbemerkungen Bitte beachten Sie: Bei Wurzelgleichungen

Mehr

Projektmanagement in der Spieleentwicklung

Projektmanagement in der Spieleentwicklung Projektmanagement in der Spieleentwicklung Inhalt 1. Warum brauche ich ein Projekt-Management? 2. Die Charaktere des Projektmanagement - Mastermind - Producer - Projektleiter 3. Schnittstellen definieren

Mehr

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig?

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig? Pädagogik Melanie Schewtschenko Eingewöhnung und Übergang in die Kinderkrippe Warum ist die Beteiligung der Eltern so wichtig? Studienarbeit Inhaltsverzeichnis 1. Einleitung.2 2. Warum ist Eingewöhnung

Mehr

Wir arbeiten mit Zufallszahlen

Wir arbeiten mit Zufallszahlen Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten

Mehr

icloud nicht neu, aber doch irgendwie anders

icloud nicht neu, aber doch irgendwie anders Kapitel 6 In diesem Kapitel zeigen wir Ihnen, welche Dienste die icloud beim Abgleich von Dateien und Informationen anbietet. Sie lernen icloud Drive kennen, den Fotostream, den icloud-schlüsselbund und

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Krippenspiel für das Jahr 2058

Krippenspiel für das Jahr 2058 Ev.-Luth. Landeskirche Sachsens Spielen & Gestalten Krippenspiel für das Jahr 2058 Krippenspiel für das Jahr 2058 K 125 Impressum Weihnachtsspielangebot 2009 Krippenspiel für das Jahr 2058 K 125 Die Aufführungsrechte

Mehr

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6) Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6) 1. Loggen Sie sich im Administratorbereich ein und gehen Sie auf Extension > Extension Manager 2. Wählen Sie Install languages 3. Klicken Sie

Mehr

Viele Bilder auf der FA-Homepage

Viele Bilder auf der FA-Homepage Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Versetzungsgefahr als ultimative Chance. ein vortrag für versetzungsgefährdete

Versetzungsgefahr als ultimative Chance. ein vortrag für versetzungsgefährdete Versetzungsgefahr als ultimative Chance ein vortrag für versetzungsgefährdete Versetzungsgefährdete haben zum Großteil einige Fallen, die ihnen das normale Lernen schwer machen und mit der Zeit ins Hintertreffen

Mehr

Daten sammeln, darstellen, auswerten

Daten sammeln, darstellen, auswerten Vertiefen 1 Daten sammeln, darstellen, auswerten zu Aufgabe 1 Schulbuch, Seite 22 1 Haustiere zählen In der Tabelle rechts stehen die Haustiere der Kinder aus der Klasse 5b. a) Wie oft wurden die Haustiere

Mehr

Spielmaterial. Hallo! Ich bin der kleine AMIGO und zeige euch, wie dieses Spiel funktioniert. Viel Spaß! von Liesbeth Bos

Spielmaterial. Hallo! Ich bin der kleine AMIGO und zeige euch, wie dieses Spiel funktioniert. Viel Spaß! von Liesbeth Bos Kissenschlacht_Regel.qxp:Layout 1 19.05.2010 12:00 Uhr Seite 1 Hallo! Ich bin der kleine AMIGO und zeige euch, wie dieses Spiel funktioniert. Viel Spaß! von Liesbeth Bos Spieler: 2 4 Personen Alter: ab

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Präventionsforum+ Erfahrungsaustausch. HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch. Stand: 11.09.2014 Änderungen vorbehalten

Präventionsforum+ Erfahrungsaustausch. HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch. Stand: 11.09.2014 Änderungen vorbehalten Präventionsforum+ Erfahrungsaustausch HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch Stand: 11.09.2014 Änderungen vorbehalten Anlage zum Endnutzer-Handbuch Handout Gruppen-Administratoren

Mehr

Papa - was ist American Dream?

Papa - was ist American Dream? Papa - was ist American Dream? Das heißt Amerikanischer Traum. Ja, das weiß ich, aber was heißt das? Der [wpseo]amerikanische Traum[/wpseo] heißt, dass jeder Mensch allein durch harte Arbeit und Willenskraft

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter. Stundenverwaltung Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter. Dieses Programm zeichnet sich aus durch einfachste

Mehr