Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » Lösungsvorschlag (Übersicht)
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
pruefungen:bachelor:2014w-sp-klausur-loesung [28.07.2015 13:29] – angelegt Anola | pruefungen:bachelor:2014w-sp-klausur-loesung [16.02.2016 22:31] (aktuell) – since | ||
---|---|---|---|
Zeile 23: | Zeile 23: | ||
==== Aufgabe 2: pinboard ==== | ==== Aufgabe 2: pinboard ==== | ||
+ | **//TODO: FIX CODE!//** | ||
<code cpp> | <code cpp> | ||
Zeile 256: | Zeile 256: | ||
} | } | ||
// Funktion pin() | // Funktion pin() | ||
- | | ||
- | |||
</ | </ | ||
- | **b)** | + | ==== Aufgabe 3: ==== |
- | <code cpp> | + | |
- | const float &Image::operator() (unsigned int i, unsigned int j) const { | + | |
- | return data[i*width+j]; | + | |
- | } | + | |
- | </ | + | |
- | **c)** | + | **a)** TODO |
- | <code cpp> | + | |
- | Image Filter:: | + | |
- | Image output(input.height, | + | |
- | for(int y=0; | + | |
- | for(int x=1; | + | |
- | output(y, | + | |
- | } | + | |
- | } | + | |
- | return output; | + | |
- | } | + | |
- | </ | + | |
- | **d)** | + | **b)** |
- | <code cpp> | + | |
- | Image Filter:: | + | |
- | Image output(input.height-2, | + | |
- | float laplaceFilter[3][3]={{0, | + | |
- | {1,-4,1}, | + | |
- | {0,1,0}}; | + | |
- | | + | . |
- | for(int x=1; | + | |
- | float newValue=0; | + | |
- | for(int i=0; | + | |
- | for(int j=0; | + | |
- | newValue+=laplaceFilter[i][j]*input(y-1+i, | + | |
- | } | + | |
- | } | + | |
- | output(y-1, | + | |
- | } | + | |
- | } | + | |
- | return output; | + | |
- | } | + | |
- | </ | + | |
- | **e)** | + | |
- | <code cpp> | + | |
- | Image Filter:: | + | |
- | Image output(input.height-2, | + | |
- | Image tmp(input.height, | + | |
- | float filterX[3]={1/ | + | |
- | float filterY[3]={1/ | + | |
- | + | ||
- | for(int y=0; | + | |
- | for(int x=1; | + | |
- | float newValue=0; | + | |
- | for(int i=0; | + | |
- | newValue+=filterX[i]*input(y.x-1+i); | + | |
- | } | + | |
- | tmp(y, | + | |
- | } | + | |
- | } | + | |
- | | + | 3 4000 1 rw- |
- | for(int x=0; | + | |
- | float newValue=0; | + | |
- | for(int i=0;i<3;i++) { | + | |
- | newValue+=filterY[i]*tmp(y-1+i.x); | + | |
- | } | + | |
- | output(y-1, | + | |
- | } | + | |
- | } | + | |
- | return output; | + | |
- | } | + | |
- | </ | + | |
- | ==== Aufgabe 6 (Iterative Loesungsverfahren) ==== | + | 4 7000 1 rw- |
- | **a)** | + | |
- | x1 = [1, 2, 5/2, 2, 1]^T | + | |
- | + | ||
- | **b)** | + | |
- | x1 = [1, 2, 3, 3, 2]^T | + | |
- | **c)** | + | 5 8000 1 rw- |
- | | + | |
- | + | ||
- | ==== Aufgabe 7 (Programmierung: | + | |
- | **a)** | + | |
- | <code cpp> | + | |
- | vec2 Optimizer:: | + | |
- | vec2 currX=x0; | + | |
- | for(int i=0; | + | |
- | if(f.gradF(currX).length() < 0.001) { | + | |
- | break; // Genauigkeit erreicht | + | |
- | } | + | |
- | currX = currX + stepLength(f, | + | |
- | } | + | |
- | return currX; | + | |
- | } | + | |
- | </ | + | |
- | **b)** | + | 6 d000 1 rw- |
- | <code cpp> | + | |
- | vec2 Optimizer:: | + | |
- | vec2 currX=x0; | + | |
- | for(int i=0; | + | |
- | if(f.gradF(currX).length() < 0.001) { | + | |
- | break; // Genauigkeit erreicht | + | |
- | } | + | |
- | currX = currX - f.hessian(currX).inverse()*f.gradF(currX); | + | |
- | } | + | |
- | return currX; | + | |
- | } | + | |
- | </ | + | |
- | **c)** | + | (Seitennummer, |
- | Falls die Hesse-Matrix nicht positiv definit ist, kann sie im jeweiligen Iterationsdurchlauf durch die EInheitsmatrix ersetzt werden. In diesem Falle geht das Newton-Verfahren in das Gradientenabstiegsverfahren ueber. | + | Adresse, present, read, write, execute |
- | | + | |
- | | + | |
- | ==== Aufgabe 8 (Bezier-Kurven) ==== | + | |
- | **a)** | + | |
- | | + | 4 0x0 0 0 0 0 |
- | | + | 5 0x0 0 0 0 0 |
- | **b)** | + | 6 0x0 0 0 0 0 |
- | [-2 0] [2 4] [6 4] [6 0] | + | |
- | [0 2] [4 4] [6 2] | + | 8 0x0 0 0 0 0 |
- | [2 3] [5 3] | + | 9 0x0 0 0 0 0 |
- | [3½ 3] | + | A 0x0 0 0 0 0 |
- | | + | |
- | d0..d3=[3½ 3] [5 3] [6 2] [6 0] | + | |
- | + | | |
- | | + | |
- | ==== Aufgabe | + | |
- | **a)** | + | 0x2140 |
- | | + | **c)** |
- | | + | |
- | | + | |
- | | + | |
- | + | ||
- | **b)** | + | |
- | Angabe der Lösung zerlegt in Strecken, wobei P1 (x,y) immer den Startpunkt meint und P2 (x,y) den Endpunkt einer Strecke.\\ | + | |
- | P1 = (0,0) und P2 = (1,0) würde also die Strecke auf der x-Achse meinen von x = 0 bis x = 1 (hoffe das ist verständlich, | + | |
- | Lösung: | + | Damit Adressfehler zu einem Trap fuehren |
- | Strecke0: P1 = (-unendlich, 0) bis P2 = (-1/2, 0)\\ | + | |
- | Strecke1: P1 = (-1/2, 0) bis P2 = (0, 1/2)\\ | + | |
- | Strecke2: P1 = (0, 1/2) bis P2 = (1, -1/2)\\ | + | |
- | Strecke3: P1 = (1, -1/2) bis P2 = (3/2, 0)\\ | + | |
- | Strecke4: P1 = (3/2, 0) bis P2 = (unendlich, 0) | + | |
- | **c)** \\ | + | ==== Aufgabe 4: ==== |
- | Erklaert an einem Beispiel: http:// | + | |
- | - (keine Überlappung) | + | |
- | - (Eintrittsphase) | + | |
- | - (Vollständige Überlappung) | + | |
- | - (Austrittsphase) | + | |
- | - (keine Überlappung) | + | |
- | ==== Aufgabe 10 ( ) ==== | + | **a)** TODO |
- | **1a)** | + | |
- | Baryzentrische Koordinaten: | + | |
- | + | ||
- | **1b)** | + | |
- | sigma < 0, rho < 0 --> spitze | + | |
- | tau = 1 --> Gerade durch den Punkt T, sodass die Gerade parallel zur Strecke [RS] liegt | + | |
- | + | ||
- | **1c)** | + | |
- | a:b = beta/ | + | |
- | c:d = (beta+gamma)/ | + | |
- | e:f = gamma/alpha | + | |
- | **2)** | + | **b)** |
- | P: fP = 3.5 | + | Kernel-Threads: koennen auf mehrere Kerne/ |
- | | + | LightWeight: koenne auch aufgeteilt werden |
+ | User: koennen nicht aufgeteilt werden |