Lösungen zu den Aufgaben des C/C++ Kurses

Größe: px
Ab Seite anzeigen:

Download "Lösungen zu den Aufgaben des C/C++ Kurses"

Transkript

1 Universität Regensburg Fakultät Physik IT-Ausbildung Lösungen zu den Aufgaben des C/C++ Kurses Die hier aufgeführten Lösungen zu den Aufgaben sind als Vorschläge gedacht, wobei auf eine kurze und knappe Problemlösung Wert gelegt wurde. Oft gibt es Alternativlösungen zu den Aufgaben, sowohl in C als auch in C++. Bei den angegebenen Lösungen wird C++ und C- Code bewußt gemischt, um die Transparenz zwischen den beiden Sprachen zu demonstrieren (Ausnahme: Aufgaben 1, 3). Aufgabe 1 Schreiben Sie ein Programm, das den Namen des Benutzers einliest und ihn dann mit seinem Namen begrüßt. Verwenden Sie sowohl printf bzw. scanf als auch cout und cin. Erweitern Sie dazu das in Kapitel 1 abgedruckte Hello world -Programm. (ANSI-C) 1 # include <stdio.h> 3 int main ( void ) { 5 char name [30]; 6 7 printf (" Name eingeben : "); 8 scanf ("% s", name ); 9 printf (" Hallo %s!\n", name ); 10 } (C++) 3 using namespace std ; 5 int main ( void ) 6 { 7 char name [30]; 8 9 cout << " Name eingeben : "; 10 cin >> name ; 11 cout << " Hallo " << name << "!" << endl ; 1 }

2 Aufgabe Lesen Sie mit scanf und cin ein Wort, ein Zeichen und eine Fließkommazahl ein und geben Sie die Inhalte mit printf und cout wieder aus. 1 # include <stdio.h> # include < iostream > 3 using namespace std ; 5 6 int main ( void ) 7 { 8 char wort [30]; 9 char c; 10 float x; 11 1 printf (" Wort, Zeichen und Zahl eingeben : "); 13 scanf ("% s %c %f", wort, &c, &x); 1 printf (" Eingegeben wurde : %s, %c, %f\n", wort, c, x); cout << " Wort, Zeichen und Zahl eingeben : "; 17 cin >> wort >> c >> x; 18 cout < <" Eingegeben wurde : "<<wort <<", "<<c <<", "<<x<< endl ; 19 } Aufgabe 3 Lesen Sie zwei ganze Zahlen ein und geben Sie deren Summe, Produkt, Differenz und Quotienten aus. Achten Sie beim Teilen auf die Richtigkeit des Ergebnisses! 1 # include <stdio.h> 3 int main ( void ) { 5 int n, m; 6 7 printf (" Zahlen eingeben : "); 8 scanf ("% d %d", &n, &m); 9 printf ("% d + %d = %d\n", n, m, n+m); 10 printf ("% d - %d = %d\n", n, m, n-m); 11 printf ("% d * %d = %d\n", n, m, n*m); 1 printf ("% d / %d = %f\n", n, m, ( float )n/m); 13 }

3 Aufgabe Geben Sie mithilfe des Modulo-Operators % die letzte Ziffer einer vom Benutzer eingegebenen Ganzzahl (int) aus. 1 # include <stdio.h> 3 int main ( void ) { 5 int zahl ; 6 7 printf (" Zahl eingeben : "); 8 scanf ("% d", & zahl ); 9 printf (" Die letzte Ziffer von %d ist %d\n", zahl, zahl %10); 10 } Aufgabe 5 Ein Zeichen soll eingelesen und dann wieder ausgegeben werden. Dabei soll die Ausgabe sowohl als Zeichen als auch als Dezimal- bzw. Hexadezimalwert erfolgen (z.b.: z z 1 0x7A). Verwenden Sie sowohl scanf als auch cin für die Eingabe, bei der Ausgabe probieren Sie cout und printf aus. 1 # include <stdio.h> # include < iostream > 3 using namespace std ; 5 6 int main ( void ) 7 { 8 char z; 9 cout << "\ nein Zeichen eingeben : "; 10 cin >> z; 11 cout <<" Das Zeichen war : "<<z <<", dezimal : "<< int (z) 1 <<", hex : 0x"<<hex << int (z); 13 printf ("\ ndas Zeichen war : %c, dezimal : %d, hex : 0x%x\n",z,z,z); 1 }

4 Aufgabe 6 Erstellen Sie ein Programm, das mithilfe einer for-schleife alle durch 7 teilbaren Zahlen zwischen zwei zuvor eingegebenen Grenzen ausgibt. 3 using namespace std ; 5 int main ( void ) 6 { 7 int a, b; 8 9 cout << " Untergrenze : "; cin >> a; 10 cout << " Obergrenze : "; cin >> b; 11 1 for ( int i=a; i <=b; i=i +1) 13 if (i %7==0) cout << i << " "; 1 } Aufgabe 7 Schreiben Sie ein Programm, das zu einem gegebenen Anfangskapital bei einem vorgegebenem jährlichen Zinssatz berechnet, wie viele Jahre benötigt werden, damit das Kapital eine bestimmte Zielsumme überschreitet. 3 using namespace std ; 5 int main ( void ) 6 { 7 int jahre =0; 8 double kapital, zins, endkapital ; 9 10 cout << " Anfangskapital : "; 11 cin >> kapital ; 1 cout << " Zinssatz in %: "; 13 cin >> zins ; 1 cout << " Angestrebtes Endkapital : "; 15 cin >> endkapital ; while ( kapital < endkapital ) 19 { 0 jahre ++; 1 kapital += kapital *( zins /100); } 3 cout << " Es dauert " << jahre << " Jahre!" << endl ; 5 }

5 Aufgabe 8 Erweitern Sie das in Kapitel 3.3 abgedruckte Programm so, dass ein Schachbrettmuster auf dem Bildschirm erscheint. 1 # include <stdio.h> 3 int main ( void ) { 5 int zeile, n, m; 6 7 for ( zeile =1; zeile <=; zeile = zeile +1) 8 { 9 for (m =1; m <=; m=m +1) 10 { 11 for (n =1; n <=; n=n +1) 1 printf ("*** "); 13 printf ("\ n "); 1 } for (m =1; m <=; m=m +1) 17 { 18 for (n =1; n <=; n=n +1) 19 printf (" ***"); 0 printf ("\ n "); 1 } } 3 } Aufgabe 9 Schreiben Sie ein Programm, das das kleine Einmaleins berechnet und in Tabellenform auf dem Bildschirm ausgibt. 1 # include <stdio.h> 3 int main ( void ) { 5 int i,j; 6 7 printf (" \ n "); printf (" \n "); 11 for (i =1; i <=10; i ++) 1 { 13 printf ("% d ", i); 1 for (j =1; j <=10; j ++) printf ("%3 d ", i*j); 15 printf ("\ n "); 16 } 17 }

6 Aufgabe 10 Geben Sie alle Primzahlen zwischen und einer vom Benutzer einzugebenen Obergrenze aus. Bestimmen Sie die Primzahlen mittels Ganzzahldivision. 3 using namespace std ; 5 int main ( void ) 6 { 7 int zahl, teiler, limit ; 8 9 cout << " Obergrenze eingeben : "; 10 cin >> limit ; 11 cout << "\ nprimzahlen bis " << limit << ":\ n"; 1 13 for ( zahl =; zahl < limit ; zahl ++) 1 { 15 teiler = ; 16 while ( zahl % teiler!= 0) teiler ++; 17 if ( teiler == zahl ) cout << zahl << " "; 18 } 19 } Aufgabe 11 Geben Sie einen Christbaum durch Ausdruck entsprechend vieler Leerzeichen und Sterne auf dem Bildschirm aus. 3 using namespace std ; 5 int main ( void ) 6 { 7 int blzahl =0, sternzahl =1, i, zeile ; 8 9 for ( zeile =0; zeile <10; zeile ++) 10 { 11 for (i =0; i< blzahl ; i ++) cout << ; 1 for (i =0; i< sternzahl ; i ++) cout << * ; 13 blzahl - -; sternzahl +=; 1 cout << \n ; 15 } 16 }

7 Aufgabe 1 In unserem Kalender sind zum Ausgleich der astronomischen und kalendarischen Jahreslänge in regelmäßigen Abständen Schaltjahre eingebaut. Zur exakten Festlegung der Schaltjahre dienen die folgenden Regeln: Ist die Jahreszahl durch teilbar, so ist das Jahr ein Schaltjahr. Diese Regel hat allerdings eine Ausnahme: Ist die Jahreszahl durch 100 teilbar, so ist das Jahr kein Schaltjahr. Diese Ausnahme hat wiederum eine Ausnahme: Ist die Jahreszahl durch 00 teilbar, so ist das Jahr doch ein Schaltjahr. Erstellen Sie ein Programm, das berechnet, ob eine vom Benutzer eingegebene Jahreszahl ein Schaltjahr bezeichnet oder nicht. 1 # include <stdio.h> 3 int main () { 5 int jahr ; 6 7 printf (" Geben Sie ein Jahr ein : "); 8 scanf ("% d",& jahr ); 9 10 if ( jahr %==0) 11 if( jahr %100==0) 1 if( jahr %00==0) 13 printf (" Schaltjahr!\n"); 1 else 15 printf (" Kein Schaltjahr!\n"); 16 else 17 printf (" Schaltjahr!\n"); 18 else 19 printf (" Kein Schaltjahr!\n"); 0 }

8 Aufgabe 13 Programmieren Sie das Spiel Zahlenraten : Der Computer generiert eine Zufallszahl zwischen 1 und 100, die der Spieler erraten muß. Es wird bei jedem Durchgang mitgeteilt, ob die eingegebene Zahl zu groß oder zu klein war. Tipp: Zufallszahlen werden wie folgt generiert: Ein einmaliger Aufruf srand(time(null)) initialisiert den Zufallszahlengenerator. Anschließend liefert jeder Aufruf von rand()%100 eine Zufallszahl zwischen 0 und 99. Die Funktionen sind in stdlib.h bzw. time.h deklariert. 1 # include <stdio.h> # include <time.h> 3 # include < stdlib.h> 5 int main ( void ) 6 { 7 int zahl, rat, versuche =0; 8 9 srand ( time ( NULL )); 10 zahl = rand ()% ; 11 1 do 13 { 1 printf (" Zahl eingeben : "); 15 scanf ("% d", & rat ); 16 if (rat > zahl ) printf (" Zu gross!\n"); 17 if (rat < zahl ) printf (" Zu klein!\n"); 18 versuche ++; 19 } 0 while ( rat!= zahl && versuche <6); 1 if ( rat == zahl ) printf (" Erraten!\n"); 3 else printf (" Verloren! Die gesuchte Zahl war % d\ n", zahl ); }

9 Aufgabe 1 (fakultativ) Lösen Sie die quadratische Gleichung ax + bx + c = 0 für vom Benutzer eingegebene Parameter a, b und c. Falls Ihnen komplexe Zahlen geläufig sind, sollen auch komplexe Lösungen ausgegeben werden. Tipp: Die Lösungsformel für die quadratische Gleichung lautet: x 1/ = b ± b ac. a Die Funktion float sqrt(float) zur Berechnung der Wurzel einer positiven Zahl ist in math.h deklariert. Zum Testen des Programms können Sie folgende Parametersätze verwenden:, -36, 81.5;,, -1, 3; 1, -, 1+ i. # include <math.h> 3 using namespace std ; 5 6 int main ( void ) 7 { 8 float a,b,c,d; //a*x*x + b*x + c = cout << "\ nkoeffizienten a b c: "; 11 cin >> a >> b >> c; 1 13 D=b*b -* a*c; 1 if (D ==0) cout << "x = " << -b /(* a) << endl ; 15 if (D >0) cout << "x = " << (-b+ sqrt (D ))/(* a) << " und x = " 16 << (-b- sqrt (D ))/(* a) << endl ; 17 if (D <0) cout << "x = " << -b /(* a) << "+ -" 18 << sqrt (-D )/(* a) << "*i" << endl ; 19 }

10 Aufgabe 15 Programmieren Sie mithilfe der switch-case Anweisung einen Mini-Taschenrechner, der zwei Zahlen und einen Operator (+, -, *, /) einliest und das Ergebnis ausgibt. Eine eventuelle Division durch 0 soll abgefangen werden. 3 using namespace std ; 5 int main ( void ) 6 { 7 float z1,z; 8 char op; 9 cout << " Zahlen mit Operator dazwischen [+ -*/]: "; 10 cin >> z1 >> op >> z; 11 cout << z1 << op << z << " ="; 1 switch ( op) 13 { 1 case + : 15 cout << z1+z << \n ; 16 break ; 17 case - : 18 cout << z1 -z << \n ; 19 break ; 0 case * : 1 cout << z1*z << \n ; break ; 3 case / : if ( z ==0) 5 cout << " Div durch 0 geht nicht \ n"; 6 else 7 cout << z1/z << \n ; 8 break ; 9 default : 30 cout << " Den Operator kenne ich nicht \ n"; 31 } 3 }

11 Aufgabe 16 Primzahlberechnung nach dem Sieb-Verfahren: Schreiben Sie alle Zahlen (z.b. von bis 100) in ein Array. Beginnend mit der kleinsten Zahl wird die Zahl als Primzahl auf dem Bildschirm ausgegeben und gleichzeitig alle Vielfachen dieser Zahl im Array auf 0 gesetzt d.h. aus der Liste gestrichen. Anschliessend wird die nächste Zahl 0 im Array bearbeitet. 3 using namespace std ; 5 int main ( void ) 6 { 7 int a [100],i,j; 8 9 for (i =0; i <100; i ++) a[i]=i; 10 cout << "\ ndie Ersten Primzahlen...\ n"; 11 for (i =; i <100; i ++) 1 { 13 if (a[i] >0) 1 { 15 cout << a[i] << ; 16 for (j =* i; j <100; j+=i) a[j ]=0; 17 } 18 } 19 }

12 Aufgabe 17 Lesen Sie eine Integerzahl ein und geben Sie deren Bitmuster aus (z.b.: ). 3 using namespace std ; 5 int main ( void ) 6 { 7 short int n; 8 unsigned short int maske =0 x80 ; 9 10 cout << "8 - Bit - Integer eingeben : "; 11 cin >> n; 1 cout << " dezimal : " << n << " binaer : "; 13 while ( maske ) 1 { 15 if (( n & maske ) > 0) 16 cout << 1 ; 17 else 18 cout << 0 ; 19 maske > >=1; 0 } 1 }

13 Aufgabe 18 Bestimmen Sie die Primfaktorzerlegung einer eingegebenen Zahl (z.b.: 00 = ***5*5). 3 using namespace std ; 5 int main ( void ) 6 { 7 int zahl, i, anz =0; 8 9 cout << " Gib Integerzahl ein : "; 10 cin >> zahl ; 11 cout << " Zerlegung : "; 1 for (i =; i <= zahl ; i ++) 13 while ( zahl % i == 0) 1 { 15 if ( anz ==0) 16 cout << i; 17 else 18 cout << * << i; 19 anz ++; 0 zahl /=i; 1 } }

14 Aufgabe 19 Sortieren Sie ein mit Zufallszahlen belegtes Array beliebiger Größe mit dem Bubble-Sort- Verfahren: jeweils zwei benachbarte Feldelemente werden vertauscht, wenn sie in der falschen Reihenfolge sind. # include < stdlib.h> 3 using namespace std ; 5 6 int main ( void ) 7 { 8 int a [10], i, zw, change ; 9 10 cout << " unsortiert : "; 11 for (i =0; i <10; i ++) 1 { 13 a[i]= rand ()%100; 1 cout << a[i] << ; 15 } // sortieren ( und dabei ausgeben...) 18 do 19 { 0 cout << "\ nzwischenschritt : "; 1 change =0; // keine Vertauschung noetig for (i =0; i <9; i ++) 3 if (a[i]>a[i +1]) { 5 zw=a[i]; a[i]=a[i +1]; a[i +1]= zw; 6 change =1; // Vertauschung 7 } 8 for (i =0; i <10; i ++) cout << a[i] << ; 9 } 30 while ( change ); 31 }

15 Aufgabe 0 Schreiben Sie ein Sortierprogramm, das nach dem Selection-Sort Algorithmus arbeitet: 1. suche das kleinste/größte Element des Arrays,. vertausche dieses mit dem ersten Element des Arrays, 3. gehe wieder zu Schritt 1, jetzt aber mit dem verkürzten Array. Wieso ist dieses Verfahren effizienter als Bubble-Sort? # include < stdlib.h> 3 using namespace std ; 5 6 int main ( void ) 7 { 8 int a [10], i, k, zw, min, stelle ; 9 10 cout << " unsortiert : "; 11 for (i =0; i <10; i ++) 1 { 13 a[i]= rand ()%100; 1 cout << a[i] << ; 15 } for (k =0; k <10; k ++) 18 { 19 cout << "\ nzwischenschritt : "; 0 min =a[k]; 1 stelle =k; for (i=k; i <10; i ++) /* suche kleinstes Element */ 3 if (a[i]< min ) { 5 min =a[i]; 6 stelle =i; 7 } 8 zw=a[ stelle ]; a[ stelle ]=a[k]; a[k]= zw; 9 for (i =0; i <10; i ++) cout << a[i] << ; 30 } 31 }

16 Aufgabe 1 (fakultativ) Familie Müller ist zu einer Geburtstagsfeier eingeladen. Leider können sich die Familienmitglieder (Anton, Berta, Claus und Doris) nicht einigen, wer hingeht und wer nicht. In einer gemeinsamen Diskussion kann man sich jedoch auf die folgenden Grundsätze verständigen: Mindestens ein Familienmitglied geht zu der Feier. Anton geht auf keinen Fall zusammen mit Doris. Wenn Berta geht, dann geht Claus mit. Wenn Anton und Claus gehen, dann bleibt Berta zu Hause. Wenn Anton zu Hause bleibt, dann geht entweder(!) Doris oder Claus. Helfen Sie Familie Müller, indem Sie ein Programm erstellen, das alle Gruppierungen ermittelt, in denen Familie Müller zur Feier gehen könnte. Tipp: Erstellen Sie alle denkbaren Kombinationen und prüfen Sie jede darauf, ob sie alle obigen Grundsätze erfüllt. 1 # include <stdio.h> # include < stdlib.h> 3 int main ( void ) 5 { 6 unsigned char a, b, c, d; 7 unsigned char gehen ; 8 unsigned char z =0; 9 10 printf (" Folgende Personen koennen zusammen gehen : \ n\ n "); 11 1 /* Dabei heisst z. B. a == 1, dass Anton mitgehen moechte,*/ 13 for ( a = 0; a <= 1; a = a + 1) 1 for ( b = 0; b <= 1; b = b + 1) 15 for ( c = 0; c <= 1; c = c + 1) 16 for ( d = 0; d <= 1; d = d + 1) 17 { 18 // EINE Moeglichkeit der Implementierung 19 gehen = ( ( a b c d ) 0 && (!d!a ) 1 && (!b c ) && ((!( a && c))!b) 3 && ( a ( d c ))); 5 if ( gehen == 1) 6 { 7 printf (" %d. ", z = z +1); 8 if (a) printf (" Anton "); 9 if (b) printf (" Berta "); 30 if (c) printf (" Claus "); 31 if (d) printf (" Doris "); 3 printf ("\ n "); 33 } 3 } 35 }

17 Aufgabe (fakultativ) Man berechne die Nullstellen einer Funktion mithilfe des sogenannten Bisektionsverfahrens: eine linke und rechte Intervallgrenze wird eingelesen, die Funktionswerte hier und in der Mitte des Intervalls werden bestimmt. Dann wird das Intervall immer wieder halbiert, bis genügend Genauigkeit erreicht ist. Verwenden Sie als Beispiel die Funktion f(x) = x 3 x x Diese hat Nullstellen in den Intervallen [0,1], [-1,0] und [1,]. # include <math.h> 3 using namespace std ; 5 6 int main ( void ) 7 { 8 int i =1; /* Zahl der Iterationen */ 9 float a,b,c; /* linker und rechter x-wert, Mitte */ 10 float fa, fc; /* Funktionswerte */ 11 1 cout << " Linke und rechte Grenze : "; 13 cin >> a >> b; 1 15 do 16 { 17 c=(a+b )/.0; 18 fa=a*a*a-a*a-a +0.0; 19 fc=c*c*c-c*c-c +0.0; 0 cout << " Iteriere : Nr ="<<i < <"x="<<c <<", f(x)=" < <fc << \n ; 1 if (fc*fa > 0) a=c; 3 else b=c; 5 i ++; 6 } 7 while ( ( fabs (b-a) > 1e -7) && (i <10) ); 8 9 }

18 Aufgabe 3 Freunden Sie sich zunächst einmal mit Unterprogrammen an. Im Skript sind folgende Programmfragmente zu finden: Berechnung von n m : Funktion mypow Näherung für exp(x): Funktion myexp Einfache Rekursion: Funktion fak Türme von Hanoi: Funktion hanoi Machen Sie daraus jeweils ein lauffähiges Programm. (Potenz und Exponentialfunktion) 1 # include <stdio.h> 3 long int mypow ( int n, int m); double myexp ( double x, int k); 5 6 int main ( void ) 7 { 8 int n=, m =10; 9 double x =3. 0; printf ("% d hoch %d ist %ld\n", n, m, mypow (n,m )); 1 printf (" exp (% lf) ist etwa %lf\n", x, myexp (x, 1000)); 13 } 1 15 long int mypow ( int n, int m) 16 { 17 int i; 18 long int erg =1; 19 0 for (i =1; i <=m; i ++) 1 erg *=n; return erg ; 3 } 5 double myexp ( double x, int k) 6 { 7 int n; 8 double summand =1.0, sum =1. 0; 9 30 for (n =1; n <=k; n ++) 31 { 3 summand *= x/n; 33 sum += summand ; 3 } 35 return sum ; 36 }

19 (Fakultät, rekursiv) 1 # include <stdio.h> 3 long fak ( int wert ); 5 int main ( void ) 6 { 7 int m =10; 8 9 printf ("% d! = %ld\n", m, fak (m )); 10 } 11 1 long fak ( int wert ) 13 { 1 if ( wert ==1) return 1; 15 else return ( wert * fak (wert -1)); 16 } (Türme von Hanoi, rekursiv) 1 # include <stdio.h> 3 void hanoi (int, int, int ); 5 int main ( void ) 6 { 7 hanoi (5,1,); 8 } 9 10 void hanoi ( int n, int p1, int p) 11 { 1 int parkplatz ; 13 1 if (n >1) 15 { 16 parkplatz = 6-p1 -p; 17 hanoi (n -1, p1, parkplatz ); 18 } 19 0 printf ("1 Scheibe von %d nach %d\n", p1, p ); 1 if (n >1) hanoi (n -1, parkplatz, p ); 3 }

20 Aufgabe Schreiben Sie das Programm zur Primzahlzerlegung (Aufgabe 18) so um, dass das Einlesen der Zahl von einer Funktion eingabe erledigt wird und die Berechnung und Ausgabe der Primfaktoren von einer anderen Funktion zerlegung. Überlegen Sie zuerst, welche Variablentypen die Funktionen erhalten und zurückliefern sollen! 3 using namespace std ; 5 int eingabe ( void ); 6 void zerlegung ( int zahl ); 7 8 int main ( void ) 9 { 10 zerlegung ( eingabe ()); 11 } 1 13 int eingabe ( void ) 1 { 15 int z; do 18 { 19 cout << " Gib Integerzahl ein : "; 0 cin >> z; 1 } while (z <); 3 return z; 5 } 6 7 void zerlegung ( int zahl ) 8 { 9 int i, anz =0; cout << zahl << " = "; 3 for (i =; i <= zahl ; i ++) 33 { 3 while ( zahl % i == 0) 35 { 36 if (! anz ) cout << i; 37 else cout << * << i; 38 anz ++; 39 zahl /=i; 0 } 1 } }

21 Aufgabe 5 Erstellen Sie ein Programm zur numerischen Integration einer Funktion mit der Rechtecks- Methode. Das Programm soll eine Funktion double f(double x) enthalten, die zu jedem x einen Funktionswert liefert, sowie eine Funktion double integral(double a, double b, int n). Darin soll das Intervall [a, b] in n kleine Intervalle aufgeteilt werden, die Fläche der Rechtecke unter dem Funktionsgraphen berechnet werden und die Gesamtfläche zurückgeliefert werden. Tipp: Zum Testen Ihres Programms können Sie # include <math.h> 3 using namespace std ; exp( x )dx benutzen. 6 double f( double x); 7 double integral ( double a, double b, int n); 8 9 int main ( void ) 10 { 11 double a,b; int n; 1 cout << " Grenze links, rechts und Intervallzahl : "; 13 cin >> a >> b >> n; 1 cout << " Ergebnis : " << integral (a,b,n) << \n ; 15 return 0; 16 } double f( double x) 19 { 0 return exp (-x*x); 1 } 3 double integral ( double a, double b, int n) { 5 double flaeche =0,h; 6 int i; 7 8 h=(b-a)/n; 9 for (i =0; i<n; i ++) 30 flaeche = flaeche + h*f(a+i*h); 31 return flaeche ; 3 }

22 Aufgabe 6 Schreiben Sie eine Funktion int palin(char *c, int erstes, int letztes), die rekursiv prüfen soll, ob ein gegebenes Wort oder ein Satz ein Palindrom i ist. Ihr wird das Wort oder der Satz in einem char-array c sowie die Stelle des ersten und letzten Zeichens als int übergeben. Stimmen beide Zeichen überein, so kann man mit dem Prüfen des verkürzten Wortes oder Satzes fortfahren. Tipp: Die Funktion strlen(text) liefert die Länge des Textes char text[]. Sie ist in string.h deklariert. Überlegen Sie sich auch, wie Sie Leerzeichen behandeln (siehe Bsp. in der Fussnote). Beachten Sie bitte die Schreibweise...palin(char *c... zur Übergabe des char-arrays. 1 # include <stdio.h> # include < string.h> 3 int palin ( char *, int, int ); 5 6 int main ( void ) 7 { 8 char wort [] =" derfreibierfred "; 9 char unwort [] =" derfreibiersepp "; 10 char satz [] =" Ein Schwarzer mit Gazelle zagt im Regen nie "; 11 1 if ( palin (wort, 0, strlen ( wort ) -1) == 1) 13 printf ("\"% s\" ist ein Palindrom \n", wort ); 1 else printf ("\"% s\" ist kein Palindrom \n", wort ); if ( palin ( unwort, 0, strlen ( unwort ) -1) == 1) 17 printf ("\"% s\" ist ein Palindrom \n", unwort ); 18 else printf ("\"% s\" ist kein Palindrom \n", unwort ); 19 0 if ( palin (satz, 0, strlen ( satz ) -1) == 1) 1 printf ("\"% s\" ist ein Palindrom \n", satz ); else printf ("\"% s\" ist kein Palindrom \n", satz ); 3 } 5 int palin ( char * c, int erstes, int letztes ) 6 { 7 while (c[ erstes ] == && letztes - erstes > ) 8 erstes ++; 9 while ( c[ letztes ] == && letztes - erstes > ) 30 letztes - -; 31 if (!( c[ erstes ]== c[ letztes ] 3 c[ erstes ]== c[ letztes ]+3 33 c[ erstes ]== c[ letztes ] -3)) 3 return 0; 35 else 36 { 37 if ( letztes - erstes <= ) 38 return 1; 39 return palin ( c, erstes +1, letztes - 1); 0 } 1 } i vorwärts rückwärts z.b.: anna, otto, ein schwarzer mit gazelle zagt im regen nie. Danke an dieser Stelle an Hr. De Muirier von der DLR, der mich darauf hingewiesen hat, dass das im Original-Palindrom verwendete Wort heutzutage rassistisch und stark pejorativ ist. (Zitat)

23 Aufgabe 7 Das Treppenproblem: Sie können bei einer Treppe entweder genau eine Stufe pro Schritt nehmen, oder, falls sie sportlich und durchtrainiert sind, Stufen auf einmal. Damit haben sie mehrere Möglichkeiten eine mehrstufige Treppe zu überwinden (z.b.: 1 Stufe 1 Möglichkeit, Stufen Möglichkeiten, 3 Stufen 3 Möglichkeiten, Stufen 5 Möglichkeiten,...). Schreiben Sie ein Programm, welches Ihnen rekursiv die Anzahl der Möglichkeiten berechnet, eine Treppe T mit n Stufen zu erklimmen: { n für n < 3 T n = T (n 1) + T (n ) für n 3 Berechnen Sie dann die Anzahl der Möglichkeiten für n=5. Wieso und wie müssen Sie ihr Programm modifizieren, damit dieses auch die Anzahl der Möglichkeiten für n=768 (Ulmer Münster) und n=1860 (Empire State Building) berechnen kann? Tipp: Bei der Treppe zur Physik-Bibliothek (n=5) haben Sie Möglichkeiten, beim Ulmer Münster etwa 3 x Möglichkeiten und beim Empire State Building immerhin etwa 37 x Möglichkeiten. (rekursiv) 1 # include <stdio.h> 3 int treppe ( int ); 5 int main ( void ) 6 { 7 int stufen ; 8 9 printf ("\ n\ nanzahl der Stufen?: "); 10 scanf ("% d", & stufen ); 11 printf (" Bei % d Stufen haben Sie % d Moeglichkeiten \ n", 1 stufen, treppe ( stufen )); 13 } 1 15 int treppe ( int stufen ) 16 { 17 if( stufen <= ) 18 return stufen ; 19 else 0 return treppe ( stufen -1) + treppe ( stufen - ); 1 } (additiv) 1 # include <stdio.h> 3 void treppe ( int ); 5 int main ( void ) 6 { 7 int stufen ; 8 9 printf ("\ n\ nanzahl der Stufen?: "); 10 scanf ("% d", & stufen ); 11 printf (" Bei % d Stufen haben Sie ", stufen ); 1 treppe ( stufen ); 13 printf (" Moeglichkeiten "); 1 } void treppe ( int stufen ) 17 {

24 18 int letztes [1000], vletztes [1000], ergebnis [ 1000]; 19 int result =0, carry =0; 0 int z, index, lastindex =999, treffer =0; 1 for (z =0; z <1000; z ++) 3 vletztes [z]= letztes [z]= ergebnis [z ]=0; 5 letztes [0]=; 6 vletztes [ 0] =1; 7 8 if( stufen < 3) 9 ergebnis [0] = stufen ; while ( stufen -- > ) 3 { 33 for (z =0; z <1000; z ++) 3 { 35 result = vletztes [ z] + letztes [ z] + carry ; 36 if( result >= 10) 37 { 38 ergebnis [ z] = result - 10; 39 carry = 1; 0 } 1 else { 3 ergebnis [ z] = result ; carry = 0; 5 } 6 } 7 8 for (z =0; z <1000; z ++) 9 { 50 vletztes [z] = letztes [z]; 51 letztes [z] = ergebnis [z]; 5 } 53 } 5 55 while ( treffer!= 1) 56 if ( ergebnis [ lastindex ] == 0) 57 lastindex - -; 58 else 59 treffer = 1; 60 index = lastindex ; 61 while ( index >= 0) 6 { 63 if ( index!= 0 && index % 3 == 0) 6 printf ("% d.", ergebnis [ index - -]); 65 else 66 printf ("% d", ergebnis [ index - -]); 67 } 68 if ( lastindex >= 9) 69 printf (" (=%d,% de%d)", ergebnis [ lastindex ], 70 ergebnis [ lastindex - 1], 71 lastindex ); 7 }

25 Aufgabe 8 (fakultativ) Zur Berechnung der Wurzel einer Zahl gibt es ein rekursives Verfahren. Die Rekursionsformel lautet: { [ ] 1 x w(n 1, x) + für n 1 w(n, x) = w(n 1,x) 1 für n = 0 Schreiben Sie eine Funktion double wurzel(int n, double x), die rekursiv die Wurzel einer eingegebenen Zahl x berechnet. Die Zahl n gibt die Rekursionstiefe an. Vergleichen Sie das Ergebnis mit dem exakten Wert. 1 # include <stdio.h> # include <math.h> 3 double wurzel ( int n, double x) 5 { 6 if ( n ==0) return 1; 7 else return 0.5*( wurzel (n -1, x)+x/ wurzel (n -1, x )); 8 } 9 10 int main ( void ) 11 { 1 double x; 13 int n; 1 15 printf (" Zahl eingeben : "); 16 scanf ("% lf", &x); 17 printf (" Anzahl der Rekursionen : "); 18 scanf ("% d", &n); 19 printf (" Die Wurzel von %f ist etwa %1.1f, exakt %1.1 f\n", 0 x, wurzel (n, x), sqrt (x )); 1 }

26 Aufgabe 9 Man berechne für kleine ganze Zahlen m, n (m 3, n 8) die Ackermann-Funktion a(m, n): n + 1 falls m = 0 a(m, n) := a(m 1, 1) falls n = 0 a(m 1, a(m, n 1)) sonst Tipp: Zum Testen Ihres Programms können Sie a(1, 1) = 3, a(3, 3) = 61, a(3, 8) = 05 benutzen. 3 using namespace std ; 5 int acker ( int m, int n); 6 7 int main ( void ) 8 { 9 int a,b; cout << " Zahlen : "; 1 cin >> a >> b; 13 cout << "a(" << a << ", " << b << ") = " 1 << acker (a,b) << endl ; 15 } int acker ( int m, int n) 18 { 19 if (m ==0) return n +1; 0 else 1 { if (n ==0) return acker (m -1,1); 3 else return acker (m -1, acker (m,n -1)); } 5 }

27 Aufgabe 30 Erstellen Sie ein Programm mit einer Struktur namens person, die einige Daten (Name, Vorname, Alter, Schuhgröße,...) einer Person speichert. Eine Funktion eingabe soll einen Datensatz einlesen und zurückliefern. Das Programm soll dann mithilfe von eingabe die Daten zweier Personen aufnehmen und den Namen des Älteren ausgeben. 3 using namespace std ; 5 typedef struct 6 { 7 char name [0], vname [0]; 8 int alter, schuhgroesse ; 9 } person ; person einlesen ( void ); 1 13 int main ( void ) 1 { 15 person p1, p; p1 = einlesen (); 18 cout << endl ; 19 p = einlesen (); 0 1 if (p1. alter > p. alter ) cout << p1. vname << " " << p1. name 3 << " ist der aeltere." << endl ; else 5 cout << p. vname << " " << p. name 6 << " koennte der aeltere sein." << endl ; 7 } 8 9 person einlesen ( void ) 30 { 31 person p; 3 33 cout << " Vorname : "; 3 cin >> p. vname ; 35 cout << " Name : "; 36 cin >> p. name ; 37 cout << " Alter : "; 38 cin >> p. alter ; 39 cout << " Schuhgroesse : "; 0 cin >> p. schuhgroesse ; 1 return p; 3 }

28 Aufgabe 31 Im Sript finden Sie ein Beispielprogramm zur Dateibearbeitung. Versuchen Sie, es zu verstehen, und experimentieren Sie damit. Hier hilft nun wirklich nur noch lesen, verstehen und abtippen! Für die Lösungen der Aufgaben 3 3 werden die folgenden Textdateien im jeweils aktuellen Verzeichnis vorausgesetzt: demo.txt 1 Hallo, das ist eine Testdatei! Hier steht die zweite Zeile. 3 Und schon ist s wieder zu Ende... text.txt 1 In diesem Text sind viel zu viele Leerzeichen 3 vorhanden, die entfernt werden muessen. Aufgabe 3 Erstellen Sie ein Programm, das einen Text aus einer Datei einliest und auf dem Bildschirm ausgibt, wobei Groß- in Kleinbuchstaben verwandelt werden sollen und umgekehrt. # include < fstream > 3 using namespace std ; 5 6 int main ( void ) 7 { 8 char c; 9 ifstream datei ; datei. open (" demo. txt ", ios :: in ); 1 if (! datei ) 13 { 1 cout << " Datei nicht gefunden!\ n"; 15 return 1; 16 } while ( datei. get (c)) 19 { 0 if (c >= a && c <= z ) c=c+( A - a ); 1 else if (c >= A && c <= Z ) c=c -( A - a ); cout << c; 3 } datei. close (); 5 }

29 Aufgabe 33 Schreiben Sie ein Programm, das einen Text aus einer Datei und einen Buchstaben einliest und ermittelt, wie oft der Buchstabe in dem Text vorkommt. # include < fstream > 3 using namespace std ; 5 6 int main ( void ) 7 { 8 char c, buchst ; 9 int anzahl =0; 10 ifstream datei ; 11 1 cout << " Zeichen eingeben : "; 13 cin >> buchst ; 1 15 cout << " Der Text \n"; datei. open (" demo. txt ", ios :: in ); 18 while ( datei. get (c)) 19 { 0 if (c== buchst ) anzahl ++; 1 cout << c; } 3 datei. close (); cout << "\ nenthaelt " << anzahl << " mal das Zeichen " 5 << buchst << endl ; 6 } Aufgabe 3 Schreiben Sie ein Programm, das aus einem Text in einer Datei alle mehrfach vorkommenden Leerzeichen entfernt und den Text auf dem Bildschirm ausgibt. # include < fstream > 3 using namespace std ; 5 6 int main ( void ) 7 { 8 char c, voriges = a ; 9 ifstream datei ; datei. open (" text. txt ", ios :: in ); 1 13 while ( datei. get (c)) 1 { 15 if (!( voriges == && c== )) 16 cout << c; 17 voriges =c; 18 } 19 datei. close (); 0 }

30 Aufgabe 35 Es ist feld ein int-array und p ein int-zeiger. Welche der folgenden Zuweisungen sind zulässig, welche nicht? (Ggf. ausprobieren!) p = feld; feld = p; p = &feld[3]; feld[] = p[5]; Alle Zuweisungen sind zulässig ausser der Zweiten da feld eine Zeigerkonstante ist und die Adresse der Elemente enthält, welche durch die Definition von feld reserviert wurden. Diese Adresse kann nicht geändert werden. Der Zeigervariablen p dürfen beliebige Adressen zugewiesen werden. Die erste und dritte Zuweisung sind daher korrekt, weil auch die Ausdrücke zur Berechnung dieser Adressen korrekt sind. In der letzten Zuweisung wird ein einzelner int-wert (evtl. unbekannter Herkunft, je nach Vorgeschichte) in ein Element von feld gespeichert, was formal richtig ist. Aufgabe 36 Es seien p1 und p zwei int-zeiger und i eine int-variable. Welche Zuweisungen wird der Compiler akzeptieren, welche nicht? (Ggf. ausprobieren!) p1 = p + i; p1 = i + p; i = p1 * p; i = p1 - p; i = p1 + p; Die erste Zuweisung wird vom Compiler akzeptiert. Hier wird zu einer Adresse eine ganze Zahl addiert. Das Resultat ist ein um einen konstanten Wert (i*sizeof(int)) verschobener Zeiger. Die meisten Compiler akzeptieren auch die zweite Zuweisung, da das Vertauschen der Operanden bei + durchaus erlaubt ist. Die dritte Zuweisung ist völliger Blödsinn. Bei der vierten Zuweisung wird die Entfernung der Elemente (in sizeof(int)) ermittelt, auf die die Zeigervariablen p1 und p zeigen. Die letzte Zuweisung ist wiederum keine sinnvolle Operation.

31 Aufgabe 37 Schreiben Sie ein bestehendes Programm (z.b. Lösung der quadratischen Gleichung) so um, dass die Benutzereingabe von einer Funktion eingabe erledigt wird, der man die Variablen übergeben muss (Pointer!). # include <math.h> 3 using namespace std ; 5 6 void eingabe ( double *, double *, double *); 7 8 int main ( void ) 9 { 10 double a,b,c,d; 11 1 eingabe (&a, &b, &c); 13 D=b*b -* a*c; 1 if (D ==0) cout << "x = " << -b /(* a) << endl ; 15 if (D >0) cout << "x = " << (-b+ sqrt (D ))/(* a) 16 << " und x = " << (-b- sqrt (D ))/(* a) << endl ; 17 if (D <0) cout << "x = " << -b /(* a) << "+ -" 18 << sqrt (-D )/(* a) << "*i" << endl ; 19 } 0 1 void eingabe ( double * a, double * b, double * c) { 3 cout << " Die Parameter a, b und c eingeben : "; cin >> *a >> *b >> *c; 5 }

Aufgaben zum C/C++ Kurs

Aufgaben zum C/C++ Kurs Universität Regensburg Fakultät Physik IT-Ausbildung Aufgaben zum C/C++ Kurs Kapitel 1 Erste Schritte Aufgabe 1 Schreiben Sie ein Programm, das den Namen des Benutzers einliest und ihn dann mit seinem

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

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

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

Zusammenfassung des Handzettels für Programmieren in C

Zusammenfassung des Handzettels für Programmieren in C Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.

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

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 15. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

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

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

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

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

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14

Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14 Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14 Aufgabe 33: Felder Felder (oder auch Arrays ) werden dazu benutzt,

Mehr

2 Einfache Rechnungen

2 Einfache Rechnungen 2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,

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

Ü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

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

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32 Steueranweisungen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder Programmblöcken)

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

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

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

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 09:30 Uhr (90 min) Aufgabenblätter 14 Seiten (einschl. Deckblatt) erreichbare Punktzahl 54 zugelassene

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

Übungen zu C++ Kapitel 3

Übungen zu C++ Kapitel 3 Übungen zu C++ Kapitel 3 Aufgabe 1 Gib jeweils den Funktionskopf für die folgenden Funktionen an! a) Die Funktion Hypotenuse übernimmt zwei double-variable Seite1 und Seite2 und liefert ein double-ergebnis

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

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

Fallunterscheidung: if-statement

Fallunterscheidung: if-statement Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0

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

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

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

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise

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

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

C kompakt für Java-Programmierer

C kompakt für Java-Programmierer C kompakt für Java-Programmierer Prof. Dr. Carsten Vogt, FH Köln, Institut für Nachrichtentechnik, www.nt.fh-koeln.de/vogt/ Stand: Februar 2012 In der Übung und im Praktikum "Betriebssysteme und verteilte

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

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung)

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung) Hochschule München, FK 03 SS 2014 Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung) Zulassung geprüft: (Grundlagenteil) Die Prüfung ist nur dann gültig, wenn Sie die erforderliche Zulassungsvoraussetzung

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

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes

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

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C Einfache Programmstrukturen in C 4-1 Welche einfache Programmstrukturen sind zu unterscheiden? Arithmetische und logische Ausdrücke und Zuweisungen Verzweigungen Unvollständige bedingte Anweisungen Vollständige

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

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

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

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

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

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

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

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

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Rückblick Datentypen (int, long, double, boolean, String) Variablen und Variablendeklarationen

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

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

Projektverwaltung Problem Lösung: Modulare Programmierung

Projektverwaltung Problem Lösung: Modulare Programmierung Projektverwaltung Problem Der Sourcecode ür ein Programm wird immer länger und unübersichtlicher Eine Funktion, die in einem alten Projekt verwendet wurde, soll auch in einem neuen Projekt verwendet werden

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

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale

Mehr

Lösungsvorschlag zur 9. Übung

Lösungsvorschlag zur 9. Übung Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 9. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche der folgenden Aussagen über

Mehr

Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters

Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters Prof. Dr. Ulrich Breitschuh Hochschule Anhalt(FH) Fachbereich Informatik Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters Hinweis: Die Aufgaben 3, 6 und 8 sind testatpichtige Aufgaben.

Mehr

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende. PROGRAMMIEREN IN C - EIN KURZÜBERBLICK 1 Programmieren in C -- ALLE Programmiersprachen sind HÄSSLICH -- Die einfachste Programmstruktur: main () -- was zu tun ist --- Vorgeordnete Definitionen: # include

Mehr

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind

Mehr

Programmieren in C (Übungsblatt 1)

Programmieren in C (Übungsblatt 1) Programmieren in C (Übungsblatt 1) 30.09.2015 Aufgabe 1: Programmausführung a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main() { printf("c-programmierung

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

Praktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration

Praktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration Praktikum Ingenieurinformatik Termin 4 Funktionen, numerische Integration 1 Praktikum Ingenieurinformatik Termin 4 1. Funktionen. Numerische Integration, Trapezverfahren 1.1. Funktionen Eine Funktion ist

Mehr

Fachhochschule Augsburg. Ingenieurinformatik SS05 Seite 1/8

Fachhochschule Augsburg. Ingenieurinformatik SS05 Seite 1/8 Fachhochschule Augsburg Name: FB Maschinenbau Vorname: Ingenieurinformatik SS05 Seite 1/8 Prüfungstermin: 6.7.2005 Prüfer: Prof. Thalhofer Erstprüfer: Hilfsmittel: alle Unterlagen, keine Rechner Prüfungsdauer:

Mehr

Praktikum Betriebssysteme 1. Aufgabe (1)

Praktikum Betriebssysteme 1. Aufgabe (1) FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten

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

Annehmende Schleife do while

Annehmende Schleife do while Annehmende Schleife do while Schleife mit nachfolgender Bedingungsprüfung: annehmende Schleife B S Mit B wird eine Bedingung (logischer Ausdruck) bezeichnet, S ist ein Strukturblock. Zuerst wird S ausgeführt,

Mehr

Übung 9 - Lösungsvorschlag

Übung 9 - Lösungsvorschlag Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe

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

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 4-1 Übung 1) Schreiben Sie ein Programm, das die Fläche unter einer Parabel, also das Integral

Mehr

1. Grundlegende Konzepte in Java (6 Punkte)

1. Grundlegende Konzepte in Java (6 Punkte) 1. Grundlegende Konzepte in Java (6 Punkte) a) Welches der folgenden Literale ist korrekt und wenn ja, von welchem Typ ist es? "true" nicht korrekt X korrekt vom Typ String 'true' X nicht korrekt korrekt

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

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

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

C Überlebenstraining

C Überlebenstraining C Überlebenstraining Dies ist nur ein Schnellkurs in C, der genug Einstiegswissen vermitteln soll, daß weiterführende Literatur schnell benutzt werden kann. Dies ist kein vollständiger Programmier oder

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

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung: Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang

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

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte

Mehr

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

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Objektorientierte Programmierung mit C++ Vector und List

Objektorientierte Programmierung mit C++ Vector und List Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu

Mehr

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Ein- und Ausgabe Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Komplexe E/A-Operationen werden erst diskutiert, nachdem das Klassenkonzept erarbeitet

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

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

Programmieren in JavaScript

Programmieren in JavaScript Lineare Programme 1. Euro a) Schreiben Sie ein Programm, dass Frankenbeträge in Euro umrechnet. Der Benutzer gibt dazu den aktuellen Kurs ein, worauf das Programm einige typische Werte (z.b. für Fr 10,

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Rückblick Schleifen while do-while for Methoden Verfahren: Intervallschachtelung 2 Wo

Mehr

Inhalt. 4.7 Funktionen

Inhalt. 4.7 Funktionen Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern

Mehr

Nachname:... Vorname:... MatrNr.:... Klausur PR2. Erstellen Sie eine Struktur für eine Komplexe Zahl mit den Elementen real und imag vom Typ double.

Nachname:... Vorname:... MatrNr.:... Klausur PR2. Erstellen Sie eine Struktur für eine Komplexe Zahl mit den Elementen real und imag vom Typ double. Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 4.7.2008 Bearbeitungsdauer: 90 min Hilfsmittel:

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

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

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

Programmieren in C Einführung

Programmieren in C Einführung Programmieren in C Einführung Aufbau eines Programms Einfache Programme Datentypen und Vereinbarungen Das Entwicklungswerkzeug Seite Einfache Programme Kugeltank-Berechnung #include void main

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

Programmieren in C++ Arrays, Strings und Zeigerarithmetik

Programmieren in C++ Arrays, Strings und Zeigerarithmetik Programmieren in C++ Arrays, Strings und Zeigerarithmetik Inhalt Eindimensionale C-Arrays C-Strings und Strings (Mehrdimensionale C-Arrays) Arrays und Vektoren (C++) Unique Pointers (C++11) Zeigerarithmetik

Mehr

"Einführung in die Programmierung" Krefeld, den 24. September 2013

Einführung in die Programmierung Krefeld, den 24. September 2013 Einführung in die Programmierung Matrikelnummer: Klausur zur Vorlesung "Einführung in die Programmierung" Krefeld, den 24. September 2013 Hinweise: Übertragen Sie bitte Name und Matrikelnummer deutlich

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

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

Schreiben Sie ein Programm, welches folgende Bestandteile besitzt. Verwenden Sie diese Elemente geeignet, um eine Sortierung des Feldes zu erzielen!

Schreiben Sie ein Programm, welches folgende Bestandteile besitzt. Verwenden Sie diese Elemente geeignet, um eine Sortierung des Feldes zu erzielen! Übung: Felder & Sortieren Schreiben Sie ein Programm, welches folgende Bestandteile besitzt Anlegen eines Feldes mit z.b. 10 ganzzahligen Elementen und Abfrage dieser Werte von der Tastatur Funktion void

Mehr

Kurze Einführung in die Programmiersprache C++ und in Root

Kurze Einführung in die Programmiersprache C++ und in Root Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung

Mehr