Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Kellox_Smacks« (31.05.2006, 16:59)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Kellox_Smacks« (31.05.2006, 18:39)
![]() |
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
#include<iostream.h> intro(); calculate(); main() { intro(); calculate(); while (true) ; // Endlosschleife, verhindert Schliessen des Fensters } intro() { cout << "Roemische Zahlendarstellung mit Basis 8\n\n" << "Eine eingegebene positive Zahl wird\n" << "in eine roemische Darstellung umgewandelt.\n" << "A steht fuer 1 (8^0),\n" << "B fuer 4 (0.5 * 8^1), C fuer 8 (1 * 8^1),\n" << "D fuer 32 (0.5 * 8^2), E fuer 64 (1 * 8^2) usw.\n" << "Aus 5 wird zum Beispiel BA, aus 7 BAAA.\n" << "\n" << "Loesungsansatz:\n" << "- formuliere 8er-Potenzen in 2er-Potenzen um, \n" << " um so etwas wie eine Binaerdarstellung zu erreichen\n" << "- A = 2^0, B = 2^2, C = 2^3, D = 2^5, E = 2^6, ...\n" << "- einzelne 2er-Potenzen fehlen: 2^1, 2^4, 2^7, 2^10., ...\n" << "- also bis zu dreimal 2^0, 2^3, 2^6, 2^9, ... noetig, \n" << " um fehlende Potenzen zu ersetzen\n"; } calculate() { // Lösungsansatz: siehe intro() int i; // Zähler in den for-Schleifen char roman[50]; // Feld, das Ausgabe enthält, 50 Buchstaben sollten genug sein int pos = 0; // Position im Ausgabe-Feld char letter = 65; // A ist 65, B 66, C 67... cout << "\nBitte geben Sie eine natuerliche Zahl ein: "; int number; cin >> number; int n = number % 4; // Rest bei Division durch 4, 0 für Zahl durch 4 teilbar, sonst 1 bis 3 for (i = 0; i < n; i++) { // A hinzufügen, mindestens keinmal, höchstens dreimal roman[pos] = letter; pos++;} number = number / 4; // letzte beide Binärstellen wegwerfen while (number > 0) { // solange mehr Buchstaben nötig letter++; // nächster Buchstabe if (number % 2 == 1) { // number ist ungerade, also braucht man ein B, D, F, ... roman[pos] = letter; pos++;} letter++; number = number / 2; // letzte Binärstelle wegwerfen n = number % 4; // Anzahl der nötigen C, E, G, ... for (i = 0; i < n; i++) { roman[pos] = letter; pos++;} number = number / 4;} // wieder zwei Binärstellen wegwerfen pos--; // steht eins zu weit, da von while-Schleife immer eins weiter gesetzt wird cout << "\nErgebnis: "; while (pos > -1) { // Ausgabe rückwärts, solange noch Zeichen da cout << roman[pos]; pos--;} } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sheep« (02.06.2006, 17:12)
Zitat
Original von kOa_Borgg
Warum sollte einem VC++ nicht zusagen?? Ist imho das beste was es gibt. Im Zusammenhang mit Visual Assist (www.wholetomato.com) ist das unschlagbar. Weder unter Windows noch unter Linux gibt es eine kompfortablere IDE.
Zitat
Du bist als Student übrigens in der Lage MS-VisualStudio-Standart legal kostenlos zu erwerben. www.msdnaa.de . Frag mal bei deiner Uni nach, ob sie an diesem Programm teilnimmt.
Zitat
Original von Sheep
Zitat
Original von kOa_Borgg
Warum sollte einem VC++ nicht zusagen?? Ist imho das beste was es gibt. Im Zusammenhang mit Visual Assist (www.wholetomato.com) ist das unschlagbar. Weder unter Windows noch unter Linux gibt es eine kompfortablere IDE.
Auf den ersten Blick scheint dieser Visual Assist ähnlich mächtig wie die Umgebung von Eclipse zu sein - und Eclipse hat für mich den Vorteil, dass ich es gewohnt bin.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »kOa_Borgg« (06.06.2006, 20:52)
Zitat
Original von kOa_Borgg
2 Dinge die mir bei Eclipse fehlen:
1)
Wenn ich am Tippen einer Variablen oder Funktion bin muss ich die bei VC+VA nicht ausschreiben. Der bietet mir schon nach den ersten 2 Buchstaben ein Dropdown an. Das _kann_ ich annehmen oder tippe einfach weiter. Hab ich bei Eclipse nicht bemerkt/gefunden. Da kommt nur (und das mit gefühlt längerer Verzögerung - unter Linux KDE) ein dropdown auf members von "fertig getippten" Objekten. Auch die Ersetzung "->" für "." bei Pointern fehlt mir.
2)
Syntax Highlighting für Funktionen und eigene Klassen.
Hab ich das nur übersehen oder gibts das wirklich nicht?