Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Stellenwertsysteme

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
01.06.2004, 16:33 Uhr
Blad



Hallo!

Hab eine Aufgabe bekommen, hab aber überhaupt keinen Plan, was ich machen muss.

Hier die Aufgabenstellung:

Schreiben Sie ein Programm, das eine positive, ganze Zahl zu einer beliebigen Basis
2<gleich n <gleich16 in eine Darstellung bezüglich einer anderen Basis 2<gleich m <gleich16 umrechnet.

Lesen Sie die Ausgangs- und Zielbasis der Zahl, sowie die Zahl in der Ausgangsbasis von der Kommandozeile der Betriebssystem Konsole ein. Fangen Sie mögliche Fehler bei der Eingabe ab. Beispiel für Hex-->Oktal: C>convert 16 8 1d9ef

Schreiben Sie den Algorithmus zur Umrechnung der Stellenwertsysteme in eine Funktion.

Im Hauptprogramm prüfen Sie den Inhalt der Kommandozeile, rufen Ihre Funktion auf und geben einen Text in der Form "<Zahl(Ausgangsbasis)>entspricht<Zahl(Zielbasis)>" aus.

Testen Sie Ihr Programm insbesondere mit dem Dezimal-, Oktal- und Hexadezimalsystem, indem Sie Ihre Ergebnisse mit der formatierten Ausgabe der Standardbibliothek vergleichen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.06.2004, 17:08 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ich weiss spontan gar nicht obs dafür schon ne fertige formel gibt...

naja was auf jeden fall geht ist die zahlen erst nach dezimal umzuwandeln und dann in die entsprechende basis umwandeln...

um auf die darstellung der zahl in dezimalzahl zu kommen musst du einfach nur jeder stelle der eigegebnen zahl mit basis hoch stelle gewichten...

also wenn 210 im 3er system eingegeben wurde einfach 2*3^2+ 1*3^1 + 0* 3^0;

dann hast du es dezimal... um von dezimal in eine andere basis umzurechnen einfach den spass mit dem so oft teilen bis nix mehr übrig bleibt und die reste von der teilerei ergeben deine neu zahl...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.06.2004, 17:10 Uhr
ao

(Operator)


Du sollst erstens die Kommandozeilen-Argumente auswerten:

C++:
int main (int argc, char * argv [])
{
    /* hier hantieren mit argc und argv, um
       Ausgangsbasis, Zielbasis und Zahlenwert
       auszutüfteln. */

    return 0;
}


... und zweitens eine Funktion schreiben, die aus einem String eine Zahl macht (unter Verwendung der Ausgangsbasis) und aus dieser Zahl wieder einen String (unter Verwendung der Zielbasis). Beispiel:

Aus "256" (Basis 10) wird der Zahlenwert 256.
Aus 256 wird "100" (Basis 16).

Ausgabe: "256 (Basis 10) entspricht 100 (Basis 16)"

Tipp: Ich würde zwei Funktionen schreiben: StringToInt und IntToString und diese nacheinander aufrufen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.06.2004, 17:12 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@ao
äh atoi sscanf und sprintf gibts doch schon *kopfkratz* was muss ich denn da noch schreiben?
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 01.06.2004 um 17:13 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.06.2004, 17:48 Uhr
Blad



Wow!

Danke, danke für die ganzen Vorschlägen. Werd mal anfangen. Wenn ich dann immernoch Probleme hab, meld ich mich einfach wieder :-)

Blad
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
01.06.2004, 23:22 Uhr
ao

(Operator)



Zitat:
Windalf postete
@ao
äh atoi sscanf und sprintf gibts doch schon *kopfkratz* was muss ich denn da noch schreiben?

Oben stand "Schreiben Sie den Algorithmus ... in eine Funktion". Daraus hab ich einfach mal geschlossen, dass die Konvertierung selber programmiert werden sollte. Falls nicht: Mit itoa und strtol kann man das auch erledigen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.06.2004, 10:50 Uhr
Blad



Hi!

Ich verzweifel noch. Ich bekomm das Ganze hier nicht hin. Ist vielleicht jemand so fit bzw nett oder hat hat jemand ein bisschen Zeit sich das obige Problem mal näher anzuschauen und mir dann vielleicht ein "EinstiegsCode" liefern, oder vielleicht sogar ein komplettes Prog(Aber nur, wenn es euch nichts ausmacht)? Das wäre echt super. Langsam wird auch die zeitlich ein bisschen eng.


Blad
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
08.06.2004, 11:03 Uhr
virtual
Sexiest Bit alive
(Operator)


Wir haben noch kein einziges Stück Code von Dir gesehen, meiner Meinung nach solltest Du mal Zeigen, was du bisher hast, dann wird dir bestimmt auch geholfen...
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: