Aufgaben zur UE
Einführung in die Programmierung
Legen Sie alle Programme so aus, dass der Benutzer die geforderten
Berechnungen beliebig oft durchführen kann, ohne das Programm jedes mal
neu zu starten.
Anspruchsvollere Aufgaben sind mit einem Stern gekennzeichnet.
-
Anweisungen
Erstellen Sie C++ Programme für folgende Problemstellungen:
-
Sortieren Sie 3 Zahlen ohne Verwendung von logischen Operatoren.
-
Schreiben Sie ein Programm, das eine vierstellige ganze Zahl einliest und ihre sprachliche Repräsentation ausgibt.
z.B. Eingabe 1723
Ausgabe eins-sieben-zwei-drei.
-
Schreiben Sie ein Programm zur Lösung der quadratischen Gleichung x2+px+q=0 (Achtung: eventuelle komplexe Lösungen beachten)
Anmerkung:
In der Klassenbibliothek math.h befindet sich die Funktion sqrt(), die
zur Berechnung der Quadratwurzel dient. Der übergebene Wert sollte
nicht kleiner als 0 (Null) sein, sonst wird ein Fehler ausgelöst.
-
Berechnen Sie die Fakultät von n mit Hilfe einer Schleife
- Erstellen Sie die Additionstabelle und die
Multiplikationstabelle modulo n. Die Ausgabe für n=4 könnte zum
Beispiel so aussehen:
Addition:
0 1 2 3
1 2 3 0
2 3 0 1
3 0 1 2
Multiplikation:
0 0 0 0
0 1 2 3
0 2 0 2
0 3 2 1
-
Lesen Sie 2 Intervallgrenzen und danach beliebig viele Zahlen
(Abschluss mit 0) ein, und geben Sie aus, wie viele Zahlen kleiner als
die untere Intervallgrenze, wie viele im Intervall und wie viele größer
als die obere Intervallgrenze waren.
-
Überprüfen Sie, ob die Folge
ni+1 = ni / 2 für gerade ni
ni+1 = 3ni + 1 für ungerade ni
für unterschiedliche (beliebige) positive Startwerte n1 immer den Wert 1 erreicht.
-
Bestimmen Sie, ob eine eingegebene natürliche Zahl eine Primzahl ist.
-
Bestimmen Sie den Wert

(also 11+22+33+...+nn) für eine beliebige natürliche Zahl n.
- Lesen Sie beliebig viele Zahlen (Abschluss mit 0) ein, und
geben Sie das Maximum, das Minimum und den Mittelwert der eingegebenen
Werte aus.
- Schreiben Sie ein Programm, das einen ganz simplen
Taschenrechner simuliert. Eingegeben wird ein mathematischer Ausdruck,
der Zahlen und die binären Operatoren +,-,* und / enthält. Der Ausdruck
wird durch ein Rufzeichen abgeschlossen. Das Programm soll das Ergebnis
des Ausdrucks berechnen, wobei die Operationen strikt von links nach
rechts durchzuführen sind. (Das heißt, es gilt nicht Punkt- vor Strichrechnung! Vgl. dazu Bsp. 15)
z.B. Eingabe: 2+3-4/2*3-1! Ausgabe: 0.5
-
Schreiben Sie ein Programm, das eine natürliche Zahl einliest und die
größte Zweierpotenz ausgibt, die die eingelesene Zahl teilt.
Eingabe
|
Ausgabe
|
17
|
1
|
48
|
16
|
1024
|
1024
|
-
Eine Zahl heißt perfekt, wenn die Summe ihrer echten Teiler (das sind
alle Teiler, die kleiner als die Zahl selbst sind) gleich groß ist, wie
die Zahl. Zum Beispiel ist 6 eine perfekte Zahl, da 6=1*2*3 und
1+2+3=6. Falls die Summe der echten Teiler kleiner ist als die Zahl,
heißt die Zahl defizient. Falls die Summe der echten Teiler größer ist
als die Zahl, heißt die Zahl abundant. Schreiben Sie ein Programm, das
eine natürliche Zahl einliest und ausgibt, ob die eingelesene Zahl
perfekt, defizient oder abundant ist.
Eingabe
|
Ausgabe
|
Begründung
|
5
|
defizient
|
1 ist einziger echter Teiler
|
6
|
perfekt
|
1+2+3=6
|
12
|
abundant
|
1+2+3+4+6=16>12
|
- *
Schreiben Sie ein Programm, das beliebig viele ganze Zahlen (Abschluss
mit 0) einliest und die Anzahl der Inversionen in der eingegebenen
Zahlenliste ausgibt. Als Inversionen für eine bestimmte Zahl (Ausgangszahl)
der Liste bezeichnen wir alle Zahlen, die in der Liste nach der Ausgangszahl
stehen und kleiner sind als diese.
Zum Beispiel:
Eingabe: 5 3 2 7 8 Ausgabe: 3
Da 3 hinter 5 steht, 2 hinter 5 steht und 2 hinter 3 steht.
- *
Wie Beispiel 2 allerdings für beliebige reelle Zahlen.
z.B. Eingabe 17.23
Ausgabe: eins-sieben-komma-zwei-drei.