bit i wise 2014 | basisinformationstechnologie i - 09: programmiersprachen ii
TRANSCRIPT
![Page 1: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/1.jpg)
Universität zu Köln. Historisch-Kulturwissenschaftliche InformationsverarbeitungJan G. Wieners // [email protected]
Basisinformationstechnologie IWintersemester 2014/15
07. Januar 2015 – Programmiersprachen II
![Page 2: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/2.jpg)
Drei-Schichten Architektur / MVC Programmiersprachen – Konzepte
Variablen Auswahlanweisungen Kontrollstrukturen
Objektorientierte Programmierung Objekt Kapselung / Information Hiding / Geheimnisprinzip Vererbung
Themenüberblick „Programmiersprachen II“
![Page 3: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/3.jpg)
![Page 4: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/4.jpg)
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
![Page 5: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/5.jpg)
![Page 6: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/6.jpg)
Darstellung
Daten
Logik
![Page 7: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/7.jpg)
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
![Page 8: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/8.jpg)
MVC – Model View Controller (Modell, Präsentation, Steuerung)1972 im Kontext von „Smalltalk“ (objektorientierte Programmiersprache) vorgestellt
![Page 9: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/9.jpg)
Model / Datenhaltungsschicht?
![Page 10: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/10.jpg)
Model!
Spielfeld: 3 x 3 FelderAuf jedem Feld wird die ID des Spielers abgelegt, der / die das Feld angeklickt hat
var gameBoard = [][];
![Page 11: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/11.jpg)
Arrays und Variablen
Variable: Benannte SpeicherstelleCharakteristika:
Datentyp Variablenname Wert (Adresse der Speicherzelle)
JavaScript:// Deklarationvar meineVariable;
// InitialisierungmeineVariable = 23;
C++:// Deklarationint meineVariable;
// InitialisierungmeineVariable = 23;
![Page 12: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/12.jpg)
Arrays
Array Sammlung von DatenwertenJeder Wert in einem Array wird über den Index adressiert; gezählt wird ab 0: meinArray[index]
// Deklarationvar lottoZahlen = [];
// InitialisierunglottoZahlen[0] = 23;lottoZahlen[1] = 15;lottoZahlen[2] = 3;lottoZahlen[3] = 42; lottoZahlen[4] = 7; lottoZahlen[5] = 8;
// Ausgabedocument.write( lottoZahlen[0] + “, “ + lottoZahlen[1] );
![Page 13: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/13.jpg)
Mehrdimensionale Arrays
Zugriff auf Werte in zweidimensionalen Arrays:
var cellContent = gameBoard[xCoord][yCoord]
![Page 14: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/14.jpg)
???
1. var cellContent = gameBoard[ 0 ] [ 1 ];2. var cellContent = gameBoard[ 2 ] [ 2 ];3. var cellContent = gameBoard[ 3 ] [ 1 ];
![Page 15: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/15.jpg)
Spielfluss und Anwendungslogik
![Page 16: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/16.jpg)
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 imzweidimensionalen Array „gameGrid“ abund stelle das Spielersymbol dar
IM ANDEREN FALLE:tue nichts
Prüfe die Gewinnbedingung
![Page 17: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/17.jpg)
Gewinn- und Abbruchbedingung
Ein Spieler / eine Spielerin hat das Spiel gewonnen,WENN:
der Spieler drei seiner Symbole in (unmittelbarer) horizontaler Reihenfolge
abgelegt hatODERder Spieler drei Symbole in diagonaler
Reihenfolge abgelegt hat
![Page 18: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/18.jpg)
Kontrollstrukturen
![Page 19: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/19.jpg)
Unterscheidung von Kontrollstrukturen in: Auswahlanweisungen ?
Wiederholungsanweisungen ?
Sprunganweisungen ?
Kontrollstrukturen
![Page 20: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/20.jpg)
Unterscheidung von Kontrollstrukturen in: Auswahlanweisungen
if if else (switch)
Wiederholungsanweisungen while for do while
Sprunganweisungen return break continue
Kontrollstrukturen
![Page 21: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/21.jpg)
WENN es heute NICHT regnet, DANN gehe ich joggen…
![Page 22: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/22.jpg)
WENN es heute NICHT regnet, DANN gehe ich joggen…
if (es_regnet ist falsch) {ich gehe joggen;
}
![Page 23: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/23.jpg)
if (ausdruck) {anweisung1anweisung2anweisung3...
}
ausdruck variable1 OPERATOR variable2
Auswahlanweisungen: if
![Page 24: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/24.jpg)
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) )
![Page 25: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/25.jpg)
WENN es heute NICHT regnet, DANN gehe ich joggen…
if (es_regnet == false) {ich gehe joggen;
}
![Page 26: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/26.jpg)
WENN es heute NICHT regnet, DANN gehe ich joggen…
if (es_regnet == false) {ich gehe joggen;
} else {alert(“<3 PS4!“);
}
![Page 27: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/27.jpg)
Gewinn- und Abbruchbedingung
Ein Spieler / eine Spielerin hat das Spiel gewonnen,WENN (IF):
der Spieler drei seiner Symbole in (unmittelbarer) horizontaler Reihenfolge
abgelegt hatODER (II)
der Spieler drei Symbole in diagonaler Reihenfolge abgelegt hat
![Page 28: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/28.jpg)
Übung 1
GewinnbedingungPrü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?
![Page 29: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/29.jpg)
// Test horizontale Felderif (gameBoard[0][0] === 1 &&
gameBoard[1][0] === 1 &&gameBoard[2][0] === 1) {
alert(“Spielerin mit der ID 1 hat gewonnen!“);}
Übung 1
![Page 30: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/30.jpg)
// Test diagonale Felderif (gameBoard[0][0] === 1 &&
gameBoard[1][1] === 1 &&gameBoard[2][1] === 1) {
alert(“Spielerin mit der ID 1 hat gewonnen!“);}
Übung 1
![Page 31: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/31.jpg)
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 imzweidimensionalen Array „gameGrid“ abund stelle das Spielersymbol dar
IM ANDEREN FALLE:tue nichts
Prüfe die Gewinnbedingung
![Page 32: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/32.jpg)
Wiederholungsanweisungen
![Page 33: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/33.jpg)
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
![Page 34: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/34.jpg)
while (ausdruck){
anweisung1 anweisung2 anweisung3}
„Führe anweisung1 und anweisung2 und anweisung3 so lange aus, wie die Bedingung „ausdruck“ WAHR (TRUE) ist.“
Wiederholungsanweisungen: while
![Page 35: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/35.jpg)
do { anweisung1 anweisung2 anweisung3 anweisung4 ... } while (ausdruck)
Wiederholungsanweisungen: do while
![Page 36: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/36.jpg)
for(initialisierung;abbruchbedingung;
inkrementierung) { anweisung1 anweisung2 anweisung3 anweisung4 ...}
Wiederholungsanweisungen: for
![Page 37: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/37.jpg)
Übung 2
SOLANGE kein Spieler / keine Spielerin das Spiel gewonnen hat, VERFAHRE WIE FOLGEND:
WENN ein leeres Spielfeld angeklickt wurde:lege die aktuelle SpielerID imzweidimensionalen Array „gameGrid“ abund stelle das Spielersymbol dar
IM ANDEREN FALLE:tue nichts
Prüfe die Gewinnbedingung
![Page 38: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/38.jpg)
Drei-Schichten Architektur / MVC Programmiersprachen – Konzepte
Variablen Arrays Auswahlanweisungen Kontrollstrukturen
Objektorientierte Programmierung Objekt Kapselung / Information Hiding / Geheimnisprinzip Vererbung
Themenüberblick „Programmiersprachen II“
![Page 39: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/39.jpg)
Last, but not….:
Objektorientierte Softwareentwicklung
![Page 40: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/40.jpg)
Kapselung, Information Hiding, Geheimnisprinzip
Abb.: Balzert, Heide: Lehrbuch der Objektmodellierung. Heidelberg, 2005.
![Page 41: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/41.jpg)
var game = {
name : '', setName : function( gameName ) { this.name = gameName; },
state : '', getGameState : function() { return this.state; }, setGameState : function( gameState ) { this.state = gameState; }, […]};
Objektorientierte Programmierung
![Page 42: BIT I WiSe 2014 | Basisinformationstechnologie I - 09: Programmiersprachen II](https://reader038.vdocuments.site/reader038/viewer/2022103117/55b10fd9bb61eb332e8b45b2/html5/thumbnails/42.jpg)
/