Übungen

01 - Hello World

Schreibe ein Programm, das den Text „Hello World“ am Bildschirm ausgibt.

02 - Hello World grafisch

Schreibe ein Programm, das mithilfe von * folgende Ausgabe erzeugt.

03 - Summe

Entwickle ein Programm, welches zwei Zahlen vom Benutzer einliest und anschließend addiert. Das Ergebnis wird anschließend ausgegeben.

04 - Produktbestellung

Entwickle ein Programm, welches vom Benutzer zwei Zahlen (Anzahl & Preis) einliest. Berechne anschließend den Gesamtpreis (Anzahl * Preis) und gib diesen aus. Z.B:
Anzahl: 5
Preis (€): 1.5


Gesamtpreis: 7.5 €

05 - Rechteck

Entwickle ein Programm, welches 2 Zahlen (Seite a & Seite b) für die Berechnung der Fläche und des Umfangs eines Rechteckes vom Benutzer einliest und anschließend die Ergebnisse ausgibt.

06 - Kreisumfang und -flächeninhalt

Nach Eingabe von Radius wird der Umfang und Flächeninhalt eines Kreises ausgegeben.

07 - Division

Entwickle ein Programm, dass nach Eingabe von Dividend und Divisor den Quotient berechnet und ausgibt. Auch Gleitkommazahlen sollen möglich sein!

08 - Restberechnung

Entwickle ein Programm, dass nach Eingabe von ganzzahligen Dividend und Divisor den Rest einer Division (%) berechnet.

09 - Fahrenheit

Ein Fahrenheit-Wert wird eingegeben und in Grad Celsius umgerechnet. Weiters wird ausgegeben, ob Glatteisgefahr besteht oder nicht.

10 - Geschwindigkeit

Je nach Höhe der Geschwindigkeit gibt es entweder keine Strafe oder gestaffelte Strafzahlungen. Die maximal zulässige Höchstgeschwindigkeit war 50 km/h.

55 bis 60 km/h: 35€

60 bis 65 km/h: 55€

65 bis 70 km/h: 80€

70 bis 75 km/h: 100€

75 bis 80 km/h: 150€

80 km/h: Führerscheinentzug

11 - Wochentag

Das Programm wandelt die Zahlen 0 bis 6 in den entsprechenden Wochentag um.

z.B.:
Wochentag: 1

Montag

12 - Noten

Das Programm gibt die eingegebene Schulnote verbal aus.
z.B.:
Note: 1

Sehr gut

13 - Maximum finden

Entwickle ein Programm, welches drei unterschiedliche große Zahlen einliest und anschließend die größte Zahl herausfindet und ausgibt.
z.B:
1. Zahl: 3
2. Zahl: 5
3. Zahl: 4

Maximum: 5

14 - Temperatur

Mit diesem Programm wird festgestellt, welche Umstände bei entsprechenden Temperaturen und Niederschlag zu beachten sind. Die Temperatur soll eingegeben werden. Weiters wird eingegeben, ob es Niederschlag (0 ⇒ kein Niederschlag, >0 ⇒ Niederschlag) gibt.

Das Programm gibt je nach Eingaben folgende Werte zurück:





15 - Body Mass Index

Im Programm wird eingegeben, ob man eine Frau oder ein Mann ist. Weiters gibt man die Körpergröße in cm sowie das Gewicht in kg an. Mittels folgender Formel wird der Body Mass Index berechnet und ausgegeben:

`bmi=(kg)/m^2`

Weiters soll nach folgender Tabelle ermittelt werden, ob Unter-, Normal- oder Übergewicht vorliegt.

FrauenMänner
Untergewicht<19.1<20.7
Normalgewicht19.1-25.820.7-26.4
Übergewicht>25.8>26.4

16 - Dreieck

Die drei Seitenlängen a, b und c eines Dreiecks eingegeben. Es wird ausgegeben, ob es sich um ein Dreieck handelt. Weiters wird ermittelt, ob ein gleichschenkeliges, gleichseitiges, rechtwinkeliges oder allgemeines Dreieck vorliegt.

17 - Textbasierter Rechner

Der Benutzer kann zwei Zahlen und einen Operator eingeben.

Zumindest die vier folgende Operatoren + (addieren), - (subtrahieren), * (multiplizieren) und / (dividieren) sollen möglich. Das Ergebnis wird anschließend ausgegeben.
Wird eine andere Zahl eingegeben, bricht das Programm ab.
z.B.:
1. Zahl: 3
Operator: -
2. Zahl: 2

Ergebnis: 1

18 - Uhrzeit

Das Programm wandelt die digitale Uhrzeit (z.B. 12:45) in die gesprochene Uhrzeit (Dreiviertel eins) um!

19 - Gaußsche Wochentagsformel

Das Programm berechnet nach eingegebenem Datum den entsprechenden Wochentag.

Formel siehe: Gaußsche Wochentagsformel

20 - Zahlensubtraktion

Entwickle ein Programm welches zwei Zahlen vom Benutzer einliest und anschließend die kleinere Zahl von der größeren Zahl abzieht solange die Zahl größer 0 ist.

21 - Euroscheinüberprüfung

Schleifen und char nötig!!!

Jeder Euroschein hat eine Nummer, zum Beispiel N27175276569.

Der erste Buchstabe (hier N) ist ein Ländercode für das Herstellungsland, z.B. N für Österreich.

Darauf folgt eine zehnstellige, fortlaufende Seriennummer (hier: 2717527656). Dann folgt am Ende eine einstellige Prüfziffer, im Beispiel ist dies die 9.

Um zu prüfen, ob die Seriennummer bzw. der Schein echt ist, ist folgendes Verfahren anzuwenden:

  1. Buchstaben durch die Position des Buchstaben im Alphabet ersetzen: A=1, B=2, …, Y=25, Z=26.
  2. Die Summe aus der Buchstabenzahl, den zehn Ziffern der Seriennummer und der Prüfziffer bilden.
  3. Von dieser Summe die Ziffernsumme (und wieder die Ziffernsumme …) bilden, bis die Zahl einstellig wird.

Beispiel: 14+2+7+1+7+5+2+7+6+5+6+9=71

7+1=8

Das Ergebnis muss 8 sein, damit die Seriennummer echt ist!

Welcher Buchstabe für welches Land steht, findest du z.B. auf der Seite der Europäischen Zentralbank: http://www.ecb.int/euro/banknotes/html/index.de.html

22 - Umwandlung Dualzahl in Dezimalzahl

Schreibe ein Programm, welches eine Dualzahl in eine Dezimalzahl umwandelt.
Bei der Eingabe dürfen nur die Ziffern 0 und 1 oder e eingegeben werden. Sobald e eingegeben wird, ist die Zahl zu Ende.
Die entsprechende Dezimalzahl wird ausgegeben.

23 - Umwandlung Hexadezimalzahl in Dezimalzahl

Schreibe ein Programm, welches eine Hexadezimalzahl in eine Dezimalzahl umwandelt.
Bei der Eingabe dürfen nur die Ziffern 0 bis 9 bzw. A bis F oder e eingegeben werden. Sobald e eingegeben wird, ist die Zahl zu Ende. Die entsprechende Dezimalzahl wird ausgegeben.

24 - "Tempo, kleine Fische"

Simuliere das Spiel „Tempo, kleine Fische“, indem du den Spielverlauf in geeigneter Form in ein Programm umsetzt.

Spielanleitung

a) Via Zufallswürfel soll der Verlauf einer Spielrunde simuliert werden.
b) Alternativ dazu soll der Benutzer bestimmen können, wie oft das Spiel durchgeführt wird (z.B. 100 mal). Danach gibt das Programm aus, wie oft die verschiedenen Möglichkeiten des Spielendes (Alle Fische erreichen das Meer, etc.) aufgetreten sind.

25 - Malreihen

Schreibe ein Programm, dass alle 1*1-Reihen (1-10) auf einmal ausgegeben werden.

Hinweise: Schleifen können auch ineinander geschachtelt werden!

Ausgabebeispiel:

Das folgende Programm gibt alle Einmaleins-Reihen aus:

1er-Reihe:
1*1=1
2*1=2
...

2er-Reihe:
1*2=2
2*2=4
...

Wollen Sie das Programm nochmals ausfuehren (j/n)?

26 - Quadratzahlen

Schreibe ein Programm, das eine Quadratzahltabelle von 1 bis zu einem eingegebenen Wert n ausgibt. (Quadratzahl.cpp)

Eingabe n=9

1 -> 1
2 -> 4
3 -> 9
4 -> 16
5 -> 25
6 -> 36
7 -> 49
8 -> 64
9 -> 81

Wollen Sie das Programm nochmals ausfuehren (j/n)?

27 - Fibonacci

Schreibe ein Programm, das die ersten n Fibonacci-Zahlen erzeugt und ausgibt! Eine Fibonacci-Zahl berechnet sich aus der Summe der beiden vorhergehenden Zahlen. Die ersten beiden Fibonacci-Zahlen sind gleich 1! (Fibonacci.cpp)

z.B.: 1, 1, 2, 3, 5, 8, 13, 21,…

28 - Dezimal-Dual

Schreibe ein Programm, das die eingegebene Dezimalzahl in eine Dualzahl umwandelt.
Auf welches Problem stößt du dabei? (DeziDual.cpp)

29 - Teiler

a) Schreibe ein Programm, das die Teiler einer eingegebenen natürlichen Zahl n auflistet. (Teilerliste.cpp)
b) Schreibe ein Programm, das die Anzahl der Teiler eingegebenen natürlichen Zahl n ausgibt. (Teileranzahl.cpp)

30 - Staffelrechnung/Rechenturm

Erstelle ein Programm, das eine Staffelrechnung / einen Rechenturm durchführt. Der Benutzer gibt ein, mit welcher Zahl er die Staffelrechnung beginnen will und bis zu welcher Multiplikation die Rechnungen durchgeführt werden:

Z.B.
Anfangszahl: 385
Multiplikationen bis: 6

Ausgabe:

385*2=770
770*3=2310
2310*4=9240
9240*5=46200
46200*6=277200
277200/2=138600
138600/3=46200
46200/4=11550
11550/5=2310
2310/6=385

31 - verschachtelte Schleifen

Rechteck

Schreibe ein Programm, das mit Sternchen ein Rechteck ausgibt! Das Programm soll Breite, Höhe und einen Versatz einlesen. Der Versatz bestimmt, um viele Zeichenbreiten das gesamte Rechteck nach rechts verschoben wird.

Ein Rechteck
 
    Breite? 
    17
 
    Hoehe? 
    4
 
    Versatz? 
    2
 
      ***************** 
      ***************** 
      ***************** 
      *****************

Parallelogramm

Schreibe ein Programm, das mit Sternchen ein Parallelogramm ausgibt! Das Programm soll die Breite, Höhe und die Versatzänderung (die Verschiebung nach rechts pro Zeile) einlesen.

Ein Parallelogramm
 
    Breite? 
    11
 
    Hoehe? 
    5
 
    Versatzaenderung? 
    1
 
    *********** 
     *********** 
      *********** 
       *********** 
        ***********

Dreieck

Schreibe ein Programm, das mit Sternchen ein Dreieck ausgibt! Das Programm soll die Höhe und die Verbreiterung pro Zeile einlesen.

Ein Dreieck
 
    Hoehe? 
    6
 
    Verbreiterung? 
    1
 
    * 
    ** 
    *** 
    **** 
    ***** 
    ******

32 - Regelmäßige Zahlungen

Schreibe ein Programm, das den Betrag eines regelmäßigen jährlichen Einzahlungsbetrages, die Verzinsung und den gewünschten Endbetrag einliest und ausgibt, nach wie vielen Jahren der gewünschte Endbetrag erreicht (oder erstmals überschritten) ist.

Am Anfang des ersten Jahres wird zunächst ein Einzahlungsbetrages, z.B. 1000 Euro, eingezahlt. Am Ende des ersten Jahres (nach einem Jahr) kommt der Zins, bei 5 % z.B. 50 Euro, und ein weiterer Einzahlungsbetrag, wieder 1000 Euro, hinzu. Nach einem Jahr ist der Kontostand dann also beispielsweise 1000 + 50 + 1000 Euro = 2050 Euro. Sollten also beispielsweise 2000 Euro angespart werden, so wäre dies unter diesen Umständen nach einem Jahr erreicht.

Man kann also in einer Schleife die Jahre mitzählen und den Kontostand fortschreiben. Dann kann man jedesmal prüfen, ob der gewünschte Endbetrag schon erreicht oder überschritten wurde und gegebenenfalls die Zahl der abgelaufenen Jahre und den Kontostand ausgeben. In der Endfassung darf das Programm aber nichts anderes ausgeben als das Endergebnis (keine Zwischenstände).

Das Programm muß auch dann eine richtige (sinnvolle) Antwort geben, wenn der gewünschte Endbetrag kleiner oder gleich dem Einzahlungsbetrag ist.

Die Lösung der Übungsaufgabe sollte mindestens mit den beiden folgenden Testsituationen geprüft werden und muß dann identische Ergebisse liefern.

Beispiel 1
 
    jaehrlicher Zahlbetrag? 
    1000
 
    Verzinsung, in Prozent? 
    5
 
    gewuenschter Endbetrag? 
    2000
 
    Es wird 1 Jahr benoetigt. 
    Der erreichte Endbetrag ist dann 2050.
 
 
Beispiel 2
 
    jaehrlicher Zahlbetrag? 
    100
 
    Verzinsung, in Prozent? 
    5
 
    gewuenschter Endbetrag? 
    10000
 
    Es werden 36 Jahre benoetigt. 
    Der erreichte Endbetrag ist dann 10162.8.

33 - Statistische Kenndaten

Schreibe Sie ein Programm, das in einer Schleife solange natürliche Zahlen einliest, bis -1 eingegeben wird und dann Maximum, Minimum und das arithmetische Mittel der Zahlen ausgibt. Da die Zahl -1 nur als Stoppwert verwendet wird, soll sie bei der Statistik nicht berücksichtigt werden.

Hinweis: Wenn die Variablen summe und n beide vom Typ integer sind, dann wird bei einer Division das Ergebnis (arithmetisches Mittel am) auch ganzzahlig berechnet. Um dies zu verhindern konvertiert man den Zähler mittels (float).

 am=summe/(float)n;

34 - Harshad-Zahlen

Eine natürliche Zahl, die durch ihre eigene Ziffernsumme teilbar ist, heißt Harshad- oder Niven-Zahl.
Zum Beispiel:
777 ist durch 7 + 7 + 7 = 21 teilbar und damit eine Harshad-Zahl.

Schreibe ein Programm, das alle Zahlen bis n testet, ob sie Harshad-Zahlen sind. Das Programm soll alle Harshad-Zahlen ausgeben.

35 - Werfen von 2 Würfeln

Stochastische Feststellung: Kommt die 7 wirklich am häufigsten vor?

Wenn man mit 2 Würfeln würfelt, so tritt die 7 am häufigsten auf.

Wie oft tritt welche Zahl auf, wenn man n mal würfelt?

Werfen von 2 Würfeln...
Gib an, wie oft gewürfelt werden soll: 100
Gib an, welche Summe gezählt werden soll: 6

Insgesamt kam die Augensumme 6 genau 12 mal vor.

36 - Prüfen der Sozialversicherungsnummer

Schreibe ein Programm, welche die Gültigkeit einer Sozialversicherungsnummer prüft.
Der Benutzer gibt die Sozialversicherungsnummer ein, das Programm gibt aus, ob es sich um eine gültige Sozialversicherungsnummer handelt.

Informationen zur Sozialversicherungsnummer:

http://www.pruefziffernberechnung.de/V/VSNR-AT.shtml

37 - Zählen

Schreibe ein Programm, das in einer Schleife eine Variable von 0 beginnend solange hochzählt, bis der Benutzer ein 'X' oder 'x' eingibt. Gib anschließend den Wert der Variable über den Standard-Ausgabekanal (stdout) aus.

Erweiterung: Der Benutzer gibt zuerst eine Zahl ein, die er anschließend versucht zu erreichen, in dem er das Programm rechtzeitig stoppt.

38 - Buchstabieren

Schreibe ein Programm, das in einer Schleife eine Variable von 'a' beginnend solange hochzählt, bis der Benutzer ein 'X' oder 'x' eingibt. Implementiere das Buchstabieren bzw. Hochzählen der Variable so, dass nach einem 'z' wieder von vorne mit einem 'a' begonnen wird. Gib anschließend den Wert der Variable über den Standard-Ausgabekanal (stdout) aus.

Erweiterung: Der Benutzer gibt zuerst einen Buchstaben ein, den er anschließend versucht zu erreichen, in dem er das Programm rechtzeitig stoppt.

39 - Zahlen raten

Schreiben Sie mithilfe einer Schleife ein kleines Spiel. Der Spielablauf ist wie folgt:

40 - Getränkeautomat

Stelle dir vor, du hast die Aufgabe eine Software für einen Getränke-Automaten zu schreiben. Der Automat spuckt gegen Geldmünzen Getränkeflaschen aus.

41 - Sternfunktion

Schreibe ein Programm, welches folgende Ausgabe liefert:

**********
Einleitung:
**********
Hauptteil:
**********
Schluss:
**********

Die Sterne sollen jeweils mit Hilfe eines Unterprogramms/einer Funktion ausgegeben werden.

42 - Sternfunktion erweitert

Modifiziere das bereits erstellt Programm „Sterne“ so, dass der Benutzer festlegen kann, wie viele Sterne an beliebiger Stelle ausgegeben werden. Verwende dafür eine Funktion mit Parameter.

43 - Gerade/Ungerade Zahl

Schreibe ein Programm, welches mit Hilfe einer Funktion überprüft, ob die vom Benutzer eingegebene Zahl gerade ist.

44 - Drehkegel mit Funktion und Übergabe per Wert

Schreibe ein Programm (Drehkegel.cpp), das die Oberfläche und das Volumen eines Drehkegels ausgibt, wenn der Benutzer den Radius und die Höhe eingibt! Drehkegel

Die Berechnung der Oberfläche soll in einer eigenen Funktion erfolgen.

void oberflaeche(float r, float h){
....
}
void volumen(float r, float h){
....
}

Hinweis:

  1. $O = r^2\cdot \pi + r \cdot s \cdot \pi = r \cdot \pi \cdot (r+s)$ wobei $s$ die Längelinie ist $s = \sqrt{r^2+h^2} $
  2. Die Quadratwurzel wird mit der in der Mathematikbibliothek ( #include <math.h> ) enthaltenen Funktion sqrt() berechnet!

45 - Drehkegel mit Funktion und Übergabe per Referenz

Schreibe ein Programm (Drehkegel.cpp), das die Oberfläche und das Volumen eines Drehkegels ausgibt, wenn der Benutzer den Radius und die Höhe eingibt! Drehkegel

Die Berechnung der Oberfläche und des Volumens soll in einer Funktion erfolgen. Wähle die Parameter so, dass man die beiden Ergebnisse anschließend im Hauptprogramm ausgeben kann.