Zum Inhalt springen

geloescht_Newlukai

Mitglieder
  • Gesamte Inhalte

    451
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von geloescht_Newlukai

  1. Pattern.matches("\\d*\\.\\d+", s) Genügt das?
  2. Dann füg' bitte ganz oben mal import java.util.Random; ein.
  3. Random randomizer = new Random(); r1 = randomizer.nextInt();
  4. Dir ist schon bewußt, daß Du die Klassen Double und Scanner importieren mußt?
  5. Ich denke, es ist nicht verkehrt, mehr als eine Sprache zu beherrschen Allerdings ist meiner Meinung nach Java wieder ein Spezialfall durch die Plattformunabhängigkeit, was man schon bei der Konsoleneingabe sieht. Dazu kommt noch, daß die Klassenbibliothek vor Design Patterns nur so strotzt. Java ist daher wohl eher eine schwierigere Sache um "mal eben" programmieren zu lernen. Aber wenn Du das Programmieren wirklich lernen willst, ist es sicher nicht verkehrt. Angefangen habe ich mit QBasic, Profan und dann VB. VB finde ich für den Anfang nicht übel. Zu Deinem Problem: An isch sollte das gehen. Poste doch mal den Code. Es kann allerdings sein, daß Windows den "Fuß drauf hat".
  6. Thema Zufallsgenerator: Benutze das hier: Random randomizer = new Random(); r1 = randomizer.nextInt(); Thema do durch switch ersetzen: Ich erinnere mich an das erste Halbjahr Programmieren in der Berufsschule. Es wurden die verschiedenen Kontrollstrukturen in Programmiersprachen behandelt. Also Abfragen, Schleifen, Blöcke, etc. do {...} while() ist eine Schleife. switch() {...} eine Mehrfachauswahl. Wie hattes Du denn vor, das eine durch das andere zu ersetzen?
  7. Ich denke nicht, daß es ganz so pauschal ist. Ich vermute (denn auch ich lese den Quelltext nicht), daß r1 und r2 die Geschwindigkeiten des Balls in x- bzw. y-Richtung sind. Daher solltest Du in beiden Zeilen r1 und r2 neu zufällig berechnen, natürlich mit dem entsprechenden Vorzeichen.
  8. OK. Sicher helfen wir Dir hier bei dem ein oder anderen Problem. BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); // was da passiert weiss ich noch nicht Es ist nicht schlimm, das nicht zu verstehen. In dem von mir erwähnten Buch ist diesem Thema ein ganzes Kapitel gewidmet. Um das verstehen zu können, mußt Du Dich erst mal in der OOP zurechtfinden. Für den Moment reicht es, zu wissen, daß Du hiermit ein Objekt erzeugst (namens "in"), mit dem Du auf der Konsole eine Benutzereingabe realisieren kannst, was Du hier User = in.readLine(); // hier kann man seinen Namen eingeben und weiter ?? ja auch tust. Die Methode readLine() liest Zeichen ein, bis der Anwender ENTER betätigt. Gut, ganz so simpel ist es nicht, aber das reicht fürs erste. if(JaNein.equals("Ja") So hier sollte das in die Methode gewechselt wo das spiel weiter geht WIE ?? ; Na zum Beispiel so: public class Antwortspiel { public static void main(String[] args) throws IO Exception { String user; String jaNein; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Hallo bitte gebe deinen Spieler Namen ein: "); User = in.readLine(); System.out.println("Hallo "+User+" das ist ein Spiel willst du Spielen \n Ja/nein); jaNein = in.readLine(); if(jaNein.equals("Ja")) { startGame(); } else { System.out.println("Spieler wollte gar nicht spielen ..."); } System.out.println("Spiel wird beendet ..."); System.exit(0); } private static void startGame() { System.out.println("Spiel gestartet ..."); } }
  9. Hmm. Achso. Aber Dir das alles zu erklären, würde den Rahmen hier sprengen, denn Java bietet einiges mehr. Alleine die Erklärung der OOP würde schon einiges verschlingen und das ist eines der Grundkonzepte von Java. Daher würde ich Dir zur Lektüre eines der empfohlenen Bücher raten. Ich habe von denen allerdings nur "Java ist auch eine Insel" gelesen, daher kann ich nichts über die anderen sagen. Jedenfalls reicht es, wenn Du Dir zu Anfang mal die ersten Kapitel anschaust. Da wird schon einiges erklärt.
  10. In Eclipse kannst Du links am Rand des Editors per Doppelklick einen Breakpoint einfügen. Oder mit Rechtsklick "Add Breakpoint" oder so. Und dann mußt Du Dein Programm nur noch - statt mit dem weißen Pfeil auf grünem Grund - mit dem Käfer auf grünem Grund starten. Wird nun der Code aufgerufen, den Du mit dem Breakpoint markiert hast, hält das Programm an und Du kannst Dir die Daten ansehen und weiterlaufen lassen. Und: Ja, es ist tatsächlich eine gute Idee sich vorher zu erkundigen, wieviele Zeilen denn überhaupt existieren, bevor man wild drauf zugreift
  11. Verstehst Du denn auch den Code, den Du geschrieben hast? Bitte nicht falsch verstehen. Ich will Dir nicht auf den Schlips treten, sondern nur wissen, ob Du Dir Grundlagen erarbeiten konntest. Das mit der IOException ist ein wenig komplexer. Java hat Exception-Handling "eingebaut". Ein kleines Beispiel: Integer.parseInt("Hallo"); Wie Du wohl schon weißt, kann die Methode parseInt(String) der Klasse Integer aus einem String (sprich Text) die Zahl lesen und diese zurückgeben (als int). Doch bei obigem Beispiel enthält der String keine Zahl, sondern tatsächlich Text. Jetzt ist die Frage, was die Methode denn zurückgeben kann. Der Rückgabebereich beschränkt sich ja auf den Wertebereich des Datentyps int. Also Zahlen von -Schlagmichtot bis +Schlagmichtot. Viele Programmierer würden bei obigem Aufruf eine 0 oder -1 zurückgeben. Doch das ist fachlich vollkommen verkehrt, da sie von den Rückgaben der korrekten Aufrufe: Integer.parseInt("0"); Integer.parseInt("-1"); nicht zu unterscheiden sind. Und hier greift das Exception-Handling. Denn in diesem Fall würde die Methode eine "NumberFormatException" (weiß nicht mehr, wie sie richtig heißt) "werfen": public static int parseInt(String s) throws NumberFormatException Und diese kannst Du "abfangen": try { Integer.parseInt("Hallo"); } catch(NumberFormatException e) { System.out.println("Bitte geben Sie eine Zahl ein!"); } Sinn und Zweck des Ganzen ist es, daß Du als Programmierer auf Fehler reagieren kannst um dem Anwender bspw. die Möglichkeit zu geben, seine Eingaben zu korrigieren. Und so ist es auch mit der IOException. Die signalisiert nur, daß ein Fehler bei der Datenübergabe aufgetreten ist. Würdest Du z. B. eine Datei auslesen und sie würde während dem Auslesen gelöscht werden, reagiert der Buffer mit dem Werfen eine IOException.
  12. Dann zeig' doch mal den Code für die Zahlen. Dann ziehen wir das etwas didaktischer auf. Sollst ja auch was lernen
  13. Man ersetze Frau=="Erna" durch Frau.equals("Erna") usw. Wolltest Du das wissen?
  14. Man stelle sich die Klasse Farbe vor: class Farbe { private String farbe; public Farbe(String farbe) { this.farbe = farbe; } } Du erzeugst zwei Farben und vergleichst sie: public void test() { Farbe rot1 = new Farbe("rot"); Farbe rot2 = new Farbe("rot"); System.out.println(rot1 == rot2); } Der Test ergibt false, da es zwei unterschiedliche Objekte sind. Allerdings sichern sie ja die gleiche Farbe, sollten bei einem Vergleich also auch als gleich erkannt werden. Daher gibt's in Object die Methode equals, die man überschreiben sollte. EDIT: OK. Post nicht ganz gelesen. In Deinem Fall. Hmm. Ich rate Dir, da Du blutiger Anfänger bist , eines der empfohlenen Bücher anzulesen um einen Einblick in das Programmieren zu bekommen. Zu Deinem Problem: Ein Vergleichsausdruck kann auch aus mehreren logisch verknüpften Ausdrücken bestehen: public class Familie { public static void main(String[] args) { String Frau="Erna"; String Mann="Hans"; String Sohn="Jens"; String Tochter="niki"; if(Frau=="Erna" && Mann=="Hans" && Sohn=="Jens" && Tochter=="niki") { System.err.println("Frau: "+Frau+", Mann: "+Mann+", Sohn: "+Sohn+" und Tochter: "+Tochter+" sind eine Familie"); } else { System.err.println("Das ist nicht die richtig Familie"); } } }
  15. Joa, wie gesagt, Prämisse war eben das alles en bloc im RAM vorliegt. PE und ELF sind tatsächlich interessant ... thx
  16. Ich weiß nicht, ob's tatsächlich so simpel ist, wie ich mir das vorstelle: Programmadressen sind also die Adressen der Methoden, etc. relativ zum Programm. Habe ich also z. B. printTable() und printChart(), haben diese Methoden je nach Länge bspw. die Adressen A0 und B0. Relativ zum Programm, d. h. die erste Zeile Code stünde in Adresse 0. Wird der Code nun ausgeführt, wird das Programm in den RAM geschrieben. Und dort sicher nicht an Adresse 0. D. h. unter A0 und B0 würdest Du nicht die beiden Methoden finden. Wenn Du aber die Adresse des Programms hast (die ja relativ zum Programm 0 war), kommst Du auch relativ leicht zu den Adressen der Methoden: Adresse des Programms im RAM + Programmadresse Vorausgesetzt ist natürlich, daß das Programm in einem Block im RAM vorliegt. Mich würde jetzt interessieren, was Du studierst, in welchem Semester und welchem Fach diese Aufgabe entspringt.
  17. In der JavaAPI findest Du alles zum GregorianCalendar. Was Dir wohl hilft ist die Methode roll().
  18. Fällt Dir an der fett markierten Zeile etwas auf? Falls nicht, rate ich Dir dringendst die Grundlagen von Java nochmal durchzuarbeiten.
  19. Hehe. Stimmt. Aber was mir dabei noch auffällt, eigentlich selbstverständlich ist: Wenn Du mit dem Modulo kodierst, und sei n < 2^8, dann brauchst Du keine Codierung ...
  20. lol Ähm. Das ist die richtige Ausgabe!? Falls Du aber lieber den Teilnehmernamen hättest, solltest Du in der Klasse Teilnehmer de Methode toString überschreiben. Woher soll den die JVM sonst wissen, was ausgegeben werden soll?
  21. Das hier könnte helfen: Class.getResourceAsStream(String)
  22. Schön zu hören/lesen, daß es klappt. Wenn Du schon fragst, sollst Du auch eine Antwort haben. Laut Wikipedia trifft der Begriff Methodik hier nicht zu. Mit Methode hast Du ein treffendes, auch super klingendes Wort
  23. Hmm. Vor einiger Zeit habe ich ein Batch-Skript geschrieben, welches verschiedene Prozesse anstößt und zyklisch läuft. Tritt in einem der Prozesse ein Fehler auf, wird eine Datei ERROR.FLAG geschrieben, anhand derer das Skript merkt, daß jeder weitere Durchlauf abzubrechen ist, bis jemand händisch das Problem löst und die ERROR.FLAG wieder löscht. Das Prinzip läßt sich doch evtl. auf Dein Problem übertragen. Statt Änderungen an der JSP, machst Du Änderungen an der Batch-Datei. Laß' sie zu Beginn prüfen, ob eine Flag-Datei vorliegt. Falls ja, beende die Batch-Datei; falss nein, schreibe ein Flag. Falls auch das für Dich nicht funktioniert, weil Du entweder keinen Zugriff auf die Batch-Datei hast oder es trotzdem vorkommt, daß 2 Clients die Batch-Datei starten, mußt Du den Aufruf in ein eigenes Objekt schreiben. Mir fallen da 2 Möglichkeiten ein, die nicht unbedingt stimmen müssen Du hast ein Singleton-Objekt, das nur eine Methode anbietet, die die Batch-Datei aufruft. Diese Methode ist aber synchronized. So nimmt Dir Java das Handling ab. Du schreibst eine Warteschlange. Jeder Client, der die Batch-Datei starten möchte, trägt sich in die Liste ein. Die Warteschlange hält die Wartenden in einer Liste und ruft in einem eigenen Thread nach und nach die Batch-Datei auf. Das Problem hierbei ist, daß die Aufrufer keine Bestätigung haben, ob jetzt die Batch-Datei angestoßen wurde oder nicht. Aber auch das läßt sich lösen. Evtl. indem man die Clients, nachdem sie sich eingetragen haben, in einer Schleife laufen läßt. In dieser Schleife wird geprüft, ob der Client selbst noch in der Warteschlange vermerkt ist. Dazu muß natürlich innerhalb der Warteschlange ein geeignetes Client-Identifizierungsmerkmal vorhanden sein. Eins möcht' ich noch erwähnen: Vielen Dank für diese präzise und ausführliche Problembeschreibung. Erlebt man selten

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...