Upload
gerfried-raschke
View
114
Download
1
Embed Size (px)
Citation preview
Grundkonzepte des Programmierens
(mit ActionScript)
var meineZahl:Number = 7;
meineZ
ahl 7
Name Typ Wert
=
Zuweisung von Variablen
Beispielvar zahl1:Number; //deklarieren
zahl1 = 7; //initialisieren
trace("zahl1 ist: " + zahl1) //ausgeben
zahl1 = zahl1/2; //berechnen und zuweisen
trace("zahl1 ist jetzt: " + zahl1) //wieder ausgeben
var zahl2:Number = 10.7; //deklarieren & initialisieren
trace("summe: " + (zahl1 + zahl2)) //ausgeben
var einName:String = “Bert“;
einNam
e Bert
Name Typ Wert
=
Zuweisung von Variablen
var antwort:Boolean = true;
antwor
t true
Name Typ Wert
=
Zuweisung von Variablen
Wozu Variablentypen?
1. Speicherplatz effizient nutzen
2. Inhalte interpretieren: “a“ + 7 ???
Kontrollstrukturen
if (Bedingung) {...}else if (Bedingung) {...}else if (Bedingung) {...}...else {...}
while (Bedingung) {...}
for (Anfang; Abbruch; Iteration){...}
Verzweigungen
Schleifen
Kontrollstrukturen
if (Bedingung) {...}else if (Bedingung) {...}else if (Bedingung) {...}...else {...}
while (Bedingung) {...}
for (Anfang; Abbruch; Iteration){...}
Verzweigungen
Schleifen
Kontrollstrukturen
if (zahl < 10) {...}else if (zahl < 20) {...}else if (zahl == 21) {...}...else {...}
while (zahl < 10) {...}
for (var i:Number = 1; i <= 10; i++){...}
Verzweigungen
Schleifen
Beispiel Verzweigung
var zahl:Number = Math.random();if (zahl < 0.5){
trace(“zahl ist kleiner als 0.5“);}...
Die Bedingung muss immer true
oder false ergeben!
Beispiel Verzweigung
var zahl:Number = Math.random();if (zahl < 0.5){
trace(“zahl ist kleiner als 0.5“);} else {
trace(“zahl ist grössergleich 0.5“);}...
else = ansonsten; hier braucht es
keine Bedingung!
Beispiel Verzweigung
var zahl:Number = Math.random();if (zahl < 0.3){
trace(“zahl ist kleiner als 0.3“);} else if (zahl < 0.6){
trace(“zahl ist grössergleich 0.3 und kleiner 0.6“);} else {
trace(“zahl ist grössergleich 0.6“);}...
zum else if kommt man nur, wenn alles vorhergehende (if & ggf. weitere else if‘s)
false war!
Beispiel while-Schleife
var zahl:Number = Math.random();
while (zahl < 0.5){
trace(“zahl ist “ + zahl + “ , also < 0.5“);
zahl = zahl + 0.1;
}
trace(“zahl ist jetzt “ + zahl + “ , also >= 0.5“);
...
Wichtig! Man muss sicherstellen, dass die
Schleife auch irgendwann zu Ende ist
Beispiel for-Schleife
for (var i:Number = 1; i < 10; i++){
trace(“i ist momentan “ + i);
}
trace(“Schleife beendet, i ist jetzt “ + i );
...
i wird bei jedem Durchgang um 1
erhöht
die Schleife wird erneut ausgeführt, solange i kleiner als
10 ist
die Zählvariable i erhält zu Beginn (=
erster Durchgang)den
Wert 1
Diese Zeile wird also 10 Mal ausgegeben, mit
entsprechend wechselndem i
Funktionen
function myFunction():void {
...
}
...
myFunction();
...
Name der Funktion
Übergabewerte (Name & Typ)
Rückgabewert (Typ)
Definition der Funktion
Aufruf der Funktion
Beispiel Ereignis
function hasClicked(e:MouseEvent):void {
my_mc.x = my_mc.x + 10;
}
...
myButton.addEventListener(MouseEvent.CLICK, hasClicked);
...
Name der Funktion
Übergabewerte (Name & Typ)
Rückgabewert (Typ)
Hier wird eine Funktion hasClicked definiert
Hier wird festgelegt, dass das Ereignis CLICK (auf die Instanz myButton) die Funktion hasClicked aufrufen soll
Beispiel Funktion
function randRange(min:Number, max:Number):Number {
return Math.floor(Math.random()*(max-min))+min;
}
...
var zahl:Number = randomRange(3, 6);
...
Name der Funktion
Übergabewerte (Name & Typ)
Rückgabewert (Typ)
Hier wird die Funktion randRange definiert
Hier wird die Funktion randRange aufgerufen, mit dem Wert 3 für min und 6 für max. Die zurückgegebene Zufallszahl wird dann in der
Variablen zahl gespeichert
Code organisieren, Ziele:
1. Übersichtlichkeit– selbsterklärende Variablen- und Funktionsnamen– Konventionen (Einrückung, Bezeichner,...)
2. Flexibilität– wenn ein Wert mehrfach vorkommt Variable– wenn sich ein Wert noch ändern könnte Variable
3. Effizienz– weniger Code = weniger Schreibarbeit– weniger Code = weniger Fehlerquellen
Beispiel Organisation
moveTo(0, 0)
lineTo(100, 100)
moveTo(0, 100)
lineTo(100, 0)
Hinweis:Dieses Beispiel ist so nicht lauffähig – es müsste vor den Zeichnungs-Befehlen noch ein Pfad zu einem Graphics-Objekt angegeben werden, z.B.:
leinwand.graphics.moveTo(0,0)
Beispiel Organisation
var size:Number = 100;
moveTo(0, 0)
lineTo(size, size)
moveTo(0, size)
lineTo(size, 0)
Beispiel Organisation
var size:Number = 100;
var vonOben:Number = 0;
var vonLinks:Number = 0;
moveTo(vonLinks, vonOben)
lineTo(size, size)
moveTo(vonLinks, size)
lineTo(size, vonOben)
Beispiel Organisation
var size:Number = 100;
var vonOben:Number = 0;
var vonLinks:Number = 0;
moveTo(vonLinks, vonOben)
lineTo(vonLinks + size, vonOben + size)
moveTo(vonLinks + size , vonOben)
lineTo(vonLinks, vonOben + size)
Beispiel Organisation
var size:Number = 100;
var vonOben:Number = 0;
for (var vonLinks:Number = 0; vonLinks < 550; vonLinks = vonLinks + 100){
moveTo(vonLinks, vonOben)
lineTo(vonLinks + size, vonOben + size)
moveTo(vonLinks + size , vonOben)
lineTo(vonLinks, vonOben + size)
}
Beispiel Organisation
var size:Number = 100;
var vonOben:Number = 0;
for (var vonLinks:Number = 0; vonLinks < Stage.width; vonLinks = vonLinks + size){
moveTo(vonLinks, vonOben)
lineTo(vonLinks + size, vonOben + size)
moveTo(vonLinks + size , vonOben)
lineTo(vonLinks, vonOben + size)
}
Beispiel Organisation
var size:Number = 100;
var vonOben:Number = 0;
for (var vonLinks:Number = 0; vonLinks < Stage.width; vonLinks = vonLinks + size){
drawX();
}
function drawX() {
moveTo(vonLinks, vonOben)
lineTo(vonLinks + size, vonOben + size)
moveTo(vonLinks + size , vonOben)
lineTo(vonLinks, vonOben + size)
}