Basisinformationstechnologie I
Wintersemester 2013/14
15. Januar 2013 – Programmiersprachen II

Universität zu Köln. Histo...
Themenüberblick „Programmiersprachen II“



Drei-Schichten Architektur / MVC
Programmiersprachen – Konzepte
 Variablen
...
Programmiersprachen – Charakteristika, Konzepte und Methoden





Interpretiert vs. compiliert
Typisierung: statisch, d...
Darstellung

Logik

Daten
Schichten-Architektur
Drei-Schichten-Architektur
 GUI-Schicht
 Fachkonzeptschicht
 Datenhaltungsschicht
GUI-Schicht: Re...
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:





Variablenname
Wert
(Datentyp)
(Adresse de...
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.
2.
3.

var cellContent = gameBoard[ 0 ] [ 1 ];
var cellContent = gameBoard[ 2 ] [ 2 ];
var cellContent = gameBoard[...
Spielfluss und
Anwendungslogik
Präsentation und Interaktion – die Spielschleife

SOLANGE kein Spieler / keine Spielerin das Spiel
gewonnen hat, VERFAHRE ...
Gewinn- und Abbruchbedingung
Ein Spieler / eine Spielerin hat das Spiel gewonnen,
WENN:
der Spieler drei seiner Symbole in...
Kontrollstrukturen
Kontrollstrukturen
Unterscheidung von Kontrollstrukturen in:
 Auswahlanweisungen
?
 Wiederholungsanweisungen
?
 Sprun...
Kontrollstrukturen
Unterscheidung von Kontrollstrukturen in:
 Auswahlanweisungen
 if
 if else
 (switch)
 Wiederholung...
WENN es heute NICHT regnet, DANN gehe ich joggen…
if (es regnet ist falsch) {
ich gehe joggen;
}

WENN es heute NICHT regnet, DANN gehe ich joggen…
Auswahlanweisungen: if
if (ausdruck) {
anweisung1
anweisung2
anweisung3
...
}
ausdruck  variable1 OPERATOR variable2
C++, JavaScript & Co.: (Vergleichs)Operatoren
Operator

<=

Operation
Größer als
(„ist Wert1 größer als Wert2?“)
Kleiner a...
if (es regnet == falsch) {
ich gehe joggen;
}

WENN es heute NICHT regnet, DANN gehe ich joggen…
Auswahlanweisungen: if
Beispiel: Zu prüfen ist, ob der Wert von variableZwei
größer ist als der Wert von variableEins. Wen...
Auswahlanweisungen: if und else
Beispiel: Zu prüfen ist, ob der Wert von variableZwei größer ist als der
Wert von variable...
Gewinn- und Abbruchbedingung
Ein Spieler / eine Spielerin hat das Spiel gewonnen,
WENN (IF):
der Spieler drei seiner Symbo...
Übung 1
Interaktion
 Prüfen I: Wurde ein leeres Spielfeld angeklickt?
Gewinnbedingung
 Prüfen I: Hat ein Spieler / eine ...
Präsentation und Interaktion – die Spielschleife

SOLANGE kein Spieler / keine Spielerin das Spiel
gewonnen hat, VERFAHRE ...
Wiederholungsanweisungen
Wiederholungsanweisungen
Wiederholungsanweisungen (i.e. while, for, do
while) machen‘s möglich, bestimmte
Verarbeitungssch...
Wiederholungsanweisungen: while
while (ausdruck){

anweisung1
anweisung2
anweisung3
}

 „Führe anweisung1 und anweisung2 ...
Wiederholungsanweisungen: do while
do {
anweisung1
anweisung2
anweisung3
anweisung4
...
} while (ausdruck)
Wiederholungsanweisungen: for
for(initialisierung;
abbruchbedingung;
inkrementierung) {
anweisung1
anweisung2
anweisung3
a...
Übung 2
SOLANGE kein Spieler / keine Spielerin das Spiel
gewonnen hat, VERFAHRE WIE FOLGEND:
WENN ein leeres Spielfeld ang...
Themenüberblick „Programmiersprachen II“



Drei-Schichten Architektur / MVC
Programmiersprachen – Konzepte







...
Last, but not….:

Objektorientierte
Softwareentwicklung
Kapselung, Information Hiding, Geheimnisprinzip

Abb.: Balzert, Heide: Lehrbuch der Objektmodellierung. Heidelberg, 2005.
Objektorientierte Programmierung
var game = {
name : '',
setName : function( gameName ) {
this.name = gameName;
},
state :...
/
Bit WiSe 2013 | Basisinformationstechnologie I - 10: Programmiersprachen II
Bit WiSe 2013 | Basisinformationstechnologie I - 10: Programmiersprachen II
Nächste SlideShare
Wird geladen in …5
×

Bit WiSe 2013 | Basisinformationstechnologie I - 10: Programmiersprachen II

496 Aufrufe

Veröffentlicht am

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
496
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
127
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Bit WiSe 2013 | Basisinformationstechnologie I - 10: Programmiersprachen II

  1. 1. Basisinformationstechnologie I Wintersemester 2013/14 15. Januar 2013 – Programmiersprachen II Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // jan.wieners@uni-koeln.de
  2. 2. Themenüberblick „Programmiersprachen II“   Drei-Schichten Architektur / MVC Programmiersprachen – Konzepte  Variablen  Auswahlanweisungen  Kontrollstrukturen  Objektorientierte Programmierung  Objekt  Kapselung / Information Hiding / Geheimnisprinzip  Vererbung
  3. 3. Programmiersprachen – Charakteristika, Konzepte und Methoden    Interpretiert vs. compiliert Typisierung: statisch, dynamisch, etc. Paradigmen:     Funktional Imperativ Prozedural Objektorientiert  Grundlegende Konzepte: Variablen, Arrays, Kontrollstrukturen, Funktionen, Objekte  Das Rad nicht neu erfinden: Design Patterns / Entwurfsmuster, Strukturierungsmuster: MVC (u.a.)  Modellierung
  4. 4. Darstellung Logik Daten
  5. 5. Schichten-Architektur 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
  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:     Variablenname Wert (Datentyp) (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. 2. 3. var cellContent = gameBoard[ 0 ] [ 1 ]; var cellContent = gameBoard[ 2 ] [ 2 ]; 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. Kontrollstrukturen Unterscheidung von Kontrollstrukturen in:  Auswahlanweisungen ?  Wiederholungsanweisungen ?  Sprunganweisungen ?
  18. 18. Kontrollstrukturen Unterscheidung von Kontrollstrukturen in:  Auswahlanweisungen  if  if else  (switch)  Wiederholungsanweisungen  while  for  do while  Sprunganweisungen  return  break  continue
  19. 19. WENN es heute NICHT regnet, DANN gehe ich joggen…
  20. 20. if (es regnet ist falsch) { ich gehe joggen; } WENN es heute NICHT regnet, DANN gehe ich joggen…
  21. 21. Auswahlanweisungen: if if (ausdruck) { anweisung1 anweisung2 anweisung3 ... } ausdruck  variable1 OPERATOR variable2
  22. 22. C++, JavaScript & Co.: (Vergleichs)Operatoren Operator <= Operation Größer als („ist Wert1 größer als Wert2?“) Kleiner als („ist Wert 1 kleiner als Wert2?“) Größer gleich („ist Wert1 kleiner oder gleich Wert2?“) Kleiner gleich („ist Wert1 kleiner oder gleich Wert2?“) == Auf Gleichheit prüfen variable1 == variable2 != variable1 != variable2 && Auf Ungleichheit prüfen Logisches UND: Zwei Bedingungen prüfen || Logisches ODER if( (a==b) || (b==c) ) > < >= Beispiel Wert1 > Wert2 Wert1 < Wert2 Wert1 >= Wert2 Wert1 <= Wert2 if( (a==b) && (b==c) )
  23. 23. if (es regnet == falsch) { ich gehe joggen; } WENN es heute NICHT regnet, DANN gehe ich joggen…
  24. 24. Auswahlanweisungen: if Beispiel: Zu prüfen ist, ob der Wert von variableZwei größer ist als der Wert von variableEins. Wenn ja, soll eine entsprechende Nachricht ausgegeben werden: var variableEins = 5; var variableZwei = 8; if(variableZwei > variableEins) alert(“Der in Variable Zwei gespeicherte Wert größer als der in Eins gespeicherte } { ist Variable Wert.“);
  25. 25. Auswahlanweisungen: if und else Beispiel: Zu prüfen ist, ob der Wert von variableZwei größer ist als der Wert von variableEins. Wenn ja, soll eine entsprechende Nachricht ausgegeben werden: var variableEins = 5; var variableZwei = 8; if(variableZwei > variableEins) { alert(“Der in Variable Zwei gespeicherte Wert ist größer als der in Variable Eins gespeicherte Wert.“); } else { alert(“Der in Variable Zwei gespeicherte Wert ist kleiner als der in Variable Eins gespeicherte Wert.“); }
  26. 26. 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
  27. 27. Übung 1 Interaktion  Prüfen I: Wurde ein leeres Spielfeld angeklickt? 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?
  28. 28. 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
  29. 29. Wiederholungsanweisungen
  30. 30. Wiederholungsanweisungen Wiederholungsanweisungen (i.e. while, for, do while) machen‘s möglich, bestimmte Verarbeitungsschritte unter bestimmten Umständen zu wiederholen Beispiele:  while  for  do while
  31. 31. Wiederholungsanweisungen: while while (ausdruck){ anweisung1 anweisung2 anweisung3 }  „Führe anweisung1 und anweisung2 und anweisung3 so lange aus, wie die Bedingung „ausdruck“ WAHR (TRUE) ist.“
  32. 32. Wiederholungsanweisungen: do while do { anweisung1 anweisung2 anweisung3 anweisung4 ... } while (ausdruck)
  33. 33. Wiederholungsanweisungen: for for(initialisierung; abbruchbedingung; inkrementierung) { anweisung1 anweisung2 anweisung3 anweisung4 ... }
  34. 34. Ü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
  35. 35. Themenüberblick „Programmiersprachen II“   Drei-Schichten Architektur / MVC Programmiersprachen – Konzepte      Variablen Arrays Auswahlanweisungen Kontrollstrukturen Objektorientierte Programmierung  Objekt  Kapselung / Information Hiding / Geheimnisprinzip  Vererbung
  36. 36. Last, but not….: Objektorientierte Softwareentwicklung
  37. 37. Kapselung, Information Hiding, Geheimnisprinzip Abb.: Balzert, Heide: Lehrbuch der Objektmodellierung. Heidelberg, 2005.
  38. 38. Objektorientierte Programmierung var game = { name : '', setName : function( gameName ) { this.name = gameName; }, state : '', getGameState : function() { return this.state; }, setGameState : function( gameState ) { this.state = gameState; }, […] };
  39. 39. /

×