Zum Inhalt springen

Ben2013

Mitglieder
  • Gesamte Inhalte

    28
  • Benutzer seit

  • Letzter Besuch

Beiträge von Ben2013

  1. Hi,

    also ich bin mir noch nicht so sicher, was ich suche.

    Wahrscheinlich am besten, wenn ich schreibe, was ich damit vorhabe.

    a) Ich will ES auf den Tisch legen und mit dem Stift drauf schreiben, dabei sollte meine Schrift erkannt werden und in Computerschrift dargestellt werden. Es wird sich dabei nicht nur um das lateinische Alphabet handeln. Sondern auch mathematische Zeichen (logisches und, oder, ...) und Zeichnungen.

    B) drauf programmieren.

    -> Ergibt sich eben aus einem Mathematik und Informatik Studium.

    -------

    Normaler Laptop: kann man nicht auf dem Screen schreiben

    ___________________________________________________________________________________________

    Laptop mit Touchscreen: lässt sich schlecht(garnicht) drauf schreiben

    ___________________________________________________________________________________________

    Laptop mit abnehmbaren Touchdisplay: denke sollte gehn oder?

    post-89807-14430449672305_thumb.jpg

    ___________________________________________________________________________________________

    Laptop mit umgreh- & zusammenklappbarem Touchdisplay: sollte gehn oder?

    post-89807-14430449672552_thumb.jpg

    oder

    post-89807-14430449672719_thumb.jpg

    ___________________________________________________________________________________________

    Tablet: schlecht zum programmieren? oder gibts da Lösungen? WLAN-Tastatur?

  2. Daraus lese ich, dass wenn eine Klasse keinem Package zugewiesen wird keinen vollständigen Klassennamen hat.

    Beispiel:

    Es gibt die Klassen "abc" und "def"

    Wir befinden uns in der klasse abc

    /**

    *@see abc test

    *@see def testtest

    *\

    public void test()

    {

    ...

    }

    Dann wird in der Dokumentation abc und der in anderer schriftart angezeigt, aber nur abc (die klasse selbst) ist per Hyperlink zu erreichen (wenig sinnvoll, da man sich schon in dieser dokumentation befindet)

  3. Ebenso solltest Du Dir angewöhnen, dass Du auch die entsprechenden Meldungen angibst, die Dein Code produziert.

    ArrayIndexOutOfBounds Exceptions

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

    Ich gehe davon aus, dass Dein Code mehrere semantische Fehler enthält

    umgehbar mit try-catch-block und while schleife außenrum gelegt.

    
    boolean lFehler = true;
    
    int Ergebnis1 = 0;
    
    int Ergebnis2 = 0;
    
    int [] lArray;
    
    
    while(lFehler)
    
    {
    
        try
    
        {
    
            lFehler = false;
    
            lErgebnis1 = 2+3;
    
            lArray = new int [lErgebnis1];
    
    
            lErgebnis2 = 2+3;
    
            lArray[lErgebnis2] = 37; // hier tritt ab und zu eine ArrayIndexOutOfBounds Exception auf
    
        }
    
        catch(Exception e)
    
        {
    
            lFehler = true;
    
        }
    
    }
    
    

    mit while schleife

    und try-catch-block funktioniert ales.

    -> ab und zu wird 2+3 anders berechnet

    --> und dann wieder nicht

  4. Es war schon wichtig, dass das Array genau die Größe hat, sodass es ganz gefüllt ist.

    Aber ich hab das Problem anders gelöst.

    (Vorheriges Bestimmen der Arraygröße)

    (nicht lachen ;) Das war von Anfang an der Quellcode, der aber ab und zu ArrayIndexOutOfBounds Exceptions geworfen hab.)

    Und da hätte ich gleich noch eine Frage:

    Wie kann das passieren?

    sieht ungefähr so aus:

    
    int lTest = 0;
    
    
    for(alle zahlen überprüfen)
    
    { 
    
        if(gerade zahl)
    
        {
    
            lTest++;
    
        }
    
    }
    
    
    erstelle array der größe lTest
    
    
    for(alle zahlen überprüfen)
    
    { 
    
        if(gerade zahl)
    
        {
    
            greife auf das Array zu
    
        }
    
    }
    
    
    das wirf gelegentlich die Exception
    
    
    umgehbar mit try-catch-block und while schleife außenrum gelegt.

    Also rein mathematisch kann keine Exception auftreten.

    Und bei wiederholtem rechnen tritt auch keine mehr auf.

    Frage: Ist das normal? Wie oft tritt das in der Praxis/Realität auf?

  5. hab das Problem aber schon so gelöst, dass ich die dauerschleife aus der run methode genommen hab

    siehe:

    Also ich bin schon mit diesem Problem fertig.

    Nur scheinen hier einige nicht zu verstehen, dass wenn ich der Aufgabenstellung steht "erzeuge x threads" dass ich dann auch x threads erzeuge

  6. Wie realisiere ich ein wachsendes Array?

    Ich probiere schon seid Tagen mit den Klassen Arrays, LinkedList, ArrayList und natürlich normalen Arrays herum.

    Ziel:

    -double[n] [2]

    n=0:

    -wenn XYZ erfüllt ist, "hänge" eine neue zeile an

    double[1] [2]

    n=1:

    -wenn XYZ erfüllt ist, "hänge" eine neue zeile an

    double[2] [2]

    n=2:

    -wenn XYZ erfüllt ist, "hänge" eine neue zeile an

    double[3] [2]

    n=n:

    -wenn XYZ erfüllt ist, "hänge" eine neue zeile an

    double[n+1] [2]

  7. OK! ihr habt es nicht anders gewollt.

    -> Die Uhren befinden sich alle in verschiedenen Raumschiffen, die wild mit naher Lichtgeschwindigkeit durch den Weltraum fliegen.

    Hoffentlich könnt ihr auch Relativitätstheorie von Einstein.

    (Und nein das ist nicht mein richtiges Problem)

  8. Wieso darf überhaupt der User Kontrolle darüber haben wie viele Threads im System laufen? Auf welcher fachlichen Grundlage kannst Du das rechtfertigen? Die Anzahl der Threads ist abhängig von der Hardware und es Algorithmus, nicht von der Laune des Users.

    Stell dir folgendes vor (auch wenn es totaller schwachsinn ist):

    auf dem bildschirm ist eine Weltkarte

    der benutzer wird gefragt, wie viele uhren (mit der lokalen uhrzeit am erzeugten Ort)

    der benutzer gibt "10" ein -> es werden 10, zufällig auf der karte verteilte, uhren erzeugt, die ihre uhrzeit anzeigen

    der benutzer gibt "100" ein -> es werden 100, zufällig auf der karte verteilte, uhren erzeugt, die ihre uhrzeit anzeigen

    der benutzer gibt "1000" ein -> es werden 1000, zufällig auf der karte verteilte, uhren erzeugt, die ihre uhrzeit anzeigen

    ...

    da alle uhren threads sind (in meinem programm übertragen) entscheidet der user wie viele threads es gibt.

    -> JA, ich hab es schon geschafft den ganzen Mac lahm zu legen :(

    Ging nur noch Maus (komischer weise) und powerschalter

  9. Vielleicht so ???

    Ich poste einmal eine Antwort in Deiner Form und hoffe Du verstehst, wie ich es meine.

    while(Benutzer hat Lust auf den knopf zu drücken)
    
    {
    
       /* Erstelle 100 Objekte von Threads */
    
       /* 100 mal TObj.start(); */
    
       /* 100 mal TObj.stop(); */
    
       /* Programm beenden */
    
    }
    Ja genau sowas hätte gereicht. Aber deine Lösung geht nicht :D;)
    while(Benutzer hat Lust auf den knopf zu drücken)
    
    {
    
    -Benutzer erzeugt 100 Threads.
    
    -Programm fertig
    
    -Threads werden nicht mehr gebraucht
    
    }

    da hier kein "beenden" steht, heißt das, dass das programm noch nicht beendet wird

    Sowohl mit .interrupt(), als auch mit .stop() [ja veraltet ich weiß]

    zeigt mir mein CPU 100, 200, 300, 400, 500 Threads an und ist entsprechen überlastet

    siehe auch hier .stop hat nicht funktioniert

    hab das Problem aber schon so gelöst, dass ich die dauerschleife aus der run methode genommen hab

    siehe:

    Danke für das mit dem Abbrechen. Hab meine Schleife noch mal überdacht und denke dass ich sie überarbeiten kann.

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

    Weder in der Schule, noch in der Ausbildung, noch im Studium oder im Berufsleben ist mir so eine Aufgabe untergekommen, in der verlangt worden wäre 500 Threads zu erzeugen. Das ist sowohl von theoretischer, wie auch praktischer Sicht völlig sinnlos.

    Es werden so viele Threads erzeugt, wie der Benutzer Lust hat. Ich finde das kann man aus der schleife auch erkennen.

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

    Ich formuliere es mal in Bezug auf Deinen anderen Thread http://www.fachinformatiker.de/java/...bt-stehen.html so, dass Dein Lösungsalgorithmus extrem ineffizent ist und Du versucht durch "technische Spielerei (Threads)" die Ineffizienz zu lösen. Sofern Du also hier nicht bereit bist mehr Details zu dem Problem zu zeigen, wird man Dir nicht helfen können.

    Nein, ich versuche keine Ineffizienz zu lösen. siehe einen punkt hier drüber

    Es werden so viele Threads erzeugt, wie der Benutzer Lust hat. Ich finde das kann man aus der schleife auch erkennen.

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

    Ich kann die Schulform nur erraten: Baumschule *g

    Es ist keine Schul-, Ausbildungs-, Studiums- oder Berufs-aufgabe

    PS: Schulform bleibt geheim. Ich halte viel von Anonymität im internet

  10. BlueJ und groß passt nicht so recht zusammen. Das ist wie Hausbau mit Eimerchen und Schäufelchen. Was ist denn "recht groß", so in Codezeilen?

    Damit war gemeint, dass er relativ oft durchlaufen wird

    Geht so. Du hast 10.000.000 Zeilen geschätzt, es waren aber wohl nur etwa 600.000.

    -.- (155.000 Zeilen übrigens ;) wird doch sogar angezeigt)

    Jedenfalls ist das keine Datenmenge, mit der irgendeine Konsole irgendwelche Schwierigkeiten haben sollte. Das Problem liegt wohl in deinem Code.

    Hat sie aber. Einfacher beweis: ohne Konsolenausgabe funkt alles

    -> Das ursprüngliche Problem ist gelöst.

    -->

    Ohne Ausgabe funkt alles

    Über eine Erklärung würde ich mich trzd. freuen

  11. Die Konsolenausgabe war auch nur zur Kontrolle des Programms gedacht.

    Jetzt hat man grade die passende Version gefunden, will die Ausgabe kopieren und im Word auszählen lassen...

    Word gibt die Fehlermeldung: "Der Arbeitsspeicher reicht nicht aus um den Vorgang abzuschließen"

    Daten ge-4-telt:

    Und einzeln kopiert.

    post-89807-14430449524512_thumb.png

    10.000.000 war überraschend gut geschätzt... :cool::D

  12. Nein 500 Threads machen keinen Sinn (siehe die theoretische Grundlage Amdahlsches Gesetz )

    Ich versteh die Aufgabenstellung so

    Da Du Java Anfänger zu sein scheinst (aufgrund Deiner anderen Threads), rate ich ganz dringend dazu, dass Du erst einmal verstehst, wie Java arbeitet, bevor Du hier mit Threads und Nebenläufigkeiten arbeitest.

    Dass Du den Begriff Mutex nicht kennst, zeigt dass Du keine Vorstellung hast, wie überhaupt Threadding i. Allgm. funktioniert.

    3 Jahre Schulinformatik -> 1 Demo-Programm zum Threading

    Schon wieder ein Beitrag, bei dem man raten soll, was Du machst oder zu tun gedenkst.

    Oftmals hilft der Quellcode der Problemzone bei der Aufklärung und erleichtert den etwaigen Hilfeleistenden die Arbeit.

    Würd' ich glatt posten, nur darf ich das nicht.

    Und: Wieso raten? Denke das ist ziemlich eindeutig:

    while(Benutzer hat Lust auf den knopf zu drücken)
    
    {
    
    -Benutzer erzeugt 100 Threads.
    
    -Programm fertig
    
    -Threads werden nicht mehr gebraucht
    
    }

    Es werden viele Theras erstellt -> die werden nicht mehr benötigt -> bestehen weiter

  13. Der Algorithmus funktioniert ja schon (bzw. hat funktioniert)

    Steuerklasse meinte die Klasse, die die Threads erzeugt und startet.

    Und ja die vielen Threads haben sinn, da sie zu unterschiedlichen Zeitpunkten erzeugt werden und immer die sleep Methode aufruhen.

    Danke für das mit dem Abbrechen. Hab meine Schleife noch mal überdacht und denke dass ich sie überarbeiten kann.

    Mutex
    Was ist das?
  14. Hi,

    ich hab mal ein paar Fragen zu Threads.

    1. Wie kann ich Threads löschen?

    Beispiel:

    while(Benutzer hat Lust auf den knopf zu drücken)

    {

    -Benutzer erzeugt 100 Threads.

    -Programm fertig

    -Threads werden nicht mehr gebraucht

    }

    Sowohl mit .interrupt(), als auch mit .stop() [ja veraltet ich weiß]

    zeigt mir mein CPU 100, 200, 300, 400, 500 Threads an und ist entsprechen überlastet

    2.

    Alle 100 Threads rufen die gleiche Methode in der Steuerklasse aller Threads auf.

    -> Die Threads beeinflussen sich jetzt gegenseitig beim ändern von Variablen in der Steuerklasse oder? (Wenn nein hab ich ein anderes problem)

  15. @flashpixx: javabeginners ist doch meine leiblingsseite :D

    (bei programm start durch die entwicklungsumgebung geht auch meine main Methode, aber ja vlt sollte das nicht sein)

    @uenetz: bin mir sicher deins ist eine wurderbare Lösung... :D

    habs jetzt trzd. anders gemacht (war mir zu kompliziert)

  16. Hi,

    ich möchte in meiner Main-Methode einige Parameter eingeben.

    public static void main(int pAnzahl)
    
        {
    
            SuMAnwendung hatSuMAnwendung = new SuMAnwendung(pAnzahl);
    
            hatSuMAnwendung.fuehreAus();
    
        }
    funkt auch. Meine Frage: Wie gestalte ich das mit boolschen-Variablen? Kann ich dort eine Auswahl angeben?
    public static void main(boolean pMoechtestDuEinenApfel)
    
        {
    
            SuMAnwendung hatSuMAnwendung = new SuMAnwendung(pMoechtestDuEinenApfel);
    
            hatSuMAnwendung.fuehreAus();
    
        }

    Jetzt soll aber nicht "true" oder "false" GETIPPT werden, sondern per Klick aus ausgewählt werden.

    "true" und "false" wären dann die einzig beiden Möglichkeiten der Eingabe.

  17. Ich habe in BlueJ einen recht großen Algorithmus geschrieben.

    Eine Ausgabe ist auch kein Problem.

    Nur werden Sehr viele erzeugt.

    Wie viele kann ich leider nicht sagen, aber geschätzt würde ich sagen, dass bei der 10.000.000sten Zeile abgebrochen wird.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...