Der Phythagorasbaum

Aufgabenstellung:

Die Aufgabe dieser Herausforderung besteht darin ein Programm zu schreiben, das einen Pythagorasbaum erzeugt. Ein Pythagorasbaum ist ein selbstähnliches Fraktal, das ursprünglich auf den Satz des Pythagoras zurückzuführen ist.

Programmiervorschrift:

1. Das Fraktal ist mittels eines rekursiven Aufrufs der Konstruktionsvorschrift zu erzeugen.

2. Die kleinste Rekursionsstufe ist 1 und sie besteht aus einem Quadrat als Grundelement dem zwei kleinere Quadrate im rechten Winkel angeordnet sind.

3. Das Programm sollte folgende Eingaben während der Laufzeit unterstützen: Rekursionstiefe (bis mindestens Stufe 9), Größe des Grundelement (Seitenlänge in Pixel)

4.  Das Zeichnen des Fraktals soll mittels Turtlegrafik geschehen. Dabei darf die Turtlegrafikklasse folgende Methoden enthalten:

forward,backward,turn,SetXY

Nice to have features:

  • Benutzer kann die Farbe wählen in der der Baum gezeichnet wird
  • Ein- und ausblendbares Lineal
  • Wahl der Position an der der Baum beginnen soll
  • Wahl der Zeichenblattgröße

Hilfe meine Oracle Datenbank spricht nicht mit meiner JSP

Tutorial  – Erstellung einer Verbindung zu einer Oracle Datenbank und Manipulation von Daten in der Datenbank mittls JSP

Hilfe meine Oracle – Datenbank spricht nicht mit meiner JSP

Tags: , , , , ,

Jeder Weg beginnt mit einem Schritt – Increment und Decrement

Kein anderer Operator ist so einfach und so verwirrend wie das Increment und Decrement in Java.

Warum? Nunja einfach ist es, weil es einem numerischen Wert genau um 1 erhöht (Increment) oder verringert (Decrement). Verwirrend jedoch das je nachdem wo der Operator steht, die Ausführung im Zusammenhang mit anderen Operationen verschieden ist.

Die Benutzung ist recht einfach, wir haben eine Variable vom Typ int und mit diesem rechnen wir mit ++i oder i++ genau 1 drauf. Analog ist das mit dem Decrement also – -i oder i- –

Jedoch nun kommt der Tricky-Teil an der ganzen Geschichte. Wann genau rechnet er den Wert hinzu oder zieht ihn ab?

Wird die ++i /- -i verwendet geschieht die Berechnung gleich, also bevor die Variable weiter vewendet wird. Jedoch bei der Schreibweise i++/i- – erfolgt die Berechnung erst nach der Verwendung der Variable.

Beispiel

int x=5;
System.out.println(x++); //Output von x ist 5
System.out.println(x); //Output von x ist 6

int y=5;
System.out.println(++y); //Output von y ist 6
System.out.println(y);

Ansonsten sind Increment und Decrement die einfachere Möglichkeit um einer genau einen Wert rauszurechnen oder abzuziehen.

Alles ist gleich? – Der Zuweisungsoperator in Java

Im Grunde besitzt Java nicht nur ein einzigen Zuweisungsoperator sondern sogesehen gleich 12.  Davon ist der „normalste“ das Gleichheitszeichen, die restlichen 11 entstehen aus der Kombination mit eben dem ganz normalen.

Schauen wir uns das einmal genauer an. Was soll uns das Gleichheitszeichen und des Kombinationen draus eigentlich sagen? Eigentlich ja nur das was auf der linken Seite genau das gleiche ist wie auf der rechten Seiten.

Wenn wir jetzt auf von der Programmierung in die Mathematik abschweifen, dann kommen uns sofort normale Gleichungen in den Sinn. Denn dort bedeutet 3=2+1 auch nur das die linke Seite das Gleiche wie auf der rechten Seite ist.

In Java kommt dann noch dazu, das man „Gleichungen“ die Rechenoperationen auf die Variable selbst durchführen abgekürzt werden kann und auch noch  zum Vorteil des Programmierers. Warum?

Nunja ersteinmal schreibt man weniger, was schon einmal die Gefahr verringert Schreibfehler einzubauen. Desweiteren brauch man nicht ständig umcasten. Warum umcasten?  Was passiert wenn man verschiedene Datentypen miteinander verrechnen will?

Sind die Datentypen unterschiedlich, so wird intern der kleinere Datentyp in den Größeren überführt, d.h will man int und long verrechnen so wird aus dem int intern  ein long. Ist der Ergebnistyp allerdings vom Typ int so muss expliziert das Ergebnis wieder auf ein int gecastet werden. Nutzen wir nun den kombinierten Zuweisungsoperator so entfällt das casten, denn so wird implizit auf den Datentyp des Ergebnistyps vom Compiler  selbst gecastet.

Hier noch eine kleine Zusammenstellung der 12 Zuweisungsoperatoren in Java

Zuweisungsoperatoren in Java
= , += , -= , *= , /= , %= , &= , ^= , |= ,<<= , >>= , >>>=

Tags: , ,

primitiv oder doch komplex?

Wenn in Java die Rede von Primitiven ist, so spricht man von den normalen Datentypen. Java hat genau 8 von ihnen.

Allein 4 davon werden zur Speicherung von Zahlen verwendet. Es sind die Datentypen byte, short, int und long. Alle speichern ganzzalige Werte, allerdings in verschiedener Größe.

DatentypSpeicherWertebereich
byte8 bit-128 bis 127
short16 bit-32768 bis 32767
int32 bit-2147483648 bis 2147483647
long64 bit-9223372036854775808 bis
9223372036854775807

Nicht immer reicht es aus nur mit ganzen Zahlen zu arbeiten.  Spätestens wenn man eine Zahl mit einem Komma verwenden will, wird man feststellen das man das mit den 4 oben genannten Datentypen nicht mehr auskommt. Java bietet dazu zwei primitive Datentypen nämlich die Dateitypen float und double.  Wenn man diese benutzt muss man bei der Vewendung beachten, dass man die amerikanische Schreibweise benutzt und statt dem Komma ein Punkt verwendet.

DatentypSpeicherWertebereich
float32 bit+/-3.40282347E + 38F
double64 bit+/-1.79769313486231570E + 308

Ein einziges Zeichen egal ob Buchstabe, Zahl oder Sonderzeichen wird im Datentyp char gespeichert, dabei ist es egal ob man den entsprechenden Dezimalwert des Ascii-Codes , den Unicode oder das entsprechende Zeichenliteral angibt. So speichern die folgenden drei Anweisungen immer das gleiche nämlich A:

char a = 65;
char b =’A‘;
char c = ‚\u0041‘;

DatentypSpeicherWertebereich
char16 bitalle 16 bit Unicodezeichen, nur ein einziges Zeichen (Zahlen, Buchstaben und Sonderzeichen)

Zu guterletzt haben wir dann noch einen Datentyp, der uns sagt, ob etwas stimmt oder nicht, der Datentyp boolean. Er beinhaltet zwei Zustände die er einnehmen kann: true oder false.

DatentypSpeicherWertebereich
boolean1 bittrue oder false

Alle haben eines gemeinsam, sie können ohne Probleme in einem Quellcode definiert werden und benutzt.

Neben den primitiven Datentypen gibt es in Jave noch die komplexen Datentypen. Sie unterscheiden sich zu den primitiven DAtentypen darin, das für die Benutzung ein Objekt angelegt werden muss um sie nutzen zu können.

Bekannte schon in Java vorhandene Datentypen sind zum Beispiel:

  • String
  • Array

oder auch alle selbstgeschriebene Enumerationen und eigene Klassen

Tags: , , , , , , , , , , , ,

Einführung in die Programmierung

Eigentlich könnte man an dieser Stelle zu den einschlägigen Java – Seiten schicken um nichts vorhandenes noch einmal schreiben zu müssen, von daher nur die Kurzform.

In Java ist alles immer schon gekapselt und vor allem in Klassen gepackt. Erstellt mach sich in einer Entwicklungsumgebung wie zum Beispiel Netbeans ein neues Projekt wird das Hauptprojekt sofort mit einem Package vergeben und unsere Main – Funktion in eine entsprechende Klasse verpackt.

Tags: , ,

Die Idee und die Aufgabe

Einige werden wohl das Gefühl kennen, wenn man mit einer Gruppe in einer Weiterbildung (oder Schule/Studium) sitzt in der die Leute unterschiedliche Vorkenntnisse besitzen, dass man versuch die Gruppe auf einen gemeinsamen Wissenstand zu bekommen. Während man die Nachzügler langsam aber stetig voranbringt stellt sich bei den Leuten mit dem größeren Vorkenntnissen nach einer gewissen Zeit Langeweile ein.

Da wurde bei meinem Dozenten die Idee geboren, dass wir, die schon im fortgeschrittenen Stadium der Java – Programmierung waren, uns mit einem anderen Plattform in der Javaprogrammierung auseinandersetzen sollten. Quasi eine Herausforderung, die uns eine Weile beschäftigen sollten.

In einem c’t – Extraheft fand er einen Bericht über Handy-Spielprogrammierung von Gerhard Völkl und machte dies dann kurzer Hand zu unserer Aufgabe.

Lesen Sie den Artikel und entwickeln Sie dann anhand dieser Grundlage „Freddy  the Fish“

Ok, in dem Bericht war zwar alles schön beschrieben, jedoch für mich zuwenig Grundlage daraus das beschriebene zu programmieren und machte mich dann auf den Weg die Herausforderung zu bewältigen.

Tags: , ,

Freddy the Fish oder Soldat Rabe

Aus einem kleinen Zeitungsbericht wurde die Idee und somit die Aufgabe geboren für Handy ein Handyspiel zu entwickeln.

Im Zeitungsbericht aus dem c’t – extra Ausgabe 02.2009 geht hervor wie man einfach ein kleines Handyspiel entwickeln kann.

Als angehende SCJP wechselte man schnell zum Maskottchen der Linuxer ^^ den TUX.

Zum Glück gibts im Internet nette Leute die ihre TUX – Kreationen ins Netz stellen. Finden kann man sie unter http://tux.crystalxp.net/. Noch einmal ein riesen Danke dafür.

Mittlerweile tanz ein Tux schon über reale Handy …. *megastolz guck*

Eine komplette Entwicklungsgeschichte stelle ich später hier zur Verfügung