www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Algorithmen und Datenstrukturen" - eine super schwere Aufgabe.
eine super schwere Aufgabe. < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

eine super schwere Aufgabe.: Aufgabe
Status: (Frage) beantwortet Status 
Datum: 21:52 Di 20.03.2007
Autor: narutochen

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


        
Bezug
eine super schwere Aufgabe.: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
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

Bezug
        
Bezug
eine super schwere Aufgabe.: String
Status: (Antwort) fertig Status 
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.

Bezug
                
Bezug
eine super schwere Aufgabe.: Korrektur
Status: (Mitteilung) Reaktion unnötig Status 
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



Bezug
                        
Bezug
eine super schwere Aufgabe.: Programmieren in Java
Status: (Mitteilung) Reaktion unnötig Status 
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.


Bezug
                                
Bezug
eine super schwere Aufgabe.: Mitteilung1
Status: (Mitteilung) Reaktion unnötig Status 
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


Bezug
                                        
Bezug
eine super schwere Aufgabe.: Vorschlag
Status: (Mitteilung) Reaktion unnötig Status 
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.

Bezug
                                                
Bezug
eine super schwere Aufgabe.: Danke
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 12:31 Mo 26.03.2007
Autor: narutochen

Hallo,

Vielen Dank für deine Hilfe.

mfg narutochen

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.mathebank.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]