Bru ckenkurs Programmieren

Ähnliche Dokumente
Bru ckenkurs Programmieren

Vorkurs Informatik WiSe 16/17

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Bru ckenkurs Programmieren

Vorkurs Informatik WiSe 17/18

PROCESSING SCHUBLADEN UND ZEICHEN. Created by Michael Kirsch & Beat Rossmy

Processing Info zu Variablen und Bedingungen

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Brückenkurs Programmieren

PROCESSING ELTERN UND KINDER. Created by Michael Kirsch & Beat Rossmy

Programmieren in Java

Objektorientierte Programmierung und Modellierung

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Diana Lange. Generative Gestaltung Die Processing Bibliothek

Tag 8 Repetitorium Informatik (Java)

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Eine schnelle Processing-Einführung. von Thomas Rau

JAVA-Datentypen und deren Wertebereich

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays

Vorkurs Informatik WiSe 16/17

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!

RO-Tutorien 3 / 6 / 12

PROCESSING KLASSEN UND OBJEKTE. Created by Michael Kirsch & Beat Rossmy

PROCESSING STRUKTUR UND INPUT. Created by Michael Kirsch & Beat Rossmy

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Zeiger, Arrays und Strings in C und C++

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

Einführung in die Programmierung für NF. Arrays

TAG 1: EINSTIEG, PROCESSING VARIABLEN UND VERZWEIGUNGEN Brückenkurs Programmierung WiSe 16/17

Workshop Grafik-Progammiersprache Processing

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

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

1. Referenzdatentypen: Felder und Strings

C++ Teil 5. Sven Groß. 16. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16

Vorlesung Programmieren

TAG 4: SORTIEREN VON ARRAYS, OBJEKTORIENTIERTE PROGRAMMIERUNG Brückenkurs Programmierung SoSe 17

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

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Implementieren von Klassen

Software Entwicklung 1

Brückenkurs Programmieren

Basiswissen in Informatik

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II a[0] a[1] a[2] a[3] a[n 1]

Arrays. Einleitung. Deklarieren einer Array Variablen

Arbeitsblatt 6: Programmierung geometrischer Figuren

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

9. Java Arrays und Strings. Allokation, Referenzen, Elementzugriff, Mehrdimensionale Arrays, Strings, Stringvergleiche

Objektorientierte Programmierung

Crashkurs C++ - Teil 1

Klassen als Datenstrukturen

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

Welche Informatik-Kenntnisse bringen Sie mit?

Vorkurs C++ Programmierung

Grundlagen der Programmierung

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen

Der Datentyp String. Stringvariable und -vergleiche

Modellierung und Programmierung 1

Elementare Konzepte von

9. Defensives Programmieren

Grundlagen von C# - 2

Vorkurs Informatik WiSe 15/16

Grundlagen der Informatik 6. Arrays I

Einstieg in die Informatik mit Java

Computeranwendung und Programmierung (CuP)

Übungen zum Bioinformatik-Tutorium. Blatt 3

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

3.2 Datentypen und Methoden

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

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang. WS 07/08

GI Vektoren

Transkript:

Bru ckenkurs Programmieren Tag 3: Events und Arrays Jakob Czekansky Technische Hochschule Mittelhessen 28. September 2016

Inhalt Events Arrays Wert- vs Referenzsemantik 2 / 20

Inhalt Events Arrays Wert- vs Referenzsemantik 3 / 20

Events: Besondere Funktionen in Processing Processing-code kann in Funktionen stehen, die zu unterschiedlichen Zeitpunkten aufgerufen werden: setup() draw() mousepressed()? keypressed()? keyreleased()... 4 / 20

Events: Wie entsteht ein Event? Key-Event (OS) key =...; keycode =...; keypressed = true; setup() Hardware-Interrupt Key-Event (Java) draw() draw() keypressed() draw() Wikimedia-Bilder: Tux von Ewing, Budig und Gerwinsik, Processing von Woodmath (CC3), Tastatur von Cy21 (CC3) 5 / 20

Events: keypressed Beispiel void keypressed() { if(key == w ) y--; else if (keycode == CONTROL) y = 0; } Bausteine Besondere Variablen: key (char) für druckbare Zeichen ( a, b, 7,,...) keycode (int) für Steuerzeichen (CONTROL, ALT, LEFT,...) void keypressed() { //wird bei jedem Tastendruck ausgeführt } 6 / 20

Events: mousepressed Beispiel void mousepressed() { if(mousebutton == LEFT && mousex > 100) running = true; } Bausteine Besondere Variablen: mousebutton (int) entweder LEFT, RIGHT oder CENTER mousex, mousey (int) als Koordinaten im Fenster void mousepressed() { //wird bei jedem Mausdruck ausgeführt } 7 / 20

Aufgabe: Disco Klicker Verändere jedes mal, wenn die Maus geklickt wird die Hintergrundfarbe zu einer neuen Zufallsfarbe. Vorgabe void setup() {... //Initialisierung } void draw() {} //kann leer bleiben, muss aber da sein void mousepressed() {... //Verändern der Hintergrundfarbe } 8 / 20

Inhalt Events Arrays Wert- vs Referenzsemantik 9 / 20

Arrays Was macht man, wenn ein Programm viele Werte speichern muss? viele Werte speichern viele Variablen definieren genauso unpraktikabel wie Schleifen auszuschreiben Anzahl benötigter Variablen evtl. zu Beginn unbekannt Variable von variabler Größe benötigt 10 / 20

Arrays: Definition, Zuweisung, Zugriff Ein Array ist eine Variable, die mehrere Werte vom gleichen Typ enthält. Definition float[] a = new float[3]; int[] b = new int[]{1,2,4}; Zuweisung b[0] = 1; a[1+1] = 3.4; Zugriff int x = b[0]; println(a[x+1]); int n = a.length; 11 / 20

Array als Regal 12 / 20

Array als Regal 12 / 20

Array als Regal 12 / 20

Aufgabe: Balkendiagramm Erstelle ein Array mit 10 positiven ganzen Zahlen und stelle es als Balkendiagramm dar. Allgemeine Syntax int[] ar = new int[10]; ar[0] = 4; int x = ar[2]; 13 / 20

Inhalt Events Arrays Wert- vs Referenzsemantik 14 / 20

Wert- vs Referenzsemantik Erinnerung Java unterscheidet zwischen primitiven Typen (z.b. int) und Referenztypen (Arrays und Klassen). Frage: Produzieren die beiden folgenden Codestücke die gleiche Ausgabe? int a = 3; int b; b = a; b = 4; println(a); int[] a = new int[2]; a[0] = 3; int[] b; b = a; b[0] = 4; println(a[0]); 15 / 20

Wertsemantik bei primitiven Typen int a = 3; 16 / 20

Wertsemantik bei primitiven Typen int a = 3; int b; 16 / 20

Wertsemantik bei primitiven Typen int a = 3; int b; b = a; 16 / 20

Wertsemantik bei primitiven Typen int a = 3; int b; b = a; b = 4; 16 / 20

Referenzsemantik bei Referenztypen int[] a = new int[2]; a[0] = 3; 17 / 20

Referenzsemantik bei Referenztypen int[] a = new int[2]; a[0] = 3; int[] b; 17 / 20

Referenzsemantik bei Referenztypen int[] a = new int[2]; a[0] = 3; int[] b; b = a; 17 / 20

Referenzsemantik bei Referenztypen int[] a = new int[2]; a[0] = 3; int[] b; b = a; b[0] = 4; 17 / 20

Wert- vs Referenzsemantik: Zusammenfassung Der Inhalt von Variablen unterscheidet sich je nach dem, welchen Typ die Variable hat. primitiver Typ: Variable enthält Wert bei Zuweisung wird der Wert direkt kopiert Referenztyp: Variable enthält Referenz bzw. Zeiger verweist auf Speicherstelle an der die Daten liegen bei Zuweisung wird nur die Referenz kopiert die Daten bleiben die selben 18 / 20

Wert- vs Referenzsemantik: Übungsaufgabe Gemeinsam an der Tafel: Was steht im Speicher, wenn der folgende Code ausgeführt wurde? float[] ypos; float[] xpos; ypos = new float[]{100, 150, 200} xpos = ypos; float x = xpos[1]; x *= 2; ypos[1] += 1; 19 / 20

Zusammenfassung keypressed int counter = 0; void keypressed() { if(key == a ) { counter++; } else if (key == x ) { exit(0); } } Arrays int[] numbers = new int[10]; numbers[0] = 20; numbers[3+2] = numbers[0]; int val = numbers[5]; mousepressed void mousepressed() { if(mousebutton == LEFT) background(255); else background(0); } 20 / 20