Problem mit Schleife und korrekter Ausgabe:

Status
Nicht offen für weitere Antworten.

ZuTroll

Mitglied
Guten Tag;)
hier ist mal mein Code und ich hab folgendes Problem:
- Wie kann ich die Ausgabe anstatt RömsicheszeichenXRömsicheszeichenV so haben RömsicheszeichenXV
- Und wie bekomm ich ne schleife rein das er automatisch immer ausgibt RömsicheszeichenXV
RömsicheszeichenXVI
RömsicheszeichenXVII
usw.

Bitte um Hilfe und danke schon mal bin absoluter Anfänger also ned so komplex DANKE

Code:
public class zaehler {
private int[] normalZahl={1000,500,100,50,10,5,1};
String[] Roemerzeichen={"M","D","C","L","X","V","I"};
private int stand;
public zaehler()
{
	stand=0;
	
}
public void uppit()
{
	stand=stand+1;
}
//Ausgabe der DezimalZahlen als RömischeZahlen

public void ausgabe()
{
	
		for(int i=0;i<7;i++)
			while(stand-normalZahl[i]>=0)
			{
				stand=stand-normalZahl[i];				
				System.out.print("Römischeszeichen"+Roemerzeichen[i]);
			}
}




public static void main(String[] args)
{
	zaehler z1 = new zaehler();
	for(int b=0;b<=14;b++)
	z1.uppit();
	z1.ausgabe();
}
}
 

susa.

Mitglied
Ich versuchs mal, keine Garantie und ich kanns auch gerade nicht testen.

Code:
public void ausgabe() 
{ 
    System.out.print("Römischeszeichen: ");
      for(int i=0;i<7;i++) 
         while(stand-normalZahl[i]>=0) 
         { 
            stand=stand-normalZahl[i];             
            System.out.print(Roemerzeichen[i]); 
         } 
} 

public static void main(String[] args) 
{ 
   zaehler z1 = new zaehler(); 
   for(int b=0;b<=14;b++) 
   {      
       z1.uppit(); 
       z1.ausgabe(); 
    }
} }
wars das schon? oder hab ich jetzt was vergessen?
 

HAOSK

Mitglied
Versuche mal mit
Code:
public void ausgabe() 
{ 
      String temp = "";
     
      for(int i=0;i<7;i++)
      { 
         while(stand-normalZahl[i]>=0) 
         { 
            stand=stand-normalZahl[i]; 
            temp +=  Roemerzeichen[i];
         }
      }
      System.out.println("Römischeszeichen"+temp); 

}

rem. bei RömischeszeichenIV & Co. solltest du ein anderen Algorithmus benutzen...
 

ZuTroll

Mitglied
Hi Danke für die Erweiterung;

jetzt zählt er zwar schon bisschen hoch aber nicht durchgehend z.b. zählt er nur von 1-4 dann kommt ja die % also das V , das Programm soll aber durchgehen hochzählen können also
I
II
III
IIII
V
VI
VII
VIII usw.

Noch jemand ne idee??
 

André Uhres

Top Contributor
Code:
...
        for(int b=0; b <= 14; b++){
            z1.uppit();
            z1.ausgabe();
        }
...
    public void ausgabe() {
        int stand=this.stand;
...
 

ZuTroll

Mitglied
Supi das scheint echt zu funzen nur kommt beim ausführen das raus ?:

Roemischeszeichen :I
Roemischeszeichen :I
Roemischeszeichen :II
Roemischeszeichen :I
Roemischeszeichen :II
Roemischeszeichen :III
Roemischeszeichen :I
Roemischeszeichen :II
Roemischeszeichen :III
Roemischeszeichen :IIII

sollte ja auch ned sein grübel
 

André Uhres

Top Contributor
Code:
public class zaehler {
    private int[] normalZahl={1000,500,100,50,10,5,1};
    String[] Roemerzeichen={"M","D","C","L","X","V","I"};
    private int stand;
    public zaehler() {
        stand=0;
    }
    public void uppit() {
        stand=stand+1;
    }
    public static void main(String[] args) {
        zaehler z1 = new zaehler();
        for(int b=0; b <= 14; b++){
            z1.uppit();
            z1.ausgabe();
        }
    }
    public void ausgabe() {
        int stand=this.stand;
        String temp = "";
        for(int i=0;i<7;i++) {
            while(stand-normalZahl[i]>=0) {
                stand=stand-normalZahl[i];
                temp +=  Roemerzeichen[i];
            }
        }
        System.out.println("Römischeszeichen"+temp);
    }
}
 

André Uhres

Top Contributor
Code:
public class Zaehler { 
    public static void main(String[] args) { 
        for(int b=1; b <= 15; b++){ 
            System.out.println("Römischeszeichen "+convertToRoman(b)); 
        } 
    } 
   private static String convertToRoman(int source){
     StringBuffer buf = new StringBuffer("");
     int value=source;
     while (value >= 1000) { buf.append('M');  value -= 1000;}
     if (value >= 900)     { buf.append("CM"); value -= 900; }
     if (value >= 500)     { buf.append('D');  value -= 500; }
     if (value >= 400)     { buf.append("CD"); value -= 400; }
     while (value >= 100)  { buf.append('C');  value -= 100; }
     if (value >= 90)      { buf.append("XC"); value -= 90; }
     if (value >= 50)      { buf.append('L');  value -= 50; }
     if (value >= 40)      { buf.append("XL"); value -= 40; }
     while (value >= 10)   { buf.append('X');  value -= 10; }
     if (value >= 9)       { buf.append("IX"); value -= 9; }
     if (value >= 5)       { buf.append('V');  value -= 5; }
     if (value >= 4)       { buf.append("IV"); value -= 4; }
     while (value > 0)     { buf.append('I');  value -= 1; }
     return buf.toString();
   }
}
 
G

Guest

Gast
Hier noch eine etwas andere Version
Code:
public static String dec2rom2(int number)
{
  final int d[] = { 
    1, 4, 5, 9, 10, 40, 49, 50, 90, 99, 100, 400, 490, 499, 
    500, 900, 990, 999, 1000
  }; 
  final String r[] = {
    "I", "IV", "V", "IX", "X", "XL", "IL", "L", "XC", "IC", 
    "C", "CD", "XD", "ID", "D", "CM", "XM", "IM","M" 
  };

  StringBuffer result = new StringBuffer();
  for(int n=number, i=d.length-1; n>0; n-=d[i]) {
    while(d[i]>n && i>0) i--;
    result.append(r[i]);
  }
  return result.toString();
}
 

André Uhres

Top Contributor
Der Vollständigkeit halber habe ich hier auch noch die andere
Richtung mit einbezogen (römische Zahl -> Dezimalzahl):
Code:
public class Zaehler {
    public static void main(String[] args) {
        for(int b=1995; b <= 2010; b++){
            String roman = convertToRoman(b);
            System.out.print("Römische Zahl "+roman);
            //Römische Zahl zurückverwandeln:
            System.out.println("  \t"+(roman.length()>7?"":"\t")+"="+romanToInt(roman));
        }
    }
    private static String convertToRoman(int source){
        StringBuffer buf = new StringBuffer("");
        int value=source;
        while (value >= 1000) { buf.append('M');  value -= 1000;}
        if (value >= 900)     { buf.append("CM"); value -= 900; }
        if (value >= 500)     { buf.append('D');  value -= 500; }
        if (value >= 400)     { buf.append("CD"); value -= 400; }
        while (value >= 100)  { buf.append('C');  value -= 100; }
        if (value >= 90)      { buf.append("XC"); value -= 90; }
        if (value >= 50)      { buf.append('L');  value -= 50; }
        if (value >= 40)      { buf.append("XL"); value -= 40; }
        while (value >= 10)   { buf.append('X');  value -= 10; }
        if (value >= 9)       { buf.append("IX"); value -= 9; }
        if (value >= 5)       { buf.append('V');  value -= 5; }
        if (value >= 4)       { buf.append("IV"); value -= 4; }
        while (value > 0)     { buf.append('I');  value -= 1; }
        return buf.toString();
    }
    private static int romanToInt(String sourceString){
        int i, len=sourceString.length();
        int sum;
        // letztes Zeichen umwandeln
        sum=(int)wandle(sourceString.charAt(len-1));
        for(i = (len-1); i >= 1; i--) {
            int temp=wandle(sourceString.charAt(i-1));
            if (wandle(sourceString.charAt(i)) <= temp)
                sum=sum+temp; else sum=sum-temp;
        }
        return sum;
    }
    private static int wandle(char c){
        switch (c ) {
            case 'M': return 1000;
            case 'D': return  500;
            case 'C': return  100;
            case 'L': return   50;
            case 'X': return   10;
            case 'V': return    5;
            default:  return    1;
        }
    }
}
 
G

Guest

Gast
Andre_Uhres hat gesagt.:
@Gast: Deine Version funktioniert nicht immer.
Zum Beispiel: 1999->MIM statt MCMXCIX
Doch, es stimmt schon so. Es ist eine andere Notation.
Es gibt zwei Varianten römischer Zahlen bzw. wie diese notiert werden.

1999 = MIM ist nach sog. "allgemeinen Regeln", MCMXCIX nach sog. "ergänzenden Regeln".
Eine ziemlich gute Beschreibung der Unterschiede findest du hier: http://www.diaware.de/html/roemzahl.html
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
J Schleife Problem Java Basics - Anfänger-Themen 2
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
S Doppel For Schleife mit Arrays - Problem bei der Ausgabe Java Basics - Anfänger-Themen 4
F Problem do while Schleife und Scanner Java Basics - Anfänger-Themen 2
A Kleines Abbruch-Problem mit Do-While-Schleife Java Basics - Anfänger-Themen 4
P Problem bei Fakultät mit "for"-Schleife Java Basics - Anfänger-Themen 12
D Textfield im Game ,Problem: while-Schleife Java Basics - Anfänger-Themen 1
S Problem mit for-Schleife Java Basics - Anfänger-Themen 4
D Problem mit Schleife / Newtonverfahren Java Basics - Anfänger-Themen 4
F Problem mit der While schleife und dem Scanner Java Basics - Anfänger-Themen 2
vodkaz For Schleife Verständnis Problem Java Basics - Anfänger-Themen 4
M For Schleife Problem Java Basics - Anfänger-Themen 2
S problem bei verschachtelter for-schleife Java Basics - Anfänger-Themen 5
C Problem mit try-catch in Schleife Java Basics - Anfänger-Themen 15
F Problem mit for-Schleife Java Basics - Anfänger-Themen 4
L Nummern Generator (mit do-while Schleife) Problem Java Basics - Anfänger-Themen 7
B Problem mit for-Schleife Java Basics - Anfänger-Themen 4
C Problem mit Schleife Java Basics - Anfänger-Themen 3
Killerjo96 Erste Schritte Problem mit dem Sichern einer If Schleife Java Basics - Anfänger-Themen 5
F Problem Math.random in for-Schleife Java Basics - Anfänger-Themen 8
K Problem mit der while - Schleife Java Basics - Anfänger-Themen 9
E Problem mit for schleife/ try-catch block Java Basics - Anfänger-Themen 7
M Problem bei Schleife + Methode Java Basics - Anfänger-Themen 2
C Euler'sche Zahl berechnen, Problem bei for-schleife Java Basics - Anfänger-Themen 4
D For Schleife und DrawString - Problem Java Basics - Anfänger-Themen 20
G problem mit while schleife Java Basics - Anfänger-Themen 8
A For-Schleife Problem Java Basics - Anfänger-Themen 11
J Problem - Schleife Java Basics - Anfänger-Themen 16
V Problem mit einer While Schleife Java Basics - Anfänger-Themen 8
S Unverstandenes Problem mit for schleife Java Basics - Anfänger-Themen 2
A If-Schleife spinnt - ganz einfach Code - Riesen Problem :) Java Basics - Anfänger-Themen 9
Luk10 Problem mit For-Schleife Java Basics - Anfänger-Themen 2
F Problem mit einer Schleife Java Basics - Anfänger-Themen 10
A Problem mit vereinfachter For-Schleife Java Basics - Anfänger-Themen 5
O Problem mit For-schleife Java Basics - Anfänger-Themen 3
O Methode - Problem mit Subtraktion in einer while-Schleife Java Basics - Anfänger-Themen 2
A Problem mit BigInteger und Schleife Java Basics - Anfänger-Themen 13
S Problem mit Schleife - Objektwert aendert sich nach erstellung Java Basics - Anfänger-Themen 17
M Problem bei Schleife Java Basics - Anfänger-Themen 28
_SeiA_ Suche Schleife/Algorythmus für ein Problem Java Basics - Anfänger-Themen 3
J FOR-Schleife Problem Java Basics - Anfänger-Themen 10
M Problem mit der For Schleife (else funzt nicht richtig) Java Basics - Anfänger-Themen 10
G Problem mit If und integrierter Schleife Java Basics - Anfänger-Themen 2
ChackZz Problem mit for-Schleife bei der Primzahlberechnung Java Basics - Anfänger-Themen 8
J problem mit schleife Java Basics - Anfänger-Themen 31
M Problem bei Do. While schleife Java Basics - Anfänger-Themen 10
S problem mit "for" schleife Java Basics - Anfänger-Themen 12
X Anfänger Problem mit Schleife Java Basics - Anfänger-Themen 3
R Problem mit for-Schleife Java Basics - Anfänger-Themen 6
N kleines Problem mit meiner Schleife Java Basics - Anfänger-Themen 8
G Problem mit einfacher For-Schleife und Double Wert Java Basics - Anfänger-Themen 4
megachucky GUI-Problem in Verbindung mit while-Schleife und Listener Java Basics - Anfänger-Themen 4
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben