Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 22:38

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



römische Zahlen Algorithmus hilfe

Discussion on römische Zahlen Algorithmus hilfe within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2007
Posts: 485
Received Thanks: 1
römische Zahlen Algorithmus hilfe

Hey Leute,

also ich hab das problem, dass ich kein Plan habe wie ich mir ein Algorithmus
in Pseudocode für die umwandlung von römischen zahlen in dezimalzahlen zu erstellen. Dabei soll davon ausgegangen werden, dass eine richtige Zeichenfolge eingegeben wird, also keine besondere Prüfung der Regeln.

Das ganze von Dezimal -> Römisch hab ich schon geschafft, was sagt ihr dazu

Das ganze in Pseudocode:

Code:
Legende:
<- : Speicher in

Höchstmögliche RömischeZiffer [B]<-[/B] M = 1000, CM = 900 D = 500,
 CD = 400, C = 100, XC = 90, L= 50, XL = 40, X = 10, IX = 9,
 V = 5, IV = 4, I = 1 // mit Sonderfällen ( CM = 900, CD = 400…)

tempGanzzahlErgebnis [B]<-[/B] 0

x [B]<-[/B] Dezimalzahl

Ermittel Höchstmögliche RömischeZiffer

Wiederhole, Solange x [B]>=[/B] ermittelte Höchstmögliche RömischeZiffer 

	tempGanzzahlErgebnis [B]<-[/B] x dividiert durch ermittelte Höchstmögliche RömischeZiffer  

[B]gib[/B] tempGanzzahlErgebnis [B]multipliziert mit[/B] ermittelte Höchstmögliche RömischeZiffer [B]aus[/B]

x [B]<-[/B][B] subtrahiere[/B] (tempGanzzahlErgebnis [B]mutlipliziert mit [/B]ermittelte Höchstmögliche RömischeZiffer) [B]von[/B] x
Im Falle Römisch -> Dezimal fällt mir nix ein kann mir jemand helfen
thacoga is offline  
Old 10/29/2012, 17:05   #2
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
ehrlich gesagt weis ich nicht was der code soll, du ermitteslt vor der schleife einmal die "Höchstmögliche RömischeZiffer" , in der schleife machst du "tempGanzzahlErgebnis <- x dividiert durch ermittelte Höchstmögliche RömischeZiffer " was x nicht ändert, und ich sehe nichtmal eine variable in der die Römische ziffer gespeichtert wird

naja ich empfehle dir ausserdem sybole wie "*" oder "+" oder "-" statt "mutlipliziert mit" zu verwenden da es den code kürzer und damit besser lesbar macht.

gut an deinem code ist, dass du extrasymbole für z.B. "XC" oder "IX" einfühst was das problem vereinfacht
nkkk is offline  
Old 10/31/2012, 01:04   #3
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Zu viel Pseudo, zu wenig Code.
SmackJew is offline  
Old 10/31/2012, 07:15   #4
 
elite*gold: 103
Join Date: Oct 2012
Posts: 713
Received Thanks: 329
So oder so ähnlich würde es in C# aussehen.

PHP Code:
        public static int ToDecimal(string value)
        {
            if (
String.IsNullOrEmpty(value)) { return 0; }
            
int res 0;

            while (
value.StartsWith("M"))
            { 
                
res += 1000
                
value value.Substring(1);
            }
            if (
value.StartsWith("CM")) { res += 900value value.Substring(2); }

            while (
value.StartsWith("D"))
            {
                
res += 500;
                
value value.Substring(1);
            }
            if (
value.StartsWith("CD")) { res += 400value value.Substring(2); }

            while (
value.StartsWith("C")) 
            {
                
res += 100;
                
value value.Substring(1);
            }
            if (
value.StartsWith("XC")) { res += 90value value.Substring(2); }

            while (
value.StartsWith("L")) 
            {
                
res += 50;
                
value value.Substring(1);
            }
            if (
value.StartsWith("XL")) { res += 40value value.Substring(2); }

            while (
value.StartsWith("X")) 
            {
                
res += 10;
                
value value.Substring(1);
            }
            if (
value.StartsWith("IX")) { res += 9value value.Substring(2); }

            while (
value.StartsWith("V"))
            {
                
res += 5;
                
value value.Substring(1);
            }
            if (
value.StartsWith("IV")) { res += 4value value.Substring(2); }

            while (
value.StartsWith("I"))
            {
                
res += 1
                
value value.Substring(1); 
            }
            return 
res
Und das kannst du in jeder Sprache so machen
she was 8 is offline  
Old 11/01/2012, 12:34   #5
 
elite*gold: 0
Join Date: Oct 2007
Posts: 485
Received Thanks: 1
@nkk das ganze soll als pseudosprache aufgeführt werden und nicht als elementare programmiersprache. Wenn du mal mit einer Beispielzahl durch den Algorithmus schriftlich auf Papier durchgegangen wärst, hättest du verstanden wieso.. tempGanzzahlErgebnis = x / höchstmögliche römische zahl // Bsp 15/10 = 1. Außerdem war es meine Aufgabe das ganze mit "dividiert durch usw." und nicht mit /,*,+ zu verfassen.

Hat sich jetzt erledigt hab einige mögliche Varianten gefunden.
thacoga is offline  
Old 11/01/2012, 14:03   #6
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Quote:
Originally Posted by thacoga View Post
Außerdem war es meine Aufgabe das ganze mit "dividiert durch usw." und nicht mit /,*,+ zu verfassen.
Pseudocode hat keinen Standard.
SmackJew is offline  
Reply


Similar Threads Similar Threads
MD5 Algorithmus?!? Hilfe bitte!
09/10/2008 - Main - 1 Replies
Hallöchen, Ich soll mich mal mit MD5 befassen, allerdings hörts schon beim Algorithmus auf ^^. Bei wikipedia ist so ein bild was den Algorithmus darstellt, allerdings versteh ich die erläuterungen nicht. Kann mir jemand das bild mit dem Schaltkreis näher erläutern bzw hat jemand ne seite wo es besser erklärt ist?? link danke schonmal für eure antworten mfg cs



All times are GMT +1. The time now is 22:39.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.