Moving Average Java Beispiel


Einleitung Der vorherige Artikel untersuchte, welche gleitenden Durchschnitte sind und wie man sie berechnet. Dieser Artikel schaut jetzt, wie man diese in Web Intelligence implementiert. Die hier verwendete Formel ist mit der XIr3-Version von SAP BOE kompatibel, aber einige Formel kann in früheren Versionen funktionieren, falls verfügbar. Wir beginnen mit dem Betrachten, wie man einen einfachen gleitenden Durchschnitt berechnet, bevor man gewichtete und exponentielle Formen betrachtet. Bearbeitete Beispiele Die nachfolgenden Beispiele verwenden den gleichen Datensatz, der aus Aktienkursdaten in einer Excel-Datei besteht, die Sie herunterladen können. Die erste Spalte in der Datei ist der Tag des Aktienkurses und dann Spalten des Eröffnungskurses, höchster Preis am Tag, niedrigster Preis, Schlusskurs, Volumen und angepaßter Schlusskurs. Wir verwenden den Schlusskurs in unserer Analyse unten zusammen mit dem Date-Objekt. Simple Moving Average Es gibt ein paar Möglichkeiten, mit denen wir einfache gleitende Durchschnitte berechnen können. Eine Option besteht darin, die Vorherige Funktion zu verwenden, um den Wert einer vorherigen Zeile zu erhalten. Zum Beispiel berechnet die folgende Formel einen gleitenden Durchschnitt auf unserem Schlusskurs für einen gleitenden durchschnittlichen Datensatz von Größe 3, das ist eine ganz einfache Formel aber es ist offensichtlich, dass es nicht praktisch ist, wenn wir eine große Anzahl von Perioden haben, die wir hier machen können Verwendung von RunningSum Formel und für einen Datensatz von Größe N haben wir endlich haben wir eine 3. Technik, die zwar komplizierter ist, kann es eine bessere Leistung haben, da es den neuen Wert auf der Grundlage des vorherigen Wertes anstatt zwei laufende Summen über die vollständigen Daten berechnet Set. Diese Formel funktioniert jedoch nur nach dem N-ten Punkt im Gesamtdatensatz und da sie sich auf einen vorherigen Wert bezieht, müssen wir auch einen Startwert setzen. Unten ist die volle Formel für unsere Aktienkursanalyse verwendet, wo unsere gleitende durchschnittliche Periode 15 Tage ist, das Datum 1252010 ist der 15. Datenpunkt in unserem Datensatz und so für diesen Punkt berechnen wir einen normalen Durchschnitt mit dem RunningSum. Für alle Termine jenseits dieses Wertes verwenden wir unsere SMA-Formel und wir lassen alle Termine vor diesem Datum leer. Abbildung 1 unten ist ein Diagramm in Web Intelligence, das unsere Aktienkursdaten mit einem einfachen gleitenden Durchschnitt anzeigt. Abbildung 1. Web Intelligence-Dokument zeigt eine einfache verschiebende durchschnittliche gewichtete bewegliche Durchschnitt Eine gewichtete gleitende durchschnittliche Formel mit einer Periode von 3 ist, wie bei unserer ersten einfachen gleitenden durchschnittlichen Formel oben ist dies nur für eine kleine Anzahl von Perioden praktisch. Ich habe noch nicht in der Lage, eine einfache Formel zu finden, die für größere gleitende durchschnittliche Perioden verwendet werden kann. Mathematisch ist es möglich, aber Einschränkungen mit Web Intelligence bedeutet, dass diese Formeln don8217t konvertieren. Wenn jemand in der Lage ist, dies zu tun, würde ich gerne hören Die folgende Abbildung ist ein WMA von Periode 6 in Web Intelligence implementiert. Abbildung 2. Web Intelligence-Dokument eines gewichteten beweglichen durchschnittlichen exponentiellen Moving Average Ein exponentieller gleitender Durchschnitt ist ganz einfach, um in Web Intelligence zu implementieren und ist daher eine geeignete Alternative zu einem gewichteten Moving Average. Die Grundformel ist hier hart codiert 0,3 als unser Wert für Alpha. Wir wenden diese Formel nur für Perioden an, die größer sind als unsere zweite Periode, so dass wir eine if-Anweisung verwenden können, um diese zu filtern. Für unsere erste und zweite Periode können wir den vorherigen Wert verwenden und so ist unsere endgültige Formel für EMA, unten ist ein Beispiel für eine EMA, die auf unsere Bestandsdaten angewendet wird. Abbildung 3. Web Intelligence-Dokument zeigt eine exponentielle Moving Average Input Controls Als unsere EMA Formel doesn8217t auf die Größe der gleitenden durchschnittlichen Zeitraum verlassen und unsere einzige Variable ist Alpha können wir Input Controls verwenden, damit der Benutzer den Wert von Alpha anpassen. Um dies zu tun, erstellen Sie eine neue Variable namens 8216alpha8217 und definieren it8217s Formel als, aktualisieren Sie unsere EMA Formel zu, Erstellen Sie eine neue Eingabesteuerung Auswahl unserer Alpha-Variable als Eingabe-Control-Report-Objekt Verwenden Sie einen einfachen Schieberegler und legen Sie die folgenden Eigenschaften, Sobald Sie getan haben Sollte in der Lage sein, den Schieberegler zu bewegen und sofort die Änderungen an der Trendlinie im Diagramm zu sehen. Fazit Wir haben uns gefragt, wie wir drei Arten von gleitendem Durchschnitt in Web Intelligence implementieren können und obwohl alles möglich war, ist der Exponential Moving Average wahrscheinlich der einfachste und flexibelste . Ich hoffe du hast diesen Artikel interessant gefunden und wie immer ist jedes Feedback sehr willkommen. Post navigation Hinterlasse eine Antwort Antworten abbrechen Du musst eingeloggt sein, um einen Kommentar zu posten. Der Trick zu Weighted Moving Average (WMA) ist, dass du eine Variable erstellen musst, die die Zähler von WMA repräsentiert (siehe Wikipedia als Referenz). Dies sollte wie folgt aussehen: Zurück (Self) (n Close) 8211 (Zurück (RunningSum ( Schließen)) 8211 Zurück (RunningSum (Schließen) n1) wobei n die Anzahl der Perioden ist, dann wäre die eigentliche WMA8217s Formel so: Numerator (n (n 1) 2) wobei Numerator die Variable ist, die du früher erstellt hast.1.2 Built In Datentypen Ein Datentyp ist ein Satz von Werten und eine Reihe von Operationen, die auf ihnen definiert sind. Zum Beispiel sind wir mit Zahlen und mit Operationen vertraut, wie z. B. Addition und Multiplikation. Es gibt acht verschiedene eingebaute Typen Von Daten in Java, meist verschiedene Arten von Zahlen Wir verwenden den Systemtyp für Zeichenfolgen so häufig, dass wir es auch hier betrachten Terminologie Wir verwenden das folgende Codefragment, um eine Terminologie einzuführen: Die erste Zeile ist eine Deklarationsanweisung, die Deklariert die Namen von drei Variablen mit den Bezeichnern a. B. Und c und ihre Art int Die nächsten drei Zeilen sind Zuweisungsanweisungen, die die Werte der Variablen mit den Literaten 1234 und 99 ändern. Und der Ausdruck a b. Mit dem Endergebnis, dass c den Wert 1333 hat. Zeichen und Zeichenfolgen. Ein char ist ein alphanumerisches Zeichen oder Symbol, wie die, die du tippst. Normalerweise führen wir keine Operationen auf andere Zeichen aus als die Zuordnung von Werten zu Variablen. Ein String ist eine Folge von Zeichen. Die häufigste Operation, die wir auf Strings durchführen, wird als Verkettung bezeichnet. Bei zwei Strings, ketten sie zusammen, um eine neue Saite zu machen. Betrachten Sie zum Beispiel das folgende Java-Programmfragment: Die erste Anweisung deklariert drei Variablen vom Typ String. Die nächsten drei Aussagen weisen ihnen Werte zu, mit dem Endergebnis, dass c den Wert Hello, Bob hat. Mit String-Verkettung druckt Ruler. java die relativen Längen der Unterteilungen auf einem Lineal. Ganze Zahlen Ein int ist eine ganze Zahl (ganze Zahl) zwischen minus2 31 und 2 31 minus 1 (minus2,147,483,648 bis 2,147,483,647). Wir verwenden int s häufig nicht nur, weil sie häufig in der realen Welt auftreten, aber auch sie entstehen natürlich, wenn sie Algorithmen ausdrücken. Standard-Arithmetikoperatoren für Addition, Multiplikation und Division, für Integer sind in Java eingebaut, wie in IntOps. java und der folgenden Tabelle dargestellt: Gleitkommazahlen. Der doppelte Typ ist für die Darstellung von Gleitkommazahlen, z. B. Für den Einsatz in wissenschaftlichen Anwendungen. Die interne Repräsentation ist wie wissenschaftliche Notation, so dass wir mit realen Zahlen in einem riesigen Bereich rechnen können. Wir können eine Gleitkommazahl mit einer Ziffernfolge mit einem Dezimalpunkt angeben, z. B. 3.14159 für eine sechsstellige Annäherung an die mathematische Konstante pi oder mit einer Notation wie wissenschaftliche Notation, z. B. 6.022E23 für Avogadros Konstante 6.022 mal 10 23. Standard arithmetische Operatoren für Addition, Multiplikation und Division, für Doppelte sind in Java eingebaut, wie in DoubleOps. java und der folgenden Tabelle dargestellt: Quadratic. java zeigt die Verwendung von Doppel im Rechnen Die beiden Wurzeln einer quadratischen Gleichung mit der quadratischen Formel. Booleans Der boolesche Typ hat nur zwei Werte: true oder false. Die scheinbare Einfachheit ist das Täuschung von Dämonen, die auf dem Fundament der Informatik liegen. Die wichtigsten Operatoren, die für die Booleschen definiert sind, sind für und. oder . und nicht . und . A b ist wahr, wenn sowohl a als auch b wahr sind, und falsch anders. oder . A b ist wahr, wenn entweder a oder b wahr ist (oder beide sind wahr) und falsch sonst nicht. A ist wahr, wenn a falsch ist, und falsch anders. Obwohl diese Definitionen intuitiv und leicht verständlich sind, lohnt es sich, jede Möglichkeit für jede Operation in einer Wahrheitstabelle vollständig festzulegen. Vergleiche. Die Vergleichsoperatoren sind gemischte Operationen, die Operanden eines Typs (z. B. int oder double) einführen und ein Ergebnis des Typs boolean erzeugen. Diese Operationen spielen eine entscheidende Rolle bei der Entwicklung von anspruchsvolleren Programmen. LeapYear. java prüft, ob eine Ganzzahl einem Schaltjahr im gregorianischen Kalender entspricht. Bibliotheksmethoden und APIs. Viele Programmieraufgaben beinhalten neben den integrierten Operatoren auch Java-Bibliotheksmethoden. Eine Anwendungsprogrammierschnittstelle ist eine Tabelle, die die Methoden in einer Bibliothek zusammenfasst. Drucken von Strings zum Terminalfenster. Konvertieren von Strings zu primitiven Typen. Mathematische Funktionen. Sie können eine Methode aufrufen, indem Sie ihren Namen eingeben, gefolgt von Argumenten. In Klammern eingeschlossen und durch Kommas getrennt. Hier sind einige Beispiele: Wir finden uns oft die Umwandlung von Daten von einem Typ zum anderen mit einem der folgenden Ansätze. Typumwandlung. Wir finden uns oft die Umwandlung von Daten von einem Typ zum anderen mit einer der folgenden Ansätze. Explizite Typumwandlung. Rufen Sie Methoden wie Math. round () auf. Integer. parseInt (). Und Double. parseDouble (). Automatische Umwandlung. Bei primitiven numerischen Typen führt das System automatisch die Typumwandlung durch, wenn wir einen Wert verwenden, dessen Typ einen größeren Wertebereich hat als erwartet. Explizite Abgüsse. Java hat auch einige integrierte Typ-Umwandlungsmethoden für primitive Typen, die Sie verwenden können, wenn Sie wissen, dass Sie Informationen verlieren könnten, aber Sie müssen Ihre Absicht mit etwas, das als Cast bezeichnet wird. RandomInt. java liest ein Integer-Befehlszeilenargument n und druckt eine zufällige Ganzzahl zwischen 0 und n minus1. Automatische Konvertierungen für Strings. Der eingebaute Typ String befolgt besondere Regeln. Eine dieser speziellen Regeln ist, dass man ganz einfach jede Art von Daten in einen String mit dem Operator umwandeln kann. Angenommen, a und b sind int-Werte. Was macht die folgende Abfolge von Aussagen Lösung. Setzt ein. B. Und t gleich dem ursprünglichen Wert von a. Angenommen, a und b sind int-Werte. Vereinfachen Sie den folgenden Ausdruck: ((a b)) Lösung. (A b) Der Exklusiv - oder Operator für Boolesche Operanden ist als wahr definiert, wenn sie anders sind, falsch, wenn sie gleich sind. Geben Sie für diese Funktion eine Wahrheitstabelle. Warum gibt es 3 und nicht 3.33333333. Lösung Da sowohl 10 als auch 3 Integer-Literale sind, sieht Java keine Notwendigkeit für die Typumwandlung und verwendet eine Ganzzahl-Division. Du solltest 10.03.0 schreiben, wenn du die Zahlen als doppelte Literale meinst. Wenn du 103.0 oder 10.03 schreibst. Java hat implizite Umwandlung, um das gleiche Ergebnis zu erhalten. Was macht jeder der folgenden Drucksystem. out. println (2 bc) druckt: 2bc System. out. println (2 3 bc) druckt: 5bc System. out. println ((23) bc) druckt: 5bc System. out. Println (bc (23)) druckt: bc5 System. out. println (bc 2 3) druckt: bc23 Erläutern Sie jedes Ergebnis. Erklären Sie, wie Sie quadratisch verwenden, um die Quadratwurzel einer Zahl zu finden. Lösung Um die Quadratwurzel von c zu finden, die Wurzeln von x2 0x - c finden. Ein Physikstudent bekommt unerwartete Ergebnisse bei der Verwendung des Codes zur Berechnung von Werten nach der Formel F G m 1 m 2 r 2. Erläutern Sie das Problem und korrigieren Sie den Code. Lösung Es teilt sich durch r. Dann multipliziert mit r (anstatt sich durch r r zu teilen). Verwenden Sie Klammern: Schreiben Sie ein Programm Distance. java, das zwei Integer-Befehlszeilenargumente x und y annimmt und den euklidischen Abstand vom Punkt (x. Y) zum Ursprung (0, 0) druckt. Schreiben Sie ein Programm SumOfTwoDice. java, das die Summe von zwei zufälligen ganzen Zahlen zwischen 1 und 6 druckt (wie Sie vielleicht beim Würfeln erhalten). Schreiben Sie ein Programm SpringSeason. java, das zwei int-Werte m und d von der Befehlszeile übernimmt und prüft wahr, wenn der Tag d des Monats m zwischen dem 20. März (m 3, d 20) und dem 20. Juni (m 6, d 20) falsch ist Andernfalls. Kreative Übungen Wind chill. Bei der Temperatur t (in Fahrenheit) und der Windgeschwindigkeit v (in Meilen pro Stunde) definiert der National Weather Service die effektive Temperatur (Windwind): w 35.74 0.6215 t (0.4275 t - 35.75) v 0.16 Schreiben Sie ein Programm WindChill. java, das zwei doppelte Befehlszeilenargumente t und v nimmt und den Windchill druckt. Verwenden Sie Math. pow (a, b), um ein b zu berechnen. Hinweis: Die Formel ist nicht gültig, wenn t größer als 50 im absoluten Wert ist oder wenn v größer als 120 oder kleiner als 3 ist (Sie können davon ausgehen, dass die Werte, die Sie erhalten, in diesem Bereich liegen). Polar Koordinaten. Schreiben Sie ein Programm CartesianToPolar. java, das von kartesischen zu Polarkoordinaten umwandelt. Ihr Programm sollte zwei reelle Zahlen x und y auf der Kommandozeile nehmen und die Polarkoordinaten r und theta ausdrucken. Verwenden Sie die Java-Methode Math. atan2 (y, x). Die den arkustangenen Wert von yx berechnet, der im Bereich von - pi bis pi liegt. Wochentag. Schreiben Sie ein Programm DayOfWeek. java, das ein Datum als Eingabe und druckt den Tag der Woche, die Datum fällt auf. Ihr Programm sollte drei Kommandozeilen-Argumente: m (Monat), d (Tag) und y (Jahr). Für m Gebrauch 1 für Januar, 2 für Februar und so weiter. Für Ausgabe drucken 0 für Sonntag, 1 für Montag, 2 für Dienstag und so weiter. Benutze die folgenden Formeln für den gregorianischen Kalender (wobei eine ganzzahlige Teilung bezeichnet): y 0 y minus (14 minus m) 12 xy 0 y 0 4 minus y 0 100 y 0 400 m 0 m 12 mal ((14 minus m) 12 ) Minus 2 d 0 (dx 31 m 0 12) mod 7 Zum Beispiel an welchem ​​Tag der Woche war der 2. August 1953 Uniform zufällige Zahlen. Schreiben Sie ein Programm Stats5.java, das fünf einheitliche zufällige Werte zwischen 0 und 1, ihren Mittelwert und ihren minimalen und maximalen Wert ausgibt. Verwenden Sie Math. random (). Math. min (). Und Math. max (). Dreifach. Schreiben Sie ein Programm ThreeSort. java, das drei int-Werte aus der Befehlszeile nimmt und sie in aufsteigender Reihenfolge druckt. Verwenden Sie Math. min () und Math. max (). Drachenkurven. Schreiben Sie ein Programm Dragon. java, um die Anweisungen zum Zeichnen der Drachenkurven der Ordnung 0 bis 5 zu drucken. Die Anweisungen sind Zeichenfolgen der Zeichen F. L Und R. Wo F bedeutet, zeichnen Sie, während Sie 1 Einheit nach vorne bewegen, L bedeutet, links abbiegen, und R bedeutet rechts abbiegen. Eine Drachenkurve der Ordnung n wird gebildet, wenn man einen Papierstreifen in der Hälfte n-mal faltet, dann in rechtwinklig entfalten. Der Schlüssel zur Lösung dieses Problems besteht darin, zu bemerken, daß eine Kurve der Ordnung n eine Kurve der Ordnung n minus1 ist, gefolgt von einem L, gefolgt von einer Kurve der Ordnung n minus1, die in umgekehrter Reihenfolge durchlaufen wird, und dann eine ähnliche Beschreibung des Gegenteils herauszufinden Kurve. Web-Übungen Schreiben Sie ein Programm Swap. java, das zwei Integer-Befehlszeilenargumente a und b übernimmt und ihre Werte mit dem auf p. 17. Nach jeder Zuweisungsanweisung verwenden Sie System. out. println (), um eine Ablaufverfolgung der Variablen zu drucken. Was bedeutet die folgende Aussage, wo Grade eine Variable vom Typ int ist. Lösung Syntaxfehler seitSource Code T Seine Seite enthält Links zum Quellcode für Beispiele, die im freien, Online-Lehrbuch erscheinen Einführung in die Programmierung mit Java, Seventh Edition. Die Indexseite enthält Links zum Herunterladen der gesamten Website. Wenn Sie das tun, finden Sie die Quellcode-Dateien in einem Verzeichnis namens Quellen. Es gibt auch einen Link zum Herunterladen nur der Quellcode. Die README-Datei aus dem Download enthält einige Anweisungen zum Kompilieren und Ausführen der Programme. Beachten Sie jedoch, dass einige dieser Beispiele von anderen Quelldateien wie TextIO. java abhängen. Die nicht in Java eingebaut sind. Das sind Klassen, die ich geschrieben habe. Alle notwendigen Dateien sind in den Downloads enthalten und Links zu den einzelnen Dateien finden Sie unten. Die Lösungen für das Ende des Kapitels sind nicht auf dieser Seite aufgeführt. Jede End-of-Chapter-Übung hat eine eigene Webseite, die ihre Lösung diskutiert. Der Quellcode einer Beispiellösung jeder Übung wird auf der Lösungsseite für diese Übung gegeben. Wenn Sie die Lösung kompilieren möchten, sollten Sie in der Lage sein, die Lösung aus einem Webbrowser-Fenster und in ein Textbearbeitungsprogramm zu schneiden und einzufügen. (Sie können nicht schneiden und einfügen aus der HTML-Quelle der Lösungsseite, da es zusätzliche HTML-Markup-Befehle enthält, die der Java-Compiler nicht verstehen wird, dass der HTML-Markup nicht angezeigt wird, wenn die Seite in einem Webbrowser angezeigt wird.) Übungslösungen sind Auch als Download von der Titelseite der Website erhältlich. Die README-Datei aus dem Download hat mehr Informationen. Viele der Beispielprogramme im Text basieren auf dem Eingabebeleg der Konsolenart, wobei der Computer und der Benutzer Textzeilen hin und her einander ausführen. Einige dieser Programme verwenden das Standard-Ausgabeobjekt System. out. Für die Ausgabe. Viele von ihnen verwenden meine Nicht-Standardklasse, TextIO. Für Eingabe. Für die Programme, die TextIO verwenden. Eine der Dateien TextIO. java oder TextIO. class muss verfügbar sein, wenn Sie das Programm kompilieren, und TextIO. class muss verfügbar sein, wenn Sie das Programm ausführen. Es gibt auch eine GUI-Version von TextIO finden Sie Informationen über sie am Ende dieser Webseite. HalloWorld. java. Aus Abschnitt 2.1. Ein triviales Programm, das nichts macht, aber die Nachricht auszudrucken, Hallo Welt. Ein Hallo World Programm ist in der Regel das erste Programm für jemanden, der eine neue Programmiersprache lernt. Interesse. Aus Abschnitt 2.2. Berechnet die Zinsen auf einen bestimmten Geldbetrag über einen Zeitraum von einem Jahr. TimedComputation. java. Aus Abschnitt 2.3. Zeigt einige grundlegende eingebaute Unterroutinen und Funktionen. EnumDemo. java. Aus Abschnitt 2.3. Eine sehr einfache erste Demonstration von Enum-Typen. PrintSquare. java Aus Abschnitt 2.4. Liest eine Ganzzahl, die vom Benutzer eingegeben wird, und druckt das Quadrat dieser Ganzzahl. Dieses Programm hängt von TextIO. java ab. Das gleiche gilt für fast alle Programme im Rest dieser Liste. Interesse2.java. Aus Abschnitt 2.4. Berechnet die Zinsen für eine Investition für ein Jahr, basierend auf Benutzereingaben. Verwendet TextIO für Benutzereingaben. CreateProfile. java. Aus Abschnitt 2.4. Eine einfache Demo der Ausgabe in eine Datei, mit TextIO. Interesse2WithScanner. java. Aus Abschnitt 2.4. Ist eine Version von Interest2.java, die Scanner anstelle von TextIO verwendet, um die Eingabe vom Benutzer zu lesen. Interesse3.java. Aus Abschnitt 3.1. Das erste Beispiel, das Steueranweisungen verwendet. Drei n1.java Aus Abschnitt 3.2. Gibt eine 3N1-Sequenz für einen gegebenen Angabewert aus. ComputeAverage. java. Ab Abschnitt 3.3. Berechnet den Mittelwert einiger vom Benutzer eingegebener Ganzzahlen. CountDivisors. java. Ab Abschnitt 3.4. Zählt die Anzahl der Divisoren einer Ganzzahl, die vom Benutzer eingegeben wird. ListLetters. java. Ab Abschnitt 3.4. Listet alle deutlichen Buchstaben in einer vom Benutzer eingegebenen Zeichenkette auf. LengthConverter. java. Aus Abschnitt 3.5. Wandelt die vom Benutzer eingegebenen Längenmessungen in verschiedene Maßeinheiten um. ComputeAverage2.java. Ab Abschnitt 3.7. Berechnet den Mittelwert einiger reeller Zahlen, die vom Benutzer eingegeben wurden. Demonstriert die Verwendung von try..catch für Double. parseDouble. AverageNumbersFromFile. java. Ab Abschnitt 3.7. Findet die Summe und den Durchschnitt der Zahlen aus einer Datei gelesen. Demonstriert die Verwendung von try..catch-Anweisungen mit TextIO. Geburtstagsproblem. java. Aus Abschnitt 3.8. Demonstriert zufälligen Zugriff auf Array-Elemente mit dem Geburtstagsproblem (wie viele Menschen müssen Sie zufällig wählen, bis zwei gefunden werden, deren Geburtstage am selben Tag des Jahres sind). ReverseInputNumbers. java. Aus Abschnitt 3.8. Veranschaulicht die Verwendung eines teilweise vollständigen Arrays, indem man einige Zahlen vom Benutzer liest und dann in umgekehrter Reihenfolge druckt. GuessingGame. java. Aus Abschnitt 4.2. Lässt den Benutzer spiegeln Spiele spielen, wo der Computer eine Nummer wählt und der Benutzer versucht, es zu erraten. Eine leichte Abweichung dieses Programms, das die Anzahl der vom Benutzer gewonnenen Spiele berichtet, ist GuessingGame2.java. RowsOfChars. java. Ab Abschnitt 4.3. Ein ziemlich nutzloses Programm, in dem eine Subroutine einen anderen anruft. CopyTextFile. java. Ab Abschnitt 4.3. Demonstriert die Verwendung von Befehlszeilenargumenten unter Verwendung von Dateinamen aus der Befehlszeile. Drei n2.java Aus Unterabschnitt 4.4.3. Ist ein verbessertes 3N1-Programm, das Unterprogramme verwendet und seine Ausgabe in ordentlichen Spalten druckt. RollTwoPairs. java. Aus Unterabschnitt 5.2.2. Verwendet PairOfDice. java zu simulieren rollen zwei Paare von Würfeln, bis die gleiche Summe auf beiden Paaren gerollt wird. HighLow. java Aus Abschnitt 5.4. Ein einfaches Kartenspiel. Es benutzt die Klassen Card. java und Deck. java. Die als Beispiele für objektorientierte Programmierung gegeben werden. Auch erhältlich, die kartenbezogenen Klassen Hand. java und aus Unterabschnitt 5.5.1. BlackjackHand. java. ReverseWithDynamicArray. java Aus Abschnitt 7.2. Liest Zahlen vom Benutzer und druckt sie dann in umgekehrter Reihenfolge aus. Es tut dies mit der Klasse DynamicArrayOfInt. java als Beispiel für die Verwendung von dynamischen Arrays. ReverseWithArrayList. java. Aus Abschnitt 7.3. Ist funktional identisch, aber es verwendet ein ArrayListltIntegergt anstelle eines DynamicArrayOfInt. SymmetricMatrix. java Ab § 7.5. Implementiert ein symmetrisches 2D-Array von double. Das Programm TestSymmetricMatrix. java testet die SymmetricMatrix-Klasse. LengthConverter2.java. Ab Abschnitt 8.2. Wandelt die vom Benutzer eingegebenen Messungen in Zoll, Füße, Werften und Meilen um. Diese Verbesserung auf LengthConverter. java ermöglicht Eingaben kombiniert mehrere Messungen, wie 3 Fuß 7 Zoll, und es erkennt illegale Eingaben. TryStatementDemo. java. Ab Abschnitt 8.3. Ein kleines Demo-Programm mit einem try..catch-Anweisung, die das Autoclosing einer Ressource beinhaltet. LengthConverter3.java. Ab Abschnitt 8.3. Ist eine Revision des vorherigen Beispiels, das Ausnahmen verwendet, um Fehler in der Benutzereingabe zu behandeln. TowersOfHanoi. java. Aus Abschnitt 9.1. Druckt die Schritte in einer Lösung für die Türme von Hanoi Problem ein Beispiel der Rekursion. StringList. java. Ab Abschnitt 9.2. Implementiert eine verknüpfte Liste von Strings. Das Programm ListDemo. java testet diese Klasse. PostfixEval. java. Ab Abschnitt 9.3. Wertet Postfix-Ausdrücke mit einem Stapel aus. Abhängig von der in StackOfDouble. java definierten StackOfDouble-Klasse. SortTreeDemo. java. Aus Abschnitt 9.4. Zeigt einen binären Sortierbaum von Strings. SimpleParser1.java. SimpleParser2.java. Und SimpleParser3.java. Ab Abschnitt 9.5. Sind drei Programme, die die vom Benutzer eingegebenen arithmetischen Ausdrücke analysieren und auswerten. SimpleParser1 behandelt nur vollständig in Klammern stehende Ausdrücke. SimpleParser2 wertet gewöhnliche Ausdrücke aus, in denen einige Klammern weggelassen werden können. SimpleParser3 konstruiert Ausdrucksbäume, um Eingabeausdrücke darzustellen und verwendet die Ausdrucksbäume, um die Ausdrücke auszuwerten. WordListWithTreeSet. java. Ab Abschnitt 10.2. Macht eine alphabetische Liste von Wörtern aus einer Datei. Ein TreeSet wird verwendet, um Duplikate zu beseitigen und die Wörter zu sortieren. WordListWithPriorityQueue. java. Ab Abschnitt 10.2. Macht eine alphabetische Liste von Wörtern aus einer Datei. Dies ist eine kleine Änderung des vorherigen Beispiels, das eine PriorityQueue anstelle eines TreeSet verwendet. Das Ergebnis ist eine alphabetische Liste von Wörtern, in denen Duplikate nicht entfernt werden. SimpleInterpreter. java. Ab Abschnitt 10.4. Demonstriert die Verwendung einer HashMap als Symboltabelle in einem Programm, das einfache Befehle vom Benutzer interpretiert. WordCount. java. Ab Abschnitt 10.4. Zählt die Anzahl der Vorkommen jedes Wortes in einer Datei. Das Programm verwendet mehrere Funktionen aus dem Java Collection Framework. ReverseFile. java. Aus Abschnitt 11.2. Zeigt, wie man Dateien in einer einfachen Befehlszeilenanwendung liest und schreibt, verwendet die Nicht-Standardklasse TextReader. java. ReverseFileWithScanner. java ist eine Version des Programms, die einen Scanner anstelle eines TextReaders verwendet. Und ReverseFileWithResources. java ist eine Version, die das Ressourcenmuster in try..catch-Anweisungen verwendet. DirectoryList. java. Aus Abschnitt 11.2. Listet den Inhalt eines vom Benutzer angegebenen Verzeichnisses auf, zeigt die Verwendung der Dateiklasse. CopyFile. java Aus Abschnitt 11.3. Ist ein Programm, das eine Kopie einer Datei erstellt, wobei Dateinamen verwendet werden, die als Befehlszeilenargumente angegeben werden. CopyFileAsResources. java ist eine Version des Programms, das auch demonstriert, verwendet das Ressourcenmuster in einer try..catch-Anweisung. PhoneDirectoryFileDemo. java. Aus Abschnitt 11.3. Demonstriert die Verwendung einer Datei zum Speichern von Daten zwischen den Läufen eines Programms. FetchURL. java Aus Abschnitt 11.4. Liest und zeigt den Inhalt einer angegebenen URL an, wenn sich die URL auf eine Textdatei bezieht. ShowMyNetwork. java. In Abschnitt 11.4 erwähnt. Ist ein kurzes Programm, das Informationen über jede Netzwerkschnittstelle auf dem Computer druckt, auf dem es ausgeführt wird, einschließlich IP-Adressen, die mit jeder Schnittstelle verknüpft sind. DateClient. java und DateServer. java. Aus Abschnitt 11.4. Sind sehr einfache erste Beispiele für Netzwerk-Client und Server-Programme. CLChatClient. java und CLChatServer. java. Aus Abschnitt 11.4. Demonstrieren die bidirektionale Kommunikation über ein Netzwerk, indem sie den Nutzern Nachrichten hin und her senden lassen, jedoch wird kein Threading verwendet und die Nachrichten müssen strikt abwechseln. ThreadTest1.java. Ab Abschnitt 12.1. Läuft ein oder mehrere Threads, die alle die gleiche Aufgabe ausführen, um zu zeigen, dass sie gleichzeitig laufen und in einer unbestimmten Reihenfolge beenden. ThreadTest2.java. Ab Abschnitt 12.1. Teilt eine Aufgabe (Zählen von Primzahlen) unter mehreren Threads auf, um die Parallelverarbeitung und die Verwendung der Synchronisation zu demonstrieren. DateServerWithThreads. java und DateServerWithThreadPool. java. Ab Abschnitt 12.4. Sind Modifikationen von chapter11DateServer. java (Unterabschnitt 11.4.4), die Threads verwenden, um die Kommunikation mit Clients zu behandeln. Das erste Programm erstellt für jede Verbindung einen neuen Thread. Die zweite verwendet einen Thread-Pool, und es verwendet eine Sperrwarteschlange, um Verbindungen vom Hauptprogramm zum Pool zu senden. Die Thread-Server arbeiten mit dem ursprünglichen Client-Programm, Chapter11DateClient. java. CLMandelbrotMaster. java. CLMandelbrotWorker. java. Und CLMandelbrotTask. java. Ab § 12.4. Sind eine Demonstration des verteilten Rechnens, in dem Stücke einer großen Berechnung über ein Netzwerk gesendet werden, das von Arbeitsprogrammen berechnet werden soll. Die folgenden Beispielprogramme verwenden eine grafische Benutzeroberfläche. GUIDemo. java ist eine einfache Demonstration einiger Basis-GUI-Komponenten aus der Swing-grafischen Benutzeroberflächenbibliothek. Es erscheint im Text in Abschnitt 1.6. Aber du wirst es nicht verstehen können, bis du über GUI programmierst. RandomCircles. java Ab Abschnitt 3.9. Zieht eine große Anzahl von zufällig gefärbten, zufällig positionierten Scheiben. Sein einfaches Grafikprogramm ist unser erstes Beispiel für ein GUI-Programm. Es versteht sich sowohl als Einführung in die Grafik als auch als Beispiel für die Verwendung von Kontrollstrukturen. MovingRects. java. Ab Abschnitt 3.9. Zieht eine Reihe von verschachtelten Rechtecken, die sich unendlich in Richtung Zentrum zu bewegen scheinen. Sowohl dieses Programm als auch das vorherige basieren auf SimpleAnimationStarter. java. Die als Ausgangspunkt für das Schreiben ähnlicher Programme verwendet werden können. RandomMosaicWalk. java. Ein eigenständiges Programm, das ein Fenster voller farbiger Quadrate mit einer bewegten Störung zeigt, aus Abschnitt 4.6. Dieses Programm hängt von MosaicPanel. java und Mosaic. java ab. RandomMosaicWalk2.java ist eine Version des vorherigen Beispiels, geändert, um ein paar benannte Konstanten zu verwenden. Ab Abschnitt 4.7. GrowingCircleAnimation. java. Ab Abschnitt 5.3. Zeigt eine Animation von wachsenden, halbtransparenten Kreisen. Benötigt CircleInfo. java. Wird als einfaches Beispiel für die Programmierung mit dem Objekt verwendet. ShapeDraw. java. Ab Abschnitt 5.5. Ist ein Programm, das es dem Benutzer ermöglicht, verschiedene Formen auf einem Zeichenbereich zu setzen, ein Beispiel für abstrakte Klassen, Unterklassen und Polymorphismus. HalloWorldGUI1.java und HelloWorldGUI2.java. Ab Abschnitt 6.1. Zeigen Sie die Nachricht Hallo Welt in einem Fenster, die erste, indem Sie die eingebaute JOptionPane Klasse und die zweite durch den Aufbau der Schnittstelle von Hand. SimpleColorChooser. jav. Verwendet in Abschnitt 6.2, um RGB - und HSB-Farben zu demonstrieren. Dieses Programm verwendet Techniken, die erst später im Text abgedeckt werden, und es wird nicht als Programmierbeispiel dargestellt. Sie können es ausführen, um mit Farben zu experimentieren. RandomStringsPanel. java. Aus Abschnitt 6.2. Zeigt 25 Kopien der Zeichenfolge Java (oder eine andere Zeichenfolge, die in diesem Konstruktor angegeben ist) in zufälligen Farben und Schriftarten. Das Programm RandomStrings. java verwendet ein RandomStringsPanel als Inhaltsbereich. Und RandomStringsPanelWithMain. java ist ein Programm, das die main () - Routine und die Definition des Panels in eine Datei vereint. Schließlich ist ClickableRandomStrings. java aus Abschnitt 6.3 eine Änderung von RandomStrings. java mit einem Maus-Listener, der das Panel neu zeichnet, wenn der Benutzer darauf klickt. SimpleStamper. java. Aus Abschnitt 6.3. Lässt den Benutzer Rechtecke und Ovale auf einen Zeichenbereich legen, indem er mit der Maus klickt. SimpleTrackMouse. java. Aus Abschnitt 6.3. Zeigt Informationen über Mausereignisse an, während sich der Benutzer bewegt und mit der Maus klickt. SimplePaint. java. Aus Abschnitt 6.3. Lässt den Benutzer Kurven in einem Zeichenbereich zeichnen und die Zeichnungsfarbe aus einer Palette auswählen. RandomArt. java Ab Abschnitt 6.4. Zeigt eine neue zufällige Grafik alle vier Sekunden. Dies ist ein Beispiel für die Verwendung eines Timers. KeyboardAndFocusDemo. java. Ab Abschnitt 6.4. Zeigt, wie man Tastatur - und Fokusereignisse benutzt. Subkiller. java Ab Abschnitt 6.4. Lässt den Benutzer ein einfaches Arcade-Spiel spielen. Verwendet einen Timer sowie Tastatur - und Fokusereignisse. SliderDemo. java und TextAreaDemo. java. Kleine Programme, die grundlegende Komponenten demonstrieren, werden als Beispiele in Abschnitt 6.5 BorderDemo. java und BorderDemo. java verwendet. Aus Abschnitt 6.6. Ein sehr einfaches Programm, das sechs Arten von Grenze zeigt. SliderAndButtonDemo. java. Aus Abschnitt 6.6. Zeigt, wie man mehrere Komponenten erstellt und in einem GridLayout auslegt. SimpleCalc. java. Aus Abschnitt 6.6. Lässt den Benutzer zwei vom Benutzer eingegebene Zahlen addieren, subtrahieren, multiplizieren oder teilen. Eine Demo von Textfeldern, Schaltflächen und Layout mit verschachtelten Subpanels. NullLayoutDemo. java. Aus Abschnitt 6.6. Zeigt, wie die Komponenten in einem Container ausgelegt werden, für den der Layoutmanager auf Null gesetzt wurde. HighLowGUI. java. Aus Abschnitt 6.6. Implementiert eine GUI-Version des Kartenspiels HighLow. java. In dem der Benutzer eine Spielkarte sieht und errät, ob die nächste Karte höher oder niedriger im Wert ist. Dieses Programm hängt von Card. java ab. Hand. java Und Deck. java. MosaicDraw. java Aus Abschnitt 6.7. Zeigt Menüs und einen Farbwähler-Dialog. Dies wird in einem Programm verwendet, bei dem der Benutzer die Quadrate eines Mosaiks durch Anklicken und Ziehen der Maus färbt. Es verwendet MosaicPanel. java, um das Mosaik-Panel selbst zu definieren, und es verwendet MosaicDrawController. java, um das Panel und die Menüleiste zu erstellen und um Ereignisse zu behandeln. SimpleDialogDemo. java. Aus Abschnitt 6.7. Ist ein kleines Programm, das JColorChooser und einige Dialoge von JOptionPane zeigt. RandomStringsWithArray. java. Aus Abschnitt 7.2. Zeigt mehrere Kopien einer Nachricht in zufälligen Farben, Größen und Positionen. Dies ist eine verbesserte Version von RandomStringsPanel. java, die ein Array verwendet, um die Daten zu verfolgen, damit das gleiche Bild bei Bedarf neu gezeichnet werden kann. SimplePaint2.java. Aus Abschnitt 7.3. Lässt den Benutzer farbige Kurven zeichnen und speichert die für die Neustart der Zeichnungsoberfläche benötigten Daten in einer Liste vom Typ ArrayListltCurveDatagt. Life. java Ab § 7.5. Implementiert John H. Conways Spiel des Lebens und ist ein Beispiel für die Verwendung von 2D-Arrays. Dieses Programm hängt von MosaicPanel. java ab. Checkers. java Ab § 7.5. Lässt zwei Benutzer ein Spiel der Kontrolleure gegeneinander spielen. Veranschaulicht die Verwendung eines zweidimensionalen Arrays und eine Vielzahl von Programmierungstechniken. (Dies ist das längste Programm im Buch so weit, bei über 700 Zeilen) Maze. java und LittlePentominos. java sind Demo-Programme in Abschnitt 9.1 als Beispiele für Rekursion erwähnt. Sie verwenden Techniken, die nicht bis Kapitel 12 abgedeckt haben. Beachten Sie, dass LittlePentominos von MosaicPanel. java abhängt. Blobs. java Aus Abschnitt 9.1. Verwendet Rekursion, um Gruppen von farbigen Quadraten in einem Gitter zu zählen. DepthBreadth. java. Ab Abschnitt 9.3. Zeigt Stapel und Warteschlangen. TrivialEdit. java. Aus Abschnitt 11.3. Lässt den Benutzer kurze Textdateien bearbeiten. Dieses Programm zeigt das Lesen und Schreiben von Dateien und die Verwendung von Datei-Dialogen. SimplePaintWithFiles. java. Aus Abschnitt 11.3. Zeigt das Speichern von Daten aus einem Programm in eine Datei in Binär - und Zeichenform. Das Programm ist ein einfaches Skizzierprogramm, das auf SimplePaint2.java basiert. SimplePaintWithXML. java. Ab § 11.5. Demonstrieren das Speichern von Daten aus einem Programm in eine Datei im XML-Format. Dieses Programm ist eine Änderung von SimplePaintWithFiles. java. XMLDemo. java. Ab § 11.5. Ist ein einfaches Programm, das eine grundlegende Analyse eines XML-Dokuments und eine Durchquerung der Dokumentobjektmodelldarstellung des Dokuments veranschaulicht. Der Benutzer gibt das XML ein, das in einem Textbereich analysiert werden soll. RandomArtWithThreads. java. Ab § 12.2. Benutzt einen Thread, um eine sehr einfache Animation zu fahren. Vergleich mit randomArt. java. Was das gleiche mit einem timer macht QuicksortThreadDemo. java. Ab § 12.2. Demonstriert die Verwendung eines separaten Threads zur Durchführung einer Berechnung mit einfacher Inter-Thread-Kommunikation. HintergrundComputationDemo. java. Ab § 12.2. Demonstriert die Verwendung eines Threads, der mit einer niedrigeren Priorität läuft, um eine lange Berechnung im Hintergrund durchzuführen. BackgroundCompWithInvoke. java ist eine sehr kleine Änderung des gleichen Programms, das SwingUtilities. invokeLater anstelle von Synchronisation verwendet. (Das Programm berechnet eine Visualisierung eines kleinen Stückes des Mandelbrot-Sets, aber die besondere Berechnung, die getan wird, ist nicht wichtig.) MultiprocessingDemo1.java. Ab § 12.2. Ist eine Modifikation des vorherigen Beispiels, das mehrere Threads verwendet, um die Hintergrundberechnung durchzuführen. Dies beschleunigt die Berechnung auf Multiprozessor-Maschinen. MultiprocessingDemo2.java. Ab § 12.3. Ist eine Abänderung des vorherigen Beispiels, das seine Aufgabe in eine große Anzahl von ziemlich kleinen Teilaufgaben zerlegt, um eine bessere Lastverteilung zu erreichen. Das Programm verwendet einen Thread-Pool und eine Warteschlange von Tasks. MultiprocessingDemo3.java. Ab § 12.3. Ist noch eine andere Version der vorherigen Beispiele. Dieser verwendet einen Pool von Threads, die ewig laufen, Aufgaben aus einer Warteschlange nehmen und sie ausführen. Um dies zu ermöglichen, wird eine Sperrwarteschlange verwendet, die von der Standard-LinkedBlockingQueue-Klasse definiert ist. MyLinkedBlockingQueue. java ist ein einfaches Beispiel für die Verwendung von wait () und notify () direkt, die als Ersatz für LinkedBlockingQueue in MultiprocessingDemo3 verwendet werden kann. TowersOfHanoiGUI. java. Ab § 12.3. Zeigt eine Animation der berühmten Türme von Hanoi Problem. Der Benutzer kann die Animation mit den Tasten RunPause, Next und StartAgain steuern. Das Programm ist ein Beispiel für die Verwendung von wait () und notify () direkt für die Kommunikation zwischen Threads. GUIChat. java. Ab § 12.4. Ist ein einfaches GUI-Programm zum Chatten zwischen zwei Personen über ein Netzwerk. Es zeigt die Verwendung eines Threads zum Lesen von Daten aus einer Netzwerkverbindung. Netgamemon Ab § 12.5. Ist ein Paket, das ein Framework für vernetzte Spiele definiert. Dieses Framework wird in mehreren Beispielen verwendet: Ein Chatraum, definiert in Paket netgame. chat ein Tic-Tac-Toe-Spiel, definiert in Paket netgame. tictactoe und ein Pokerspiel, definiert in Paket netgame. fivecarddraw. HighLowWithImages. java. Ab § 13.1. Ist eine Variation von HighLowGUI. java, die Kartenbilder aus einer Bilddatei aufnimmt. Benötigt die Bilddatei card. png und hängt von Card. java ab. Deck. java Und Hand. java. PaintWithOffScreenCanvas. java. Ab § 13.1. Ist ein kleines Lackprogramm, das die Verwendung eines BufferedImage als Off-Screen-Leinwand veranschaulicht. SoundAndCursorDemo. java. Ab § 13.1. Lässt den Benutzer ein paar Töne spielen und den Cursor wechseln, indem er auf einige Tasten klickt. Dies zeigt die Verwendung von Audio-Ressource-Dateien und die Verwendung einer Bildressource, um einen benutzerdefinierten Cursor zu erstellen. Benötigt die Ressourcendateien im Verzeichnis sncresources. TransparencyDemo. java. Ab § 13.2. Zeigt die Verwendung der Alpha-Komponente der Farben. Es ist auch ein Beispiel für die Verwendung von FontMetrics. StrokeDemo. java. Ab § 13.2. demonstrates the use of various BasicStrokes for drawing lines and rectangles. Also demonstrates antialiasing. PaintDemo. java. from Section 13.2. demonstrates using a GradientPaint and using a TexturePaint to fill a polygon. Uses the image resource files TinySmiley. png and QueenOfHearts. png . ChoiceDemo. java. discussed in Section 13.3. demonstrates radio buttons, combo boxes, and Actions. ToolBarDemo. java. from Section 13.3. uses a JToolBar that holds a group of 3 radio buttons and a push button. All the buttons use custom icons, and the push button is created from an Action . SillyStamper. java. from Section 13.4. demonstrates using a JList of Icons. The user can stamp images of a selected icon onto a drawing area. This program uses the icon images in the directory stampericons as resources. StatesAndCapitalsTableDemo. java. from Section 13.4. is a completely trivial demo of a JTable . ScatterPlotTableDemo. java. from Section 13.4. uses a TableModel to customize a JTable. The table is a list of xy-points that the user can edit. A scatter plot of the points is displayed. SimpleWebBrowser. java and SimpleWebBrowserWithThread. java. from Section 13.4. implement a simple web browser using JEditorPane (which is ridiculously easy). The difference between the programs is that the first loads documents synchronously, which can hang the program in an unpleasant way, while the second uses a thread to load documents asynchronously. SimpleRTFEdit. java. mentioned but just barely discussed in Section 13.4. lets the user edit RTF files, which are text files in a format that include style information such as bold and italics. This is mainly a simple demo of using Actions defined by editor kits. StopWatchLabel. java and MirrorText. java. from Section 13.4. are classes that implement custom components. CustomComponentTest. java is a program that tests them. The Mandelbrot program from Section 13.5. which computes and displays visualizations of the Mandelbrot set, is defined by several classes in the package edu. hws. eck. mdb. The source code files can be found in the directory eduhwseckmdb . This section lists some of the extra source files that are required by various examples in the previous sections. The files listed here are those which are general enough to be potentially useful in other programming projects. Links to these files are also given above, along with the programs that use them. TextIO. java defines a class containing some static methods for doing inputoutput. These methods make it easier to use the standard input and output streams, System. in and System. out. TextIO also supports other input sources and output destinations, such as files. The TextIO class defined by this file is only useful in a command-line environment, and it might be inconvenient to use in integrated development environments such as Eclipse in which standard input does not work particularly well. In that case, you might want to use the following file instead. textioguiTextIO. java. a GUI version of TextIO that opens a window where TextIO IO operations are performed. This is part of a package named textiogui to distinguish it from the normal TextIO. A companion class in that package, textioguiSystem. java. is a fake System class that makes it possible to use System. out and other features of System in the same window. I use these classes to build executable jar files for my text-oriented examples that run in a window instead of on the command line. See the comments in the source code files for more information. SimpleAnimationStarter. java is a small class that you can edit to make very simple animations, in which every frame is drawn using basic drawing commands. This was used in Chapter 3 . Mosaic. java contains subroutines for opening and controlling a window that contains a grid of colored rectangles. It depends on MosaicPanel. java. This is a toolbox for writing simple stand-alone applications that use a mosaic window. It is used in several examples and exercises in Chapter 4 and Chapter 6 . chapter4MosaicPanel. java defines a subclass of JPanel that shows little rectangles arranged in rows and columns, with many options. StatCalc. java is a simple class that computes some statistics of a set of numbers. It is used only for a couple exercises in Chapter 5 and Chapter 6 . Expr. java defines a class Expr that represent mathematical expressions involving the variable x. It is used only in a couple of the exercises in Chapter 8 . TextReader. java. from Subsection 11.1.4. for reading character data from input streams. Input methods in an object of type TextReader are similar to the static input methods in TextIO . netgamemon is a package that defines a framework for networked games, which is discussed in detail in Section 12.5. The netgame packages also includes several examples. PokerRank. java can be used to assign ranks to hands of cards in poker games. The cards are defined in the class PokerCard. java. There is also a PokerDeck. java All of these classes are part of the package netgame. fivecarddraw. which is discussed in Subsection 12.5.4. but these classes can be used independently of the netgame framework.

Comments

Popular posts from this blog

Is Forex Easy Way To Verdienen Oder Nicht Mt5

Forex Un Lot

Free Forex Demo Konto