Frage von RexonTV, 34

Ich muss ein Programm programmieren, dass die Zahlen 0-99 in Worten ausgibt, aber nur mit if und else: kein switch! Brauche Hilfe! Danke im voraus? JAVA

BSP: 55 = fünfundfünfzig 14 = vierzehn 89 = neunundachtzig

Antwort
von ExileArtz, 15

Das geht leichter als mit if - else. Mach ein String-Array mit den ausgeschriebenen Zahlen ("zwei", "drei", ...). Es ist wichtig dass du sie in der richtigen Reihenfolge hinzufügst. Danach kannst du dir die richtige Zahl aus dem Array holen. Hier ein kleines Beispiel: http://hastebin.com/ipavayaxew.cs

Kommentar von RexonTV ,

also muss ich jede zahl aufschreiben von 0-99??

Kommentar von ExileArtz ,

Ja, ist aber noch lange nicht so müheseelig wie mit if/else. Soweit ich weiß gibt es keine Standart-Bibliotek die das für dich macht.

Kommentar von Borgler94 ,

das wär aber sicher nicht im Sinne seiner Aufgabe ... und sehr sehr mühsam

Antwort
von Borgler94, 20

wobei brauchst du jetzt genau hilfe.. also was ist deine Überlegung bis jetzt?

Kommentar von RexonTV ,

ich weiß ja nicht wie es geht aufjedenfall muss:

int Zahl = 69

.......... ausgabe: sechsundneunzig

Antwort
von Suboptimierer, 15

Du musst die Einer- und die Zehnerstelle extrahieren (mit % und Zahl-(Modergebnis)).

Dann behandelst du die Sonderfälle 11 und 12. 
Als nächstes schreibst du die Einerstelle als Zahl in die Zeichenkette. Für die Ziffernkonvertierung Zahl → Text kannst du eine Funktion notfalls schreiben. Ist die Einerstelle 0, lässt du die Zeichenkette leer. Ist sie nicht 0, fügst du ein "und" in die Zeichenkette und konvertierst die Zehnerstelle in Text.

Feinheiten arbeitest du dann nach.

Kommentar von RexonTV ,

kannst du bitte die ersten 3-4 zeilen schreiben damit ich es verstehe

Kommentar von Suboptimierer ,

Ich hatte mir den Spaß mal gegönnt und es in JavaScript umgesetzt. Vielleicht hilft dir das schon als Ansatz.

Auf einige else habe ich zugunsten der Übersichtlichkeit verzichtet.

var i;
var out = document.getElementById("out");

for(i=0;i<100;i++) out.innerHTML += i + ": " + ZahlAusschreiben(i) + "[br /]\n";
function ZahlAusschreiben(iZahl) { // Nur mit if-else! var i1, i10; var sZahl = ""; i1 = iZahl % 10; i10 = (iZahl - i1)/10;
if(iZahl == 0) return "null" else if(iZahl == 11) return "elf" else if(iZahl == 12) return "zwölf" else { if(i1 == 1) sZahl = "ein"; if(i10 == 0) sZahl += "s"; if(i1 == 2) sZahl = "zwei"; if(i1 == 3) sZahl = "drei"; if(i1 == 4) sZahl = "vier"; if(i1 == 5) sZahl = "fünf"; if(i1 == 6) sZahl = "sechs"; if(i1 == 7) sZahl = "sieben"; if(i1 == 8) sZahl = "acht"; if(i1 == 9) sZahl = "neun";
if((i10 > 1) && (i1 > 0)) sZahl += "und";
if(i10 == 1) sZahl += "zehn"; if(i10 == 2) sZahl += "zwanzig"; if(i10 == 3) sZahl += "dreißig"; if(i10 == 4) sZahl += "vierzig"; if(i10 == 5) sZahl += "fünfzig"; if(i10 == 6) sZahl += "sechszig"; if(i10 == 7) sZahl += "siebzig"; if(i10 == 8) sZahl += "achtzig"; if(i10 == 9) sZahl += "neunzig"; }
return sZahl; }
Kommentar von RexonTV ,

vielen dank!!!!!!!!!!!!!

ich habe es nun gecheckt aber bei mir geht das irgend wie nicht kannst du dir mal anschauen bitte.

package zahleninworten;

public class ZahlenInWorten {

public static void main(String[] args) {

String sZahl = "";
int z;
int z0, z00;
int iZahl = 0;
z0 = iZahl % 10;
z00 = iZahl / 10;

if (iZahl == 0) {
sZahl = "null";
} else {
if (iZahl == 11) {
sZahl = "elf";
} else {
if (iZahl == 12) {
sZahl = "zwölf";
}

if (z0 == 1) {
sZahl = "ein";
} else {
if (z0 == 2) {
sZahl = "zwei";
} else {
if (z0 == 3) {
sZahl = "drei";
} else {
if (z0 == 4) {
sZahl = "vier";
} else {
if (z0 == 5) {
sZahl = "fünf";
} else {
if (z0 == 6) {
sZahl = "sechs";
} else {
if (z0 == 7) {
sZahl = "sieben";
} else {
if (z0 == 8) {
sZahl = "acht";
} else {
if (z0 == 9) {
sZahl = "neun";
}

if ((z00 > 1) && (z0 > 0)) {
sZahl += "und";
}

if (z00 == 1) {
sZahl += "zehn";
} else {
if (z00 == 2) {
sZahl += "zwanzig";
} else {
if (z00 == 3) {
sZahl += "dreißig";
} else {
if (z00 == 4) {
sZahl += "vierzig";
} else {
if (z00 == 5) {
sZahl += "fünfzig";
} else {
if (z00 == 6) {
sZahl += "sechszig";
} else {
if (z00 == 7) {
sZahl += "siebzig";
} else {
if (z00 == 8) {
sZahl += "achtzig";
} else {
if (z00 == 9) {
sZahl += "neunzig";
}

System.out.println("Zahl:" + sZahl);
}
}
}
}
}
}
}

}
}
}
}
}
}
}
}
}
}
}
}
}

Kommentar von Suboptimierer ,

Bitte versuche dir anzugewöhnen, Fehler detaillierter zu beschreiben als mit "funktioniert nicht". Stell dir vor, du wärest Techniker bei der NASA und jemand würde zu dir hin kommen und dir sagen, dass die Rakete nicht funktioniert. Was würdest du dann sagen / denken?

Je schwammiger eine Fehlermeldung ist, desto mehr sagt es darüber aus, dass der Fehlermelder wenige Debugtechniken kennt.

Gehe Zeile für Zeile mit dem Debugger durch und mach zwischendurch Testausgaben. Füttere Funktionen mit extremen Randparametern. Logge Zwischenschritte in eine Datenbank oder in Textdateien.
_________________

Also was ich auf dem ersten Blick sehe, ohne Garantie auf Vollständigkeit, ist, dass dein z00 von meinem i10 abweicht und dass du für die Zahl 1 kein "s" hinter "ein" anfügst.
Ob deine elses so Sinn ergeben, kann ich auf dem ersten Blick nicht sagen. Probiere es erst ohne. Wenn es läuft, kannst du sie immer noch sukzessive einfügen.

Kommentar von RexonTV ,

ja sry aber ich versteh noch nicht so viel von programmieren (kann erst seid 3 Monaten Programmieren) :(  ich hab alles probiert aber finde keine Lösung :(  trotzdem danke ich werde es nochmal neuschreiben

Kommentar von RexonTV ,

danke ich hab den fehler gefunden. Dümster fehler ever habe die klammern unter dem System.out geschrieben aber vielen dank an dich. Ohne dich hätte ich nichts verstanden :D

Antwort
von Borgler94, 3

die Antworten bis jetzt kannst du ehrlichgesagt vergessen (bis auf die von Suboptimierer)

ich schick dir nachher mal einen anständigen Ansatz in Java, bin grad noch nicht zu Hause

Kommentar von RexonTV ,

wäre echt nett von dir

Antwort
von karlkopf69, 14

Input x
If x=1
Print 1
Endif
If x=2
Usw kann sogar mein Taschenrechner aber ist ne ganz schöne Mühe wo ist der Sinn der Aufgabe?

Antwort
von bozzhaft, 10

If textfeld == 1
Dann settext eins.
.
.
.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten