Java - BlueJ Aufgaben..

paconie
Hallo,

ich brauche Hilfe, unzwar muss ich diese Extra Aufgabe machen.

Ich habe leider nicht sehr viel Ahnung von Java und BlueJ oder Krypto -graphie / -logie

vielleicht kann jemand mir dabei helfen...wäre echt nett



folgendes Quelltext...


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
import java.io.*; 

public class Lies01 
{ 
public static void main(String args[]) 
{ 
FileReader f; 
int c; 

try { 
f = new FileReader("c:\\PI10000.txt"); 
while ((c = f.read()) != -1) { 
System.out.print((char)c); 
} 
f.close(); 
} catch (IOException e) { 
System.out.println("Fehler beim Lesen der Datei"); 
} 
} 
} 




folgende Aufgabenstellungen...







Aufgabe 1

Das vorliegende Programm liest die Datei PI10000.txt vom Laufwerk C: ein. Dabei handelt es sich um die ersten Zehntausend Nachkommastellen der Kreiszahl pi.

a) Ergänze das Programm so, dass die Ausgabe nach jeweils 40 Zeichen auf eine neue Zeile umgebrochen wird.
b) Führe neue Variablen ein, damit die Häufigkeit der einzelnen Ziffern festgestellt werden kann.
c) Führe den Zählvorgang mit deinem Programm durch. Die Ausgabe soll dokumentiert werden.
d) Ändere das Programm so ab, dass die relativen Häufigkeiten in einer geeigneten Tabelle ausgegeben werden.







Aufgabe 2

a) Das Progamm soll nun einen beliebigen Text aus einer anzugebenden Datei lesen und auf dem Monitor ausgeben können. (Als Testtext kann man sich auf reinen ASCII-Code bei den Zeichen und damit beim Programmieren beschränken. - Erweiterungen sind aber willkommen.)
b) Die Zeichenhäufigkeit soll übersichtlich ausgegeben werden
c) Die Datei soll gelesen, mit Caesar 3 verschlüsselt und als neue Datei zurückgeschrieben werden.




Aufgabe 3


Programmiere eines der obigen Programme als Applet.

---------------------------------------------------------------------------------------------

Das wäre übertriebn nett wenn ihr mir da helfen könntet.. smile bitte leude.. ich chek nur bahnhof..
paconie
kann mir denn keiner helfen Augen rollen
Wolf
Sind das deine Hausaufgaben?

Zitat:
a) Ergänze das Programm so, dass die Ausgabe nach jeweils 40 Zeichen auf eine neue Zeile umgebrochen wird.
b) Führe neue Variablen ein, damit die Häufigkeit der einzelnen Ziffern festgestellt werden kann.


Ich hab zwar von Java keine Ahnung, aber vom Prinzip her müsste es so gehen:
Du machst eine schleife, die die datei (oder eine variable mit deren inhalt) zeichen für Zeichen einliest und in eine neue datei schreibt. wenn der zähler der schleife durch 40 mit rest 0 teilbar ist, wird zusätzlich ein Zeilenumbruch geschrieben. außerdem musst du überprüfen, welche ziffer das aktuelle Zeichen ist(if...elseif...). Mach für jede ziffer eine variable, die um 1 erhöht wird, sobald die entsprechende Zahl eingelesen wird. Schleife ende.



Zitat:
kann mir denn keiner helfen

nicht so ungeduldig... Das dauert hier eben manchmal ein bisschen großes Grinsen
paconie
Zitat:
Original von Wolf
Sind das deine Hausaufgaben?


Naja nicht wirklich hausaufgaben eher eine extra aufgabe die ich freiwillig mache um mehr punkte zu sammeln.. aber dann hab ich gemertk das ich mich in etwa sriengeritten habe das ich nicht mal kann unglücklich

Zitat:
Ich hab zwar von Java keine Ahnung, aber vom Prinzip her müsste es so gehen:
Du machst eine schleife, die die datei (oder eine variable mit deren inhalt) zeichen für Zeichen einliest und in eine neue datei schreibt. wenn der zähler der schleife durch 40 mit rest 0 teilbar ist, wird zusätzlich ein Zeilenumbruch geschrieben. außerdem musst du überprüfen, welche ziffer das aktuelle Zeichen ist(if...elseif...). Mach für jede ziffer eine variable, die um 1 erhöht wird, sobald die entsprechende Zahl eingelesen wird. Schleife ende.


hmm tut mir leid versteh das irgendwie nicht so ganz recht unglücklich könntest du mir das vielleicht anhand eines scriptes zeigen der in den quelltext passt der sich oben befindet verwirrt .. wäre super nett von dir smile

Zitat:
nicht so ungeduldig... Das dauert hier eben manchmal ein bisschen großes Grinsen


hehe.. achso, danke smile werd mich gedulden...

Danke..
daHooligan
a) Ergänze das Programm so, dass die Ausgabe nach jeweils 40 Zeichen auf eine neue Zeile umgebrochen wird.
b) Führe neue Variablen ein, damit die Häufigkeit der einzelnen Ziffern festgestellt werden kann.
c) Führe den Zählvorgang mit deinem Programm durch. Die Ausgabe soll dokumentiert werden.
d) Ändere das Programm so ab, dass die relativen Häufigkeiten in einer geeigneten Tabelle ausgegeben werden.

also.. ich schreibs mal in PHP weil ich schlicht und ergreifend java net kann aber es sollte transformierbar sein.
die zahl sei einfach in $pi gespeichert.
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
<?php $i=0;
while($i<strlen($pi))
{
if(mod($i,40)==0){echo "<br>";} //erzeugt ggf einen zeilenumbruch, mod ist modulo-rechnen, ist der rest ==0 gibts nen umbruch

echo $pi[$i]; //gibt die i-te stelle von pi aus bzw. von den nachkommastellen
$count[$pi[$i]]++; // erhöht den zähler welche ziffer wie oft vorkommt. $count ist ein array bestehend aus $coun['0'] bis $count['9'].
print_r($count); // gibt in PHP das array formatiert aus.
$i++;

}
//relative häufigkeit
$i=0;
while ($i<10)
echo ($count[$i]/strlen($pi)*100)."Prozent der Ziffern sind ".$i;
//gibt für jede ziffer von 0-9 aus wechen anteil sie an dem ziffernstrang hat. ?>


die anführungszeichen stimmen wohl nicht, müsste ich erst testen, ist ja nur exemplarisch. Ich hoffe mal dass der Ablauf klar wird
Bei Fragen: posten.


oops: fast aufgabe 2 vergessen:
das einlesen kann ich dir nicht machen, dazu kenn ich JAva zu wenig.
was die Höufigkeit angeht:

php:
1:
2:
3:
4:
5:
6:
<?php $i=0;
while($i<strlen($string))
{
$count(ascii($string[$i]))++; 
$i++;
} ?>


ich weiß nicht ob in JAva die Arrays auch so einfach zu handeln sind. Prinzipiell erzeugt das zu jeden Ascii-Wert einen Eintrag in einem Array (es wird der Ascii-Wert des zeichens ermittelt und dann das Element mit der nummer des Ascii-Werts des Zeichens um eins erhöht). Ist das zeichen zum Beispiel "@". wird $count['64'] um 1 erhöht.


Hoffe ich konnte helfen. Bei Fragen: siehe oben: MELDEN!!

MfG udn gn8

daHool
paconie
hey danke daHooligan aber hmm php kann ich leider auch nicht unglücklich

und umschreiben dem entsprechend auch nicht unglücklich

naja, danke für deine hilfe

frohe ostertage
daHooligan
ich habs eher als exemplarisches beispiel zum aufbau gemeint, die reihenfolge ist die gleiche, nu rdie befehle ändern sich.
vielleicht kanns noch jemand anders "übersetzen"
/etc/shadow
brauchst du noch hilfe oder ist es schon vorbei ?
daHooligan
14.04.2006 11:20

das sind 1 Jahr, 6 Tage und 50 Minuten
/etc/shadow
bluescreen
hä was hat der link zu bedeuten?