Funktionale Programmierung mit Haskell

Größe: px
Ab Seite anzeigen:

Download "Funktionale Programmierung mit Haskell"

Transkript

1 Funktionale Programmierung mit Haskell Prof Dr Hans J Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg Sommersemester 2005 I Die Sprache Haskell II Ergänzungen 7 Kontextfreie Grammatiken 8 Syntaxanalyse 9 Algebraische Spezifikation 10 Semantik von Programmiersprachen 11 Compilieren funktionaler Programme 12 Ausblick: Kategorien c Hans J Schneider 2005

2 P-Maschine Abstraktes Modell einer Rechenanlage Von N Wirth entwickelt, um die Implementierung von Pascal portabel zu machen Aufbau: Programmspeicher CD mit einem Programmzähler PC Stapelspeicher ST mit dem Zeiger SP Haldenspeicher mit Zeiger NP Befehlsvorrat: bedingte und unbedingte Sprungbefehle Verknüpfungsbefehle, die nur auf dem Stapel arbeiten Transportbefehle von und zum Stapel, wobei sich hinter dem normalen Speicher tiefer liegende Teile des Stapels verbergen (siehe Blockstruktur) compilertechnische Makrobefehle Funktionale Programmierung mit Haskell 111

3 P-Maschine: Programmabarbeitung Befehlszyklus: PC := 0; do PC := PC + 1; Execute(CD[PC-1]) od Die Reihenfolge innerhalb der Schleife ist Konsequenz der Sprungbefehle und der Unterprogrammaufrufe Auch die teilweise äußerst komplexen compilertechnischen Makrobefehle der P-Maschine werden hier als ein Befehl betrachtet Beispiele von P-Code-Befehlen: P -Code Bedeutung ADD ST [SP 1] := ST [SP 1] + ST [SP ] SP := SP 1 LDC q SP := SP + 1 ST [SP ] := q IND ST [SP ] := ST [ST [SP ]] Funktionale Programmierung mit Haskell 112

4 Haldenobjekte Speicher der P-Maschine: Stapel Halde SP EP NP Generierung von Haldenobjekten: code(new(x), ρ) = LDC LDC NEW ρ(x) size(type(x)) Konkretisierung des NEW-Befehles: P -Code Bedeutung NEW if NP ST [SP ] EP then error else NP := NP ST [SP ] ST [ST [SP 1]] := NP SP := SP 2 EP = extreme stack pointer Funktionale Programmierung mit Haskell 113

5 Speicheraufteilung bei Prozeduren Jede Inkarnation einer Prozedur schafft sich eine eigene Umgebung, dh einen eigenen Abschnitt auf dem Stapel: Stapel Halde neue Prozinkarn SP = MP new SP new NP Organisatorische Angaben (Activation record): Rücksprungadresse, ggf Funktionswert (oder dessen Adresse auf der Halde) bisheriger Stapelzeiger bisheriger Wert von EP (muss nach Rückkehr wieder bekannt sein) Beginn des Stapelbereichs der aufrufenden Prozedur (dynamischer Vorgänger) Beginn des Stapelbereichs der syntaktisch umgebenden Prozedur (statischer Vorgänger) Funktionale Programmierung mit Haskell 114

6 Inkarnationsbeschreibung einer Prozedur Eine mögliche Reihenfolge der Daten: SP + 1 : MP function value SP + 2 : static link (SL) SP + 3 : dynamic link (DL) SP + 4 : extreme pointer (EP ) SP + 5 : return address (RA) SP + 6 : parameters local variables, array descriptors arrays (parameters, local) SP new local stack EP Funktionale Programmierung mit Haskell 115

7 Aufbau der Inkarnationsbeschreibung Vom aufrufenden Programm zu bearbeiten: Bestimme SL für das gerufene Programm M P des rufenden Programms wird DL des gerufenen Rette EP des rufenden Programms Berechne und speichere aktuelle Parameter Setze M P für das gerufene Programm (ursprüngliches SP + 1) Speichere Rücksprungadresse Springe Prozedur an Vom gerufenen Programm zu bearbeiten: Erhöhe SP um den statischen Speicherbedarf Bearbeite den dynamischen Speicherbedarf Setze neues EP Führe den Prozedurrumpf aus Funktionale Programmierung mit Haskell 116

8 Übersetzungskontexte bei funktionalen Sprachen Beispiel: letrec add == λx y x + y; dbl == λx x 2; inc == add 1; from == λn cons n (from (inc n)); h == λx if x = 0 then inc else dbl; g == λy h 1 y B: Das Ergebnis ist eine Basiskonstante auf dem Stapel V: Beliebiges Ergebnisobjekt auf der Halde Ein Zeiger auf das Objekt befindet sich auf dem Stapel Beispiele: Vektor von Parametern C: Das Ergebnis ist eine suspendierte Berechnung auf der Halde (closure) Ein Zeiger darauf befindet sich auf dem Stapel Beispiele: die aktuellen Parameter (lazy evaluation) und alle rechten Seiten von Definitionen P: Spezialfall von V für ein gesamtes Programm Funktionale Programmierung mit Haskell 117

9 Currying Currying konstruiert aus bereits definierten Funktionen neue, indem einige Parameterpositionen frei bleiben Beispiel: letrec add == λx y x + y; inc == add 1; in inc 5; In der Definition von inc wird der erste Parameter von add festgelegt, der zweite bleibt offen Bei der Verwendung von inc wird (compilertechnisch) der zweite Parameter von add festgelegt Der Compiler hat dafür Sorge zu tragen, dass der auszuführende Prozedurrumpf genau die Parameter bekommt, die er benötigt Auf der Halde muss ein Objekt geschaffen werden, das den Zusammenhang zwischen der neu definierten Funktion, dem ursprünglichen Prozedurrumpf und den bereits vorhandenen Parametern herstellt Funktionale Programmierung mit Haskell 118

10 Funktionen als Ergebnis von Funktionen Eine Funktion kann scheinbar zuviele Parameter haben: Beispiel: letrec in h == λx if x = 0 then inc else dbl; g == λy h 1 y h benötigt einen Parameter, hat aber scheinbar zwei h 1 liefert als Ergebnis eine Funktion, die ihrerseits einen Parameter, hier y, benötigt Das Beispiel legt nahe, die Parameter beim Prozeduraufruf in umgekehrter Reihenfolge auf den Stapel zu legen Funktionale Programmierung mit Haskell 119

11 Stapelaufbau Der Stapel ist die zentrale Umschlagstation Auf dem Stapel befinden sich Basiskonstanten, Halden- und Stapeladressen, Programmspeicheradressen, zb Adressen von Prozedurrümpfen Stapelabschnitt für eine Funktionsanwendung: SP + 1 : continuation address SP + 2 : F P old (frame pointer) SP + 3 : F P GP old (global pointer) parameters local variables SP new frame pointer entspricht dem dynamic link Der global pointer zeigt auf einen auf der Halde liegenden Vektor, der aus Zeigern auf alle global definierten Objekte besteht Stapelabschnitt für eine Closure-Anwendung: analog, jedoch ohne Parameter Funktionale Programmierung mit Haskell 1110

12 Haldenobjekte CLOSU RE : (cp, gp): Repräsentiert eine ausstehende Berechnung cp = Zeiger auf den Programmcode (Fortsetzungsadresse) gp = Zeiger auf den Vektor der globalen Objekte F U N V AL : (cf, f ap, f gp): Ergebnis der Definition einer Funktion oder funktionales Ergebnis einer Funktionsanwendung cf = Zeiger auf den Programmcode (Rumpf) fap = Zeiger auf den Vektor der aktuellen Parameter (bei Curry-Funktionen nur teilweise gefüllt) fgp = Zeiger auf den Vektor der globalen Objekte BASIC: Basiskonstante Tritt als Ergebnis von Closure-Anwendungen auf Kann nach Typ weiter differenziert werden V ECT OR: Vektor von Zeigern auf andere (meist: Halden-) Objekte (zb aktuelle Parameter, globale Objekte) Funktionale Programmierung mit Haskell 1111

13 Beispiel (I) g == λx y x + y + a f == g 1 g F UN : cf fap fgp org( ) eval(par1) eval(par2) ADD eval(a) ADD org / a / ** org enthält ua den Test, ob genügend Argumente vorhanden sind, und erzeugt im andern Fall ein neues F U N V AL-Objekt mit teilweise ausgefülltem fap Funktionale Programmierung mit Haskell 1112

14 Beispiel (II) g == λx y x + y + a f == g 1 f CLOS : cp gp org eval(1) eval(g) apply org g / apply muss P C, F P, GP aus dem F UNV AL-Objekt g übernehmen und Zeiger auf die (bei Curry-Funktionen) bereits vorhandenen Parameter auf den Stapel kopieren Funktionale Programmierung mit Haskell 1113

15 Kreierung der Haldenobjekte F UNV AL: bei der Verarbeitung einer Funktionsdefinition CLOSURE: Funktionsrumpf: bei Verarbeitung der rechten Seite einer Definitionsgleichung aktuelle Parameter: bei Verarbeitung einer Funktionsanwendung V ECT OR, BASIC: bei Bedarf Die Kreierung erfolgt an Hand der obersten Stapelobjekte Beispiel: P -Code Bedeutung mkclosure ST [SP 1] := new ( CLOS : ST [SP ], ST [SP 1], ) SP := SP 1 Funktionale Programmierung mit Haskell 1114

16 Generierung des Zielcodes abhängig vom Kontext Vier Kontexttypen entsprechen vier verschiedenen Prozeduren: P code : B code : V code : C code : Ergebnis = auszuführendes Programm P code(e) = V code(e, [ ], 0) Basiswert auf Stapel Basiswert oder Vektor auf Halde und Zeiger auf Stapel Closure auf Halde und Zeiger auf Stapel Gemeinsame Parameter dieser Prozeduren: e β sl expression to be compiled environment stack level sl ist die Differenz zwischen SP und einem sp 0, das den Anfang der formalen Parameter und lokalen Variablen kennzeichnet β liefert (LOC, reladdr) bzw (GLOB, reladdr) Funktionale Programmierung mit Haskell 1115

17 Adressierung der Parameter Beispiel letrec f == λv 1 v n letrec a 1 == e 1 ; a q == e q in e 0 ; g == f e 1 e m (m < n) in g e m+1 e k (k > n) Denkbare Lösung (Beispiel beim Aufruf von f mit m = n): P C old F P old F P GP old e n Argumente e 1 sp 0 a 1 lokale Größen a 2 SP a q Funktionale Programmierung mit Haskell 1116

18 B-Code: Basiskonstante auf Stapel Basiskonstante: B code(b, β, sl) = SP := SP + 1 ST [SP ] := b Ausdruck: B code(e 1 op e 2, β, sl) = B code(e 1, β, sl) B code(e 2, β, sl + 1) op Bedingter Ausdruck: B code(if e 1 then e 2 else e 3, β, sl) = B code(e 1, β, sl) F JP L 1 B code(e 2, β, sl) UJP L 2 L 1 : B code(e 3, β, sl) L 2 : Funktionale Programmierung mit Haskell 1117

19 V-Code: Basiskonstante oder Vektor auf Halde Basiskonstante: V code(b, β, sl) = B code(b, β, sl) ST [SP ] := new(basic : ST [SP ]) Ausdruck: V code(e 1 op e 2, β, sl) = B code(e 1 op e 2, β, sl) ST [SP ] := new(basic : ST [SP ]) Bedingter Ausdruck: V code(if e 1 then e 2 else e 3, β, sl) = B code(e 1, β, sl) F JP L 1 V code(e 2, β, sl) UJP L 2 L 1 : V code(e 3, β, sl) L 2 : Funktionale Programmierung mit Haskell 1118

20 Auswertung der Parameter im Kontext C code: C code(v, β, sl) = getvar(v, β, sl) da sowohl die Definitionen der lokalen Größen als auch die aktuellen Parameter zunächst Closure-Objekte sind im Kontext V code: V code(v, β, sl) = getvar(v, β, sl) eval im Kontext B code: B code(v, β, sl) = V code(v, β, sl) if HP [ST [SP ]]tag BASIC then error else ST [SP ] := HP [ST [SP ]] Funktionale Programmierung mit Haskell 1119

21 Getvar und Eval getvar liefert den Zeiger auf das Objekt: getvar(v, β, sl) = let (p, i) = β(v) in SP := SP + 1 if p = LOC then ST [SP ] := ST [sp 0 + i] else ST [SP ] := HP [GP ]v[i] eval muss nur etwas tun, wenn eine Closure vorliegt, was aber (abgesehen von möglichen Optimierungssituationen) der Normalfall ist: if HP [ST [SP ]]tag = CLOS then ST [SP + 1] := P C ST [SP + 2] := F P ST [SP + 3] := GP GP := HP [ST [SP ]]gp P C := HP [ST [SP ]]cp SP := SP + 3 F P := SP Beachte: Das ist ein Befehl! Funktionale Programmierung mit Haskell 1120

22 Funktionsdefinition (Lambda-Ausdruck) F UN : cf fap fgp address / globals C code(λv 1 v 2 v n e, β, sl) = getvar(v 1, β, sl) get globals getvar(v g, β, sl + g 1) mkvec g mkvec 0 push L 1 mkf unval UJP L 2 L 1 : targ n test arguments V code(e, [v i (LOC, i), v j (GLOB, j)], 0) return n update stack, repeat application L 2 : Funktionale Programmierung mit Haskell 1121

23 Funktionsanwendung Voraussetzung: e e e V code(e e 1 e n, β, sl) = ST [SP + 1] := L - - Fortsetzungsadresse ST [SP + 2] := F P ST [SP + 3] := GP SP := SP + 3 F P := SP C code(e n, β, sl + 3) C code(e 1, β, sl + n + 2) V code(e, β, sl + n + 3) apply L : apply muss P C, F P, GP aus dem F UNV AL-Objekt e übernehmen und Zeiger auf die (bei Curry-Funktionen) bereits vorhandenen Parameter auf den Stapel kopieren Funktionale Programmierung mit Haskell 1122

24 Apply apply muss P C, F P, GP aus dem F UNV AL-Objekt e übernehmen und Zeiger auf die (bei Curry-Funktionen) bereits vorhandenen Parameter auf den Stapel kopieren Stapelstruktur: vor apply nach apply P C old P C old F P old F P old F P GP old F P GP old e n e n e 1 e 1 SP e a p SP a 1 Funktionale Programmierung mit Haskell 1123

25 Anfang und Ende des Funktionsrumpfes Wiederholung: C code(λv 1 v 2 v n e, β, sl) = L 1 : targ n V code(e, [v i (LOC, i), v j (GLOB, j)], 0) return n L 2 : targ n testet die Anzahl der vorhandenen Argumente Genug Argumente: Mit dem erzeugten V code weitermachen Zuwenig Argumente: Neues F UNV AL-Objekt erzeugen return n: Wenn ursprünglich mehr Argumente vorhanden waren, als zur Anwendung der Funktion erforderlich sind, muss das Ergebnis der Funktionsanwendung wieder ein Funktionsobjekt sein, das unmittelbar anschließend ausgeführt wird Funktionale Programmierung mit Haskell 1124

26 Argumenttest Stapelstruktur bei Konstruktion eines FUNVAL-Objektes: vor targ nach targ Halde P C old SP f f F UN : P C F P old v F P GP old GP a m v V ECT OR : a m SP a 1 a 1 Expansion von targ n: if SP F P < n then h := ST [F P 2] ST [F P 2] := new(f UN : P C 1, new(v ECT OR : ST [F P + 1],, ST [SP ]), GP ); GP := ST [F P ] SP := F P 2 F P := ST [F P 1] P C := h Funktionale Programmierung mit Haskell 1125

27 Rücksprung Wenn ursprünglich zuviele Argumente vorhanden waren, muss das Ergebnis wieder ein Funktionsobjekt sein: if SP = F P n then / Delete stack frame and return / else if HP [ST [SP ]]tag F UNV AL then error / Repeat function application / Stapelstruktur: vor return nach Fall 1 nach Fall 2 P C old SP result P C old F P old F P old F P GP old F P GP old a m a m = a m a 1 a n+1 = a q+1 SP result a q SP a 1 Funktionale Programmierung mit Haskell 1126

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

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Funktionale Programmierung

Funktionale 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

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

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

DieÜbersetzung funktionaler Programmiersprachen

DieÜbersetzung funktionaler Programmiersprachen DieÜbersetzung funktionaler Programmiersprachen 107 11 Die Sprache PuF Wir betrachten hier nur die Mini-Sprache PuF( Pure Functions ). Insbesondere verzichten wir(vorerst) auf: Seiteneffekte; Datenstrukturen;

Mehr

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse

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

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

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

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Java Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

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

Erwin Grüner 09.02.2006

Erwin 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

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen 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.

Mehr

Adressen. Praktikum Funktionale Programmierung Organisation und Überblick. Termine. Studienleistung

Adressen. Praktikum Funktionale Programmierung Organisation und Überblick. Termine. Studienleistung Adressen Adressen, Termine Studienleistung Praktikum Funktionale Programmierung Organisation und Überblick Dr. David Sabel Büro und Email Raum 216, Robert-Mayer-Str. 11-15 sabel@ki.informatik.uni-frankfurt.de

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)

Mehr

Applet Firewall und Freigabe der Objekte

Applet Firewall und Freigabe der Objekte Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable

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

BEISPIELKLAUSUR Softwareentwicklung:

BEISPIELKLAUSUR Softwareentwicklung: Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte

Mehr

Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9

Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9 Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9 Prof. Dr. W. Conen Version 1.0c Januar 2009 Genereller Ablauf der Suche Gegeben: Variablen X, Domains D, Constraints R (explizit

Mehr

Grundlagen der Programmierung (Vorlesung 14)

Grundlagen der Programmierung (Vorlesung 14) Grundlagen der Programmierung (Vorlesung 14) Ralf Möller, FH-Wedel Vorige Vorlesung Verifikation von Anweisungen und Anweisungsfolgen Schleifen Inhalt dieser Vorlesung Funktionen und Prozeduren Lernziele

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

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Aufgabe 1: Pareto mit SV-Semantik Suchmaschinen Pareto Definition: x < P

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

1. IPSec Verbindung zwischen 2 Gateways mit dynamischen IP Adressen

1. IPSec Verbindung zwischen 2 Gateways mit dynamischen IP Adressen 1. IPSec Verbindung zwischen 2 Gateways mit dynamischen IP Adressen 1.1 Einleitung Im Folgenden wird die Konfiguration einer IPsec Verbindung mit dynamischen IP-Adressen auf beiden Seiten beschrieben.

Mehr

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version 7.4.4. - Optional einen DHCP Server.

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version 7.4.4. - Optional einen DHCP Server. 1. Dynamic Host Configuration Protocol 1.1 Einleitung Im Folgenden wird die Konfiguration von DHCP beschrieben. Sie setzen den Bintec Router entweder als DHCP Server, DHCP Client oder als DHCP Relay Agent

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

Excel 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

Mehr

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung Funktionale Programmierung 1 Funktionale Programmierung: Vorlesungsüberblick 1. Funktionale Programmierung Prinzipien funktionaler Programmierung Funktionale Programmierung in prozeduralen Sprachen Rekursive

Mehr

Informatik 1 Tutorial

Informatik 1 Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2014 Dr. Martin Hirt Christian Badertscher Informatik 1 Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so

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

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

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

ARCO Software - Anleitung zur Umstellung der MWSt

ARCO Software - Anleitung zur Umstellung der MWSt ARCO Software - Anleitung zur Umstellung der MWSt Wieder einmal beschert uns die Bundesverwaltung auf Ende Jahr mit zusätzlicher Arbeit, statt mit den immer wieder versprochenen Erleichterungen für KMU.

Mehr

Anleitung Typo3-Extension - Raumbuchungssystem

Anleitung Typo3-Extension - Raumbuchungssystem Anleitung Typo3-Extension - Raumbuchungssystem t3m_calendar v 1.1 Stand 15.12.2011 Mehr Datails siehe: http://www.typo3-macher.de/typo3-ext-raumbuchungssystem.html 1 INHALT 1. Bedienungsanleitung der Anwendung...

Mehr

Programmierung für Mathematik (HS13)

Programmierung für Mathematik (HS13) software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 5 1 Aufgabe: Eclipse IDE 1.1 Lernziele 1. Die Entwicklungsumgebung Eclipse einrichten. 2. Eclipse kennen lernen und mit

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

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

AZK 1- Freistil. Der Dialog Arbeitszeitkonten Grundsätzliches zum Dialog Arbeitszeitkonten AZK 1- Freistil Nur bei Bedarf werden dafür gekennzeichnete Lohnbestandteile (Stundenzahl und Stundensatz) zwischen dem aktuellen Bruttolohnjournal und dem AZK ausgetauscht. Das Ansparen und das Auszahlen

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

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

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

Über Arrays und verkettete Listen Listen in Delphi

Über Arrays und verkettete Listen Listen in Delphi Über Arrays und verkettete Listen Listen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Ü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

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache

Mehr

Automatisches Parallelisieren

Automatisches Parallelisieren Automatisches Parallelisieren Vorlesung im Wintersemester 2010/11 Eberhard Zehendner FSU Jena Thema: Datenabhängigkeitsanalyse Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse

Mehr

Univariates Chi-Quadrat-Verfahren für ein dichotomes Merkmal und eine Messwiederholung: Test nach McNemar

Univariates Chi-Quadrat-Verfahren für ein dichotomes Merkmal und eine Messwiederholung: Test nach McNemar Univariates Chi-Quadrat-Verfahren für ein dichotomes Merkmal und eine Messwiederholung: Test nach McNemar Inhaltsverzeichnis Univariates Chi-Quadrat-Verfahren für ein dichotomes Merkmal und eine Messwiederholung:

Mehr

Verbesserungsdetails: PTC Mathcad Prime 3.0. Copyright 2013 Parametric Technology Corporation. weiter Infos unter www.mcg-service.

Verbesserungsdetails: PTC Mathcad Prime 3.0. Copyright 2013 Parametric Technology Corporation. weiter Infos unter www.mcg-service. : PTC Mathcad Prime 3.0 Copyright 2013 Parametric Technology Corporation PTC Mathcad Angepasste Funktionen Sie können eigene Funktionen, die in C++ oder anderen Sprachen geschrieben sind, in die PTC Mathcad

Mehr

Access 2013. Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013

Access 2013. Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013 Access 2013 Susanne Weber 1. Ausgabe, 1. Aktualisierung, Juni 2013 Grundlagen für Anwender ACC2013 2 Access 2013 - Grundlagen für Anwender 2 Mit Datenbanken arbeiten In diesem Kapitel erfahren Sie was

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 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

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

Hochschule Ravensburg-Weingarten. Technik Wirtschaft Sozialwesen. Projektarbeit

Hochschule Ravensburg-Weingarten. Technik Wirtschaft Sozialwesen. Projektarbeit Hochschule Ravensburg-Weingarten Technik Wirtschaft Sozialwesen Projektarbeit Entwicklung eines Reitmoduls mit Reitstundenverwaltung für eine existierende Homepage eines Reitvereins vorgelegt von: Tobias

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Installation von Microsoft Visual C++ 2010 Express

Installation von Microsoft Visual C++ 2010 Express Installation von Download unter http://www.microsoft.com/germany/express/products/windows.aspx Alternative: Ihr MSDNAA Zugang Registrierung nach spätestens 30 Tagen ist zwingend erforderlich. I Vorbereitung

Mehr

Kurzeinführung LABTALK

Kurzeinführung LABTALK Kurzeinführung LABTALK Mit der Interpreter-Sprache LabTalk, die von ORIGIN zur Verfügung gestellt wird, können bequem Datenmanipulationen sowie Zugriffe direkt auf das Programm (Veränderungen der Oberfläche,

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

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

Handbuch für Redakteure

Handbuch für Redakteure Handbuch für Redakteure Erste Schritte... 1 Artikel erstellen... 2 Artikelinhalt bearbeiten... 3 Artikel bearbeiten... 3 Grunddaten ändern... 5 Weitere Artikeleigenschaften... 5 Der WYSIWYG-Editor... 6

Mehr

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar 2013. CAP-News 40

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar 2013. CAP-News 40 CAP-News 40 CAP-News ist in unrägelmäßigen Abständen erscheinende Information zum Produktkonfigurator CAP/VARIANTS. Hier werden die neuen Befehle, Funktionen und Möglichkeiten beschrieben. In CAP-News

Mehr

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung Seite 1 Inhalt Allgemein...3 Installation...3 manuelle Eingabe von alten und neuen Adressnummern...4 Vorbereiten von Adressnummern-Änderungen in Tabellen...5 Seite 2 Allgemein Das INKS-Modul ermöglicht

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

WINDOWS 10 Upgrade. Beispiel: Desktop-Ausschnitt von vorhandenem WIN 8.1 (rechte Ecke der Taskleiste)

WINDOWS 10 Upgrade. Beispiel: Desktop-Ausschnitt von vorhandenem WIN 8.1 (rechte Ecke der Taskleiste) Angebot von Microsoft über ein kostenloses Online-Upgrade auf Windows 10 für vorhandene Windows-Systeme der Versionen 7(SP1) und 8.1 (nicht für 8.0!!) Beispiel: Desktop-Ausschnitt von vorhandenem WIN 8.1

Mehr

2. Semester, 2. Prüfung, Lösung

2. Semester, 2. Prüfung, Lösung 2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter

Mehr

Switching. Übung 7 Spanning Tree. 7.1 Szenario

Switching. Übung 7 Spanning Tree. 7.1 Szenario Übung 7 Spanning Tree 7.1 Szenario In der folgenden Übung konfigurieren Sie Spanning Tree. An jeweils einem Switch schließen Sie Ihre Rechner über Port 24 an. Beide Switche sind direkt über 2 Patchkabel

Mehr

Algorithmische Kryptographie

Algorithmische Kryptographie Algorithmische Kryptographie Walter Unger Lehrstuhl für Informatik I 16. Februar 2007 Quantenkryptographie 1 Einleitung Grundlagen aus der Physik 2 Datenübertragung 1. Idee 2. Idee Nochmal Physik 3 Sichere

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Allgemeine Hinweise Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Grundlagen...3 1.2 Erstellen und Bearbeiten eines Rahmen-Leistungsverzeichnisses...

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

Dokumentation: Balanced Scorecard

Dokumentation: Balanced Scorecard Dokumentation: Balanced Scorecard 1. Einleitung Eine Balanced Scorecard (BSC) ist eine kennzahlenbasierte Managementmethode, welche sowohl Visionen als auch Strategien eines Unternehmens und relevante

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

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

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

Anleitung: Einrichtung der Fritz!Box 7272 mit VoIP Telefonanschluss

Anleitung: Einrichtung der Fritz!Box 7272 mit VoIP Telefonanschluss Schließen Sie die AVM Fritz!Box, wie auf dem der Fritz!Box beiliegenden Schaubild beschrieben, an. Starten Sie den Internet Explorer oder einen beliebigen Browser (Mozilla Firefox, Google Chrome, Safari)

Mehr

E-PRIME TUTORIUM Die Programmiersprache BASIC

E-PRIME TUTORIUM Die Programmiersprache BASIC E-PRIME TUTORIUM Die Programmiersprache BASIC BASIC Beginner s All-purpose Symbolic Instruction Code symbolische Allzweck-Programmiersprache für Anfänger Design-Ziel klar: Eine einfache, für Anfänger geeignete

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

Zertifikat in dakota einlesen Wie lese ich mein Zertifikat in dakota.le ein?

Zertifikat in dakota einlesen Wie lese ich mein Zertifikat in dakota.le ein? Wie lese ich mein Zertifikat in dakota.le ein? Seite 1 von 11 Inhaltsverzeichnis 1 Allgemeines zum Zertifikat 3 1.1 Sie haben verschiedene Möglichkeiten Ihr Zertifikat einzulesen 3 1.2 Gründe, warum Ihr

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

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

BEDIENUNG ABADISCOVER

BEDIENUNG ABADISCOVER BEDIENUNG ABADISCOVER Juni 2005 / EMO v.2005.1 Diese Unterlagen sind urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdrucks und der Vervielfältigung der Unterlagen, oder Teilen

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar 2014. inkl. zusätzlichem Übungsanhang K-W81-G-UA

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar 2014. inkl. zusätzlichem Übungsanhang K-W81-G-UA Markus Krimm, Peter Wies 1. Ausgabe, Januar 2014 Windows 8.1 Grundkurs kompakt inkl. zusätzlichem Übungsanhang K-W81-G-UA 1.3 Der Startbildschirm Der erste Blick auf den Startbildschirm (Startseite) Nach

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Was ist Sozial-Raum-Orientierung?

Was ist Sozial-Raum-Orientierung? Was ist Sozial-Raum-Orientierung? Dr. Wolfgang Hinte Universität Duisburg-Essen Institut für Stadt-Entwicklung und Sozial-Raum-Orientierte Arbeit Das ist eine Zusammen-Fassung des Vortrages: Sozialräume

Mehr

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt AMPEL-Steuerung(en) Die Beschreibung und Programmierung der Ampel (vor allem Ampel_5) können sehr kompliziert

Mehr

Bedienungsanleitung. Stand: 26.05.2011. Copyright 2011 by GEVITAS GmbH www.gevitas.de

Bedienungsanleitung. Stand: 26.05.2011. Copyright 2011 by GEVITAS GmbH www.gevitas.de GEVITAS-Sync Bedienungsanleitung Stand: 26.05.2011 Copyright 2011 by GEVITAS GmbH www.gevitas.de Inhalt 1. Einleitung... 3 1.1. Installation... 3 1.2. Zugriffsrechte... 3 1.3. Starten... 4 1.4. Die Menü-Leiste...

Mehr

Wie wird ein Jahreswechsel (vorläufig und endgültig) ausgeführt?

Wie wird ein Jahreswechsel (vorläufig und endgültig) ausgeführt? Wie wird ein (vorläufig und endgültig) ausgeführt? VORLÄUFIGER JAHRESWECHSEL Führen Sie unbedingt vor dem eine aktuelle Datensicherung durch. Einleitung Ein vorläufiger Jahresabschluss wird durchgeführt,

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr