Basisinformationstechnologie I

Ähnliche Dokumente
Herzlich willkommen!

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Visual C#.NET. Bearbeitet von Patrick A. Lorenz

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

if ( Logischer Operator ) { } else { Anweisungen false

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Objektorientierte Programmierung und Modellierung

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

Wenn... dann... if (condition) statement. if (kontostand < 0) System.out.println("Oops..."); false. condition. true. statement

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Modellierung und Programmierung 1

Programmierkurs Java

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Einstieg in die Informatik mit Java

C++ PROGRAM- MIERER/-IN

RO-Tutorien 3 / 6 / 12

Algorithmen zur Datenanalyse in C++

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

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

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Wie entwerfe ich ein Programm?

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

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Schleifen in C/C++/Java

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

2. Programmierung in C

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Brückenkurs Programmieren

2 Teil 2: Nassi-Schneiderman

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Python Zahlen, Strings Logik Kontrollstrukturen. Scriptsprachen. Python Basics. Sascha Winter

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Programming 101. Carl Herrmann IPMB & DKFZ

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Eine praktische Einführung in die Programmierung mit der Programmiersprache C

C++ - Einführung in die Programmiersprache Schleifen

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C

Webbasierte Programmierung

Einfache Datentypen in JAVA

4.2 Programmiersprache C

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Einführung in das objektorientierte Modellieren und Implementieren mit Java

Objektorientierte Programmierung in Java

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

4.Grundsätzliche Programmentwicklungsmethoden

Schleifen Datenfelder (Arrays) Verzweigungen

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

Praktische Informatik 1

C-Grundlagen. zur Programmierung des MicroControllersystems MiCoWi

Lehrbuch der Objektmodellierung

Programmieren in Lua

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

Algorithmen und ihre Programmierung -Teil 2-

Unterlagen. CPP-Uebungen-08/

Einführung in die Programmierung mit VBA

Grundlagen der Programmierung

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan)

Kontrollstrukturen und Logik

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

Einführung Programmierpraktikum C Michael Zwick

Einstieg in die Informatik mit Java

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Programmieren I. Kapitel 5. Kontrollfluss

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

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!

III.1 Prinzipien der funktionalen Programmierung - 1 -

Programmieren im Web 2.0

Transkript:

Basisinformationstechnologie I Wintersemester 2014/15 07. Januar 2015 Programmiersprachen II Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // jan.wieners@uni-koeln.de

Themenüberblick Programmiersprachen II Drei-Schichten Architektur / MVC Programmiersprachen Konzepte Variablen Auswahlanweisungen Kontrollstrukturen Objektorientierte Programmierung Objekt Kapselung / Information Hiding / Geheimnisprinzip Vererbung

Programmiersprachen Charakteristika, Konzepte und Methoden 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

Darstellung Logik Daten

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

MVC Model View Controller (Modell, Präsentation, Steuerung) 1972 im Kontext von Smalltalk (objektorientierte Programmiersprache) vorgestellt

Model / Datenhaltungsschicht

Model! Spielfeld: 3 x 3 Felder Auf jedem Feld wird die ID des Spielers abgelegt, der / die das Feld angeklickt hat var gameboard = [][];

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;

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] );

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[ 3 ] [ 1 ];

Spielfluss und Anwendungslogik

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

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

Kontrollstrukturen

Kontrollstrukturen Unterscheidung von Kontrollstrukturen in: Auswahlanweisungen? Wiederholungsanweisungen? Sprunganweisungen?

Kontrollstrukturen Unterscheidung von Kontrollstrukturen in: Auswahlanweisungen if if else (switch) Wiederholungsanweisungen while for do while Sprunganweisungen return break continue

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 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) )

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! ); } WENN es heute NICHT regnet, DANN gehe ich joggen

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

Ü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?

Übung 1 // 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 // Test diagonale Felder if (gameboard[0][0] === 1 && gameboard[1][1] === 1 && gameboard[2][1] === 1) { } alert( Spielerin mit der ID 1 hat gewonnen! );

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

Wiederholungsanweisungen

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

Wiederholungsanweisungen: while while (ausdruck){ } anweisung1 anweisung2 anweisung3 Führe anweisung1 und anweisung2 und anweisung3 so lange aus, wie die Bedingung ausdruck WAHR (TRUE) ist.

Wiederholungsanweisungen: do while do { anweisung1 anweisung2 anweisung3 anweisung4... } while (ausdruck)

Wiederholungsanweisungen: for for(initialisierung; abbruchbedingung; inkrementierung) { anweisung1 anweisung2 anweisung3 anweisung4... }

Ü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

Themenüberblick Programmiersprachen II Drei-Schichten Architektur / MVC Programmiersprachen Konzepte Variablen Arrays Auswahlanweisungen Kontrollstrukturen Objektorientierte Programmierung Objekt Kapselung / Information Hiding / Geheimnisprinzip Vererbung

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 : '', getgamestate : function() { return this.state; }, setgamestate : function( gamestate ) { this.state = gamestate; }, [ ]

/