Tag 1 4.Variablen

Eine Variable ist ein abstrakter Behälter für eine Größe, die im Programmablauf verwendet wird. Eine Variable wird durch einen Namen bezeichnet. Der einer Variable zugewiesene Wert kann sich während des Programmablaufs ändern.

Deklaration Zunächst muss definiert werden, was man in einer Variable speichern darf: beispielsweise einen Buchstaben, ein Wort, eine ganze Zahl oder eine Fließkommazahl. Außerdem benötigt die Variable einen Namen, über den man später auf sie zugreifen kann:


 int counter;       // Definiert eine Variable namens „counter“, 
                    // die dem Datentyp integer (engl. für ganze Zahl) entspricht. 
    

Allgemein sieht der Syntax für eine Deklaration (Zuweisung) wie folgt aus: typ name; Der TYP einer Variable gibt an, welche Art von Information sie aufnehmen kann: int Ganze Zahlen (integer) wie 4,10,500, 2 float (floating point number) für Gleitkommazahlen.Durch einen Punkt getrennt (3.1415) char Zeichen, „a“, „b“, „c“ String Zeichenkette, in Anführungszeichen angegeben („Creative Programming“) boolean Boolsche logik , true oder false (z.B. ist die Maustaste gedrückt, oder nicht?) byte Zahlen zwischen -128 bis 127 Zuweisung Als nächstes wird der Inhalt oder Wert eine Variablen festgelegt. Hierzu würd das Gleichzeichen = verwendet.


counter = 3;
counter = 2*4;
counter =  3*sec;
counter = counter+1;
    

Verwendung Wie im Beispiel unten zu sehen ist kann Deklaration und Zuweisung auch in einem Schritt erfolgen.


int centerX = 300;
int centerY = 200;
int radius = 10;

void setup() {
  size(600,400);
  noFill();
}

void draw() {
  ellipse(centerX, centerY, radius, radius/2);
  radius = radius + 6;
}
    

Eine Variable darf nur einmal deklariert werden, ihr Wert kann sich jedoch ändern (radius = radius +6). Variablenname dürfen keine reservierten Ausdrücke darstellen (null, true, false, etc..), oder bereits von Processing verwendet werden (bspw. mouseX). Es empfiehlt sich sehr, Variablennamen zu vergeben, die etwas über die Verwendung der Variable aussagen (radius, breite, …). Variablen gelten, je nach dem an welcher Stelle des Programms sie deklariert werden, nur für einen bestimmten Teil des Programms. Wir deklarieren unsere Variablen für den Anfang erst einmal immer am Beginn des Programms (vor stetup()) und werden darauf später zurückkommen, wenn wir Variablen verwenden, die nicht überall gültig sein sollen. Man kann aber hier schon einmal nachlesen: Gültigkeit von Variablen.

4.1 Datentypen

integer

In Variablen, die als integer deklariert werden, lassen sich ganze Zahlen zwischen -2,147,483,648 und 2,147,483,647 speichern. Nachkommastellen hingegen lassen sich in integer nicht speichern.


  int spielstand;

  spielstand = 10000; // Yes! Schon 10000 Punkte erreicht!
  spielstand = 0.1; // Trauriger Punktestand – und auch für den Datentyp integer unzulässig!
  

Weitere häufig verwendete Datentypen stellen float, boolean, color, String und Array dar.

Aufgabe
Recherchiere die Datentypen integer, float, boolean, color, String und Array selbst in der Processing-Hilfe: processing.org/reference/. Welche Eigenschaften haben sie? Wofür lassen sie sich verwenden?

4.2 Systemvariablen

Neben den Variablen, die wir selbst im Code definieren stellt uns Processing automatisch einige Variablen zur Verfügung, die Informationen zu unserem Sketch enthalten:

  • width beinhaltet die Breite des Zeichenfensters
  • height die Höhe des Zeichenfensters
  • frameCount die Nummer des aktuellen Frames seit Start des Programms
  • mouseX, mouseY die aktuellen Mauskoordinaten
  • pmouseX, pmouseY die Koordinaten der Mausposition im letzten Frame
  • mousePressed „true“, wenn die Maus gedrückt wurde keyPressed „true“ wenn eine Taste auf dem Keyboard gedrückt wurde

Beispiel 1-1


void setup(){
  size(800,600);
  background(255);
  stroke(0);
}

void draw(){
  ellipse(width/2, height/2, mouseX, mouseY);
}
    

Beispiel 1-2


void setup() {
   size(800,600);
   background(255);
}

void draw(){
   float heavyness = 30-((abs(mouseX-pmouseX))+(abs(mouseY-pmouseY)));
   heavyness = constrain(heavyness, 6, 30);
   strokeWeight(heavyness);
     line(pmouseX, pmouseY, mouseX, mouseY);   // 1. Variante
     //point(mouseX, mouseY);                  // 2. Variante
}