Archivlink: javarea.de Forum > Talk Talk > Java - BlueJ - Kryptographie
Vollständigen Link anzeigen: javarea.de Forum > Talk Talk > Java - BlueJ - Kryptographie

Pages: [1] 2 ... nächste » ... Letzte »

geschrieben von lenchen-hh am 12.04.2006 - 13:49
Hallo,


ich brauche Hilfe, unzwar muss ich in der Schule diese Extra Aufgabe machen.

Ich habe leider nicht sehr viel Ahnung von Java und BlueJ oder Kryptographie

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


mfg


Lena











Aufgabe 1




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");
}
}
}


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.



Hinweis:
Alle Programme sind an geeigneten Stellen mit erläuternden Kommentaren zu versehen.

geschrieben von Matneu am 12.04.2006 - 13:53
Dann zeig' doch mal, was Du bisher gemacht hast und wo Du Probleme hast. Hier wird Dir sicherlich niemand Deine Hausaufgaben machen!

So far...
Matthias

geschrieben von lenchen-hh am 12.04.2006 - 17:55
ja ,


ich weiß ja nicht mal wie ich anfangen soll.... kannst mir ja paar Tipps geben..

geschrieben von Micha am 12.04.2006 - 18:02
Hallo,


ich denke

http://javabuch.de und http://www.galileocomputing.de/open....avainsel5/

sollten Dir weiterhelfen...

Micha

geschrieben von lenchen-hh am 12.04.2006 - 18:06
hmmm..danke....aber ich denke sogar da blicke ich nicht durch..

geschrieben von Patrick am 12.04.2006 - 20:53
Hallo Lena,

wir fangen mal ganz einfach an, mit der Logik:

//Solange die Datei nicht komplett gelesen wurde, gib den gelesenen Buchstaben aus

while ((c = f.read()) != -1) {
System.out.print((char)c);
}

Damit du nach 40 Zeichen die Zeile umbrichst, ganz einfach (meinen Text findest du in PSEUDOCODE

DEKLARIERE I ALS Integer

while ((c = f.read()) != -1) {

ZÄHLE I in jedem durchlaufe einen Hoch

WENN I = 40 DANN Zeilenumbruch+i=0, sonst "System.out.print((char)c);"

}

Damit hast du erstmal Teil A von der 1. Aufgabe abgearbeitet... Sobald du das fertig hast, kannst du dich an den anderen Teilen Versuchen.

Du wirst nicht drum herum kommen, die einzelnen Ziffern zu zählen und miteinander zu vergleichen um den Teil B zu lösen

geschrieben von Micha am 13.04.2006 - 00:01
Hallo,

eleganter wäre (und nicht mal schwerer)

statt:
WENN I = 40 DANN Zeilenumbruch+i=0

zu fragen ist 40 ein vielfaches von I (also I geteilt durch 40 hat keinen Rest)

Micha

geschrieben von Patrick am 13.04.2006 - 10:45
Zitat
 Original geschrieben von derletztekick am 13.04.2006 - 00:01

Hallo,

eleganter wäre (und nicht mal schwerer)

statt:
WENN I = 40 DANN Zeilenumbruch+i=0

zu fragen ist 40 ein vielfaches von I (also I geteilt durch 40 hat keinen Rest)

Micha



macht sinn, da haste recht.... Sieht eleganter aus, ist weniger code und sicherlich nicht weniger performant...

@Lena... schon ergebnisse?

geschrieben von lenchen-hh am 14.04.2006 - 16:51
ja

und was soll ich wo hinzufügen bzw. kopieren ???

geschrieben von Micha am 15.04.2006 - 13:31
Hallo,

das sollst _Du_ uns sagen. Der Tipp von Patrick war für den ersten Teil Deiner Aufgabe bereits zielführend. Lies Dir die entsprechenden Kapitel in den (online) Büchern durch (Schleifen, primitive Datentypen, read, usw....) und dann versuche das umzusetzen, was Dir gesagt wurde.

Micha

geschrieben von lenchen-hh am 18.04.2006 - 15:27
erstmal danke für die antworten!

okay ich beschreibe jetzt mein problem,...

also aufgabe a) habe ich jetzt gelöst *stolz sein*

jetzt bin ich bei aufgabe b) stecken geblieben
hab herausgefunden das es 5 arten von variablen gibt!
1.lokale variablen
2.konstante variablen
3.statische variablen
4.klassenvariablen
5.instanzvariablen

jetzt weiß ich aber nicht welche ich davon anwenden soll ?

geschrieben von Micha am 18.04.2006 - 17:22
Hallo lenchen-hh,

zeigst Du uns auch Dein Ergebnis zur Teilaufgabe a? Das wäre schön, dann könnte man aus dieser direkt eine Lösung für b ableiten, wie Patrick bereits sagte:

Zitat
 Du wirst nicht drum herum kommen, die einzelnen Ziffern zu zählen und miteinander zu vergleichen um den Teil B zu lösen


Zu Deiner Frage:

es bieten sich "lokale Variablen" für die Lösung an. Lokale Variablen gelten immer in der Methode, in der sie deklariert werden. Du besitzt nur eine Methode, die Hauptmethode "main".

Schöne Grüße Micha

geschrieben von Patrick am 19.04.2006 - 09:18
Hallo zusammen,

da ich diese Woche nur begrenzt Internet habe (d.h. ich habe Urlaub und bin bei meinen Eltern zu besuch) habe ich ehrlich gesagt nicht den anreiz komplette Aufgaben zu lösen und leider auch keine Zeit zu unterstützen.

Ab nächste Woche kann ich gerne weiterhelfen, falls bis dahin noch hilfe nötig ist.

mfG,
Patrick

geschrieben von lenchen-hh am 20.04.2006 - 23:01
hab jetzt aufgabe 1 fast fertig! hab jetzt nur noch ein fehler in meine quelltext

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 
73: 
import java.io.*;
import java.util.Iterator;
import java.util.Vector;

public class A1 {
static Vector words = new Vector();

@SuppressWarnings("unchecked")
public static void main(String args[]) {
 FileReader f;
 int c, col = 0;
 String output = "";
 
 try {
   f = new FileReader("bitcount.dat"); // Die Datei PI10000.txt wird gelesen

   while ((c = f.read()) != -1) {
    System.out.print((char)c);
    output += c;
    col++;  // Spalte erhöhen

    if (col % 40 == 0) // Nach 40 Zeichen wird ein Zeilenumbruch gemacht
     {
       System.out.println();
     }
  }

   f.close();
   
   char[] a = output.toCharArray();
   for(char dot : a)
           words.addElement(dot+"");
   
   printTable();
 } catch (IOException e) {
   System.out.println("Fehler beim Lesen der Datei"); // Wenn der Pfad der Datei die gelesen werden soll nicht stimmt kommt der Text "Fehler beim Lesen der Datei"
 }
}

/**
 * Zählt die Vorkommen des Wortes
 * löscht das Element aus dem Vector, nachdem es gezählt wurde
 * @param word
 * @param tmp
 * @return
 */
static int countWord(String word, Vector tmp) {
        int n=0;
        while(tmp.contains(word))
        {
                tmp.remove(tmp.indexOf(word));
                n++;
        }              
       
        return n;
}

/**
 * gibt die fertige Hashtable aus
 *
 */
static void printTable() {
        Iterator it = words.iterator();
        Vector tmp = new Vector();
        tmp.addAll(words);

        while(it.hasNext()) {
                String word = (String)it.next();
                if(tmp.contains(word))
                        System.out.println(word + ":\t" + countWord(word, tmp) + "mal");
        }
}
}


wenn ich nun alles compile, erscheint dieser fehler "illegal character: \64"

@SuppressWarnings("unchecked")


was ist hier falsch???

geschrieben von Micha am 21.04.2006 - 00:31
Hallo,

ich frag mal ganz dreist, was hast Du davon selbst gemacht?

Mit erscheint es etwas komplex für eine(n), d[er|ie] vorher noch nicht einmal etwas mit Variablen anfangen konnte...

Micha


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.