Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » RömischE zahlen

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 ] > 2 <
010
02.11.2009, 18:55 Uhr
0xdeadbeef
Gott
(Operator)


Du wirst verstehen, dass mir das ganze zu sehr nach einer Hausaufgabe aussieht, um es einfach zu lösen. Da es aber wohl um Struktogramme geht (deren Beschreibung du dir womöglich noch mal genauer ansehen willst), kann ich dir wohl eine Algorithmusbeschreibung vorgeben:

(r[0], ..., r[12]) sei ("M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I")
(a[0], ..., a[12]) sei (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1)
x sei die Eingabezahl

dann funktioniert folgender Algorithmus:

Code:
A1: Setze e = "", i = 0
A2: Solange x > 0, führe Schritte A3 - A6 aus, danach fahre mit A7 fort
A3:   Solange x >= a[i], führe Schritte A4 - A5 aus, danach fahre mit A6 fort
A4:     Setze x = x - a[i]
A5:     Setze e = e + r[i] (+ meint hier String anhängen)
A6:   Setze i = i + 1
A7: e ist das Ergebnis


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 02.11.2009 um 18:56 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
03.11.2009, 17:22 Uhr
~cobraturk14
Gast


kann mann es auch anders machen?

dass mann die eingegebene zahl abzieht und was ausgibt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
03.11.2009, 17:58 Uhr
0xdeadbeef
Gott
(Operator)


Ich verstehe nicht ganz, was du meinst.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
03.11.2009, 19:57 Uhr
~cobraturk
Gast


http://img692.imageshack.us/img692/5684/romisch.jpg


und stimmt das so?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
03.11.2009, 20:05 Uhr
0xdeadbeef
Gott
(Operator)


Naja, wenn du's so aufziehst, kannst du dir die Arrays und die äußere Schleife sparen. Die Verzweigung ist allerdings keine Schleife, da benutzt du das falsche Struktogrammelement - das sollte etwa so aussehen:

Code:
+-----------+
|\ x <= 0  /|
| \       / |
|  \     /  |
|   \   /   |
|ja  \ /nein|
+-----v-----+
| Feh-| Rest|
| ler |     |
+-----+-----+


Naja, ich kann das jetzt in ASCII-Zeichen nicht so schön darstellen.

Allerdings kommste da schon nah an eine Lösung dran.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
05.11.2009, 22:10 Uhr
0xdeadbeef
Gott
(Operator)


Okay, unter der Annahme, dass sich das mit der Hausaufgabe inzwischen erledigt hat, so hätte ich das angefangen:

Code:
________________________________________________________________________________
| av[] = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 }              |
|______________________________________________________________________________|
| rv[] = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV",   |
|          "I" }                                                               |
|______________________________________________________________________________|
| i = 0                                                                        |
|______________________________________________________________________________|
| r = ""                                                                       |
|______________________________________________________________________________|
| Eingabe x                                                                    |
|______________________________________________________________________________|
| x > 0                                                                        |
| _____________________________________________________________________________|
| | x > av[i]                                                                  |
| | ___________________________________________________________________________|
| | | r += rv[i]                                                               |
| | | x -= av[i]                                                               |
| |_|__________________________________________________________________________|
| | ++i                                                                        |
|_|____________________________________________________________________________|
| Ausgabe r                                                                    |
|______________________________________________________________________________|


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


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: