eine super schwere Aufgabe. < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Aufgabe | Gesucht ist ein Algorithmus countNumbers(), der von der Standardeingabe Zeichen einliest und die Häufigkeit für jede eingelesene Ziffer nach Ende des Lesens (EOF) auf die Standardausgabe ausgibt. Zusätzlich soll die Anzahl der Zeichen ausgegeben werden, die keine Ziffern sind und der Anteil Ziffern/Sonstige in Prozent.
Ihr Algorithmus soll zunächst solange Zeichen einlesen, bis keine weiteren mehr vorhanden sind (EOF) und erst im Anschluß die Ausgabe nach untem angegebenen Format vornehmen.
Beispiel 1:
Eingabestrom: erTz3428377ew78991
Ausgabe: 0:0, 1:1, 2:1, 3:2, 4:1, 5:0, 6:0, 7:3, 8:2, 9:2
Sonstige: 6
Anteil Ziffern/Sonstige: 50%
Beispiel 2:
EingabeStrom: 1234567890
Ausgabe: 0:1, 1:1, 2:1, 3:1, 4:1, 5:1, 6:1, 7:1, 8:1, 9:1
Sonstige: 0
Anteil Ziffern/Sonstige: nur Ziffern
Beachten Sie dabei auch Sonderfälle: z.b. keine sonstigen Zeichen, keine Ziffern, ... |
Verdammt die Aufgaben werden immer schwerer.
Hallo Leute!
Ich würde mich freuen, wenn mir da jd. weiter helfen könnte. Habe wieder mal nicht die geringste Ahnung wie man das machen. Programmiersprache soll wieder java sein.
Ich danke für eure Hilfe.
mfg narutochen
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 23:54 Di 20.03.2007 | Autor: | viktory_hh |
Ich glaube du solltest anfangen selbst zu programmieren.
Wie fängt man an,
Du setzt Dich mit einem Zettel und Bleistifft und gehst erstmal die einzelnen Schritte auf dem Papier durch. Jede detailierter umso verständlicher für dich. Dann schaust du die benötigten Befehle in JAVA im Internet.
Mache Schritt für Schritt.
Die Aufgabe ist aber nicht schwer, einfach umfassend, vielleicht nicht mal das.
Die ist vielleicht schon in einer Stunde zu erledigen.
bis dann
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:07 Mi 21.03.2007 | Autor: | comix |
Ich würde die Aufgabe ungefährt so angehen:
Erster Teil ist die Eingabe. Ich kann mir das nicht auswendig merken, da muss ich auch nachschauen.
Im Internet hab ich was gefunden: http://home.snafu.de/j.kubiak/lehre/progdemos/eingabe.java
(Hinweis: variable beginnen üblicherweise mit einem Kleinbuchstaben, das ist hier nicht korrekt).
Ergebnis der Eingabe wäre bei mir ein String.
Jetzt kannst Du z.B. eine Klasse schreiben, der übergibst Du den String. Du implementierst dabei verschiedene Methoden, die Dir die gewünschten Informationen liefern.
Schau doch bei den möglichen Stringoperationen nach, dann bekommst Du eine Idee wie Du das machen könntest:
http://java.sun.com/j2se/1.5.0/docs/api/index.html
Dann bleibt noch die Ausgabe.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:45 Do 22.03.2007 | Autor: | narutochen |
Also, zuerst mal danke für deine Antwort. Ich habe jetzt mal die Seiten durchgelesen, die du mir empfohlen hast.
Hier mein Versuch:
int countNumbers(↓int i)
int digit= [0
9]
i = 0
if (readInt !=digit)
writeIn= 1+i
return i
Also wie man den Anteil der Ziffern in Prozent ausgibt habe ich überhaupt keine Ahnung. Und was soll ich mit string anfangen.
würde mi freuen auf eine Korrektur oder die komplette Lösung.
mfg narutochen
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 07:13 Do 22.03.2007 | Autor: | comix |
Du sollst doch ein Programm in Java für dieses Problem schreiben? Es nützt nichts, wenn Du Dir eine Lösung liefern lässt, da lernst Du kaum was. Du musst selber programmieren. Wenn Du mit "String" nichts anfangen kannst, dann musst Du wohl den harten Weg beschreiten und Programmieren lernen.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:59 Do 22.03.2007 | Autor: | narutochen |
hallo,
ja ich versuche eh zu programmieren. nur mit dem Wissen, was ich jetzt habe reicht eben noch nicht aus um diese Aufgaben zu lösen. Und die Aufgaben müssen bis nächste Woche abgegeben werden. Desewegen bin ich dir sehr dankbar, wenn du mir Lösungsvorschläge für die Aufgaben machen könntest.
danke
narutochen
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:00 Do 22.03.2007 | Autor: | comix |
Hier sind zwei Klassen.
Die "main"-Klasse:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class IOMain {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
String zeichenkette;
BufferedReader tastatur = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Eingabestrom: ");
zeichenkette = tastatur.readLine();
StringScan str = new StringScan (zeichenkette);
System.out.print("Ausgabe: " );
System.out.print("0:" + str.getAnzahlChar ('0') + ", ");
System.out.print("1:" + str.getAnzahlChar ('1') + ", ");
System.out.print("2:" + str.getAnzahlChar ('2') + ", ");
System.out.print("3:" + str.getAnzahlChar ('3') + ", ");
System.out.print("4:" + str.getAnzahlChar ('4') + ", ");
System.out.print("5:" + str.getAnzahlChar ('5') + ", ");
System.out.print("6:" + str.getAnzahlChar ('6') + ", ");
System.out.print("7:" + str.getAnzahlChar ('7') + ", ");
System.out.print("8:" + str.getAnzahlChar ('8') + ", ");
System.out.println("9:" + str.getAnzahlChar ('9') );
System.out.println("Sonstige: " + str.getAnzahlNoDigit());
System.out.println("Verhältnis Ziffern/Sonstige: " + str.getVerhaeltnis());
}
}
und die verwendete StringScan - Klasse:
public class StringScan {
char [] toScan = null;
public StringScan (String s) {
toScan = s.toCharArray();
}
public int getAnzahlChar (char c) {
int anzahl = 0;
for (int i=0; i<toScan.length; i++) {
if (toScan[i] == c)
anzahl++;
}
return anzahl;
}
public int getAnzahlNoDigit () {
int anzahl = 0;
for (int i=0; i<toScan.length; i++) {
if (toScan[i] >= '0' && toScan[i] <= '9')
anzahl++;
}
return toScan.length - anzahl;
}
public String getVerhaeltnis () {
String v = "" + (toScan.length-getAnzahlNoDigit())*100/toScan.length + "% : "
+ getAnzahlNoDigit()*100/toScan.length + "%" ;
return v;
}
}
Das kann man sicher noch eleganter machen, aber das hier tuts im Prinzip. Leider übernimmt die ANzeige nicht die Formatierung. Bitte nachformatieren.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:31 Mo 26.03.2007 | Autor: | narutochen |
Hallo,
Vielen Dank für deine Hilfe.
mfg narutochen
|
|
|
|