// // // // // erstellt von W. Stickler import java.applet.*; import java.awt.*; import java.awt.image.*;

Größe: px
Ab Seite anzeigen:

Download "// // // // // erstellt von W. Stickler import java.applet.*; import java.awt.*; import java.awt.image.*;"

Transkript

1 erstellt von W. Stickler 1997 import java.applet.*; import java.awt.*; import java.awt.image.*; public class Othello extends Applet implements Runnable private Thread m_othello = null; KONSTANTEN mit Präfix "k" final int kich=1; Repräsentiert den Computer final int ksie=2; Repräsentiert den Spieler final int kstart=0; Spielstatus nach Programmstart final int kcomputer=1; Spielstatus "Computer ist am Zug" final int kspieler=2; Spielstatus "Spieler ist am Zug" final int kspielende=3; Spielstatus "Spielende" final boolean ktest=false; Wenn true, dann Anzeige der Analyse-Matrix im Spielfeld und keine Initialisierung des Zufallsgenerators. final int koffsetx=96; final int koffsety=9; Offsets der Spielfläche GLOBALE Variablen mit Präfix "g" Image gksie; Kugel des Spielers

2 Image gkich; Kugel des Computers Image gkleer; Leere Stelle Image gsie; Button "Neues Spiel - Sie beginnen" Image gich; Button "Neues Spiel - Ich gebinne" Image gothello; Gesamte Spielfläche int [][] gist=new int[9][9]; Ist-Situation auf dem Spielfeld (0=leer 1=Ich 2=Sie) int [][] gsoll=new int[9][9]; Soll-Situation (nachdem ein Zug vorgenommen wurde) int [][] ganalyse=new int[8][8]; Nimmt das Analyseergebnis auf int gw[][]=new int[8][8]; Wertet das korrespondierende Feld als günstig/ungünstig int gpunkteich, gpunktesie; Punktestand für Ich und Sie String gmeldung; Text, der im Hinweis-Fenster angezeigt wird int gstatus; Spielstatus: 0 = kein Spiel aktiv 1 = Ich am Zuge 2 = Sie am Zuge 3 = Spielende Font gfont1 = new Font("Arial",Font.BOLD,18); Font für Punktestand Font gfont2 = new Font("TimesRoman",Font.BOLD,24); Font für Meldung public String getappletinfo() return "Name: Othello\r\n" + "Autor: Wolfgang Stickler\r\n" + "Erstellt mit Microsoft Visual J++ Version 1.1";

3 *** * * *** * public void init() int X,Y; ImageFilter Filter; MediaTracker MT = new MediaTracker(this); resize(560, 514); if (!ktest) Math.random(); Zufallsgeneratir initialisieren gothello=getimage(getcodebase(),"othello.gif"); Gesamte Spielfläche MT.addImage(gOthello,0); MT.checkID(0,true); while (MT.checkAll()==false) Warte(500); Herausfiltern der graphischen Objekte aus dem Spielfeld Filter = new CropImageFilter(0,514,44,44); Leeres Feld gkleer=createimage(new FilteredImageSource(gOthello.getSource(),Filter)); Filter = new CropImageFilter(45,514,44,44); Kugel des Spielers gksie=createimage(new FilteredImageSource(gOthello.getSource(),Filter)); Filter = new CropImageFilter(90,514,44,44); Kugel des Computers gkich=createimage(new FilteredImageSource(gOthello.getSource(),Filter)); Filter = new CropImageFilter(383,164,156,41); Button "ICH beginne!" gich=createimage(new FilteredImageSource(gOthello.getSource(),Filter)); Filter = new CropImageFilter(382,97,156,41); Button "SIE beginne!" gsie=createimage(new FilteredImageSource(gOthello.getSource(),Filter)); Reset(); Spielfeld löschen und Grundstellung gmeldung="willkommen zu Othello!"; gpunktesie=0; Punktestand löschen gpunkteich=0; gstatus=kstart; Spielstatus ist NEUTRAL Jede Position im Spielfeld hat eine Wertung. Je höher dieser Wert ist, desto

4 wichtiger ist es, diese Position zu besetzen. Diese Wertung wird in 100er- Werten angegeben und später zu der Anzahl der auf dieser Position möglichen Umwandlungen aufaddiert. Diese Matrix hat folgendes Aussehen (die Ziffern repräsentieren 100er-Werte): xx xx Die Eckpunkte (0,0) (7,7) (0,7) und (7,0) sind mit 700 (höchste mögliche Zahl) bewertet. Der Computer wird also versuchen, möglichst diese Positionen zu besetzen. Die Positionen (1,1), (6,1), (1,6) und (6,6) sind mit 100 am schlechtesten bewertet. Der Computer wird diese Positionen meiden wie die Pest (es sei den, er hat die jeweilige Eckposition bereits belegt, dann wird in "Erstelle_Analyse" die Bewertungsmatrix angepasst). for (X=1;X<7;X++) for (Y=1;Y<7;Y++) gw[x][y]=300; for (X=2;X<6;X++) for (Y=2;Y<6;Y++) gw[x][y]=400; gw[0][0]=700; gw[0][7]=700; gw[7][0]=700; gw[7][7]=700; gw[0][2]=600; gw[2][0]=600; gw[0][5]=600; gw[5][0]=600; gw[7][2]=600; gw[2][7]=600; gw[7][5]=600; gw[5][7]=600; gw[0][3]=500; gw[3][0]=500; gw[0][4]=500; gw[4][0]=500; gw[7][3]=500; gw[3][7]=500; gw[7][4]=500; gw[4][7]=500;

5 gw[0][1]=200; gw[1][0]=200; gw[0][6]=200; gw[6][0]=200; gw[7][1]=200; gw[1][7]=200; gw[7][6]=200; gw[6][7]=200; gw[1][1]=100; gw[1][6]=100; gw[6][1]=100; gw[6][6]=100; public void destroy() Punktestand und Hinweistext anzeigen. Anschließend die Positionen neu zeichnen, bei denen SOLL und IST abweichen. public void paint(graphics g) int X,Y; g.drawimage(gothello,1,1,this); for (X=0;X<8;X++) for (Y=0;Y<8;Y++) gist[y][x]=gsoll[y][x]; switch (gsoll[y][x]) case 0: g.drawimage(gkleer,koffsety+y*44,koffsetx+x*44,this); break; case 1: g.drawimage(gkich,koffsety+y*44,koffsetx+x*44,this); break; case 2: g.drawimage(gksie,koffsety+y*44,koffsetx+x*44,this); break;

6 public void update(graphics g) paint(g); public void start() if (m_othello == null) m_othello = new Thread(this); m_othello.start(); public void stop() if (m_othello!= null) m_othello.stop();

7 m_othello = null; public void run() while (true) try Thread.sleep(50); catch (InterruptedException e) stop(); public boolean mouseup(event evt, int x, int y) int X,Y; if (x>=381 && x<=538 && y>=96 && y<=135) Button Neues Spiel "SIE" Animiere_Button(kSie); gmeldung="neues Spiel - SIE beginnen!"; Reset(); for (X=0;X<8;X++) Initialisierung der Spieltabellen for (Y=0;Y<8;Y++) Durch setzen auf "9" wird erzwungen, daß das gist[x][y]=9; gesamte Spielfeld neu gezeichnet wird!

8 gpunktesie=2; gpunkteich=2; Punktestand der Ausgangssituation. gstatus=kspieler; Spieler ist am Zug. Aktualisieren(); Bildschirm anzeigen/aktualisieren if (x>=381 && x<=538 && y>=163 && y<=204) Button Neues Spiel "SIE" Animiere_Button(kIch); gmeldung="neues Spiel - ICH beginne. Moment bitte..."; Reset(); for (X=0;X<8;X++) Initialisierung der Spieltabellen for (Y=0;Y<8;Y++) Durch setzen auf "9" wird erzwungen, daß das gist[x][y]=9; gesamte Spielfeld neu gezeichnet wird. gpunktesie=2; Punktestand der Ausgangssituation gpunkteich=2; gstatus=kcomputer; Computer ist am Zug Aktualisieren(); Zug(0,0,kIch); Zug des Computers durchführen if (gstatus!=kspielende ) Wenn nicht Spielende ist (==3), dann Zug des Spieler annehmen X=(y-kOffsetX)/44; Die Kugel-Images haben eine Höhe/Breite von 44 Pixel Y=(x-kOffsetY)/44; if (X>-1 && X<8 && Y>-1 && Y<8) Wenn es Koordinaten im Spielfeld sind: Erstelle_Analyse(kSie); Prüfen, was der Spieler machen kann gstatus=kspieler; Spieler ist am Zug! if (ganalyse[y][x]!=0) Wenn an dieser Position ein Zug möglich ist, gsoll[y][x]=ksie; dann Kugel setzen... Animiere_Kugel(Y,X,kSie);... auch am Bildschirm... Zug(Y,X,kSie); und eigentlichen Zug durchführen Aktualisieren(); Nun den Bildschirm aktualisieren

9 Fall, daß ein ungültiges Feld angewählt wurde. gmeldung=" Sorry - Zug nicht möglich!"; return true; Vergleich von IST- und SOLL-Situation und alle Positionen, die am Bildschirm noch nicht aktualisiert sind, entsprechend zeichnen. Zudem den Punktestand und den Mitteilungstext ausgeben. int X,Y; Graphics g=getgraphics(); for (X=0;X<8;X++) for (Y=0;Y<8;Y++) if (gist[y][x]!=gsoll[y][x]) gist[y][x]=gsoll[y][x]; switch (gsoll[y][x]) case 0: g.drawimage(gkleer,koffsety+y*44,koffsetx+x*44,this); break; case 1: g.drawimage(gkich,koffsety+y*44,koffsetx+x*44,this); break; case 2: g.drawimage(gksie,koffsety+y*44,koffsetx+x*44,this); break;

10 Zählen der in die Richtung dx/dy möglichen Umwandlungen, ausgehend von YY/XX private int Analyse(int YY, int XX, int dx, int dy, int SieIch) int Anzahl,X,Y; Anzahl=0; X=XX; Y=YY; if ((gist[y][x]!=0) && (gist[y][x]!=9)) return(0); Ausgangsfeld ist nicht leer! while (((X+=dx)>=0) && ((Y+=dy)>=0)) RAnd erreicht? if ((gist[y][x]==0) (gist[y][x]==9)) return(0); Rand erreicht! if (gist[y][x]!=sieich) Anzahl+=1; Umwandlung mitzählen if (gist[y][x]==sieich) return(anzahl); Anzahl retournieren return(0); Wenn einer der Buttons "Neues Spiel..." betätigt wurde, dann blinkt dieser kurz. private void Animiere_Button(int SieIch) int X,Y; Graphics g=getgraphics(); if (SieIch==kIch) g.setcolor(color.lightgray); g.fillrect(383,164,156,41); Warte(10); g.drawimage(gich,383,164,this);

11 if (SieIch==kSie) g.setcolor(color.lightgray); g.fillrect(382,97,156,41); Warte(10); g.drawimage(gsie,382,97,this); Wenn eine Kugel gesetzt wird, dann blinkt diese lange auf. private void Animiere_Kugel(int Y,int X,int SieIch) int q; Graphics g=getgraphics(); g.setcolor(color.lightgray); for (q=1 ; q<6 ; q++) g.fillrect(y*44+koffsety,x*44+koffsetx,44,44); Warte(50); if (SieIch==kIch) g.drawimage(gkich,y*44+koffsety,x*44+koffsetx,this); g.drawimage(gksie,y*44+koffsety,x*44+koffsetx,this); Warte(50);

12 Wenn eine Kugel umgewandelt wird, dann blinkt diese kurz auf private void Animiere_Kugel_kurz(int Y,int X,int SieIch) int q; Graphics g=getgraphics(); g.setcolor(color.lightgray); for (q=1 ; q<4; q++) g.fillrect(y*44+koffsety,x*44+koffsetx,44,44); Warte(50); if (SieIch==kIch) g.drawimage(gkich,y*44+koffsety,x*44+koffsetx,this); g.drawimage(gksie,y*44+koffsety,x*44+koffsetx,this); Warte(50); Anzeigen des Punktestandes (gpunkteich und gpunktesie) sowie des in gmeldung hinterlegten Hinweistextes private void Anzeige_Punkte_Meldung() Graphics g=getgraphics(); FontMetrics fm; g.setcolor(color.white); Löschen der Punktestand-Felder und des Meldungsfelds g.fillrect(448,297,35,34); g.fillrect(448,389,35,34); g.fillrect(20,459,517,35); g.setcolor(color.black);

13 Anzeige des Punktestands g.setfont(gfont1); if (gpunkteich<10) g.drawstring(integer.tostring(gpunkteich),467,323); g.drawstring(integer.tostring(gpunkteich),455,323); if (gpunktesie<10) g.drawstring(integer.tostring(gpunktesie),467,413); g.drawstring(integer.tostring(gpunktesie),455,413); Anzeige der Meldung g.setfont(gfont2); fm=getfontmetrics(gfont2); g.drawstring(gmeldung,10+((500-fm.stringwidth(gmeldung))/2),486); zentriert! Durchgehen aller Felder und in ganalyse[][] die Anzahl der umgewandelten Kugeln sowie die Wertung der Position vermerken private void Erstelle_Analyse(int SieIch) int X,Y; int W[][]=new int[8][8]; Graphics g=getgraphics(); W=gW; Kopieren der Wertungstabelle (mehr hierzu bei der Definition der Tabelle) Wenn die Eckpunkte durch die jeweils eigenen Kugeln besetzt sind, dann sind die in die drei möglichen Richtungen benachbarten Positionen GUTE Positionen. In W[][] sind diese Positionen standardmäßig als gefährlich bewertet! if (ganalyse[0][0]==sieich) W[0][1]=600; W[1][0]=600; W[1][1]=600;

14 if (ganalyse[7][7]==sieich) W[7][6]=600; W[6][7]=600; W[6][6]=600; if (ganalyse[0][7]==sieich) W[0][6]=600; W[1][7]=600; W[1][6]=600; if (ganalyse[7][0]==sieich) W[7][1]=600; W[6][0]=600; W[6][1]=600; Zählen der durch diesen Zug umgewandelten Kugeln for (X=0 ; X<8 ; X++) for (Y=0 ; Y<8 ; Y++) ganalyse[y][x]=analyse(y,x,1,-1,sieich)+ alle acht Richtungen testen Analyse(Y,X,-1,1,SieIch)+ Analyse(Y,X,00,1,SieIch)+ Analyse(Y,X,1,00,SieIch)+ Analyse(Y,X,-1,0,SieIch)+ Analyse(Y,X,0,-1,SieIch)+ Analyse(Y,X,1, 1,SieIch)+ Analyse(Y,X,-1,-1,SieIch); Wenn der Zug möglich ist, dann noch die Wertung des Feldes aufaddieren if (ganalyse[y][x]>0) ganalyse[y][x]+=w[y][x]; if (ktest) Wenn TEST, dann Anzeigen der Gesamtwertung im Spielfeld g.drawstring(integer.tostring(ganalyse[y][x]),y*44+koffsety+22,x*44+koffsetx+22);

15 Initialisieren des Spielfeldes und setzen der vier Kugeln der Ausgangssituation. private void Reset() int X,Y; for (X=0;X<9;X++) Initialisierung der Spieltabellen for (Y=0;Y<9;Y++) Durch unterschiedliche Werte in beiden Tabellen gsoll[x][y]=0; wird sichergestellt, daß in paint() alle Felder gist[x][y]=9; neu dargestellt werden, auch die leeren Felder! gsoll[3][3]=kich; Setzen der 4 mittleren Kugeln als Ausgangssituation gsoll[4][4]=kich; gsoll[3][4]=ksie; gsoll[4][3]=ksie; Von der Position YY/XX ausgehend, in die Richtung dx/dy die gegnerischen Kugeln zu den eigenen Kugeln umwandeln. SieIch gibt an, für wen der Zug durchgeführt wird. private void Setze(int YY, int XX, int dx,int dy, int SieIch) int Y,X,Anzahl, Moeglich; X=XX; Y=YY; Anzahl=0; Moeglich=0; Merken, wieviele Kugeln bereits umgewandelt wurden Zum Abbrechen der while-schleife, wenn Umwandlungen stattgefunden haben In Richtung dx/dy laufen bis eigene Kugel erscheint, oder Rand erreicht while (((X+=dx)>=0) && ((Y+=dy)>=0) && (Moeglich==0)) if ((gist[y][x]==0) (gist[y][x]==9)) return; if (gist[y][x]!=sieich) Anzahl+=1; if (gist[y][x]==sieich) Moeglich=Anzahl;

16 Wenn in diese Richtung ein Zug möglich ist, so ist Moeglich!=0 if (Moeglich==0) return; Jetzt das Ganze nochmal, aber dabei die gegnerischen Kugeln umwandeln X=XX; Y=YY; Moeglich=0; while (((X+=dx)>=0) && ((Y+=dy)>=0) && (Moeglich==0)) if (gist[y][x]==sieich) Moeglich=1; gsoll[y][x]=sieich; gist[y][x]=sieich; Animiere_Kugel_kurz(Y,X,SieIch); Läßt die Kugel blinken return; Warteschleife über die in Dauer angegebenen Millisekunden private void Warte(int Dauer) try Thread.sleep(Dauer); catch (InterruptedException e) ; In Abhängigkeit von SieIch den Zug durchführen (Spieler) bzw. Computer-Zug bestimmen private void Zug(int YY,int XX, int SieIch) int X,Y, Bester,BesterX,BesterY, BesterS, BesterSX, BesterSY;

17 X=XX; Y=YY; BesterX=0; BesterY=0; if (SieIch==kSie) Spieler-Zug gmeldung=""; gsoll[y][x]=sieich; Setzen de r vom Spieler gesetzten Kugel gist[y][x]=sieich; Setze(Y,X,1,-1,SieIch); In die acht Richtungen gehen und Kugeln umwandeln Setze(Y,X,-1,1,SieIch); Setze(Y,X,0,1,SieIch); Setze(Y,X,1,0,SieIch); Setze(Y,X,-1,0,SieIch); Setze(Y,X,0,-1,SieIch); Setze(Y,X,1, 1,SieIch); Setze(Y,X,-1,-1,SieIch); Zaehle_Kugeln(); Kugeln zählen und gpunkteich/gpunktesie bestimmen gstatus=kcomputer; Computer ist dran if (gpunkteich+gpunktesie==64) Alle Felder sind voll gstatus=kspielende; dann Spielende und Ausgabe einer if (gpunkteich>gpunktesie) Meldung, wer gewonnen hat. gmeldung="ich habe gewonnen!"; if (gpunktesie>gpunkteich) gmeldung="gratuliere, Sie haben gewonnen!"; gmeldung="u n e n d s c h i e d e n!"; return; Erstelle_Analyse(kSie); Was ist der beste Zug des Spielers

18 BesterS=0; In BesterS merken BesterSX=0; Koordinaten dieses Zuges merken BesterSY=0; Bester Zug des Spielers ermitteln for (X=0; X<8; X++) for (Y=0;Y<8;Y++) if (ganalyse[y][x]>besters) BesterS=gAnalyse[Y][X]; BesterSX=X; BesterSY=Y; Jetzt besten Zug des Computers bestimmen Erstelle_Analyse(kIch); Bester=0; Bester Zug des Computers suchen und Koordinaten merken for (X=0; X<8; X++) for (Y=0;Y<8;Y++) if (ganalyse[y][x]>bester) Bester=gAnalyse[Y][X]; BesterX=X; BesterY=Y; Wahrscheinlichkeit von 1:2 den vorhergehenden Zug verwerfen. if (ganalyse[y][x]==bester) if (Math.random()>0.5) BesterX=X; BesterY=Y; if (gpunkteich==0) Seltener Fall, daß alle meine Steine weg sind! gmeldung="ich habe keine Kugeln und somit verloren!"; gstatus=kspielende; Spielende return;

19 Seltener Fall: Keiner kann ziehen if ((Bester==0) && (BesterS==0)) gmeldung="keiner kann ziehen"; Warte(3000); gstatus=kspielende; if (gpunkteich>gpunktesie) Meldung, wer gewonnen hat. gmeldung="ich habe gewonnen!"; gmeldung="gratuliere, Sie haben gewonnen!"; gmeldung="u n e n d s c h i e d e n!"; return; Wenn kein Zug möglich ist, dann ist der Spieler dran if (Bester==0) gmeldung="ich muß aussetzen! Sie sind dran..."; gstatus=kspieler; Spieler ist am Zug return; Gibt es einen vergleichbaren Zug des Spielers (also ein Zug mit der gleichen 100er-Wertung und bringt der Zug dem Spieler auch noch mehr Kugeln als der eigene Computer-Zug, dann "versauen" wir dem Spieler den Zug... if ((int)(bester/100)==(int)(besters/100)) if (BesterS>Bester) if (ganalyse[bestersy][bestersx]!=0) BesterX=BesterSX; BesterY=BesterSY; Warte(1500); Damit s nicht zu hektisch wird, wird eine Pause eingelegt gsoll[bestery][besterx]=kich; Computer-Kugel wird gesetzt... gist[bestery][besterx]=kich; Animiere_Kugel(BesterY,BesterX,kIch);... und auch angezeigt.

20 Setze(BesterY,BesterX,1,-1,kIch); Zug wird in alle acht Richtung durchgeführt Setze(BesterY,BesterX,-1,1,kIch); Setze(BesterY,BesterX,0,1,kIch); Setze(BesterY,BesterX,1,0,kIch); Setze(BesterY,BesterX,-1,0,kIch); Setze(BesterY,BesterX,0,-1,kIch); Setze(BesterY,BesterX,1, 1,kIch); Setze(BesterY,BesterX,-1,-1,kIch); Zaehle_Kugeln(); Kugeln zählen und gpunkteich/gpunktesie aktualisieren if (gpunktesie==0) Seltener Fall, daß alle seine Steine weg sind! gmeldung="sie haben keine Kugeln und somit verloren!"; gstatus=kspielende; Spielende return; gmeldung=""; if (gpunkteich+gpunktesie==64) Alle Spielfelder sind voll. Ausgabe einer gstatus=kspielende; Meldung und Spielende setzen. if (gpunkteich>gpunktesie) gmeldung="ich habe gewonnen!"; if (gpunktesie>gpunkteich) gmeldung="gratuliere, Sie haben gewonnen!"; gmeldung="u n e n d s c h i e d e n!"; return; Nachdem der Computer seinen Zug gemacht hat, muß nun überprüft werden, ob der Spieler überhaupt noch ziehen kann. Theoretisch könnte man über die Variablen BesterX und BesterY dem Spieler bei Bedarf einen Tipp geben! Erstelle_Analyse(kSie); Bester=0; for (X=0; X<8; X++)

21 for (Y=0;Y<8;Y++) if (ganalyse[y][x]>bester) Bester=gAnalyse[Y][X]; BesterX=X; BesterY=Y; Der Fall, daß der Spieler nicht kann und der Computer einen weiteren Zug machen darf. Dann wird "Zug" rekursiv aufgerufen. if (Bester==0) gmeldung="sie müßen aussetzen! Ich ziehe nochmal..."; Warte(3000); Zug(0,0,kIch); Wenn der Computer seine weiteren Züge gemacht hat, kann es sein, daß daß Spiel beendet ist. Wenn nicht, dann wird der Status auf "Spieler ist dran" gesetzt. if (gstatus!=kspielende) gstatus=kspieler; return; gstatus=kspieler; Spieler ist dran gmeldung="sie sind dran..."; return; Tabelle durchgehen und die Kugeln des Spieler (gpunktesie) und des Computers (gpunkteich) zählen. private void Zaehle_Kugeln() int X,Y; gpunkteich=0;

22 gpunktesie=0; for (X=0; X<8; X++) for (Y=0;Y<8;Y++) if (gist[y][x]==kich) gpunkteich+=1; if (gist[y][x]==ksie) gpunktesie+=1;

8.6 Visualisierung der Sortieralgorithmen

8.6 Visualisierung der Sortieralgorithmen 8.6 Visualisierung der Sortieralgorithmen 8.6.1 Problemstellung Schauen Sie sich den folgenden Quelltext eines Java-Applets an: import java.awt.*; import javax.swing.*; import java.awt.event.*; public

Mehr

Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java

Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java 9 Übungen: Applets Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java 1. Java-Applet mit Text 2. Java-Applet mit Bild und Text 3. Java-Applet mit Grafik 9 Applets 4. Java-Applet

Mehr

Schritt 1 - Ein Spielfeld

Schritt 1 - Ein Spielfeld Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes (und später der Buttons und der anderen Bedienelemente). Hier

Mehr

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 1 Ziele

Mehr

Ab jetzt: Java ohne Kara

Ab jetzt: Java ohne Kara Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen JavaKara -> Java Ablauf in JavaKara: 1. Programm schreiben 2. Kompilieren 3. Programm starten Ablauf in Java

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Inhaltsverzeichnis. Rechenmaschinen - EINFÜHRUNG IN DIE OOP MIT JAVA PI - KAPITEL 1: GRAFIK UND GUIS - V SEITE 1 VON 10 -

Inhaltsverzeichnis. Rechenmaschinen - EINFÜHRUNG IN DIE OOP MIT JAVA PI - KAPITEL 1: GRAFIK UND GUIS - V SEITE 1 VON 10 - - EINFÜHRUNG IN DIE OOP MIT JAVA PI - KAPITEL 1: GRAFIK UND GUIS - V. 0.0.06 - SEITE 1 VON - Inhaltsverzeichnis 3Grafiken, Threads und GUIs... 2 3.1Was sind Applets Theoretischer Hintergrund...2 3.1.1Kennzeichen

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 4

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 4 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing.Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP JAVA 4 IV. Threads, Audiodateien, Bilder, Datumsfunktion, Aufruf

Mehr

Zeichnen und animieren

Zeichnen und animieren Zeichnen und animieren Grundlage bildet wieder die Klasse Graphics Ein Objekt der Klasse Graphics wird immer der paint Methode übergeben public void paint (Graphics g) Auch außerhalb von paint kann Graphics

Mehr

Übungen zu Softwareentwicklung 1, WS 2009/10 Übung 6

Übungen zu Softwareentwicklung 1, WS 2009/10 Übung 6 Übungen zu Softwareentwicklung 1, WS 2009/10 Übung 6 Name: Abzugeben bis: Mi, 2.12.2009 12:00 Matrikelnummer: Bearbeitungsdauer in Stunden: Nummer der Übungsgruppe: Name des Tutors: Name des Übungsleiters:

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben

Mehr

Probeklausur Informatik 2 Sommersemester 2013

Probeklausur Informatik 2 Sommersemester 2013 Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel

Mehr

Bitmaps und Animationen

Bitmaps und Animationen Bitmaps und Animationen 1 Themenübersicht 1. Bitmaps 1. Die Klasse Image 2. Laden und Anzeigen von Bildern 3. Skalierungen und Transformationen 2. Animationen 1. Animationen mit Threads 2. Bildschirmflackern

Mehr

Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:

Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele: Parallele Prozesse SWE-131 Prozeß: Ausführung eines sequentiellen Programmstückes in dem zugeordneten Speicher (Adressraum). Veränderlicher Zustand: Speicherinhalt und Programmposition. Parallele Prozesse:

Mehr

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm.

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm. Übung 04: Methoden Abgabetermin: 11. 11. 2008 Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 4.1 12

Mehr

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets Kapitel 3: Java Applets 1 Was sind Applets? kleine in Fenstern ausführbare Programme typisch: Aufruf im Browserfenster als Teil einer HTML-Seite Anfang des umgebenden HTML-Textes

Mehr

Einführung in die Informatik - Teil 2 -

Einführung in die Informatik - Teil 2 - Eckart Modrow Grafik mit NetBeans/BlueJ S. 1 Einführung in die Informatik - Teil 2 - Grafik mit NetBeans/BlueJ 1 Inhalt: 1. Bälle 2. Aufgaben 3. Arbeiten mit der Maus 4. Aufgaben Literaturhinweise: Küchlin/Weber:

Mehr

Der Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw.

Der Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw. Objekt-Orientierung Die ersten objektorientierten Sprachen wurden ab 1967 entwickelt (Simula, Smalltalk). Die Grundidee besteht darin, Objekte der realen Welt abzubilden. Java-Programme bestehen aus Klassen.

Mehr

Java - Programmierung - Prozedurale Programmierung 1

Java - Programmierung - Prozedurale Programmierung 1 Java - Programmierung - Prozedurale Programmierung 1 // elementare Datentypen public class el_dt public static void main(string args []) byte b = 127; short s = 32767; int i = 2147483647; long l = 9223372036854775807L,

Mehr

Anweisungen zur Ablaufsteuerung

Anweisungen zur Ablaufsteuerung Anweisungen zur Ablaufsteuerung if-else switch while do-while for Ausdrücke Ein Ausdruck ist eine Folge von Variablen, Operatoren und Methodenaufrufen, der zu einem einzelnen Wert ausgewertet wird. Operanden

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore. Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung

Mehr

Parallele Prozesse. Prozeß wartet

Parallele Prozesse. Prozeß wartet Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:

Mehr

Taxi-Simulation. Objektorientierte Analyse. Verb-Substantiv-Methode

Taxi-Simulation. Objektorientierte Analyse. Verb-Substantiv-Methode Informatik Taxi-Simulation Seite 1 Taxi-Simulation Ein Taxiunternehmen untersucht gerade, ob es sein Einsatzgebiet in einen bisher nicht abgedeckten Teil der Stadt ausdehnen soll. Basierend auf den geschätzten

Mehr

Verkettete Datenstrukturen: Listen

Verkettete Datenstrukturen: Listen Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 18 Einstieg in die Informatik mit Java Applets Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Einführung 2 Sicherheits-Maßnahmen 3 Ereignisgesteuerte Programmierung

Mehr

Probeklausur: Programmieren I

Probeklausur: Programmieren I Probeklausur: Programmieren I WS09/10 Erlaubte Hilfsmittel: keine Lösung ist auf den Klausurbögen anzufertigen. (eventuell Rückseiten nehmen) Bitte legen Sie einen Lichtbildausweis und den Studentenausweis

Mehr

SE2-6. Übung Johannes Bürdek

SE2-6. Übung Johannes Bürdek SE2-6. Übung 11.12.2014 Johannes Bürdek [email protected] Fragen und Support: [email protected] oder ins Forum: https://moodle.tu-darmstadt.de/mod/forum/view.php?id=56674 ES Real-Time

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

Klausur Software-Entwicklung September 00

Klausur Software-Entwicklung September 00 Aufgabe 1: Wahrheitstafeln ausgeben (ca. 8 Punkte) Matrikelnr : Ergänzen Sie in folgendem Programm, eine rekursive Funktion, die eine Boole'sche Wahrheitstafel für N Variablen ausgibt. Die Zahl N soll

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Prozesszustände (1a)

Prozesszustände (1a) Prozesszustände (1a) NOT EXISTING DELETED CREATED Meta-Zustand (Theoretische Bedeutung) Prozesszustände Multiuser Umfeld (1c) Hintergrund-Prozess - der Prozess startet im Hintergrund - my-commandbin &

Mehr

3. Übungsbesprechung Programmkonstruktion

3. Übungsbesprechung Programmkonstruktion 3. Übungsbesprechung Programmkonstruktion Karl Gmeiner [email protected] November 16, 2011 K Gmeiner ([email protected]) 3. Übungsbesprechung PK November 16, 2011 1 / 22 Rückblick und

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Ausnahmebehandlung in Java

Ausnahmebehandlung in Java Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 8. September 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

- EINSTIEG IN JAVA - (1/5) Datum:

- EINSTIEG IN JAVA - (1/5) Datum: - EINSTIEG IN JAVA - (1/5) Datum: 2.2 Wir lernen die Programmiersprache Java und entwickeln ein Computerspiel Schritt #1: Constructor-Methoden: Wir setzen die beiden Spieler in die 'Welt' (das Spielfeld)

Mehr

Musterlösung Stand: 5. Februar 2009

Musterlösung Stand: 5. Februar 2009 Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken 4 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Blöcke Blöcke erweitern einzelne Anweisungen, etwa bei Kontrollstrukturen später Beispiel: Einzelne Anweisung: anweisung; Erweiterung

Mehr

JAVA für Nichtinformatiker - Probeklausur -

JAVA für Nichtinformatiker - Probeklausur - JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils

Mehr

In dieser Aufgabe geht es darum, das einfache Meteor-Spiel zu verstehen und anzupassen. Lade als erstes das Spiel sample12 und spiele es.

In dieser Aufgabe geht es darum, das einfache Meteor-Spiel zu verstehen und anzupassen. Lade als erstes das Spiel sample12 und spiele es. In dieser Aufgabe geht es darum, das einfache Meteor-Spiel zu verstehen und anzupassen. Lade als erstes das Spiel sample12 und spiele es. Im Spiel fällt ein Meteor vom oben zum unteren Rand. Das Raumschiff

Mehr

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 - ! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck

Mehr

Java Kurzreferenz Für Fortgeschrittene

Java Kurzreferenz Für Fortgeschrittene Java Kurzreferenz Für Fortgeschrittene 1. Initialisierung von Applets: Die Methode init Wenn ein Applet gestartet wird, werden immer zwei Methoden aufgerufen. Diese heissen init und start. Um gewisse Berechnungen

Mehr

Java - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov

Java - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov Java - AWT Basispraktikum SystemArchitektur WS 2008/2209 09.12.2008 Atanas Dimitrov 1 Was besprechen wir heute: AWT Klassen Die Klasse Graphics AWT Methoden Die Klasse ToolKit Ausgabe von Bilder Die Klasse

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen

Mehr

Programmieren in Java

Programmieren in Java 17. Übung 1. Aufgabe Schreibe ein Programm, das eine Textdatei (z.b. *.java ) aus dem aktuellen Verzeichnis über eine TextArea auf ein Fenster des Bildschirms abbildet. Jede Zeile soll dabei durchnummeriert

Mehr

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel  Problem Grundzüge der Wirtschaftsinformatik WS 2002/03 Wiederholung Java Heiko Rossnagel www.m-lehrstuhl.de accelerate.com Grundzüge der Wirtschaftsinformatik WS 2002/03 1 Programmierzyklus Problem Formulierung

Mehr

Klausur Softwaretechnik / JAVA Fachbereich BW, für WINFO

Klausur Softwaretechnik / JAVA Fachbereich BW, für WINFO Klausur Softwaretechnik / JAVA Fachbereich BW, für WINFO Dipl.-Ing. Klaus Knopper 20.01.2010 Hinweis: Bitte schreiben Sie auf das Deckblatt und auf jede Seite Ihren Namen und/oder Ihre Matrikelnummer,

Mehr

1 Modellierung einer Uhr

1 Modellierung einer Uhr PNS Wahlpflichtfach Informatik Projekt: Uhrzeit Seite 1 1 Modellierung einer Uhr Aufgabe: Es soll ein Modell für eine Digitaluhr erstellt werden, die Stunden und Minuten im Format hh:mm repräsentiert.

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung Grafikausgabe mit dem Abstract- Windowing-Toolkit Eine Einführung Inhalt Einführung Grundlegende Eigenschaften des Abstract-Windowing- Toolkit (AWT) Grundlagen Grafikausgabe Linien zeichnen Rechtecke zeichnen

Mehr

Dokumentation des Projektes Tic Tac Toe

Dokumentation des Projektes Tic Tac Toe Praktikum aus Programmierung Dr. Michael Hahsler Dokumentation des Projektes Tic Tac Toe 0050230 1 Java Projekt: Tic Tac Toe 1. Inhaltsverzeichnis 1. Inhaltsverzeichnis... 2 2. Problemdefinition... 2 3.

Mehr

Vorlesung Objektorientierte Programmierung Klausur

Vorlesung Objektorientierte Programmierung Klausur Prof. Dr. Stefan Brass 16. Februar 2007 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Klausur Name: Matrikelnummer: Studiengang: Aufgabe

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

4D Progress Die Projektmethoden für diese Komponente erscheinen im Explorer auf der Seite Methoden unter Komponent-Methoden:

4D Progress Die Projektmethoden für diese Komponente erscheinen im Explorer auf der Seite Methoden unter Komponent-Methoden: 4D Progress 4D bietet eine Komponente mit Namen 4D Progress. Damit können Sie im gleichen Fenster eine oder mehrere Ablaufbalken gleichzeitig öffnen (so wie im Finder auf Mac OS). Jedem Ablaufbalken ist

Mehr

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

Mehr

FHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt

FHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt Inhalt 1. Einführung 1. Beispiel: Fakultät 2. Beispiel: Zahlenfolge 3. Beispiel: Formale Sprache 4. Unterschied Iteration/Rekursion 2. Rekursive Methoden 1. Beispiel: Fakultät 2. Beispiel: "Türme

Mehr

PROGRAMMIERUNG IN JAVA

PROGRAMMIERUNG IN JAVA PROGRAMMIERUNG IN JAVA ZUWEISUNGEN (1) Deklaration nennt man die Ankündigung eines Platzhalters (Variablen) und Initialisierung die erste Wertvergabe bzw. die konkrete Erstellung des Platzhalters. In einem

Mehr

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben 18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (

Mehr

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7. CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)

Mehr

Lösungen. 1. Aufgabe. // ActionExample.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.

Lösungen. 1. Aufgabe. // ActionExample.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event. Lösungen 1. Aufgabe // ActionExample.java import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class ActionExample extends JFrame int counter = 1; JLabel counterlabel; public

Mehr

Informatik II. Semesterklausur

Informatik II. Semesterklausur Universität Augsburg, Institut für Informatik Sommersemester 2003 Prof. Dr. Bernhard Bauer 5. Juli 2003 Stefan Fischer, Dr. Martin Müller Informatik II Semesterklausur Prüfungsmodul Informatik II (SS 2003)

Mehr

Graphische Programmierung: GUIs: graphical user interfaces

Graphische Programmierung: GUIs: graphical user interfaces Graphische Programmierung: GUIs: graphical user interfaces Ziel: Java -Programmierung und Handhabung von graphischen Benutzeroberflächen (in Applets) mehrere Fenster Fenster-Eigenschaften: aktiv oder inaktiv

Mehr