Prof. Dr. H. Weber

Werbung
Prof. Dr. H. Weber
Praktikum Programmieren 1 in C, WS 2004/05
Übungsblatt 8
_____________________________________________________
 Aufgabe 23
In diese Aufgabe wird ein Problem aus der LV Einführung in die Informatik praktisch
programmiert. Es geht um die Konvertierung von gebrochenen Zahlen aus dem
Dezimalsystem in eine Zahlsystem zur Basis B (2 <= B <= 16), vgl. Kap. 3.3.2 (Skript
Prof. Kröger/Werntges). Wir zitieren:
- Getrennte Behandlung von Vorkommateil und Nachkommateil der Zahl
- Vorkommateil ist natürliche Zahl, Umwandlung durch Rechnen in Quellsystem:
Beispiel:

Konvertiere 12210 zur Basis B = 5
Schritt
122
24
4
/B
/5
/5
/5
Quotient
24
4
0
Rest
2
4
4
 12210 = 4425

Horner-Schema für Brüche
- Grundlage:
1
z
b B  (( ... (b
i
i
M
/ B  b M  1 ) / B  ...  b 2 ) / B  b 1 ) / B
iM
- Verfahren:
 Schrittweise Multiplikation von z  Q mit der Zielbasis B
Schritt
Multipl.
Produkt (Bruchteil)
Ganzteil bi
1
2
...
M-1
M
z*B
((...(b-M / B + b-M+1) / B + ... + b-3) / B + b-2) / B
(...(b-M / B + b-M+1) / B + ... + b-3) / B
...
b-1
b-2
...
b-M / B
0
b-M+1
b-M
z*B
...
2
z * BM-1
z * BM
 z = (0, b-1, b-2, ... , b-M)B
- Weitere Probleme:
 Anzahl der notwendigen Schritte nicht von vornherein bekannt
 Ein gegebener endlicher Bruch muss zur Zielbasis nicht endlich sein
a) Entwerfen Sie eine Programmstruktur zur Lösung des vorangestellten Problems
und zeichnen Sie die entsprechenden Struktogramme.
b) Schreiben Sie ein C-Programm. Zur Speicherung der Zahlen im Zielsystem verwende man Strings!
Einheften in Praktikumsordner: Struktogramm, Programmlisting, Resultate.
Herunterladen