Du bist nicht angemeldet.

Werbeanzeige

Helmut

5x Contest-Sieger

Beiträge: 691

Wohnort: Bielefeld

  • Private Nachricht senden

21

21.10.2008, 20:29

Hi,
danke für die Funktion S.Seegel:) Ich hab die extra noch nicht geschrieben, weil ich mir schon dachte, dass sie jemand postet:)

Zur Belohnung ein Bugfix:): im letzten if muss ein "!text.empty() && " rein. Bei mir stürzt es zumindest sonst bei zB 4 ab, weil der rend itereator nicht dereferenziert werden darf.

Wer jetzt auch noch zu faul ist die Schleife über alle Zahlen zu machen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
    for(int i = MIN_NUMBER; i <= MAX_NUMBER; i++)
    {
        std::string roman;
        translate_number_to_roman(i, roman);
        const char* p_input = roman.c_str();
        const char** pp_input = &p_input;
        char german[128];//hoffentlich genug;)

        reference::translate_number(roman.c_str(), german);
        const char* p_correct_answer = german;
        const char** pp_correct_answer = &p_correct_answer;


Ciao
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

S.Seegel

2x Contest-Sieger

  • Private Nachricht senden

22

21.10.2008, 23:31

Danke für den Hinweis. Ich arbeite unter Linux, aktuell mit gcc Version 4.2.3, und dessen Implementation der C++-Standartbibliothek liefert bei Dereferenzierung eines rend Iterators eines leeren string reproduzierbar 0 :?

Helmut

5x Contest-Sieger

Beiträge: 691

Wohnort: Bielefeld

  • Private Nachricht senden

23

21.10.2008, 23:53

Ich steh übrigens bei [size=1]125[/size] Token (wer das liest verpflichtet sich automatisch seine Zahl hier auch zu posten:))

Ciao
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

David Scherfgen

Administrator

  • »David Scherfgen« ist der Autor dieses Themas

Beiträge: 10 184

Wohnort: Bonn

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

24

22.10.2008, 02:28

Nett!
Hab's gelesen, aber ich will ja keinem die Laune verderben ;)
Ob es jemand zweistellig schafft?

David Scherfgen

Administrator

  • »David Scherfgen« ist der Autor dieses Themas

Beiträge: 10 184

Wohnort: Bonn

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

25

22.10.2008, 11:07

Im Ausgabe-String gibt es jetzt pauschal 256 Zeichen Platz.
Bei mir hat der Debugger sonst schonmal komische Sachen gemacht, wenn man über das Ende hinausgeschrieben hat.

David Scherfgen

Administrator

  • »David Scherfgen« ist der Autor dieses Themas

Beiträge: 10 184

Wohnort: Bonn

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

26

22.10.2008, 12:43

Noch eine Klarstellung:
Das Speichern sowohl von Zahlennamen als von römischen Zahlen in Strings ist begrenzt. Da jeder Parser zumindest I, V, X, ... speichern muss, habe ich die Grenze angehoben. Es dürfen nun maximal 150 römische Zahlen und Zahlennamen insgesamt in Strings gespeichert werden. Unter "speichern" fällt jegliche Art der Speicherung, ob nun direkt lesbar oder irgendwie anders kodiert.

27

22.10.2008, 13:36

Tokencounter böse! :evil:
Hab allein für die Umrechnung Römisch -> Arabisch schon 170...
Aber es ist ja noch Zeit. Viel Zeit.

strlen, strcpy etc. gehören nicht zur Standard-Bib, oder?

David Scherfgen

Administrator

  • »David Scherfgen« ist der Autor dieses Themas

Beiträge: 10 184

Wohnort: Bonn

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

28

22.10.2008, 13:39

Doch, tun sie.
Anders gesagt:
Keine Funktion darf verwendet werden, die irgendeinen Header erfordert.

29

22.10.2008, 13:42

Gut. War mir nicht ganz sicher.
Aber das hat mich grad auf tolle Optimierungsgedanken gebracht. :)

30

22.10.2008, 14:45

Zitat von »"Helmut"«

Ich steh übrigens bei [size=1]125[/size] Token (wer das liest verpflichtet sich automatisch seine Zahl hier auch zu posten:))
Ciao

Hab [size=1]150[/size] Token, allerdings den Code zum parsen größenteils aus der Referenz übernommen und bis jetzt hauptsächlich den Ausgabeteil optimiert. Hab aber bis jetzt noch keine Idee, wie ich den Parser kurz bekomme. Der Switch-Block braucht *** viel Token...

Werbeanzeige