# Aufgaben zur UE
Einführung in die Programmierung

Anspruchsvollere Aufgaben sind mit einem Stern gekennzeichnet.

##
2. Datentypen, Variablen, Ausdrücke

Erstellen Sie C++ Programme für folgende Problemstellungen:

1. Schreiben Sie ein Programm, das zwei Zahlen m und n einliest und die n-te Ziffer der Zahl m ausgibt
   z.B. m=1358 n=2 Ausgabe: 5

2. Schreiben Sie ein Programm, das eine dreistellige Zahl einliest und mit Hilfe der Ziffernsumme überprüft, ob die eingegebene Zahl durch 3 teilbar ist.

3. Schreiben Sie ein Programm, das eine dreistellige Zahl einliest und die Zahl ausgibt, die durch Umkehrung der Ziffernfolge entsteht. (Also z.B.: Eingabe: 123 Ausgabe: 321)

4. m Arbeiter können x Stück eines Produktes in einer Stunde fertigen. Wieviel Stück können n Arbeiter in der gleichen Zeit herstellen?
   Für diese einfach Schlußrechnung hat ein (unbedarfter) Programmierer folgendes Programm geschrieben:
   #include
   main() {
   int Arbeiter, Stueck, ArbeiterFrage;
   cin >> Arbeiter >> Stueck >> ArbeiterFrage;
   cout << Stueck/Arbeiter*ArbeiterFrage;
   }
   Nun erhält er aber für m=10 x=5 und n=2 die (mathematisch) falsche Antwort 0. Schlagen Sie zwei verschiedene Möglichkeiten vor, den auszugebenden Audruck so zu verändern, dass die Reihenfolge der Operationen unverändert bleibt, das Programm aber (für beliebige Eingaben) das korrekte Ergebnis liefert. Beweisen Sie das, indem Sie ein entsprechend verbessertes Programm implementieren.

5. Lesen Sie die Koordinaten zweier Punkte im R3 ein und berechnen Sie den Abstand der beiden Punkte voneinander.

6. Berechnen Sie ax2+bx+c mit Hilfe des Horner-Schemas für beliebige Eingaben von a,b,c und x.

7. Schreiben Sie ein Programm zur Umrechnung von Schilling in Euro. Geben Sie das Ergebnis formatiert in Euro und Cent aus. (Betragsteile kleiner als ein Cent können Sie ignorieren.)

8. Schreiben Sie ein Programm zur Umrechnung von Sekunden in die entsprechende Anzahl von Jahren, Tagen, Stunden, Minuten und Sekunden und umgekehrt. (Gehen Sie davon aus, dass ein Jahr immer 365 Tage hat. Schaltjahre bleiben also unberücksichtigt.)

9. Eine etwas verbissene Roulettespielerin setzt immer einen fixen Betrag auf die Zahl 0. Das macht sie so lange, bis diese Zahl endlich geworfen wird. Schreiben Sie ein Programm, das den Betrag und die Anzahl der benötigten Versuche einliest und daraus den Gewinn bzw. den Verlust der Roulettespielerin berechnet.

10. Ein Bierversand verkauft Fässer mit jeweils n Liter Fassungsvermögen. Die Kunden können beliebige Mengen in ganzen Litern bestellen. Schreiben Sie ein Programm, das n und eine Bestellmenge einliest und die Anzahl der benötigten Fässer berechnet. (Verwendung einer if-Anweisung ist erlaubt.)

11. Lesen Sie eine double Zahl ein und bestimmen Sie, ob der Benutzer eine ganze Zahl eingegeben hat oder nicht. (Also z.B. Eingabe: 3.7 Ausgabe: Keine ganze Zahl. Eingabe: 5 Ausgabe: Eine ganze Zahl.)

12. Lesen Sie zwei ganze Zahlen ein und ermitteln Sie, ob die zuletzt eingegebene Zahl ein Teiler der zuerst eingegebenen Zahl ist. (z.B. Eingabe: 7 3 Ausgabe: 3 teilt 7 nicht. Eingabe: 15 5 Ausgabe: 5 teilt 15.)
13. * Schreiben Sie einen Ausdruck (also keine if-Anweisung oder ähnliches), der eine Zahl x kaufmännisch korrekt rundet (also aufrunden ab 0.5 und abrunden darunter).

14. * Berechnen Sie den Ausdruck 2147483647+1 jeweils unter Verwendung der Datentypen int, unsigned und double. Vergleichen und interpretieren Sie die Ergebnisse.

15. * Ein Bierversand verkauft Fässer mit jeweils n Liter Fassungsvermögen. Die Kunden können beliebige Mengen in ganzen Litern bestellen. Schreiben Sie ein Programm, das n und eine Bestellmenge einliest und die Anzahl der benötigten Fässer berechnet. (Verwendung einer if-Anweisung oder einer bedingten Auswertung ist nicht erlaubt.)