diff --git a/ws2012/CE/uebungen/5/EiCE_Uebung05.pdf b/ws2012/CE/uebungen/5/EiCE_Uebung05.pdf
new file mode 100644
index 00000000..b0ca2423
Binary files /dev/null and b/ws2012/CE/uebungen/5/EiCE_Uebung05.pdf differ
diff --git a/ws2012/CE/uebungen/6/A1_Lukas.jpg b/ws2012/CE/uebungen/6/A1_Lukas.jpg
new file mode 100644
index 00000000..854fb47b
Binary files /dev/null and b/ws2012/CE/uebungen/6/A1_Lukas.jpg differ
diff --git a/ws2012/CE/uebungen/6/EiCE_Uebung06.pdf b/ws2012/CE/uebungen/6/EiCE_Uebung06.pdf
new file mode 100644
index 00000000..03d377ef
Binary files /dev/null and b/ws2012/CE/uebungen/6/EiCE_Uebung06.pdf differ
diff --git a/ws2012/CE/uebungen/P1/DEVS/.classpath b/ws2012/CE/uebungen/P1/DEVS/.classpath
deleted file mode 100644
index 87279173..00000000
--- a/ws2012/CE/uebungen/P1/DEVS/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/ws2012/CE/uebungen/P1/DEVS/.project b/ws2012/CE/uebungen/P1/DEVS/.project
deleted file mode 100644
index ee0093a7..00000000
--- a/ws2012/CE/uebungen/P1/DEVS/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- DEVS2
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
-
-
diff --git a/ws2012/CE/uebungen/P1/DEVS/.settings/org.eclipse.jdt.core.prefs b/ws2012/CE/uebungen/P1/DEVS/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ab76192d..00000000
--- a/ws2012/CE/uebungen/P1/DEVS/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Thu Oct 11 22:30:59 CEST 2012
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVS$StopEvent.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVS$StopEvent.class
deleted file mode 100644
index 4f623403..00000000
Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVS$StopEvent.class and /dev/null differ
diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVS.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVS.class
deleted file mode 100644
index 8d874abe..00000000
Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVS.class and /dev/null differ
diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVSMain.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVSMain.class
deleted file mode 100644
index e43038f2..00000000
Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVSMain.class and /dev/null differ
diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DiscreteEvent.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DiscreteEvent.class
deleted file mode 100644
index 59e58b30..00000000
Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DiscreteEvent.class and /dev/null differ
diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/ExponentialDistributionWrapper.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/ExponentialDistributionWrapper.class
deleted file mode 100644
index 2587ce74..00000000
Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/ExponentialDistributionWrapper.class and /dev/null differ
diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/MyExponential.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/MyExponential.class
deleted file mode 100644
index df2a32c5..00000000
Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/MyExponential.class and /dev/null differ
diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/MyNormalDist.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/MyNormalDist.class
deleted file mode 100644
index 702bc6ed..00000000
Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/MyNormalDist.class and /dev/null differ
diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/NormalDistributionWrapper.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/NormalDistributionWrapper.class
deleted file mode 100644
index b14fdd2e..00000000
Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/NormalDistributionWrapper.class and /dev/null differ
diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/QueueDEVS.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/QueueDEVS.class
deleted file mode 100644
index 9ffcfac6..00000000
Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/QueueDEVS.class and /dev/null differ
diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/RandomNumberGenerator.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/RandomNumberGenerator.class
deleted file mode 100644
index 0ed2314c..00000000
Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/RandomNumberGenerator.class and /dev/null differ
diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DEVS.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DEVS.java
deleted file mode 100644
index 1ca90303..00000000
--- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DEVS.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- Vorlesung: Einfuehrung in Computational Engineering
- @author Arne Naegel
- @date Oktober 2012
- */
-
-package edu.eice2012;
-
-
-
-import java.util.Iterator;
-import java.util.PriorityQueue;
-
-/* This class implements a time dependent discrete event simulation */
-abstract public class DEVS {
-
- // GENERAL
- protected PriorityQueue queue;
- private double time;
- private double maxTime;
-
- // CONSTRUCTOR
- public DEVS(){
- queue = new PriorityQueue(2);
- time = 0.0;
-
-
- }
-
- protected class StopEvent extends DiscreteEvent{
- StopEvent(double t) {
- super(t,'X');
- }
- }
-
- // USER-DEFINED FUNCTIONS
- /** This routine may be implemented */
- public void initialize() {
- queue.add(new StopEvent(maxTime));
- }
-
- /** This routine must be implemented */
- abstract public void eventRoutine(DiscreteEvent ev);
-
- /** This routine may be implemented */
- public void statistics() {}
-
-
-
- // GENERAL FUNCTIONS
- /** getter time */
- public double getTime() {
- return time;
- }
-
- /** setter time */
- public void setTime(double time) {
- this.time = time;
- }
-
- /** getter max time */
- public double getMaxTime() {
- return maxTime;
- }
-
- /** setter max time */
- public void setMaxTime(double time) {
- this.maxTime = time;
- }
-
-
- /** Simulation stops if time limit has been reached*/
- public boolean stopCondition() {
- return getTime() > getMaxTime();
- }
-
- /** Perform simulation run (event loop) */
- public void simulate(){
-
- while (true){
-
- // get event
- DiscreteEvent ev = queue.poll();
-
- // abort, if queue is empty
- if (ev==null) {
- System.out.println("Queue is empty!");
- break;
- }
-
- // update time and treat event
- time = ev.getTime();
- eventRoutine(ev);
-
- // print queue status
- System.out.print("{");
-
- for (Iterator it = queue.iterator(); it.hasNext();)
- {
- System.out.print(it.next()+", ");
- }
- System.out.println("}");
-
- // check for stop condition
- if (ev instanceof StopEvent)
- {
- System.out.println("Terminating");
- break;
- }
- }
- }
-
-
-
-
-}
-
diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DEVSMain.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DEVSMain.java
deleted file mode 100644
index bd33cae0..00000000
--- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DEVSMain.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- Vorlesung: Einfuehrung in Computational Engineering
- @author Arne Naegel
- @date Oktober 2012
- */
-
-package edu.eice2012;
-
-import java.util.Random;
-
-public class DEVSMain {
-
- /** execute program */
- public static void main(String args[]){
-
- // create random number generator
- RandomNumberGenerator randA;
- RandomNumberGenerator randD;
- double maxtime;
-
- // ALTERNATIVE 1: results from exercise 1
- // TODO: VAlidierung in Aufgabenteil b)
- randA = new MyExponential();
- randD = new MyNormalDist();
- maxtime = 100.0;
-
-
- // ALTERNATIVE 2: 'real' random numbers
- // TODO: Experimente in Aufgabenteil d)
- /* Random r = new Random(47);
-
-
- randA = new ExponentialDistributionWrapper(r, 5.0);
- randD = new ExponentialDistributionWrapper(r, 6.0);
- //randD= new NormalDistributionWrapper(r, 6.0, 2.0);
- maxtime = 20000;
- */
-
- DEVS sim = new QueueDEVS(randA, randD);
-
- sim.setMaxTime(maxtime);
- sim.initialize();
- sim.simulate();
-
- sim.statistics();
- }
-
-
-
-}
diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DiscreteEvent.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DiscreteEvent.java
deleted file mode 100644
index e1cf2afb..00000000
--- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DiscreteEvent.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- Vorlesung: Einfuehrung in Computational Engineering
- @author Arne Naegel
- @date Oktober 2012
- */
-package edu.eice2012;
-
-import java.lang.Double;
-
-public class DiscreteEvent implements Comparable{
-
- private double time;
- private char type;
-
-
- DiscreteEvent(double t, char c) {time=t; type=c;}
-
- public double getTime() {
- return time;
- }
- public void setTime(double time) {
- this.time = time;
- }
-
- public char getType() {
- return type;
- }
- public void setType(char type) {
- this.type = type;
- }
-
-
- public String toString(){
- return "Event<"+type+", "+time+">";
- }
-
-
-
- public int compareTo(DiscreteEvent e) {
- return new Double(time).compareTo(e.getTime());
-
- }
-}
diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/ExponentialDistributionWrapper.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/ExponentialDistributionWrapper.java
deleted file mode 100644
index 58c97ba0..00000000
--- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/ExponentialDistributionWrapper.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package edu.eice2012;
-
-import java.util.Random;
-
-
-/** Generiert Werte einer Exponentialverteilung */
-public class ExponentialDistributionWrapper implements RandomNumberGenerator {
-
-private static final long serialVersionUID = 1L;
-
- private double lambda;
- private Random r;
- private boolean doInteger;
-
- public ExponentialDistributionWrapper(Random r){
- this (r, 1.0);
- }
-
- public ExponentialDistributionWrapper(Random r, double lambda){
- this.doInteger=false;
- this.r = r;
- this.lambda=lambda;
- }
-
-
- public double nextDoubleValue(){
- double x = r.nextDouble();
- if (doInteger) return (double) Math.round(-Math.log(1.0-x)/lambda);
- return -Math.log(1.0-x)/lambda;
- }
-
-}
diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/MyExponential.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/MyExponential.java
deleted file mode 100644
index c20b54af..00000000
--- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/MyExponential.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- Vorlesung: Einfuehrung in Computational Engineering
- @author Arne Naegel
- @date Oktober 2012
- */
-package edu.eice2012;
-
-public class MyExponential implements RandomNumberGenerator
-
-{
- MyExponential() {i=0;}
-
- public double nextDoubleValue(){
- double val=data[i];
- i=(i+1)%data.length;
- return val;
- };
-
- private int i;
- private static final long serialVersionUID = 1L;
- private static double data[] =
- //{0.57, 2.73, 1.36, 0.72, 0.23, 0.08, 1.21, 0.35, 2.81, 0.19, 0.88};
- {8.76, 16.82, 15.40, 26.72,3.46,27.06,23.52,8.06,0.71,42.03,56.27};
-
-
-
-
-
-
-}
diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/MyNormalDist.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/MyNormalDist.java
deleted file mode 100644
index 188374e4..00000000
--- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/MyNormalDist.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- Vorlesung: Einfuehrung in Computational Engineering
- @author Arne Naegel
- @date Oktober 2012
- */
-package edu.eice2012;
-
-public class MyNormalDist implements RandomNumberGenerator
-
-{
- MyNormalDist() {i=0;}
-
- public double nextDoubleValue(){
- double val=data[i];
- i=(i+1)%data.length;
- return val;
- };
-
- private int i;
- private static final long serialVersionUID = 1L;
- private static double data[] =
- //{1.89, 2.02, 2.56, 3.84, 2.00, 2.28, 3.32, 3.56, 2.97, 2.67, 2.70};
- {25.30, 20.11, 13.25, 10.68, 16.85, 19.22, 23.96, 28.30, 24.55, 22.70, 17.14};
-
-}
diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/NormalDistributionWrapper.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/NormalDistributionWrapper.java
deleted file mode 100644
index f4992e2f..00000000
--- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/NormalDistributionWrapper.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package edu.eice2012;
-
-
-import java.util.Random;
-
-
-/** Generiert Werte einer Normalverteilung */
-public class NormalDistributionWrapper implements RandomNumberGenerator{
-
- private static final long serialVersionUID = 1L;
-
- private double mu;
- private double sigma;
- private Random r;
- private boolean doInteger; // returning integers or doubles?
-
-
- public NormalDistributionWrapper(Random r){
- this(r, 0.0, 1.0);
- }
-
- public NormalDistributionWrapper(Random r, double mu, double sigma){
- this.r = r;
- this.mu=mu;
- this.sigma=sigma;
- this.doInteger=false;
- }
-
- public double nextDoubleValue(){
- double x = r.nextGaussian();
- if (doInteger) return (double) Math.round( mu +x*sigma);
- return mu +x*sigma;
- }
-
-}
diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/QueueDEVS.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/QueueDEVS.java
deleted file mode 100644
index 3d73ad50..00000000
--- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/QueueDEVS.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/**
- Vorlesung: Einfuehrung in Computational Engineering
- @author Arne Naegel
- @date Oktober 2012
- */
-
-package edu.eice2012;
-
-import java.util.AbstractList;
-import java.util.Vector;
-
-
-public class QueueDEVS extends DEVS {
-
- // problem specific variables
- private int server; // current machine state (0=idle)
- private int buffer; // current buffer length
- private int maxServers;
-
- // random number generators
- private RandomNumberGenerator randA;
- private RandomNumberGenerator randD;
-
- // statistics (per event)
- private Vector eventTimes; // time stamp when event is triggered
- private Vector eventTypes; // type of event
- private Vector serverList; // #items processed by server(s)
- private Vector bufferList; // #items in buffer
- private Vector loadList; // #items in system
-
-
-
- /** Constructor */
- public QueueDEVS(RandomNumberGenerator randA, RandomNumberGenerator randD)
- {
- // attributes
- buffer = 0;
- server = 0;
- maxServers = 1;
-
- // random numbers
- this.randA = randA;
- this.randD = randD;
-
-
- // statistics (per event)
- eventTimes = new Vector();
- eventTypes = new Vector();
- bufferList = new Vector();
- serverList = new Vector();
- loadList = new Vector();
-
- // first entries
- eventTimes.add(0.0);
- eventTypes.add('I');
- bufferList.add(0.0);
- serverList.add(0.0);
- loadList.add(0.0);
- }
-
- public void setRandomArrival(RandomNumberGenerator rand)
- {
- this.randA = rand;
- }
-
- public void setRandomDeparture(RandomNumberGenerator rand)
- {
- this.randD = rand;
- }
-
-
-
- /** status for server */
- public boolean allBusy()
- {
- return (server == maxServers);
- }
-
- /** status for server */
- public boolean isIdle()
- {
- return (server==0);
- }
-
-
- public int getServerState() {
- return this.server;
- }
-
-
- public void initialize()
- {
- super.initialize();
- server = 0;
- buffer = 0;
- queue.add(new DiscreteEvent(0.5, 'A'));
-
- /*
- * ALTERNATIVE: first arrival is random
- double offset = randA.nextDoubleValue();
- queue.add(new DiscreteEvent((offset), 'A'));
- */
- }
-
-
- /** called for every event */
- public void eventRoutine(DiscreteEvent e)
- {
-
- char type = e.getType();
- switch (type)
- {
- case 'A': arrivalRoutine(e); break;
- case 'D': departureRoutine(e); break;
-
- default: System.out.println("Unknown event type -> Aborting!!!");
- };
-
-
- // print stats
- System.out.println("Event: "+e.getTime() + "|"+type+ "|"+ buffer+ "|"+ getServerState());
-
- // record event statistics (example!)
- eventTimes.add(e.getTime()); // time stamp
- eventTypes.add(e.getType()); // type (A/D/X)
- int serverState = getServerState();
- serverList.add((double) serverState); // server state
- bufferList.add((double) buffer); // buffer state
-
- int nItems = buffer + serverState;
- loadList.add((double) nItems); // system load
- };
-
- /** TODO: called upon arrival */
- protected void arrivalRoutine (DiscreteEvent e)
- {
-
- //System.out.println("arrivalRoutine muss implementiert werden!");
-
- double offset1 = randA.nextDoubleValue();
- queue.add(new DiscreteEvent((getTime()+offset1), 'A'));
-
- if(allBusy()){
- buffer++;
- }else{
- server++;
- double offset2 = randD.nextDoubleValue();
- queue.add(new DiscreteEvent(getTime()+offset2, 'D'));
- }
-
-
-
-
- }
-
-
- /** TODO: called upon departure */
- protected void departureRoutine (DiscreteEvent e)
- {
- //System.out.println("departureRoutine muss implementiert werden!");
-
- if(buffer == 0){
- server = 0;
- }else{
- buffer--;
- double offset=randD.nextDoubleValue();
- queue.add(new DiscreteEvent(getTime()+offset, 'D'));
- }
-
- }
-
-
-
- /** aux: compute \sum v_i */
- static protected double firstMoments(AbstractList values){
- double val=0.0;
- int numEvents = values.size()-1;
- for (int i=0; i values, AbstractList weights){
- double val=0.0;
- int numEvents = values.size()-1; // skip final STOP event!
- for (int i=0; i values){
- double val=0.0;
- int numEvents = values.size()-1; // skip final STOP event!
- for (int i=0; i values, AbstractList weights){
- double val=0.0;
- int numEvents = values.size()-1; // skip final STOP event!
- for (int i=0; i, AbstractList)
- * */
- static protected double[] aggregateTimesPerLoad(AbstractList times, AbstractList loads)
- {
-
- int numEvents = loads.size()-1; // skip final STOP event!
-
- // a) find maximum load
- int maxLoad = 0;
- for (int i=0; i maxLoad) maxLoad = load;
- }
-
- // b) compute sum of values and assign
- double val[] = new double[maxLoad+1];
- for (int i=0; i0, so dass 1+eps!= 1
+
+
+eps = 1;
+n = 1;
+while (1.0 + eps) > 1.0
+ n = n + 1; %n erhöhen
+ eps = 2^(-n); %eps neu zuweisen
+end
+
+%einen Schritt der while-Schleife ""rückgängig"" machen, um das letzte eps zu
+%berechnen, so dass gerade noch gilt (1.0 + eps) > 1.0
+n = n - 1;
+eps = 2^(-n);
+
+
+end
+
diff --git a/ws2012/CE/uebungen/P2/P2Matlab/loesung.txt b/ws2012/CE/uebungen/P2/P2Matlab/loesung.txt
new file mode 100644
index 00000000..87fd9b12
--- /dev/null
+++ b/ws2012/CE/uebungen/P2/P2Matlab/loesung.txt
@@ -0,0 +1,121 @@
+Gruppe:
+ - Michael Scholz (Matr.# 1576630)
+ - David Kaufmann (Matr.# 1481864)
+ - Dennis Werner (Matr.# 1513509)
+
+
+Ausgabe der main-Funktion in Matlab:
+
+
+1. Aufruf von main(1) liefert:
+==============================
+
+>> main(1)
+
+e =
+
+ 2.2204e-16
+
+
+p =
+
+ Columns 1 through 4
+
+ 3.0000e+00 3.1058e+00 3.1326e+00 3.1394e+00
+
+ Columns 5 through 8
+
+ 3.1410e+00 3.1415e+00 3.1416e+00 3.1416e+00
+
+ Columns 9 through 12
+
+ 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00
+
+ Columns 13 through 16
+
+ 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00
+
+ Columns 17 through 20
+
+ 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00
+
+ Columns 21 through 24
+
+ 3.1417e+00 3.1417e+00 3.1431e+00 3.1598e+00
+
+ Columns 25 through 28
+
+ 3.1820e+00 3.3541e+00 4.2426e+00 6.0000e+00
+
+ Columns 29 through 32
+
+ 0 0 0 0
+
+ Columns 33 through 35
+
+ 0 0 0
+
+
+======================================================================================================
+======================================================================================================
+
+
+2. Aufruf von main(2) liefert:
+==============================
+
+>> main(2)
+
+e =
+
+ 2.2204e-16
+
+
+p =
+
+ Columns 1 through 4
+
+ 3.0000e+00 3.1058e+00 3.1326e+00 3.1394e+00
+
+ Columns 5 through 8
+
+ 3.1410e+00 3.1415e+00 3.1416e+00 3.1416e+00
+
+ Columns 9 through 12
+
+ 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00
+
+ Columns 13 through 16
+
+ 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00
+
+ Columns 17 through 20
+
+ 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00
+
+ Columns 21 through 24
+
+ 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00
+
+ Columns 25 through 28
+
+ 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00
+
+ Columns 29 through 32
+
+ 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00
+
+ Columns 33 through 35
+
+ 3.1416e+00 3.1416e+00 3.1416e+00
+
+
+
+=> Bei den beiden Aufrufen wird sichtbar, dass bei Verfahren 1 die Rundungsfehler in Maschinenarithmetik ab Iteration 21 die Annäherung an PI stark verfälschen. Ab Iteration 29 erhalten wir hier sogar 0. Verfahren 2 hingegen liefert in Maschinenarithmetik eine gute Annäherung an PI. Selbst bei Iteration 100 (hier nicht aufgeführt) erhalten wir den Wert 3.1416e+00 als Näherung für PI. Die Plots in Matlab veranschaulichen die Ergebnisse zudem graphisch.
+Somit sollte also Verfahren 2 für eine Annäherung an PI in Maschinenarithmetik verwendet werden.
+
+
+
+
+
+
+
diff --git a/ws2012/CE/uebungen/P2/P2Matlab/main.m b/ws2012/CE/uebungen/P2/P2Matlab/main.m
new file mode 100644
index 00000000..d21a11d1
--- /dev/null
+++ b/ws2012/CE/uebungen/P2/P2Matlab/main.m
@@ -0,0 +1,18 @@
+function [ output_args ] = main(type)
+%MAIN Spezifiziert einen Unit-Test fuer die 2. Programmieraufgabe
+
+%Setzt das Format fuer Ausgabe (wissenschaftliche Darstellung)
+format shortE
+
+%Aufruf der Benutzer-definierten Funktionen
+%Teilaufgabe a): Finde die kleinste Zahl, so dass (1.0+eps>1.0)
+e = findeps()
+
+%Teilaufgabe b): Berechne eine Approximation an PI
+%fuer type =1 oder type=2
+p = approxpi(35, type)
+
+%Grafische Darstellung
+plot(p, '--rs','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10)
+
+end
diff --git a/ws2012/CE/uebungen/P2/P2Scilab/approxpi.m b/ws2012/CE/uebungen/P2/P2Scilab/approxpi.m
new file mode 100644
index 00000000..00a73ecd
--- /dev/null
+++ b/ws2012/CE/uebungen/P2/P2Scilab/approxpi.m
@@ -0,0 +1,27 @@
+function [ p ] = approxpi(n, type)
+//APPROXPI Approximates PI based on edge lengths e
+
+
+//vektor p:
+p = zeros(1, n);
+
+//vektor edges:
+edge = zeros(1, n);
+edge(1) = 1;
+
+for i=1:1:n
+ select type
+ case 1
+ //Behandlung für ersten Fall
+ edge(i+1) = sqrt(2 - sqrt(4-edge(i)^2));
+ case 2
+ //Behandlung für zweiten Fall
+ edge(i+1) = edge(i) / sqrt(2 + sqrt(4-edge(i)^2));
+ else
+ disp('Wrong type!');
+ end
+ p(i) = 3*2^(i-1)*edge(i);
+end
+
+endfunction
+
diff --git a/ws2012/CE/uebungen/P2/P2Scilab/findeps.m b/ws2012/CE/uebungen/P2/P2Scilab/findeps.m
new file mode 100644
index 00000000..6877492e
--- /dev/null
+++ b/ws2012/CE/uebungen/P2/P2Scilab/findeps.m
@@ -0,0 +1,19 @@
+function [eps] = findeps()
+//FINDEPS Findet die kleinste Zahl eps>0, so dass 1+eps!= 1
+
+
+eps = 1;
+n = 1;
+while (1.0 + eps) > 1.0
+ n = n + 1; //n erhöhen
+ eps = 2^(-n); //eps neu zuweisen
+end
+
+//einen Schritt der while-Schleife ""rückgängig"" machen, um das letzte eps zu
+//berechnen, so dass gerade noch gilt (1.0 + eps) > 1.0
+n = n - 1;
+eps = 2^(-n);
+
+
+endfunction
+
diff --git a/ws2012/CE/uebungen/P2/P2Scilab/main.m b/ws2012/CE/uebungen/P2/P2Scilab/main.m
new file mode 100644
index 00000000..6ad83079
--- /dev/null
+++ b/ws2012/CE/uebungen/P2/P2Scilab/main.m
@@ -0,0 +1,18 @@
+function [ output_args ] = main(type)
+//MAIN Spezifiziert einen Unit-Test fuer die 2. Programmieraufgabe
+
+//Setzt das Format fuer Ausgabe (wissenschaftliche Darstellung)
+format("e",8)
+
+//Aufruf der Benutzer-definierten Funktionen
+//Teilaufgabe a): Finde die kleinste Zahl, so dass (1.0+eps>1.0)
+e = findeps()
+
+//Teilaufgabe b): Berechne eine Approximation an PI
+//fuer type =1 oder type=2
+p = approxpi(35, type)
+
+//Grafische Darstellung
+//plot(p, '--rs','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10)
+
+endfunction
diff --git a/ws2012/P2P/Folien/Lecture_1-1.pdf b/ws2012/P2P/Folien/Lecture_1-1.pdf
deleted file mode 100644
index 311e1311..00000000
Binary files a/ws2012/P2P/Folien/Lecture_1-1.pdf and /dev/null differ
diff --git a/ws2012/P2P/Folien/Lecture_1.pdf b/ws2012/P2P/Folien/Lecture_1.pdf
new file mode 100644
index 00000000..a0bd37d7
Binary files /dev/null and b/ws2012/P2P/Folien/Lecture_1.pdf differ
diff --git a/ws2012/P2P/Papers/ICC_08_-_Super-Seeding_in_BitTorrent.pdf b/ws2012/P2P/Papers/Bittorent/ICC_08_-_Super-Seeding_in_BitTorrent.pdf
similarity index 100%
rename from ws2012/P2P/Papers/ICC_08_-_Super-Seeding_in_BitTorrent.pdf
rename to ws2012/P2P/Papers/Bittorent/ICC_08_-_Super-Seeding_in_BitTorrent.pdf
diff --git a/ws2012/P2P/Papers/IncentivesBuildRobustness_inBitTorrent.pdf b/ws2012/P2P/Papers/Bittorent/IncentivesBuildRobustness_inBitTorrent.pdf
similarity index 100%
rename from ws2012/P2P/Papers/IncentivesBuildRobustness_inBitTorrent.pdf
rename to ws2012/P2P/Papers/Bittorent/IncentivesBuildRobustness_inBitTorrent.pdf
diff --git a/ws2012/P2P/Papers/bittorrent.pdf b/ws2012/P2P/Papers/Bittorent/bittorrent.pdf
similarity index 99%
rename from ws2012/P2P/Papers/bittorrent.pdf
rename to ws2012/P2P/Papers/Bittorent/bittorrent.pdf
index 8872b1a0..7fe18389 100644
Binary files a/ws2012/P2P/Papers/bittorrent.pdf and b/ws2012/P2P/Papers/Bittorent/bittorrent.pdf differ
diff --git a/ws2012/P2P/Papers/Kademlia/109.pdf b/ws2012/P2P/Papers/Kademlia/109.pdf
new file mode 100644
index 00000000..201458d2
Binary files /dev/null and b/ws2012/P2P/Papers/Kademlia/109.pdf differ
diff --git a/ws2012/P2P/Papers/Kademlia/a23-wang.pdf b/ws2012/P2P/Papers/Kademlia/a23-wang.pdf
new file mode 100644
index 00000000..b44a014f
Binary files /dev/null and b/ws2012/P2P/Papers/Kademlia/a23-wang.pdf differ
diff --git a/ws2012/P2P/Papers/Kademlia/kad_springer.pdf b/ws2012/P2P/Papers/Kademlia/kad_springer.pdf
new file mode 100644
index 00000000..54b83ba4
Binary files /dev/null and b/ws2012/P2P/Papers/Kademlia/kad_springer.pdf differ
diff --git a/ws2012/P2P/uebungen/6/u3.pdf b/ws2012/P2P/uebungen/6/u3.pdf
new file mode 100644
index 00000000..ebfedf13
Binary files /dev/null and b/ws2012/P2P/uebungen/6/u3.pdf differ
diff --git a/ws2012/P2P/uebungen/7/exercise7.pdf b/ws2012/P2P/uebungen/7/exercise7.pdf
new file mode 100644
index 00000000..ea34cf57
Binary files /dev/null and b/ws2012/P2P/uebungen/7/exercise7.pdf differ
diff --git a/ws2012/P2P/uebungen/7/exercise7_solution.odt b/ws2012/P2P/uebungen/7/exercise7_solution.odt
new file mode 100644
index 00000000..1753cf99
Binary files /dev/null and b/ws2012/P2P/uebungen/7/exercise7_solution.odt differ
diff --git a/ws2012/P2P/uebungen/7/exercise7_solution.pdf b/ws2012/P2P/uebungen/7/exercise7_solution.pdf
new file mode 100644
index 00000000..c57c550f
Binary files /dev/null and b/ws2012/P2P/uebungen/7/exercise7_solution.pdf differ