Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Telefon » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Telefon
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
JKU11
unregistriert
Telefon Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hy hätte ne Aufgabe, weiß aber nicht recht ob das so sinvoll ist wie ich es gelöst habe: It is often easier to remember a telephone number if a word is associated with it.
For example, BBC NEWS = 222 6397, and PROGRAM = 776 4726.

Write a Java program that takes as input a 7 character word and outputs the associated telephone
number.

The program should prompt the user for 7 input characters and output 7 numbers as follows:
Input: BBCNEWS
Output: 2226397

Meine Ideen:
Habe momentan einfach 7 Inputs mit unterschiedlichen Variablen genommen und die ganzen cases mit der switch Anweisung gelöst. Sind bei mir jetzt 580 Zeilen code und fast nur cases.

Gibt es eine andere Lösung als die?

Beste Grüße
10.11.2012 00:56
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallöchen,

das geht auf jeden Fall effektiver. Lies einen ganzen String. Danach sollte es möglich sein, mit String.getBytes() die einzelnen Zeichen in einer Schleife zu verarbeiten und die Ausgabe zu erstellen.

Sollte das nicht genug Details liefern, sag bescheid. Erstmal respektabel, dass du es probierst und dafür auch >500 Zeilen in kauf nimmst! Nur so lernt man auch gut. Gern helfe ich dir weiter, solltest du noch Probleme haben. Vlt kannst du auch deinen Quelltext posten. Das würde mir das Arbeiten auch ein wenig erleichtern.

VG,

Karlito
10.11.2012 01:35 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
JKU11
Jungspund


Dabei seit: 10.11.2012
Beiträge: 20

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Danke für die Antwort smile

Naja das Problem ist halt, dass das ne Übung ist die wir dann abgeben müssen und dafür auch benotet werden. Das String.getBytes() hatten wir noch gar nicht in der Vorlesung, daher weiß ich auch nicht ob das "erlaubt" wäre. Dachte eher an Arrays? :/

Hier der code:

Dateianhang:
txt tel.txt (10 KB, 393 mal heruntergeladen)
10.11.2012 15:53 JKU11 ist offline Beiträge von JKU11 suchen Nehmen Sie JKU11 in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

dann deklariere doch ein Array mit 7 Elementen und befülle es in einer schleife mit deinen Input.readChar();

z.B. (ich weis nicht ob das korrekte Java-Syntax ist)
code:
1:
2:
3:
4:
5:
6:
7:
char[] input = new char[7];

for(int i = 0; i<7; i++){ //achtung! es wird bei 0 mit zählen begonnen
	input[i]=Input.readChar();
}


Deine ganzen Case-Fälle hängen alle nur von der Eingabevariable ab. Du machst hier 7 mal das selbe und es ändert sich nur die Variable. D.h. es wäre gut, wenn du das in eine Funktion packen würdest. Dann übergibst du immer nur einen anderen Wert und bekommst die dementsprechende Ausgabe.

Weiter optimieren könntest du, indem du die Fälle nich als Buchstaben abarbeitest, sondern numerisch. Jeder char entpricht einer Zahl. Du müsstest mit if anstatt case arbeiten, könntest jedoch auf 10 Fälle reduzieren und auch leicht auf kleinbuchstaben reagieren.

z.B.
code:
1:
2:
3:
4:
5:
if (buchstabe>=37&&buchstabe<=40){
System.out.println("1");
}


37 und 40 sind nur Beispiele. Aber vlt findest du die richtigen Werte heraus?

VG,

Karlito
10.11.2012 19:38 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
JKU11
Jungspund


Dabei seit: 10.11.2012
Beiträge: 20

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Dank erstmal, werde es mal ausprobieren.
11.11.2012 17:28 JKU11 ist offline Beiträge von JKU11 suchen Nehmen Sie JKU11 in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Telefon