Lösungsvorschläge zu den Übungsaufgaben

Größe: px
Ab Seite anzeigen:

Download "Lösungsvorschläge zu den Übungsaufgaben"

Transkript

1 Lösungsvorschläge zu den Übungsaufgaben Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 22. Juli 2008 " Informatik für Physiker SS08" Fakultät für Mathematik und Informatik FSU Jena

2 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 1 Aufgabe 1 Allgemein gilt: 0 0 = = 1 (dargestellt als 1 und Übertrag 1) 1 0 = = (mit Übertrag 1) = 0 mit Übertrag (mit Übertrag 1) = 1 mit Übertrag also = 110 Aufgabe = 73 Rest: = 36 Rest: = 18 Rest: = 9 Rest: = 4 Rest: = 2 Rest: = 1 Rest: = 0 Rest: 1 Ergebnis: aufteilen in Pakete mit je 3Bit liefert: liefert = liefert 1 2 = liefert = in Oktalschreibweise aufteilen in Pakete mit je 4Bit liefert: liefert = liefert = 3 93 in Hexadezimalschreibweise

3 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 2 Aufgabe = Merke 1 und 1. 1 = = < 1 Merke = Merke 1 und 1 1 = 0 fertig = 0.2 es gilt 0.2 < 1 Merke = 0.4 es gilt 0.4 < 1 Merke = 0.8 es gilt 0.8 < 1 Merke = 1.6 es gilt Merke 1 und = = 1.2 es gilt Merke 1 und = = 0.4 es gilt 0.4 < 1 Merke = 0.8 es gilt 0.8 < 1 Merke = 1.6 es gilt Merke 1 und = = 1.2 es gilt Merke 1 und = Periodizität Aufgabe 4 7Bit = = Aufgabe 5 14Bit kleinste: (2 13 ), größte: Begründung: Im B-Komplementkode ist das höchste Bit (hier das Vierzehnte, also 2 13, da es mit 2 0 beginnt) nur für negative Zahlen belegbar, da eine 1 hier gleichzeitig ein negatives Vorzeichen bedeutet. Demnach ist auch die größte Positive Zahl = -(größte Negative-1). Aufgabe 6 x = 1 + z z = z 2 7 = z ( ) = z = x = Aufgabe 7 Wenn alle Grauwerte gleichverteilt sind ist die Entropie maximal. Wenn nur ein einziger Grauwert belegt ist und alle anderen nicht, so ist die Entropie minimal ( 0). Beweis:

4 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 3 E = E = = n p i log 2 p i = 0 für i = 1 und somit p 1 = 1 und somit log 2 p 1 = 0 q.e.d. i=1 n p i log 2 p i i=1 n i=1 1 n log 2( 1 n ) = n n log 2( 1 n ) = log 2 ( 1 n ) = log 2 n E =maximal Aufgabe 8 Folgende Konvntion gilt: 0 log 2 (0) = 0 Der Graph hat folgende Eigenschaften: Maximum 1 bei p = 0.5,da dann eine Gleichverteilung vorliegt. Minimum 0 bei p = 0 und p = 1,da dann wie bereits gezeigt die Entropie E 0 ist. Insgesamt also eine Kurve durch diese drei Punkte. (Quelle: Aufgabe 9 Gray-Code: Benachbarte Zahlen dürfen sich nur durch eine duale Ziffer unterscheiden. Durch den Gray-Code verringert sich der maximal mögliche Ablesefehler bei der Quantisierung aus einem Analogsignal auf einen Code. Dekodierungsvorschrift (durch FOR-Schleife realisierbar): x binaer = (x gray /2 0 ) (x gray /2 1 ) (x gray /2 2 )... (x gray /2 n 1 ) entpricht XOR und / entspricht ganzzahliger Division ohne Rest Bsp:

5 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 4 i x i,binaer x i,gray x 7,binaer = (x 7,gray /2 0 ) (x 7,gray /2 1 ) (x 7,gray /2 2 ) x 7,binaer = (100/001) (100/010) (100/100) x 7,binaer = (4/1) (4/2) (4/4) x 7,binaer = x 7,binaer = x 7,binaer = x 7,binaer = 111 Aufgabe 10-1 x y = 4 3 x 6 = 4 3 x = 00 3 f abtast = Hz x y = MHz f g 6, 5MHz Frequenz der CCIR-Übrtragungsnorm: 5M Hz darstellbar Aufgabe 10-2 Kein I-Code, da 0 Präfix von 01 ist. Kodierte Kette wäre jedoch eindeutig kodierbar, da 0 als Komma dient. Beispiel für Code mit variabler Codewortlänge, der kein I-Code ist: 1,10,100, Aufgabe 11 Allgemein, am ehesten erreicht bei Gleichverteilung, Spezialfall in dem es sogar erreicht wird: Hat man einen Quellcode aus einem Zeichen so folgt für die Entropie E: E = n p i log 2 (p i ). Mit i = 1 da nur ein Wert vorhanden E = 1 log 2 (1) = 0 i= = 1 und 1 ist aber auch mittlere Länge, da nur ein Codezeichen (z.b. A) 1 = 1 q.e.d. Aufgabe 12 Sei n(x) die absolute und p(x) die relative Häufigkeit von x in der Matrix G.

6 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 5 n(0) = 9 p n (0) = 9 n(1) = 12 p n (1) = 12 n(2) = 3 p n (2) = 3 n(3) = 1 p n (3) = 1 n E = p i log 2 (p i ) i=1 [ 9 = log 2( 9 ) + 12 log 2( 12 ) + 3 log 2( 3 ) + 1 log 2( 1 ] ) Huffman-Code 1. Umordnung 2. Wiederaufsplittung , , 2, , 2, , Die eingerahmten Code-Elemente bilden einen Huffman-Code. Somit folgt L min = = = 42 = 1.68 Shannon-Code L min = = = 42 = 1.68

7 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 6 Bei beiden Verfahren bekommt man die selbe mittlere Länge. Sie liegt in der Größenordnung, wie die Entropie.( ) Wobei das Shannon-Theroem gilt: E < L min < E + 1 Aufgabe 13 Def.: Ein Huffman-Code ist ein I-Code mit der minimal möglichen mittleren Länge L min. a.) Ist ein Huffman-Code, da offensichtlich nichts kürzeres Möglich ist für 3 Zeichen. b.) Ist kein Huffman-Code! Eine einsymbolkodierung kommt nicht vor. Beweis durch Widerspruch: Der Code 00; 01; 10; 11 kodiert ebenfalls 4 Zeichen, und das in jedem Fall mit kleinerer mitterer Länge. c.) Ist kein Huffman-Code! Beweis durch Widerspruch: Der Code 0; 1 kodiert ebenfalls 2 Zeichen, und das in jedem Fall mit kleinerer mitterer Länge (halb so lang). Aufgabe 14 a) Nach dem Wörterbuchverfahren: A (8bit) wird gesendet AB ins Kodebuch(9 bit) B (9bit) wird gesendet BR ins Kodebuch(9 bit) R (9bit) wird gesendet RA ins Kodebuch(9 bit) A (9bit) wird gesendet AK ins Kodebuch(9 bit) K (9bit) wird gesendet KA ins Kodebuch(9 bit) A (9bit) wird gesendet AD ins Kodebuch(9 bit) D (9bit) wird gesendet DA ins Kodebuch(9 bit) AB (9bit) wird gesendet ABR ins Kodebuch(9 bit) RA (9bit) wird gesendet Damit ergibt sich also das Kodebuch aus dem normalen 8bit ASCII-Kode und den 9bit Kodewörtern: AB(6),BR(7),RA(8),AK(9),KA(260),AD(261),DA(262),ABR(263). b) nach dem arithmetischen Verfahren: relative Häufigkeit der Zeichen A B D K R Damit sind also die Anfangsintervalle: A [0; 5 11 ] B [ 5 11 ; 7 11 ] D [ 7 11 ; 8 11 ] K [ 8 11 ; 9 11 ] R [ 9 11 ; 1] mit den Intervalltranformationen: x = G alt u + G neu u (G alt o G alt u ) y = G alt u + G neu o (G alt o G alt u )

8 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 7 = Verschlüsselung von ABRAKADABRA A [0; 5 11 ]im Intervall liegt: 0, 3 Ziffer: 3 Länge: 1 AB [x; y] [ 121 ; ]im Intervall liegt: 0, 28 Ziffer: 28 Länge: 2 ABR [x; y] [ ; ]i.i.: 0, 28 Ziffer: 28 Länge: 3 ABRA [x; y] [ ; ]i.i.: 0, 28 Ziffer: 28 Länge: 4 ABRAK [x; y] [ ; ]i.i.: 0, 2795 Ziffer: 2795 Länge: 5 ABRAKA [x; y] [ ; ]i.i.: 0, 2793 Ziffer: 2793 Länge: 6 ABRAKAD [x; y] [ ; ]i.i.: 0, Ziffer: Länge: 7 ABRAKADA [x; y] [ ; ]i.i.: 0, Ziffer: Länge: 8 ABRAKADAB [x; y] [ ; ]i.i.: 0, Ziffer: Länge: 9 ABRAKADABR [x; y] [ ; ]i.i.: 0, Ziffer: Länge: 10 ABRAKADABRA [x; y] [ ; ]i.i.: 0, Ziffer: Länge: 11 Verschlüsselungszahl: Länge: 11. c1) Rotieren: Sortieren: A B R A K A D A B R A A A B R A K A D A B R R A A B R A K A D A B B R A A B R A K A D A A B R A A B R A K A D D A B R A A B R A K A A D A B R A A B R A K K A D A B R A A B R A A K A D A B R A A B R R A K A D A B R A A B B R A K A D A B R A A A A B R A K A D A B R A B R A A B R A K A D A B R A K A D A B R A A D A B R A A B R A K A K A D A B R A A B R B R A A B R A K A D A B R A K A D A B R A A D A B R A A B R A K A K A D A B R A A B R A R A A B R A K A D A B R A K A D A B R A A B Damit ist die kodierte Zeichenkette: RDAKRAAAABB. c2) move to front: A B D K R R:4 R A B D K

9 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 8 Aufgabe 15 D:3 D R A B K A:2 A D R B K K:4 K A D R B R:3 R K A D B A:2 A R K D B A:0 A:0 A:0 B:4 B A R K D B:0 = Da es ansonsten nicht leicht umkehrbar ist. Vorallem aber, da so eine große Chance besteht, dass gleiche Zahlen nebeneinander stehen, was für kleine Differenzen sorgt. Aufgabe 16 z.z.: H(S 3 ) = 3H(S) Wegen Unabhängigkeit der p i gilt p ijk = p i p j p k. Damit: H(S 3 ) = ijk p ijk log 2 p ijk = ijk p i p j p k log 2 p i p j p k = ijk p i p j p k (log 2 p i + log 2 p j + log 2 p k ) = ij p i p j H k + p i p k H j + p j p k H i ik jk Mit ij = 3H(S) p i j = i p i j p j = 1 1 = 1 Aufgabe 17 Prädiktor ist besser, da nicht nur einer, sondern drei umliegende Bildpunkte berücksichtigt werden. Somit für relativ homogene Bilder ein ganz guter Prädiktor.

10 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 9 Aufgabe 18 z.z.: H(X, Y ) = H(X) + H(Y X) = H(Y ) + H(X Y ) H(X) + H(Y X)) = p(x i ) log 2 p(x i ) p(x i, y i ) log 2 p(y i x i ) i = p(x i, y i ) log 2 p(x i ) p(x i, y i ) log 2 p(y i x i ) = p(x i, y i ) [log 2 p(x i ) + log 2 p(y i x i )] = p(x i, y i ) [log 2 (p(x i ) p(y i x i ))] = p(x i, y i ) [log 2 p(x i, y i )] = H(X, Y ) Umkehrung analog. Aufgabe 19 I(X, Y ) = H(X) H(Y X) z.z.: I(X, Y ) = p(x p(x i, y j ) log i,y i) 2 p(x i)p(y i) I(X, Y ) = H(X) H(Y X) = [ p(x i ) log 2 p(x i ) ] p(x i, y i ) log 2 p(y i x i ) i = p(x i, y j ) log 2 p(x i ) + p(x i, y i ) log 2 p(y i x i ) = p(x p(x i, y i ) log i y i) 2 p(x i) = p(x p(x i, y j ) log i,y i) 2 p(x i)p(y i) Aufgabe Schalt- Elemente: 0, 1 Zwei Eingangsvariablen 4 Permutationen (00, 01, 10, 11) 2 4 Schaltfunktionen. Drei Eingangsvariablen 8 Permutationen (000, 001, 010, 011, 100, 101, 110, 111) funktionen.

11 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 10 Aufgabe 21 Allgemein gilt (Quelle: Bin mir nicht sicher ob das der kürzeste Weg ist: [ ] y = (a b) (a b) [ (a b) (a b) ] y = [ (a b) (a b) ] [ ] (a b) (a b) [(a ] [ ] y = [a b] b) (a b) (a b) (a b) y = (a b) (a b) (a b) y = [ a (b b) ] (a b) y = (a 0) (a b) y = (a a) b y = a b Aufgabe 22 XOR-Operation: (a b) (a b) Implikation: (a b) (a b) Äquivalenz: (a b) (a b) Vorgehensweise(Bsp: Äquivalenz): f(a = b) = (a b) (a b) a b a = b Aufgabe 23 Die XOR-Operation liefert 0, wenn x i = y i und 1, wenn x i y i. Diese drei Zeilen vertauschen die Werte von x und y.

12 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 11 Am Beispiel: x = 0101 y = 1101 x = x y = 1000 y = x y = 0101 x = x y = 1101 x und y wurden getauscht. Ohne Bitoperationen wäre dies auch erreichbar mit Hilfe von Addition und Subtraktion: x = x + y = y = x y = 0101 x = x y = 1101 y und xwurden ebenso getauscht Aufgabe 24 folgendes Array wird entstehen (sortiert): A D Z b c f Leerzeichen Semikolon Hat man nun eine Zeichenkette gegeben, so setzt sich z wie folgt zusammen: Bsp: Z,b,6 z = = = 902 hat man nun nur dieses z gegeben und will die Zeichenkette bekommen, so geht man wie folgt vor: 902 : 12 = 75 Rest 2 75 : 12 = 6 Rest 3 6 : 12 = 0 Rest Z,b,6 Es wären als der Eintrag 2,3,6 um 1 zu inkrementieren. Aufgabe #include<iostream> using namespace std; char maximum(char array[], int n, char m, int i) if(i<n) if(m<array[i+1])m=array[i+1]; return maximum(array,n,m,i+1);

13 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 12 else return m; main() //Dekleration int k,n,m,i; char array[20], text; k=0; i=0; //Eingabe cout << "Bitte geben Sie 20 Zeichen ein: " << endl; while(k<20) k=k+1; cin >> text; array[k]=text; m=array[0]; n=sizeof(array)/sizeof(array[0]); //Maximum der Eingabe char max=maximum(array,n,m,i); cout << max; return 0; Aufgabe 26 rekursiv (größte gemeinsamer Teiler) int euklid_rek(int a,int b) if(b==0) return a; else return euklid_rek(b, a%b); itterativ (größte gemeinsamer Teiler) int euklid_it(int a,int b) while(b!=0) int h=a%b; a=b; b=h; return a; Aufgabe 27 Als Modifizierung der rekursiven Funktion ist es z.b. möglich: if(n==5) /* da 5! == 120 */ return 120; Dies würde bei Zahlen n 5 die Fakultätsberechnung beschleunigen da weniger Berechnungen ausgeführt werden. Andererseits Verursacht das Programm für Zahlen n < 5 nun einen Fehler.

14 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 13 rekursiv (Berechnung von n!) int fakultaet(int n) if(n==1) /* Per Definition ist 1! == 1 */ return 1; else /* n groesser 1, also n! = n*(n-1)! */ return n * fakultaet(n-1); iterativ (Berechnung von n!) int fakultaet(int n) int result = 1; while(n>1) result*=n; n--; return result; Aufgabe 28 Dieser Algorithmus liefert 2 q p zrück. Aufgabe 29 f(p, q) = q f(p 1, q) = q q f(p 2, q) = q 3 f(p 3, q) =... = q p 2 Allgemein kann darüber keine Aussage getätigt werden, da die Vergleichsfunktion nicht bekannt ist. Unter der Annahme jedoch, dass beide dieselbe Vergleichsfunktion haben folgt, dass O(n) 12 mal so schnell ist wie O(n 2 ). Aufgabe 30 Die zu sortierende Liste habe die Länge n. best case: Das Feld ist bereits sortiert. In diesem Fall muss nur einmal jedes Eement mit seinem Nachbarn verglichen werden. Dies geschieht in einem Schleifendurchlauf (n-vergleiche). Daher geht der Algorithmus mit der Ordnung Θ(n) worst case: Das Feld ist genau falsch herum angeordnet. Nun werden 1/2 (n 2 n) - Operationen ausgeführt. In diesem Fall geht der Algorithmus also mit der Ordnung O(n 2 ). Aufgabe 31 worst case: Beispiel: abcdefghijklmnopqrstuvwxyz oder zyxwvuts..., da jedes Zeichen größer ist als sein Vorgänger, hat jeder Knoten nur einen Nachfolger. lineare Liste best case:

15 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 14 Beispiel: Aufgabe 32 So habe ich das aufgefasst: T (x) O(x) bedeutet T geht mit der Ordnung c x mit 0 < c < 1. T (x) Ω(x) bedeutet T geht mit der Ordnung c x mit c > 1. T (x) Θ(x) bedeutet T geht mit der Ordnung c x mit c = 1. a.) T (n) = T (n 1) + n, T (1) = 1 = T (n 2) + n + (n 1) = T (n 3) + n + (n 1) + (n 2) =... n 1 = T (1) + n n k k=1 n 1 = n k n 2 T (n) O(n 2 ) k=1 b.) T (n) = T ( n 2 ) + 1, T (1) = 0 = T ( n 4 ) + 2 = T ( n 8 ) + 3 =... = T (1) + log 2 n = log 2 n T (n) Θ(log 2 n)

16 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 15 c.) T (n) = T ( n 2 ) + n, T (1) = 0 = T ( n 4 ) + n + n 2 = T ( n 8 ) + n + n 2 + n 4 = T ( n 8 ) n =... (n 1) n = T (1) + n 2 = 2 (n 1) = 2n 2 T (n) Ω(n) d.) T (n) = 2T ( n 2 ) + n, T (1) = 0, T (n 2 ) = 2 T (n 4 ) + n 2 = 4T ( n 4 ) + 2n, T (n 4 ) = 2 T (n 8 ) + n 4 = 8T ( n 8 ) + 3n =... = T (1) + n log 2 n = n log 2 n T (n) Θ(n log 2 n) Aufgabe 33 f(n) = 7 f( n 2 ), f(1) = C = 7 7 f( n 4 ) = 7 3 f( n 8 ) =... = f(1) 7 log 2 n = C 7 log 2 n = C (2 log27 ) log 2 n = C (2 log2n ) log 2 7 = C n log 2 7 = C n 2.8 Aufgabe 34 Anm: wird nicht drankommen, laut Prof.Süße, da zu komplex

17 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 16 Aufgabe 35 Quelltext: int str2int(char* p) // Zeichenkette als Parameter int lenght=strlen(p);//laenge des Strings int erg=0; for(int i=1;i<lenght;i++)//von 1 da auf p[0] das Vorzeichen steht if(p[i]<58 and p[i]>=48)//wenn eine Zahl im ASCII-Kode erg=(int(p[i])-48)+10*erg; if(p[0]== - ) erg= (-1)*erg; return erg; Aufruf: int n=str2int("+3456"); Erklärung: Die Zahlen sind im ASCII-Kode von 48 0 bis 57 9 Kodiert. Ausserdem funktioniert das Horner-Schema nach folgendem Prinzip: 3458 = Ausklammern liefert: 10 (10 ( ) + 5) + 8 Aufgabe 36 Bemerkung: Ein typische Abkürzung in C/C++ um den Inhalt einer Struktur auf die ein Pointer zeigt zuzuweisen ist knoten* p; // Pointer auf Struktur zuweisung = (*p).next);//zuweisung zuweisung = p->next; //gleiche Wirkung Das Programm kann wie folgt gestalltet werden: typedef struct knoten knoten* next; knoten* last; char* inhalt; KNOTEN; int del(knoten* start, knoten* vergleich) knoten* temp; knoten* jetzt = start->next; int ja=0; do if(strcmp(jetzt->inhalt,vergleich->inhalt)==0) delete[] jetzt->inhalt; //den Inhalt des Knotens loeschen jetzt->next->last=jetzt->last; /*Zeiger des naechsten Knotens auf den zu loeschenden

18 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 17 Knotens in Zeiger auf den Vorgaenger des zu loeschenden Knotens umwandeln*/ jetzt->last->next=jetzt->next; /*Zeiger des vorherigen Knotens auf den zu loeschenden Knotens in Zeiger auf den Nachfolger des zu loeschenden Knotens umwandeln*/ temp=jetzt; jetzt=jetzt->next; //zum naechsten Knoten gehn delete temp; ja=1; //den abgearbeiteten Knoten loeschen else jetzt=jetzt-> next; //zum naechsten Knoten gehn while(jetzt!=start) if(strcmp(start->inhalt, vergleich inhalt)==0) delete[] jetzt->inhalt; //den Inhalt des Knotens loeschen jetzt->next->last=jetzt->last; /*Zeiger des naechsten Knotens auf den zu loeschenden Knotens in Zeiger auf den Vorgaenger des zu loeschenden Knotens umwandeln*/ jetzt->last->next=jetzt->next; /*Zeiger des vorherigen Knotens auf den zu loeschenden Knotens in Zeiger auf den Nachfolger des zu loeschenden Knotens umwandeln*/ delete jetzt; ja=1; //den Knoten loeschen

19 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 18 Aufgabe 37 Quelltext: typedef class ganz public: ganz(); //Prototyp (Inhalt folgt) des constrctors name entspricht Klassennamen ganz(int a); ganz(char* p); //contructor mit parameter char zur Wandlung von str in int ganz(const ganz& g); //Copyconstructor ~ganz(); //Destructor ganz& operator = (const ganz& g); // Definiere zuweisungsoperator operator int();// weiss schon das int zurueckgegeben werden muss Castingoperator /*Memberfunktionen*/ ganz addiere(ganz& g1,ganz& g2); ganz subtrahiere(ganz& g1,ganz& g2); int gebeaus(); //ausgabe einer ganzen Zahl private: friend ostream& operator << (ostream& o1,ganz g); // damit funktion auf private zugreifen kann int n; GANZ /* */ /*-Klassendeklaration beendet nun Definition der Funktionen-*/ /*---ist in Aufgabe nicht verlangt sondern nur Prototypen---*/ /* */ ganz::ganz()//constructor n=0; // nach dem erschaffen wird n auf 0 initialisiert; ganz::ganz(int a)//constructor n=a; // nach dem erschaffen wird n auf 0 initialisiert; ganz::ganz(const ganz& g)// copyconstructor n=g.n; //weist n wert von class ganz daraus n zu ganz::~ganz();//destructor /*zb. Freigeben von Speicherbereichen hier nicht noetig*/ ganz::ganz operator int()// Wandlung return n; ganz& ganz::operator = (const ganz& g)// Zuweisungsoperator n=g.n; return *this; // this ist vordefinierter auf selbstzeigender Pointer ostream& operator << (ostream& o1,ganz g)// Ueberladen von cout /*1 Vriante*/ o1 << int(g);

20 Sven Breitkopf, Silvio Fuchs, Marco Grünewald, Simon Stützer, Sebastian Küfner 19 return o1;//wandlung muss aber definiert sein /*2 Variante*/ o1 << g.n;// die Funktion muss aber als friend im private der class stehen return o1; ganz ganz::addiere(ganz& g1,ganz& g2);//memberfunktion addition ganz erg(g1.n+g2.n); brauch aber kontruktor fuer int a return erg; ganz ganz::subtrahiere(ganz& g1,ganz& g2);//memberfunktion subtraktion ganz erg(g1.n-g2.n); brauch aber kontruktor fuer int a return erg; int ganz::gebeaus() return n; ganz::ganz(char* p)//umwandlung von str 2 int siehe aufgabe 35 int lenght=strlen(p);//laenge des Strings n=0; for(int i=1;i<lenght;i++)//von 1 da auf p[0] das Vorzeichen steht if(p[i]<58 and p[i]>=48)//wenn eine Zahl im ASCII-Kode n=(int(p[i])-48)+10*n; if(p[0]== - ) n= (-1)*n; Aufgabe 38 fehlende Aufgaben: (34=nicht relevant),38

L6. Operatoren und Ausdrücke

L6. Operatoren und Ausdrücke L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

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

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

Kurzeinführung in C++

Kurzeinführung in C++ Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

DAP2-Programmierpraktikum Einführung in C++ (Teil 1) DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16 Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier

Mehr

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet

Mehr

Grundlagen der Informatik 1

Grundlagen der Informatik 1 Grundlagen der Informatik 1 Prof. Dr. J. Schmidt Fakultät für Informatik GDI1 WS 2013/14 Kodierung, Kompression, Verschlüsselung Kodierung Überblick Vorlesung Kapitel 1: Einführung in die Informatik Kapitel

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Winter 2009/2010, 18. Februar 2010 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name:

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

Laufzeit und Komplexität

Laufzeit und Komplexität Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen

Mehr

Einführung in das Objektorientierte Programmieren mit C++

Einführung in das Objektorientierte Programmieren mit C++ BEREICH DATENTECHNIK I CP 500 00 TH 02 Einführung in das Objektorientierte Programmieren mit C++ Kapitel 5 5. Überladen von Operatoren 5.1. Allgemeines 5.2. Operator-Funktionen 5.3. Zuweisungs-Operator

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9c: Datenbankapplikationen Architektur einer Web-Applikation mit Servlets, JSPs und JavaBeans

Mehr

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber 1) Welche Antworten zur Operatorüberladung sind richtig? (1) a) C++ - Operatoren können zusammen mit Objekten funktionieren b) C++ - Operatoren wird

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

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Grundlagen der Informatik - 6. Praktikum

Grundlagen der Informatik - 6. Praktikum Grundlagen der Informatik - 6. Praktikum In diesem Praktikum soll es neben der Anwendung von Funktionsdefinitionen auch um einfache Prinzipien der verteilten Quelltext-Strukturierung gehen. Diese spielt

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

CORBA Implementierung von Client und Server

CORBA Implementierung von Client und Server CORBA Implementierung von Client und Server J. Heinzelreiter WS 2003/04 Implementierung des Clients Initialisierung und Freigabe des ORBs. Mapping von Interfaces. Behandlung von Objektreferenzen. Verwaltung

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

C++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany

C++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany C++ Programmierung Uwe Naumann LuFG Informatik 12, RWTH Aachen University, Germany Leave me alone world... Hauptprogramm int main(); return 0; Ausgabe auf Bildschrim #include std :: cout

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

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

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Name : Vorname : Matrikelnummer : Hauptfach : Nebenfach/Fachrichtung Hinweise : 1. Überprüfen

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **

Mehr

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik WS 09/10 Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3

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

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt

Mehr

Einführung in C++ Operatoren überladen (Klassen)

Einführung in C++ Operatoren überladen (Klassen) Einführung in C++ Operatoren überladen (Klassen) Operatoren überladen Die Überladung von Operatoren ermöglicht es, vorhandene Operatoren (+,-,...) auch auf Objekte von Klassen anzuwenden. Die meisten der

Mehr

Meeting C++ C++11 R-Value Referenzen

Meeting C++ C++11 R-Value Referenzen Meeting C++ Detlef Wilkening http://www.wilkening-online.de 09.11.2012 Inhalt Motivation L-Values und R-Values R-Value Referenzen Move Semantik std::move Funktionen mit R-Value-Referenz Parametern Fazit

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Verbunde, Reihungen, Zeiger Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Typen 6.2.5 Primitive

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean 01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2

Mehr

Binär- und Hexadezimal-Zahl Arithmetik.

Binär- und Hexadezimal-Zahl Arithmetik. Binär- und Hexadezimal-Zahl Arithmetik. Prof. Dr. Dörte Haftendorn, MuPAD 4, http://haftendorn.uni-lueneburg.de Aug.06 Automatische Übersetzung aus MuPAD 3.11, 24.04.02 Version vom 12.10.05 Web: http://haftendorn.uni-lueneburg.de

Mehr

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen.

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen. Programmierung in C++ Seite: 1 Beispielprogramm 1: Programmierung in C++ int main() int hoehe = 3; int grundseite = 5; double flaeche = hoehe*grundseite*0.5; cout

Mehr

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Codierung Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Ein bisschen Informationstheorie Betrachten wir das folgende Problem: Wie lautet eine sinnvolle Definition für das quantitative

Mehr

Objective-C CheatSheet

Objective-C CheatSheet App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController

Mehr

Der C++ Crashkurs v1.0

Der C++ Crashkurs v1.0 Der C++ Crashkurs v1.0 Daniel Stöckel, M. Sc. October 14, 2013 1 Grundlegendes 1.1 Das erste Programm Wir beginnen mit einem einfachen Hello world Programm. Listing 1: hello world.cpp // Einbinden der

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg C vs. C++ Sebastian Meyer Universität Hamburg Proseminar C - Grundlagen und Konzepte 2013 1 / 31 Gliederung 1 Einführung 2 Vergleich der Spracheigenschaften 3 Neue Sprachelemente in C++ 4 Fazit 5 Zusammenfassung

Mehr

Informationssicherheit - Lösung Blatt 2

Informationssicherheit - Lösung Blatt 2 Informationssicherheit - Lösung Blatt 2 Adam Glodek adam.glodek@gmail.com 13.04.2010 1 1 Aufgabe 1: One Time Pad 1.1 Aufgabenstellung Gegeben ist der folgende Klartext 12Uhr (ASCII). Verschlüsseln Sie

Mehr

Algorithmische Bioinformatik

Algorithmische Bioinformatik Algorithmische Bioinformatik Suffixbäume Ulf Leser Wissensmanagement in der Bioinformatik Failure Links P={banane, nabe, abnahme, na, abgabe} banane banan 1 bana ban b ba ab abn abna abnah a n na abg 4

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Grundlagen der Technischen Informatik. 2. Übung

Grundlagen der Technischen Informatik. 2. Übung Grundlagen der Technischen Informatik 2. Übung Christian Knell Keine Garantie für Korrekt-/Vollständigkeit Organisatorisches Übungsblätter zuhause vorbereiten! In der Übung an der Tafel vorrechnen! Bei

Mehr

Java-Vorkurs 2015. Wintersemester 15/16

Java-Vorkurs 2015. Wintersemester 15/16 Java-Vorkurs 2015 Wintersemester 15/16 Herzlich Willkommen! package de.unistuttgart.47.01.javavorkurs; public class WelcomeErstis { public static void main(string[] args){ System.out.println( Herzlich

Mehr

Klausur zur Vorlesung Grundlagen der C++-Programmierung

Klausur zur Vorlesung Grundlagen der C++-Programmierung Institut für Simulation und Graphik Magdeburg, 15.7.2013 Dr. Christian Rössl Klausur zur Vorlesung Grundlagen der C++-Programmierung Name, Vorname Studiengang Matrikelnummer Zusatzblätter Unterschriften

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

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 1 Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 1 Woche: Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 5/ 44 Unser Modell Shannon

Mehr

1. Der Einstieg in Java

1. Der Einstieg in Java 1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Java programmieren: Konsolen-Programme

Java programmieren: Konsolen-Programme Java programmieren: Es war einmal vor langer Zeit in einer weit entfernten Galaxis ok, das ist etwas übertrieben. In den Anfängen der Personal Computer in den 1980er sahen Computer noch etwa so aus: Diese

Mehr

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage

Mehr

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013 Programmiervorkurs Wintersemester 2012/2013 Organisation: Steffen Gebert, Alexander Wolff Tutoren: Jürgen Zöller, Jonathan Stoll Kontakt (für Organisatorisches, Fehler auf Folien...): Steffen Gebert steffen.gebert@informatik.uni-wuerzburg.de

Mehr

Operatoren überladen. Grundsätzliches

Operatoren überladen. Grundsätzliches Operatoren überladen Grundsätzliches Die erste, allgemeinste und wichtigste Regel für das Überladen von Operatoren lautet: Tu s nicht. Das mag paradox klingen, aber der Grund dafür ist, daß sich die hinter

Mehr

Prüfung Software Engineering II (IB)

Prüfung Software Engineering II (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 4 A Sommersemester 2015 Prüfung Software Engineering II (IB) Datum : 20.07.2015, 12:30 Uhr Bearbeitungszeit

Mehr

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen 9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam

Mehr

Codingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008

Codingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008 I. Einleitung II. Codingstandard Softwareentwicklung Praktikum Stand: 27.02.2008 Wie in der Vorlesung schon ausgeführt wurde, ist die Lesbarkeit und Wartbarkeit des Sourcecodes ein sehr wichtiges Kriterium

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

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ 1 Seite 1 Einführung in die Programmierung mit C++ Teil IV - Weiterführende Themen 14. Modularisierung und Automatisierung Was heißt Modularisierung? Seite 2 bisher Programm komplett in einer Datei längere

Mehr

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit

Mehr

Teil II. Nichtlineare Optimierung

Teil II. Nichtlineare Optimierung Teil II Nichtlineare Optimierung 60 Kapitel 1 Einleitung In diesem Abschnitt wird die Optimierung von Funktionen min {f(x)} x Ω betrachtet, wobei Ω R n eine abgeschlossene Menge und f : Ω R eine gegebene

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

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013

Mehr

Mathematik für Information und Kommunikation

Mathematik für Information und Kommunikation Mathematik für Information und Kommunikation Am Beispiel des Huffman- Algorithmus Thomas Borys und (Christian Urff) Huffman im Alltag MPEG Telefax JPEG MP3 ZIP avid Huffman avid Huffman [95-999] www.soe.ucsc.edu/people/faculty/huffman.html

Mehr

Sortierte Folgen 250

Sortierte Folgen 250 Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:

Mehr

KV Software Engineering Übungsaufgaben SS 2005

KV Software Engineering Übungsaufgaben SS 2005 KV Software Engineering Übungsaufgaben SS 2005 Martin Glinz, Silvio Meier, Nancy Merlo-Schett, Katja Gräfenhain Übung 1 Aufgabe 1 (10 Punkte) Lesen Sie das Originalpapier von Dijkstra Go To Statement Considered

Mehr

ubasic Port für STM32F4 von Uwe Becker

ubasic Port für STM32F4 von Uwe Becker ubasic Port für STM32F4 von Uwe Becker Das original ubasic von Adam Dunkels findet sich unter : http://dunkels.com/adam/ubasic/ Die Minimal -Version vom ubasic-port für den STM32F4 beinhaltet folgendes

Mehr

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt:

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt: Informatik 13: Gierhardt Theoretische Informatik III Berechenbarkeit Nicht-berechenbare Funktionen Nach der Church-Turing-These kann alles, was berechenbar ist, mit einer Turing-Maschine oder einer While-Maschine

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Technische Infor matik 2 C/C++-Kurs. Datenabstraktion (Klassen) 2005 AG Rechner netze 4.1

Technische Infor matik 2 C/C++-Kurs. Datenabstraktion (Klassen) 2005 AG Rechner netze 4.1 Technische Infor matik 2 C/C++-Kurs Datenabstraktion (Klassen) 2005 AG Rechner netze 4.1 Overloading Überladene Funktionen Auswahl einer Funktion anhand ihrer Signatur Signatur : Name + Parameter Rückgabe-Wer

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

1 Verarbeitung eines Feldes aus Objekten einer Struktur

1 Verarbeitung eines Feldes aus Objekten einer Struktur C++ für Anfänger des Programmierens, Prüfungen des 1.Semesters Rieckeheer GSO-Hochschule Nürnberg März 2009-1- 1. Semester Informatik/Wirtschaftsinformatik Leistungsnachweis Wintersemester 2007/08 Programmieren

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Einführung in Computer Microsystems

Einführung in Computer Microsystems Einführung in Computer Microsystems Kapitel 9 Entwurf eines eingebetteten Systems für Anwendungen in der IT-Sicherheit Prof. Dr.-Ing. Sorin A. Huss Fachbereich Informatik Integrierte Schaltungen und Systeme

Mehr

Codes und Informationsgehalt

Codes und Informationsgehalt Aufgaben 2 Codes und Informationsgehalt Auf wie viele Dezimalziffern genau können vorzeichenlose ganze Zahlen in einem binären Code der Länge 32 bit dargestellt werden? 2 Codes und Informationsgehalt Auf

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

Einführung in die Programmierung Konstanten, dynamische Datenstrukturen. Arvid Terzibaschian

Einführung in die Programmierung Konstanten, dynamische Datenstrukturen. Arvid Terzibaschian Einführung in die Programmierung Arvid Terzibaschian 1 Konstanten 2 Motivation Unveränderliche, wichtige Werte mathematische Konstanten z.b. PI String-Konstanten wie z.b. häufige statische Meldungen mögliche

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

MATHEMATISCHE ANALYSE VON ALGORITHMEN

MATHEMATISCHE ANALYSE VON ALGORITHMEN MATHEMATISCHE ANALYSE VON ALGORITHMEN Michael Drmota Institut für Diskrete Mathematik und Geometrie, TU Wien michael.drmota@tuwien.ac.at www.dmg.tuwien.ac.at/drmota/ Ringvorlesung SS 2008, TU Wien Algorithmus

Mehr

Lua - Erste Schritte in der Programmierung

Lua - Erste Schritte in der Programmierung Lua - Erste Schritte in der Programmierung Knut Lickert 7. März 2007 Dieser Text zeigt einige einfache Lua-Anweisungen und welchen Effekt sie haben. Weitere Informationen oder eine aktuelle Version dieses

Mehr

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

Also kann nur A ist roter Südler und B ist grüner Nordler gelten. Aufgabe 1.1: (4 Punkte) Der Planet Og wird von zwei verschiedenen Rassen bewohnt - dem grünen und dem roten Volk. Desweiteren sind die Leute, die auf der nördlichen Halbkugel geboren wurden von denen auf

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Das Rechnen in Zahlensystemen zur Basis b=2, 8, 10 und 16 Prof. Dr. Nikolaus Wulff Zahlensysteme Neben dem üblichen dezimalen Zahlensystem zur Basis 10 sind in der Informatik

Mehr