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

431 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
431
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
105
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Sind wir aus dem Labyrinth gelangt?
    Warum?
    Terminierung von Algorithmen
    Wir verlangen (zumeist) von Algorithmen, dass sie terminieren, d.h. dass sie in endlicher Zeit (und möglichst schnell  Performance) ihre Arbeit erledigt haben
    Performanz: Geschwindigkeit der Problemlösung
  • Einfache Datentypen in C++:
    bool  Wahrheitswerte
    int  ganze Zahlen
    unsigned int  Natürliche Zahlen
    float  Fließkommazahlen
    double  Fließkommazahlen, doppelte Genauigkeit
    char  Zeichen

    Zusammengesetzte Datentypen (in C++):
    String  Zeichenketten
    Array  Sammlung von Daten eines Datentyps
  • Wie prüfen, ob ein Spieler drei Symbole in diagonaler Reihenfolge abgelegt hat?
    Kontrollstrukturen
  • 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. /

    ×