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

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Einführung in die Programmierung (EPR)

Einführung in die Programmierung (EPR) Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.

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

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

Mehr

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

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten Vorname: Nachname: Matrikelnummer: Legen Sie zu Beginn Ihren Studentenausweis

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und

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

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Musterlösung 1. Aufgabe (5 Punkte) Im folgenden Programmcode sind einige Fehler enthalten. Finden und markieren Sie mindestens

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

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

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in

Mehr

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen... Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.

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

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

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for

Mehr

Klausur in Programmieren

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

Mehr

3 Die Grundrechenarten

3 Die Grundrechenarten 3 Die Grundrechenarten In diesem Kapitel wollen wir uns unter anderem mit folgenden Themen beschäftigen: Operatoren für die Addition, Subtraktion, Multiplikation und Division Modulooperator, auch Restoperator

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

MAXIMUM2.STR 02.10.2002. Struktogramme. Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben.

MAXIMUM2.STR 02.10.2002. Struktogramme. Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben. Struktogramme 02.10.2002 Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben. MAX_DOZ1 Integer a, b, c, max M AX IM U M 1.S T R Inte g er a, b, c Ausgabe "Zahlen eingeben" E ing abe a, b, c

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6

Mehr

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 19.12.2012 IAM Institut für Angewandte Mathematik Funktionszeiger: Vorüberlegungen Funktionsaufrufe sind bis jetzt im Code mit Name explizit angegeben

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

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

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

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

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

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

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

Klausur in Programmieren

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

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl

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

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

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

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

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

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung

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

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:

Mehr

Vorlesung Objektorientierte Programmierung Probeklausur

Vorlesung Objektorientierte Programmierung Probeklausur Prof. Dr. Stefan Brass 04. März 2013 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Probeklausur Name: Matrikelnummer: Studiengang:

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

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

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b

Mehr

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) 1. Aufgabe 6 Punkte Geben Sie Definitionen an für: float var; 1 a) eine float-variable var: b) einen Zeiger pvar, der float *pvar = &var; 1 auf die

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

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

Programmieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff

Programmieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff Programmieren in C Rekursive Funktionen Prof. Dr. Nikolaus Wulff Rekursive Funktionen Jede C Funktion besitzt ihren eigenen lokalen Satz an Variablen. Dies bietet ganze neue Möglichkeiten Funktionen zu

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

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

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

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

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

EndTermTest PROGALGO WS1516 A

EndTermTest PROGALGO WS1516 A EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)

Mehr

Betriebssysteme: Konzepte, Dienste, Schnittstellen (Betriebssysteme und betriebssystemnahe Programmierung)

Betriebssysteme: Konzepte, Dienste, Schnittstellen (Betriebssysteme und betriebssystemnahe Programmierung) BERGISCHE UNIVERSITÄT WUPPERTAL GAUSS-STRASSE 20 42119 WUPPERTAL TELEFAX (0202) 439-2901 TELEFON (0202) 439-0 WWW www.uni-wuppertal.de Fachbereich C MATHEMATIK UND NATURWISSENSCHAFTEN Fachgruppe Mathematik

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

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

Zusammengesetzte Datentypen -- Arrays und Strukturen

Zusammengesetzte Datentypen -- Arrays und Strukturen Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

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

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

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

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

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

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B. C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am

Mehr

In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch

In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

Mehr

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins

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

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Für eine

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT

(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT Architektur Übersicht (allgemeine) OOP in C++ Polymorphie Virtuelle Funktionen Kompilieren Linken dynamische/statische Bibliotheken Tutorial: vs2008+ogre+(campus modell) Architektur (allgemeine) OOP in

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11

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

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

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

Kurzeinführung in C. Johannes J. Schneider 27.10.2004

Kurzeinführung in C. Johannes J. Schneider 27.10.2004 Kurzeinführung in C Johannes J. Schneider 27.10.2004 1 Einleitung C ist eine in vielen Bereichen sehr häufig verwendete Programmiersprache, die von der Betriebssystemprogrammierung bis hin zur Programmierung

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

10. Klassen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

10. Klassen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04) 10. Klassen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Objektorientierte Programmierung!Das Konzept der Klassen!Members!Objekte!Konstruktoren und Destruktoren!this-Pointer!Public und Private

Mehr

Kodierung. Kodierung von Zeichen mit dem ASCII-Code

Kodierung. Kodierung von Zeichen mit dem ASCII-Code Kodierung Kodierung von Zeichen mit dem ASCII-Code Weiterführende Aspekte zur Kodierung: Speicherplatzsparende Codes Fehlererkennende und -korrigierende Codes Verschlüsselnde Codes Spezielle Codes, Beispiel

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