Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung
Jan G. Wieners // jan.wieners@uni-koeln.d...
 Drei-Schichten Architektur / MVC
 Programmiersprachen – Konzepte
 Variablen
 Auswahlanweisungen
 Kontrollstrukturen
...
 Interpretiert vs. compiliert
 Typisierung: statisch, dynamisch, etc.
 Paradigmen:
 Funktional
 Objektorientiert
 Gr...
Darstellung
Daten
Logik
Drei-Schichten-Architektur
 GUI-Schicht
 Fachkonzeptschicht
 Datenhaltungsschicht
GUI-Schicht: Realisiert die
Benutzung...
MVC – Model View Controller (Modell, Präsentation, Steuerung)
1972 im Kontext von „Smalltalk“ (objektorientierte Programmi...
Model / Datenhaltungsschicht
Model!
Spielfeld: 3 x 3 Felder
Auf jedem Feld wird die ID des Spielers
abgelegt, der / die das Feld angeklickt hat
var gam...
Arrays und Variablen
Variable: Benannte Speicherstelle
Charakteristika:
 Datentyp
 Variablenname
 Wert
 (Adresse der S...
Arrays
Array  Sammlung von Datenwerten
Jeder Wert in einem Array wird über den Index adressiert; gezählt
wird ab 0: meinA...
Mehrdimensionale Arrays
Zugriff auf Werte in zweidimensionalen Arrays:
var cellContent = gameBoard[xCoord][yCoord]
???
1. var cellContent = gameBoard[ 0 ] [ 1 ];
2. var cellContent = gameBoard[ 2 ] [ 2 ];
3. var cellContent = gameBoard[ ...
Spielfluss und
Anwendungslogik
Präsentation und Interaktion – die Spielschleife
SOLANGE kein Spieler / keine Spielerin das Spiel
gewonnen hat, VERFAHRE W...
Gewinn- und Abbruchbedingung
Ein Spieler / eine Spielerin hat das Spiel gewonnen,
WENN:
der Spieler drei seiner Symbole in...
Kontrollstrukturen
Unterscheidung von Kontrollstrukturen in:
 Auswahlanweisungen
 ?
 Wiederholungsanweisungen
 ?
 Sprunganweisungen
 ?
...
Unterscheidung von Kontrollstrukturen in:
 Auswahlanweisungen
 if
 if else
 (switch)
 Wiederholungsanweisungen
 whil...
WENN es heute NICHT regnet, DANN gehe ich joggen…
WENN es heute NICHT regnet, DANN gehe ich joggen…
if (es_regnet ist falsch) {
ich gehe joggen;
}
if (ausdruck) {
anweisung1
anweisung2
anweisung3
...
}
ausdruck  variable1 OPERATOR variable2
Auswahlanweisungen: if
C++, JavaScript & Co.: (Vergleichs)Operatoren
Operator Operation Beispiel
>
Größer als
(„ist Wert1 größer als Wert2?“) Wer...
WENN es heute NICHT regnet, DANN gehe ich joggen…
if (es_regnet == false) {
ich gehe joggen;
}
WENN es heute NICHT regnet, DANN gehe ich joggen…
if (es_regnet == false) {
ich gehe joggen;
} else {
alert(“<3 PS4!“);
}
Gewinn- und Abbruchbedingung
Ein Spieler / eine Spielerin hat das Spiel gewonnen,
WENN (IF):
der Spieler drei seiner Symbo...
Übung 1
Gewinnbedingung
Prüfen I: Hat ein Spieler / eine Spielerin drei ihrer
Symbole in (unmittelbarer) horizontaler
Rei...
// Test horizontale Felder
if (gameBoard[0][0] === 1 &&
gameBoard[1][0] === 1 &&
gameBoard[2][0] === 1) {
alert(“Spielerin...
// Test diagonale Felder
if (gameBoard[0][0] === 1 &&
gameBoard[1][1] === 1 &&
gameBoard[2][1] === 1) {
alert(“Spielerin m...
Präsentation und Interaktion – die Spielschleife
SOLANGE kein Spieler / keine Spielerin das Spiel
gewonnen hat, VERFAHRE W...
Wiederholungsanweisungen
Wiederholungsanweisungen (i.e. while, for, do
while) machen‘s möglich, bestimmte
Verarbeitungsschritte unter bestimmten Um...
while (ausdruck){
anweisung1
anweisung2
anweisung3
}
 „Führe anweisung1 und anweisung2 und
anweisung3 so lange aus, wie d...
do {
anweisung1
anweisung2
anweisung3
anweisung4
...
} while (ausdruck)
Wiederholungsanweisungen: do while
for(initialisierung;
abbruchbedingung;
inkrementierung) {
anweisung1
anweisung2
anweisung3
anweisung4
...
}
Wiederholungsa...
Übung 2
SOLANGE kein Spieler / keine Spielerin das Spiel
gewonnen hat, VERFAHRE WIE FOLGEND:
WENN ein leeres Spielfeld ang...
 Drei-Schichten Architektur / MVC
 Programmiersprachen – Konzepte
 Variablen
 Arrays
 Auswahlanweisungen
 Kontrollst...
Last, but not….:
Objektorientierte
Softwareentwicklung
Kapselung, Information Hiding, Geheimnisprinzip
Abb.: Balzert, Heide: Lehrbuch der Objektmodellierung. Heidelberg, 2005.
var game = {
name : '',
setName : function( gameName ) {
this.name = gameName;
},
state : '',
getGameState : function() {
...
/
BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II
BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II
Nächste SlideShare
Wird geladen in …5
×

BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II

485 Aufrufe

Veröffentlicht am

BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II

Veröffentlicht in: Bildung
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II

  1. 1. Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // jan.wieners@uni-koeln.de Basisinformationstechnologie I Wintersemester 2014/15 07. Januar 2015 – Programmiersprachen II
  2. 2.  Drei-Schichten Architektur / MVC  Programmiersprachen – Konzepte  Variablen  Auswahlanweisungen  Kontrollstrukturen  Objektorientierte Programmierung  Objekt  Kapselung / Information Hiding / Geheimnisprinzip  Vererbung Themenüberblick „Programmiersprachen II“
  3. 3.  Interpretiert vs. compiliert  Typisierung: statisch, dynamisch, etc.  Paradigmen:  Funktional  Objektorientiert  Grundlegende Konzepte: Variablen, Arrays, Kontrollstrukturen, Funktionen, Objekte  Das Rad nicht neu erfinden: Design Patterns / Entwurfsmuster, Strukturierungsmuster: MVC (u.a.)  Modellierung Programmiersprachen – Charakteristika, Konzepte und Methoden
  4. 4. Darstellung Daten Logik
  5. 5. Drei-Schichten-Architektur  GUI-Schicht  Fachkonzeptschicht  Datenhaltungsschicht GUI-Schicht: Realisiert die Benutzungsoberfläche einer Anwendung – Präsentation der Daten, Interaktion mit Benutzer / Benutzerin Fachkonzeptschicht: Modelliert den funktionalen Kern der Anwendung; Zugriff auf Datenhaltungsschicht Datenhaltungsschicht: Form der Datenspeicherung, z.B. relationale DB Schichten-Architektur
  6. 6. MVC – Model View Controller (Modell, Präsentation, Steuerung) 1972 im Kontext von „Smalltalk“ (objektorientierte Programmiersprache) vorgestellt
  7. 7. Model / Datenhaltungsschicht
  8. 8. Model! Spielfeld: 3 x 3 Felder Auf jedem Feld wird die ID des Spielers abgelegt, der / die das Feld angeklickt hat var gameBoard = [][];
  9. 9. Arrays und Variablen Variable: Benannte Speicherstelle Charakteristika:  Datentyp  Variablenname  Wert  (Adresse der Speicherzelle) JavaScript: // Deklaration var meineVariable; // Initialisierung meineVariable = 23; C++: // Deklaration int meineVariable; // Initialisierung meineVariable = 23;
  10. 10. Arrays Array  Sammlung von Datenwerten Jeder Wert in einem Array wird über den Index adressiert; gezählt wird ab 0: meinArray[index] // Deklaration var lottoZahlen = []; // Initialisierung lottoZahlen[0] = 23; lottoZahlen[1] = 15; lottoZahlen[2] = 3; lottoZahlen[3] = 42; lottoZahlen[4] = 7; lottoZahlen[5] = 8; // Ausgabe document.write( lottoZahlen[0] + “, “ + lottoZahlen[1] );
  11. 11. Mehrdimensionale Arrays Zugriff auf Werte in zweidimensionalen Arrays: var cellContent = gameBoard[xCoord][yCoord]
  12. 12. ??? 1. var cellContent = gameBoard[ 0 ] [ 1 ]; 2. var cellContent = gameBoard[ 2 ] [ 2 ]; 3. var cellContent = gameBoard[ 3 ] [ 1 ];
  13. 13. Spielfluss und Anwendungslogik
  14. 14. Präsentation und Interaktion – die Spielschleife SOLANGE kein Spieler / keine Spielerin das Spiel gewonnen hat, VERFAHRE WIE FOLGEND: WENN ein leeres Spielfeld angeklickt wurde: lege die aktuelle SpielerID im zweidimensionalen Array „gameGrid“ ab und stelle das Spielersymbol dar IM ANDEREN FALLE: tue nichts Prüfe die Gewinnbedingung
  15. 15. Gewinn- und Abbruchbedingung Ein Spieler / eine Spielerin hat das Spiel gewonnen, WENN: der Spieler drei seiner Symbole in (unmittelbarer) horizontaler Reihenfolge abgelegt hat ODER der Spieler drei Symbole in diagonaler Reihenfolge abgelegt hat
  16. 16. Kontrollstrukturen
  17. 17. Unterscheidung von Kontrollstrukturen in:  Auswahlanweisungen  ?  Wiederholungsanweisungen  ?  Sprunganweisungen  ? Kontrollstrukturen
  18. 18. Unterscheidung von Kontrollstrukturen in:  Auswahlanweisungen  if  if else  (switch)  Wiederholungsanweisungen  while  for  do while  Sprunganweisungen  return  break  continue Kontrollstrukturen
  19. 19. WENN es heute NICHT regnet, DANN gehe ich joggen…
  20. 20. WENN es heute NICHT regnet, DANN gehe ich joggen… if (es_regnet ist falsch) { ich gehe joggen; }
  21. 21. if (ausdruck) { anweisung1 anweisung2 anweisung3 ... } ausdruck  variable1 OPERATOR variable2 Auswahlanweisungen: if
  22. 22. C++, JavaScript & Co.: (Vergleichs)Operatoren Operator Operation Beispiel > Größer als („ist Wert1 größer als Wert2?“) Wert1 > Wert2 < Kleiner als („ist Wert 1 kleiner als Wert2?“) Wert1 < Wert2 >= Größer gleich („ist Wert1 kleiner oder gleich Wert2?“) Wert1 >= Wert2 <= Kleiner gleich („ist Wert1 kleiner oder gleich Wert2?“) Wert1 <= Wert2 == Auf Gleichheit prüfen variable1 == variable2 != Auf Ungleichheit prüfen variable1 != variable2 && Logisches UND: Zwei Bedingungen prüfen if( (a==b) && (b==c) ) || Logisches ODER if( (a==b) || (b==c) )
  23. 23. WENN es heute NICHT regnet, DANN gehe ich joggen… if (es_regnet == false) { ich gehe joggen; }
  24. 24. WENN es heute NICHT regnet, DANN gehe ich joggen… if (es_regnet == false) { ich gehe joggen; } else { alert(“<3 PS4!“); }
  25. 25. Gewinn- und Abbruchbedingung Ein Spieler / eine Spielerin hat das Spiel gewonnen, WENN (IF): der Spieler drei seiner Symbole in (unmittelbarer) horizontaler Reihenfolge abgelegt hat ODER (II) der Spieler drei Symbole in diagonaler Reihenfolge abgelegt hat
  26. 26. Übung 1 Gewinnbedingung Prüfen I: Hat ein Spieler / eine Spielerin drei ihrer Symbole in (unmittelbarer) horizontaler Reihenfolge abgelegt? Prüfen II: Finden sich drei Symbole eines Spielers in diagonaler Folge?
  27. 27. // Test horizontale Felder if (gameBoard[0][0] === 1 && gameBoard[1][0] === 1 && gameBoard[2][0] === 1) { alert(“Spielerin mit der ID 1 hat gewonnen!“); } Übung 1
  28. 28. // Test diagonale Felder if (gameBoard[0][0] === 1 && gameBoard[1][1] === 1 && gameBoard[2][1] === 1) { alert(“Spielerin mit der ID 1 hat gewonnen!“); } Übung 1
  29. 29. Präsentation und Interaktion – die Spielschleife SOLANGE kein Spieler / keine Spielerin das Spiel gewonnen hat, VERFAHRE WIE FOLGEND: WENN ein leeres Spielfeld angeklickt wurde: lege die aktuelle SpielerID im zweidimensionalen Array „gameGrid“ ab und stelle das Spielersymbol dar IM ANDEREN FALLE: tue nichts Prüfe die Gewinnbedingung
  30. 30. Wiederholungsanweisungen
  31. 31. Wiederholungsanweisungen (i.e. while, for, do while) machen‘s möglich, bestimmte Verarbeitungsschritte unter bestimmten Umständen zu wiederholen Beispiele:  while  for  do while Wiederholungsanweisungen
  32. 32. while (ausdruck){ anweisung1 anweisung2 anweisung3 }  „Führe anweisung1 und anweisung2 und anweisung3 so lange aus, wie die Bedingung „ausdruck“ WAHR (TRUE) ist.“ Wiederholungsanweisungen: while
  33. 33. do { anweisung1 anweisung2 anweisung3 anweisung4 ... } while (ausdruck) Wiederholungsanweisungen: do while
  34. 34. for(initialisierung; abbruchbedingung; inkrementierung) { anweisung1 anweisung2 anweisung3 anweisung4 ... } Wiederholungsanweisungen: for
  35. 35. Übung 2 SOLANGE kein Spieler / keine Spielerin das Spiel gewonnen hat, VERFAHRE WIE FOLGEND: WENN ein leeres Spielfeld angeklickt wurde: lege die aktuelle SpielerID im zweidimensionalen Array „gameGrid“ ab und stelle das Spielersymbol dar IM ANDEREN FALLE: tue nichts Prüfe die Gewinnbedingung
  36. 36.  Drei-Schichten Architektur / MVC  Programmiersprachen – Konzepte  Variablen  Arrays  Auswahlanweisungen  Kontrollstrukturen  Objektorientierte Programmierung  Objekt  Kapselung / Information Hiding / Geheimnisprinzip  Vererbung Themenüberblick „Programmiersprachen II“
  37. 37. Last, but not….: Objektorientierte Softwareentwicklung
  38. 38. Kapselung, Information Hiding, Geheimnisprinzip Abb.: Balzert, Heide: Lehrbuch der Objektmodellierung. Heidelberg, 2005.
  39. 39. var game = { name : '', setName : function( gameName ) { this.name = gameName; }, state : '', getGameState : function() { return this.state; }, setGameState : function( gameState ) { this.state = gameState; }, […] }; Objektorientierte Programmierung
  40. 40. /

×