Römische Ziffern

Übersicht BlitzBasic Codearchiv

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

 

timmeTheOnly

BeitragDo, Nov 16, 2006 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
... Ich habe alles nut überflogen, aber ich weiß, dass NIE mehr als drei Ziffern hinreeinander stehen dürfen (IVCL statt CXXXXVI)

MfG
T-Master

shure_kyu

Newsposter

BeitragDo, Nov 16, 2006 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
47 ist XLVII

und damit hier nicht ständig irreführungen mit den regeln passieren hier mal ne ganz gute seite zu dem thema + umrechner zum nachprüfen

http://www.diaware.de/html/roemzahl.html

und nebenbei wenn ihr den rechner komplettieren wollt könnt ihr ja noch die zusatz zeichen "user posted image user posted image user posted image user posted image" darstellen

_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________
◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de
¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯
BBP-RSS FEED Halt dich auf dem laufenden!
(C)Shure_kyu

Black Spider

BeitragDo, Nov 16, 2006 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Mr.Keks hat Folgendes geschrieben:
wie du auf http://de.wikipedia.org/wiki/R...tionsregel nachlesen kannst, geht die subtraktionsregel anders: sie gilt nicht nur bei IV, sondern auch bei allen anderen ziffern.

soll heißen: man muss zuerst spion-atoms code laufen lassen und dann nochmal den ganzen string durchgehen, ob da vier gleiche zeichen aufeinander folgen, die nicht die höchste ziffern sind. ist dies der fall, so kommt die subtraktionsregel zum tragen. (also drei zeichen entfernen und einmal das nächsthöhere zeichen einfügen.)


ja, aber was ich meinte sollte eig. klar gewesen sein. Es fehlten wirklich nur ein paar Zeilen und das wars.
Außerdem finde ich die jetzige funktion die Zuletzt gepostet wurde eigentlich sehr gut und vollkommen ausreichend;
mal ehrlich, wer braucht denn schon Römische Zahlen bis 10000 in seinem Spiel,
und selbst wenn würde es denn meisten nicht auffallen wenn 47 IIIL statt
XLVII oder was auch immer wäre...

Egal, ist auf jedenfall was schönes bei rausgekommen ^^
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

5k41

BeitragDo, Nov 16, 2006 19:32
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, registriert, bei mehr als 3 Ziffern überleg ich mir nochwas...

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

5k41

BeitragSa, Nov 18, 2006 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Erstmal sorry wegen Doppelpost!
Hab mich grad durch die Site gequält und nun wollt ich wissen, welche regel ich beachten soll:
http://www.diaware.de/html/roemzahl.html hat Folgendes geschrieben:
Besondere Regel: (wird hauptsächlich an Schulen gelehrt)
I steht nur vor V und X
X steht nur vor L und C
C steht nur vor D und M

oder
http://www.diaware.de/html/roemzahl.html hat Folgendes geschrieben:
Bsp: falsch: XCIX = 99; richtig: IC = 99
Bei der Beachtung der besonderen Regel 7, gilt diese Regel 9 nicht.

Also mir ist ja letztere lieber... was mein ihr?

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

5k41

BeitragDo, Nov 23, 2006 15:35
Antworten mit Zitat
Benutzer-Profile anzeigen
~Update~
Bin zwar lange nicht so weit wie ich gern wär ( das subtraktionsgesetz ist nicht so einfach wie ich dachte ), aber hab den alten code nochmal optimiert ( siehe erster post ), der neue ist nun komplett anders, hat aber halt noch seine Fehler ( subtraktionsgesetz springt bei z.b. 50 ein und schreibt VLV was ja irgendwo auch richtig ist Razz ) ( wenn wer lust hat mir zu helfen: gern! )
Code: [AUSKLAPPEN]

Local number = 50
Global arraysize = 6
Dim Presets$(arraysize,1)
Initpresets()
update = 1
While Not KeyDown(1)
   If update = 1
      Cls
      Locate 0,0
      Print number
      Print RomeNumbers(number)
      update = 0
   EndIf
   
   If KeyDown(200) Then number = number +1:Delay 200:update = 1
   If KeyDown(208) Then number = number -1:Delay 200:update = 1
Wend

Function Initpresets()
   
   Presets$(0,0) = "1"    : Presets$(0,1) = "I"
   Presets$(1,0) = "5"    : Presets$(1,1) = "V"
   Presets$(2,0) = "10"   : Presets$(2,1) = "X"
   Presets$(3,0) = "50"   : Presets$(3,1) = "L"
   Presets$(4,0) = "100"  : Presets$(4,1) = "C"
   Presets$(5,0) = "500"  : Presets$(5,1) = "D"
   Presets$(6,0) = "1000" : Presets$(6,1) = "M"
   
End Function

Function RomeNumbers$(number,strg$="")

   If number <= 0 Then Return strg$
   
   Local temp
   Local temp2
   
   If number > Int(Presets(arraysize,0)) Then Return RomeNumbers$(number - Int(Presets(arraysize,0)),strg$ + Presets(arraysize,1))
   
   For x = 0 To arraysize
      
      If number = Int(Presets(x,0)) Then Return strg$ + Presets(x,1)
      
      For y = 1 To x+1
         
         If number < Int(Presets(x+1,0)) Then
            
            temp2 = Int(Left(Presets(x+1,0),1))
            
            If temp2 = 1 Then
               temp2 = Int(Presets(x+1,0)) / 10
            Else   
               temp2 = Int(Presets(x+1,0)) / temp2   
            EndIf
               
            temp  = Int(Presets(x+1,0)) - Int(Presets(x+1-y,0))
            
            If Int(Presets(x+1,0)) - temp <= temp2 Then
            
               If number - temp => 0 And number - temp < temp2 Then
                  
                  Return RomeNumbers$(temp, strg$ + Presets(x+1-y,1) + Presets(x+1,1) )   
                  
               EndIf
            EndIf
               
         EndIf
         
      Next
      
      If number > Int(Presets(x,0)) Then
         If number < Int(Presets(x+1,0)) Then
            
            Return RomeNumbers$(number - Int(Presets(x,0)),strg$ + Presets(x,1))
            
         EndIf
      EndIf
   
   Next
   
   
   Return strg$
   
End Function


MfG

~Edit~
Bei dem Code kann nun jeder neue Zahlen einbauen, es muss nur die Arraysize geändert werden und die Zahlen nach dem Muster in die InitPresets eingefügt werden!
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group