Internet
 

Alle Support-Themen im Überblick

 
 


Grundlagen der Programmierung für Mediengestalter


    Hinweise zu diesen Seiten
 


In diesem Unterrichtsskript werden die Grundlagen der Programmierung zusammengefasst, die vor allem für Mediengestalter interessant sind. Sie können hier nochmal das theoretische Hintergrundwissen zu den Programmierübungen aus dem ActionScript- und dem PHP-Kurs wiederholen.

Folgende Konventionen, Schreibweisen und Symbole werden verwendet:

Datei > exportieren Menüpunkte der einzelnen Programme sind blau dargestellt
<table width="300"> Quellcode ist farbig unterlegt und in der Schriftart Courier dargestellt

Technik Technik
Schritt für Schritt Schritt für Schritt-Anleitungen
Trick Tipps und Tricks
Übungsaufgaben Kontrollfragen und Übungen

 

Und nun wünsche ich Ihnen eine interessante Lektüre mit den folgenden Themen:

Einführung
Programmcode schreiben
Variablen und Datentypen
Konstanten
Operatoren
Kontrollstrukturen und Bedingungen
Funktionen
Arrays
Objektorientierte Programmierung
Ereignisgesteuerte Skriptsprachen
Besonderheiten in ActionScript
Wie verarbeitet der Computer unseren Programmcode?
Software planen und entwerfen
Glossar
Literaturhinweise


 

    Einführung
 


Als Mediengestalter ist man es gewohnt, Layouts und Illustrationen zu gestalten, Bilder zu bearbeiten und mit Grafikprogrammen zu arbeiten. Muss sich ein Mediengestalter wirklich mit Programmierung auseinandersetzen? Für den Print-Bereich ist dieses selten erforderlich, aber wenn Sie sich mit dem Erstellen von Webauftritten oder CD-ROM Anwendungen beschäftigen, kommen Sie in bestimmten Situationen ohne Programmierkentnisse nicht weiter.

Unterschiede der vorgestellten Programmiersprachen
Zu den im Internet gebräuchlichen Programmiersprachen gehören in erster Linie PHP, Perl, Server Side Includes, Java, JavaScript und ActionScript. Für das Erstellen von CD-ROM Anwendungen mit Macromedia Director wird die Programmiersprache Lingo verwendet. Die Grundlagen dieser Programmiersprachen bzw. Skriptsprachen sind sehr ähnlich, wie z. B. der Umgang mit Variablen oder Kontrollstrukturen um einen Programmablauf zu steuern. Auf Besonderheiten und Unterschiede in den einzelnen Sprachen wird ggf. hingewiesen. Die meisten Beispiele auf diesen Seiten sind für PHP und ActionScript-Programmierer geschrieben. In diesem Tutorial wird aber auch auf "richtige" Programmiersprachen (Hochsprachen) wie C oder C++ Bezug genommen.

Wie unterscheiden sich nun diese Sprachen? Zum einen können wir unterscheiden zwischen Skriptsprachen und Programmiersprachen. Auch wenn die Abgrenzung von Skriptsprachen zu Programmiersprachen nicht eindeutig definiert ist, kann man sagen, dass JavaScript, PHP und andere Skriptsprachen normalerweise nur im Quelltext vorliegen und direkt durch den Server oder im Webbrowser interpretiert werden. Skriptsprachen werden in der Regel für kleinere Softwareprojekte eingesetzt, auch fehlen ihnen meist Merkmale einer Programmiersprache wie Typisierung von Variablen. In Programmiersprachen wie C, C++ oder Pascal wird hingegen der Quellcode mit einem Editor geschrieben und dann kompiliert, also in ein ausführbares Programm gewandelt. Aber auch hier ist die Abgrenzung zu Skriptsprachen nicht ganz einfach, denn Sprachen wie Java oder C# erzeugen lediglich Zwischencode, der dann von einer Virtual-Machine in Maschinencode übersetzt wird.

Bei der Programmierung für Webprojekte können wir darüberhinaus zwischen serverseitiger und clientseitiger Programmierung unterscheiden. JavaScript und ActionScript laufen im Browser des Anwenders ab, während PHP, Cgi (Common Gateway Interface) und SSI (Server Side Includes) auf dem Server ausgeführt werden. Die hier vorgestellten Sprachen unterscheiden sich darüberhinaus natürlich auch in ihrer Syntax (in der "Grammatik" einer Programmiersprache) und in ihren Anwendungsgebieten.

Weitere Sprachen mit denen der Mediengestalter in Berührung kommen kann, sind HTML oder XML. Beim Arbeiten mit solchen Auszeichnungssprachen würde ich allerdings nicht von Programmieren reden, da ihnen Merkmale einer Programmiersprache wie Funktionen oder Bedingungen fehlen.

Links

Unterschied Programmiersprache / Skriptsprache: http://de.wikipedia.org/wiki/Skriptsprache

ÜbungÜbungsfragen

Nennen Sie je drei Programmier- und Skriptsprachen
Was hat es für Vor- bzw. Nachteile, ein Skript auf dem Server statt auf dem Client ablaufen zu lassen?

[nach oben]


    Programmcode schreiben
 


Der Computer ist dumm. Sie müssen die Anweisungen in Ihrem Quellcode genau so eingeben, wie der Computer es erwartet. Syntaxfehler, wie ein vergessenes Semikolon oder eine falsch gesetzte Klammer verzeiht der Rechner nicht.

Um einen Überblick über die Syntax der verschiedenen Programmiersprachen zu bekommen, können Sie sich den Quellcode des einfachen Programms "Hallo Welt" in verschiedenen Programmiersprachen angucken. Sie finden dieses Beispiel unter http://de.wikipedia.org/wiki/Hallo_Welt.

ActionScript

In Flash nutzen Sie das Bedienfeld Aktionen, um Skripte zu erstellen. Eine einfache Anweisung in ActionScript, die den Text "Hallo Welt" im Ausgabefenster anzeigt, wird wie folgt geschrieben:

trace("Hallo Welt");

Mit Leerzeichen können Sie in ActionScript großzügig umgehen. a+b ist das Gleiche wie a + b.

JavaScript

JavaScripte können direkt in den HTML-Quelltext eingebunden werden, wie im folgenden JavaScript Beispiel:

<body onload="alert('Hallo Welt');">

PHP

Auch PHP-Skripte werden direkt in den HTML-Code integriert. Alles was von dem Tag <?php . . . ?> umschlossen ist, wird vom Webserver (genaugenommen dem PHP-Interpreter) verarbeitet und an den Webbrowser gesendet:

<?php
print("Hallo Welt!\n");
?>

C, C++ und Co.

Bei diesen Programmiersprachen wird der Quelltext im Gegensatz zu Skriptsprachen durch einen Compiler in ein ausführbares Programm umgesetzt. Um ein einfaches Programm zu schreiben starten Sie einen Texteditor und schreiben beispielsweise einen einfachen Code wie diesen:

#include <stdio.h>
main() {
printf("Mein erstes C-Programm\n");
}

Die erste Zeile bindet eine externe Bibliothek ein, das eigentliche Programm startet mit main(). Danach folgt in geschweiften Klammern ein Anweisungsblock. Er sorgt für die Ausgabe einer einfachen Textzeile.
Speichern Sie die Datei unter dem Namen MeinProgramm.c. Um daraus ein ausführbares Programm zu bauen, rufen Sie einen C-Compiler auf. Unter Linux z. B. mit dem Shellkomando:

gcc    -o   MeinProgramm    MeinProgramm.c

Die Anweisung printf("Mein erstes C-Programm\n"); wird in diesem Beispiel mit einem Semikolon beendet. In vielen Programmiersprachen (wie z.B. auch in PHP oder ActionScript) wird jede Anweisung mit einem Semikolon abgeschlossen.
Die Formatierung, z. B. das Einrücken von Zeilen in Ihrem Quellcode bleibt Ihrem persönlichen Geschmack überlassen, bei GROSS- und kleinschreibung müssen Sie sich hingegen an die Sprachsyntax halten.

Etwas komfortabler als im obenstehenden Beispiel mit separatem Editor und Compiler geht es mit einer richtigen Programmierumgebung, einer sogenannten IDE (integrated development environment).

Reservierte Wörter

Variablen oder eigene Funktionen dürfen Sie nicht mit den reservierten Schlüsselwörtern der Programmiersprache benennen. So ist es nicht ratsam, einer Variablen z. B. den Namen "while" oder "if" zu geben.

Kommentieren Sie Ihren Code!

Programme müssen auch nach Jahren noch gewartet werden können. Eine ausführliche Kommentierung Ihres Quellcodes hilft, später den Zweck eines Programmteils wieder zu erkennen.
Kommentare werden durch die Zeichen // (PHP, ActionScript) oder # (Perl, PHP) oder mit /* ... */ (z. B. in C, PHP und ActionScript für mehrzeilige Kommentare) gekennzeichnet.
Auch das Programmlisting selbst können Sie mit einem erklärenden Kommentar beginnen:

/* ******************************** */
/*  Fragebogenauswertung 1.0        */
/*  Version vom 15. Juli 2004       */
/*  Autor: Stephan Franke           */
/*  Lizenz: GPL                     */
/* ******************************** */

Literaturhinweise und Links

"Hallo Welt" in verschiedenen Programmiersprachen: http://de.wikipedia.org/wiki/Hallo_Welt.
PHP-Syntax: http://www.phpcenter.de/de-html-manual/language.basic-syntax.html
ActionScripts schreiben: http://sfk-online.com/support/internet/flash/flash1_action.php

[nach oben]


    Variablen und Datentypen
 


Um Werte, wie den Punktestand in einem Spiel, die Geschwindigkeit eines UFOs oder die x-Koordinate der Maus zu speichern, werden in einer Programmiersprache Variablen verwendet. Eine Variable kann man sich wie eine Schublade vorstellen. Sie können in die Schublade Werte wie z.B. Zahlen oder Zeichenketten hineinlegen. Jede Schublade hat ein Etikett (den Namen der Variablen), damit Sie wissen in welcher Schublade welche Inhalte (Werte) abgelegt sind.

Variablen erstellen

Üblicherweise werden Variablen deklariert (erstellt), bevor sie im Programm verwendet werden können. In einigen Programmiersprachen ist dieses zwar nicht notwendig (z.B. JavaScript, ActionScript oder VB-Script), trotzdem ist es auch hier eine gute Idee, Variablen zunächst zu deklarieren, der Programmcode ist später besser lesbar.

Das Erstellen einer Variablen in ActionScript ist ziemlich einfach:
Geschwindigkeit = 15;

Hier wird die Variable Geschwindigkeit mit dem Wert 15 "gefüllt".

In Programmiersprachen wie C oder C++ muss man beim Deklarieren der Variablen darüberhinaus auch den Datentyp der Variablen (im folgenden Beispiel der Typ "integer" also eine Zahl) angeben:
int Geschwindigkeit = 15;

Beispiele für Deklarationen von Variablen in Pascal:
var Brutto, Netto: integer;

Variablen werden in C++, C# und Java folgendermaßen deklariert:
int Brutto, Netto;

Sie können (müssen aber nicht) eine Variable bereits beim Deklarieren mit einem Wert initialisieren.
int Brutto = 50;

Datentypen

Alle Werte, die in einem Programm gespeichert werden besitzen einen Datentyp wie z.B. char oder string für Zeichen oder Zeichenketten ("Hallo" wäre ein string), boolean steht für TRUE und FALSE, oder integer für Ganzzahlen (15 oder -238) und Fließkommazahlen wie float und double ( 3,141593, - 0,3 oder 5.4902e7). Weitere Datentypen sind unter anderem: short (Ganzzahlen von -32768 bis 32767), long double (für besonders große Fließkommazahlen bis 3.4* 10 4932), Null, Array oder Object.

Der Compiler kann für definierte Datentypen ausreichend Speicher reservieren. Wenn Sie eine Variable deklarieren, reservieren Sie für ihren Inhalt einen Bereich im Arbeitsspeicher. Für float beispielsweise 4 Byte und für double 8 Byte. Verwenden Sie ausreichend große Datentypen für Variablen um sogenannte Überläufe zu vermeiden.
In ActionScript 1.0 erkennt Flash den Datentyp automatisch und ändert diesen sogar bei Bedarf.

Gültigkeitsbereich von Variablen
Lokale Variablen (innerhalb einer Funktion deklariert) sind in vielen Programmiersprachen nur innerhalb eines Anweisungsblocks einsetzbar. Globale Variablen können im gesamten Programm genutzt werden
Außerhalb einer Funktion definierte Variablen werden z.B. in PHP mit der global-Anweisung bekannt gemacht.

Variablen in ActionScript
In Flash müssen Variablen nicht in jedem Fall extra deklariert werden. Sie können auch einfach in dem Moment entstehen, wo sie zum ersten Mal in Programmcode verwendet werden. Trotzdem empfehle ich, Variablen zunächt zu deklarieren, bevor sie im Skript verwendet werden.
In ActionScript werden lokale Variablen mit dem Schlüsselwort var und globale Variablen mit _global erstellt. Bei der Bezeichnung von Variablen dürfen Sie in ActionScript Buchstaben, Ziffern, das Dollarzeichen und den Unterstrich verwenden. Am Anfang des Namens darf allerdings keine Ziffer stehen. Antwort_1 ist also erlaubt, nicht aber 1_Antwort.
Seit ActionScript 2.0 (Flash MX 2004) kennt auch Flash die strikte Typisierung einer Variablen.
Sie können einer Variablen wie folgt einen Datentyp zuordnen:
var x:Number = 7;

Variablen in PHP
Variablen können nach dem $-Zeichen mit einem Buchstaben oder Unterstrich beginnen, nicht aber mit einer Zahl. Der Variablenname $123Summe wäre also nicht korrekt. Sonderzeichen wie Umlaute, Ausrufungszeichen etc. sind ebenfalls nicht empfehlenswert.
Variablen sind in PHP 4 zunächst nicht typisiert, sind also nicht einem bestimmten Datentyp zugeordnet.
Variablen weisen Sie wie folgt zu:
$Zahl = 3;

Ind diesem Beispiel enthält die Variable $Zahl einen Integerwert (eine Ganzzahl). Wollen Sie einer Variablen aber ausdrücklich eine Fließkommazahl zuweisen, können Sie das mit folgender Anweisung erreichen:
$Fliesskommazahl = (double) $Zahl;

Trick Tipp

Variablen sollten mit aussagekräftigen Namen bezeichnet werden.
In Programmiersprachen gibt es reservierte Wörter wie if, else, while usw. , die nicht für Variablennamen genutzt werden dürfen.

[nach oben]

 

    Konstanten
 


Im Gegensatz zur Variablen kann sich der Wert einer Konstanten während des Programmablaufs nicht. ändern. Zum Beispiel die Siedetemperatur von Wasser (100 ° Celsius) oder die Mwst.
Konstanten werden in C über const oder #define deklariert. In PHP werden Konstanten mit define() erzeugt.

Literaturhinweise

Konstanten in PHP: http://www.phpcenter.de/de-html-manual/language.constants.html

[nach oben]


    Operatoren
 


Haben Sie eine Variable definiert, wollen Sie vermutlich irgendwelche Berechnungen mit ihr durchführen. Dafür setzen Sie arithmetische Operatoren ein:
+        = Addition
-        = Subtraktion
*        = Multiplikation
/        = Division
%        = Modulo (Rest einer Division)

Mit Inkrement- und Dekrementoperatoren wird eine Variable um den Wert eins erhöht oder verringert:
Variable++ bzw. Variable--

Vergleichsoperatoren:
<        = kleiner
>        = größer
<=       = kleiner oder gleich
>=       = größer oder gleich
!=       = ungleich
==       = ist gleich (Wichtig: den Vergleichsoperator == dürfen Sie nicht mit dem Zuweisungsoperator = verwechseln)

Logische Operatoren:
Wollen Sie mehrere Bedingungen miteinander verknüpfen, können Sie das in Sprachen wie C oder PHP mit einem && (logisches UND) oder mit || (logisches ODER).

if (x < 60 && y != 0) {Anweisung}
if (x == 60 || y != 0) {Anweisung}

Literaturhinweise und Links

Operatoren in PHP: http://www.phpcenter.de/de-html-manual/language.operators.html

[nach oben]


    Steuerung des Programmablaufs mit Bedingungen
 


Üblicherweise läuft ein Programm nicht einfach von oben bis unten durch, sondern führt Anweisungen aufgrund bestimmter Bedingungen aus. In einem Spiel wird z. B. bei einem Punktestand von 100 eine Meldung ausgegeben.

Kontrollstrukturen mit if und else.
Mit if kann ein Zustand getestet und der Programmablauf nach folgendem Muster gesteuert werden:

if (Bedingung erfüllt) {
  Anweisung;
}

Ein einfaches Beispiel in ActionScript:

if (Punkte > 100) {
   trace("Gewonnen!");
}

Ein Vergleichsausdruck hat wie ein arithmetischer Ausdruck ein Ergebnis, allerdings gibt es hier nur zwei Zustände: wahr und falsch (TRUE oder FALSE).

Mit else wird eine alternative Anweisung ausgeführt, falls die erste Bedingung nicht erfüllt ist.

Beispiel in ActionScript:

if (Punkte > 100) {
   trace("Gewonnen!");
}  else {
   trace("Leider zu wenig Punkte");
}

Switch
Statt mehrere if...else-Anweisungen ineinander zu verschachteln bedient sich der sparsame Programmierer der switch/case-Anweisung.
Was in PHP folgendermaßen konstruiert wird:

switch ($Farbe) {
      case Rot:
         print "Feuer";
         break;
      case Blau:
         print "Wasser";
         break;
      case Gelb:
         print "Sonne";
         break;
      default:
         print "Bitte wählen Sie eine andere Farbe";
}

Schleifen
Sollen Programmteile mehrmals durchlaufen werden, setzen wir dazu Schleifen ein. In einer while-Schleife wird eine Anweisung solange ausgeführt, wie eine Bedingung erfüllt ist.

while (i < 12) {
      i++;
}

Andere Konstruktionen für Schleifen sind do while, repeat until oder for.
Bei while wird zuerst die Bedingung überprüft und dann der Anweisungsblock ausgeführt. Bei do while wird umgekehrt die Aktion zuerst ausgeführt und dann erst die Bedingung überprüft. 

Literaturhinweise und Links

Bedingungen: http://www.highscore.de/grundlagen/programmiersprachen.html#4

[nach oben]


    Funktionen
 


Funktionen enthalten Code, der in einem Programm mehrfach benutzt wird. Funktionen können von Ihnen selbst geschrieben werden, Sie können aber auch die in der Programmiersprache enthaltenen Funktionen oder Funktionen externer Bibliotheken nutzen.

Funktionen am Beispiel JavaScript
In JavaScript werden Funktionen mit dem Schlüsselwort function definiert:

function FunktionsName(Funktionsparameter) {
    Funktionsblock mit Anweisungen;
}

Hier eine Funktion, die zwei Zahlen addiert:

function addiere(a,b) {
       summe = a+b;
       alert(summe);
}

Mit dem Aufruf <a href="#" onClick="addiere(3,5)">Hier klicken</a> wird die Funktion Addiere aufgerufen und liefert in unserem Fall den Wert 8 zurück. a und b sind hier die Funktionsparameter. Dem Aufruf einer Funktion müssen stets runde Klammern folgen, auch wenn keine Parameter übergeben werden.

Der Datentyp einer Funktion entspricht in der Sprache C dem Datentyp ihres Rückgabewertes. Funktionen ohne Rückgabewert besitzen den Datentyp void.

Funktionen sollten Sie entweder in den Anfang Ihres Quellcodes schreiben, oder in externe Bibliotheken auslagern. Funktionen in externen Bibliotheken können Sie per include()-Anweisung in Ihr Programm einbinden.

[nach oben]

    Arrays
 


Wenn Sie eine große Zahl von Variablen in Ihrem Programm verwenden, bietet sich das Arbeiten mit einem Array (auch Datenfeld oder Matrix genannt) an.
Eine Variable in einem Array wird als Arrayelement bezeichnet. Um auf ein Element des Arrays zuzugreifen, kann man den Index des Arrays benutzen. Dies ist eine Zahl, die die Position eines Elements innerhalb des Arrays angibt.
Es gibt zwei Arraytypen: wird auf die Elemente eines Arrays per Indexposition zugegriffen, spricht man von einem indizierten Array. In einem assoziativen Array hingegen erfolgt der Zugriff über ein Schlüsselwert.

 

Beispiel in PHP für ein indiziertes Array:

<?php
$MeinArray = array(17, 2.5, "Rot");
echo $MeinArray[0]."<br>";
echo $MeinArray[1]."<br>";
echo $MeinArray[2]."<br>";
?>

oder:

<?php
$MeinArray[] = 17;
$MeinArray[] = 2.5;
?>

und ein assoziatives Array :

<?php
$MeinArray["Gelb"] = "Banane";
$MeinArray["Rot"] = "Kirsche";
print $MeinArray[Gelb];
?>

 

Literaturhinweise und Links

Arrays in C++: http://www.highscore.de/cpp/einfuehrung/variablen.html#7
Arrays in PHP: http://www.usegroup.de/software/phptutorial/arrays.html

[nach oben]

    Objektorientierte Programmierung
 


Moderne Programmiersprachen wie Java, JavaScript oder ActionScript sind "objektorientiert". Was verbirgt sich hinter diesem Begriff? Um die folgenden Erläuterungen zum Thema Objektorientierte Programmierung (OOP) verstehen zu können, sollten Sie die Grundlagen der strukturierten Programmierung (Variablen, Funktionen, Bedingungen etc.) verstanden haben.

Objektorientierte Programmierung (OOP) ist die Weiterentwicklung der prozeduralen Programmierung. Vor der OOP schrieb der Programmierer die Anweisungen sequenziell von oben nach unten. Er konnte mit Bedingungen, Schleifen und Verzweigungen den Ablauf steuern. Die Daten eines Programms wurden mit Algorithmen bearbeitet. OOP basiert zwar auf den Grundlagen der konventionellen prozeduralen Programmierung, Prozeduren oder Funktionen gibt es hier aber nicht mehr so, wie wir sie bislang kennengelernt haben. Stattdessen arbeiten wir jetzt mit sogenannten "Klassen" in denen Daten und Algorithmen zu einer Einheit zusammengefasst werden. Ziel dieses Ansatzes ist es, Code zu schreiben, der wiederverwendbar, möglichst fehlerfrei und leicht zu warten ist.
Vor allem zwei Merkmale unterscheiden OOP von konventioneller Programmierung: die Kapselung und die Vererbung.

Kapselung: Hier werden die Daten mit den auf sie anwendbaren Funktionen zusammengeführt. Die Kapselung kontrolliert Daten, die innerhalb eines Objekts geschrieben werden und verhindert ungültige Daten. Alle zusammengehörigen Daten und Anweisungen werden an einer Stelle gespeichert.
Innerhalb einer Klasse gibt es Eigenschaften und Methoden, die von außen zugänglich und in anderen Objekten nutzbar sind (public), aber auch Eigenschaften und Methoden, die nur innerhalb des Objekts verwendet und nicht vererbt werden (private). Darüber hinaus gibt es die Möglichkeit, Eigenschaften und Methoden nur innerhalb eines Objektes zu nutzen, diese aber zu vererben (protected).

Vererbung
Klassen können Eigenschaften und Methoden an Unterklassen vererben. Geerbte Methoden können überschrieben werden.

Hier die wichtigsten Begriffsdefinitionen der OOP:
Ein Objekt ist eine in sich geschlossene Einheit. Ein Objekt besitzt Eigenschaften (Variablen) und Methoden (Funktionen).
Eigenschaften eines Objekts werden mit folgender Syntax festgelegt: Objekt.Eigenschaft = Wert.
Beispiel:
Kornblume.Farbe = blau;
Methoden eines Objekts werden wie Sie es bereits von Funktionen her kennen aufgerufen: Objekt.Methode
Beispiel:
Auto.fahren();
Methoden können wie Funktionen Werte zurückgeben.
Wenn der Fahren-Methode ein Argument für die Geschwindigkeit übergeben werden soll, lautet das Beispiel:
Auto.fahren(90);
Ein Objekt gehört der Klasse an, aus der es erzeugt wurde. In der Klasse ist beschrieben, welche Eigenschaften, Methoden und Ereignisse ein Objekt besitzt. Sie müssen nicht alle Klassen selbst erzeugen. Viele Programmiersprachen bieten fertige Klassen in sogenannten Klassenbibliotheken an.
Wenn Sie ein Objekt erzeugen, müssen Sie dieses aus einer Klasse erstellen. Sie erzeugen eine Instanz einer Klasse, man spricht vom "Instanzieren".

Unterschiede zwischen konventioneller Programmierung und OOP
Module und das Wiederverwenden von Progammcode gibt es auch in der strukturierten, prozeduralen Programmierung, in der OOP ist diese Technik allerdings verfeinert.
Bei großen Softwareprojekten erleichtert die OOP die Fehlervermeidung. Eigenschaften und Methoden eines Objekts werden in der OOP innerhalb eines Objekts verwendet. In der konventionellen Programmierung hingegen kann der Wert einer globalen Variable leichter versehentlich durch unterschiedliche Funktionen verändert werden, was die Fehlersuche erschwert.
Wenn Sie einen Teil Ihres Programms ändern müssen, haben Sie bei Objekten den Vorteil, dass Sie genau wissen auf welche Variablen und Funktionen sich diese Änderungen auswirken. In der herkömmlichen Programmierung könnte es Ihnen leicht passieren, dass Sie Daten aus Versehen beinflussen, so dass Ihr Programm an einer anderen Stelle nicht mehr zuverlässig funktioniert.
In einem Objekt können Sie nur die zum Objekt gehörigen Funktionen verwenden, während Sie bei der konventionellen Programmierung auf alle Funktionen Ihres Programms zugreifen können. Auch hier können sich, wenn Funktionen im falschen Kontext verwendet werden, Fehler einschleichen.
Wenn Sie ein Objekt getestet haben und es funktioniert, können Sie diesen Programmcode in anderen Projekten leichter wiederverwenden. Die OOP ist wohl auch deswegen bei Softwareentwicklern so beliebt, weil sich Tätigkeiten und Objekte aus der realen Welt direkt in Software abbilden lassen. Z. B. Unternehmensabläufe oder Waren in einem Warenwirtschaftssystem.
Diese Vorteile der OOP wirken sich vor allem in größeren Softwareprojekten mit mehreren tausend Zeilen Programmcode aus.

Beispiel in ActionScript
Mit dem Operator new erzeugen Sie eine neue Instanz einer Klasse:
MeinSong = new Sound();

Mit Hilfe des Punkt-Operators "." greifen Sie auf den Wert einer Eigenschaft in einem Objekt zu. Der Name des Objekts steht dabei links und der Name der Eigenschaft auf der rechten Seite des Punktes.
MeinSong.setVolume(80);

Literaturhinweise und Links

Einführung in die OOP: http://www.mathematik.uni-marburg.de/~cpp/oop1/index.html

[nach oben]

    Ereignisgesteuerte Skriptsprachen
 


Skriptsprachen wie JavaScript oder ActionScript sind "ereignisgesteuert". Das bedeutet, dass es ein Ereigniss (engl. event) geben muss, um eine Aktion auszulösen. So ein Ereignis kann z.B. eine Benutzeraktivität sein wie das Berühren eines Objekts mit der Maus (ein Rollover), oder das Erreichen eines Bildes in der Zeitleiste von Flash.

Mit dem folgenden Code wird in ActionScript das Anklicken einer Schaltfläche erkannt:

on (release) {
  trace("Hallo!");
}

Um einen Tastendruck zu erkennen würde der Code wie folgt aussehen:

on (keyPress "a") {
   trace("Sie drückten die Taste a");
}

Folgende Ereignisse stehen in ActionScript zur Verfügung: release, releaseOutside, press, rollOver, rollOut, dragOver, dragOut, keyPress.
Ausschließlich für MovieClips verfügbare Ereignisse werden in Flash durch das Schlüsselwort onClipEvent eingeleitet. Ereignisse, die hier verwendet werden können sind load, unload, enterFrame, mouseDown, mouseUp, keyDown, keyUp, data.
Mit load ist der Moment gemeint, unmittelbar bevor ein MovieClip im Flashfilm erscheint. Bei mouseDown und mouseUp ist es egal, wo im Flashfilm die Maus gedrückt wird, Hauptsache, sie wird gedrückt. Das Ereignis data wird dann ausgelößt, wenn Daten mithilfe der Aktion loadVariables geladen sind.

[nach oben]


    Besonderheiten in ActionScript
 


Im Flash-Kurs hatten wir mit relativ einfachen Skripten gearbeitet. In diesem Abschnitt lernen Sie Besonderheiten der Skriptsprache ActionScript kennen, die diese von anderen Sprachen unterscheidet.

Skripte editieren Sie im Fenster Aktionen. Der ActionScripteditor bietet einigen Komfort. Rufen Sie die Referenz auf, um zu einem markierten Programmcode Hilfe zu erhalten.

Je nachdem, ob Sie ein Symbol aktiviert haben oder nicht, können Sie im ActionScript-Editor ein Objektskript (für eine Schaltfläche oder einen MovieClip) oder ein Bildskript erstellen.

Schaltflächen
Schaltflächen lassen sich über den Eigenschafteninspektor als Schaltfläche behandeln oder als Menüelement behandeln. Wird eine Schaltfläche als Menüelement behandelt, können Sie mit gedrückter Maustatste über die Schaltfläche wandern, wobei das Drücken der Maustaste registriert wird. Wird eine Schaltfläche als Schaltfläche behandelt, müssen Sie die Maus über der Fläche loslassen und wieder drücken, damit ein Mausklick registriert wird.

MovieClips

MovieClips funktionieren in der Arbeitsumgebung nicht immer wie gewünscht, wenn sie nur abgespielt werden. Statt den Flashfilm nur abzuspielen wählen Sie besser den Befehl Steuerung > Film testen.

Textfelder
Statischen Text und Eingabetext haben Sie bereits in Flash-Tutorial kennengelernt. Ein Dynamischer Text lässt sich durch ActionScript steuern.

Objekte in ActionScript ansprechen:
Wie greift man auf Objekte im Flashfilm mit ActionScript zu? Man kann sich die Objekte eines Flashfilms als Baum vorstellen, wobei verschachtelte MovieClips des Films wie die Äste eines Baums voneiander abzweigen können.
Mit this wird eine Referenz auf das Objekt angesprochen, in der das Skript liegt. _root ist die Wurzel aller Objekte eines Flashfilms.
Wenn Sie mehrere Flashfilme mit LoadMovieNum geladen haben, liegt der erste Film in Stufe 0 (level 0). Er gibt Eigenschaften wie Abspielgeschwindigkeit, Größe oder Hintergrundfarbe im Player vor. Mit _level1 greifen Sie auf die Stufe 1 eines Flashfilms zu.

Eigenschaften in ActionScript
Eigenschaften wurden früher in Flash mit getProperty gelesen und mit setProperty gesetzt. Aber es geht jetzt einfacher, wie im folgenden ActionScript-Beispiel zu sehen ist:

Statt trace(getProperty("MC1", _x)); schreibt man einfach trace(MC1._x);

Debugging: unter Steuerung > Fehlersuche lassen sich Eigenschaften von Objekten im Debugger ablesen und ändern.

Kompatibilität
Beim Veröffentlichen einer swf-Datei entscheiden Sie sich, ab welchem Flash-Player der Film abgespielt wird. ActionScript-Befehle, die in der gewählten Version noch nicht zur Verfügung stehen werden im ActionScript-Editor farblich (gelb) gekennzeichnet.

Unterschiede zwischen Actionscript und JavaScript

ActionScript bietet keine Unterstützung für browserspezifische Objekte wie Document, Window und Anchor.
Nicht alle JavaScript-Objekte und -Syntaxkonstrukte werden vollständig unterstützt.

Trick Tipps

Verwenden Sie in der Zeitleiste möglichst nur eine Ebene für Skripte, da sonst die Reihenfolge der Abarbeitung der Skripte undurchsichtig werden kann.

Eine Aktion auf einer Schaltfläche wirkt sich auf den Film aus, eine Aktion in einem MovieClip beeinflusst hingegen nur den MovieClip selbst.

[nach oben]


    Wie verarbeitet der Computer unseren Programmcode?
 
Maschinensprache und Assembler
Unsere heutigen Computer rechnen nur mit Nullen und Einsen. Die Sprache, die der Computer versteht, nennt man Maschinensprache. Wenn Sie den Rechner in Maschinensprache programmieren würden, müssten Sie Nullen und Einsen schreiben (aber wer will das schon?). Assembler ist die Entsprechung der Nullen und Einsen in für Menschen leichter lesbare Anweisungen z.B. MOV oder REP. Das ist schon etwas einfacher, aber noch nicht wirklich komfortabel. Lassen Sie uns deshalb lieber mit höheren Programmiersprachen wie C oder Pascal, oder noch einfacher mit Skriptsprachen wie PHP arbeiten.

Interpreter und Compiler Ihr Programmcode muss in eine für den Rechner lesbare Sprache, die Maschinensprache, gewandelt werden. Bei Code, der in Assembler geschrieben ist, geht das 1:1.
Der Interpreter nimmt Ihren Programmcode und schickt ihn direkt an die CPU Ihres Rechners. Ein Compiler wandelt dagegen den Code in eine ausführbare Datei. Aus Geschwindigkeitsgründen ist es besser, den Code zu kompilieren.
Um ein Programm z.B. in der Programmiersprache C zu schreiben, erstellt man zuerst den eigentlichen Quelltext (z.B. mit einem Texteditor). Damit Sie beim Programmieren das Rad nicht immer wieder neu erfinden müssen, können Sie grundlegende Funktionen aus bestehenden Bibliotheken nutzen. Der sogenannte Linker sucht die benötigten Funktionen aus den Bibliotheken heraus und verbindet diese mit Ihrem Programmcode. Der Compiler und der Linker erstellen das ausführbare Programm.
Beispiel in C:

#include <stdio.h>
main() {
printf("\n Hallo\n");
}



In diesem Programmbeispiel können Funktionen der include-Datei stdio.h genutzt werden.

Ein Just in time compiler interpretiert Zwischencode wie bei Java. Beim zweiten Ausführen des Programms verwendet der Compiler den bereits kompilierten zwischengespeicherten Code, um Geschwindigkeitseinbußen zu minimieren.
Zwischencode wird z.B. bei Java und C# verwendet.

[nach oben]

    Software planen und entwerfen
 


Wenn Sie ein Haus bauen, haben Sie (oder Ihr Architekt) hoffentlich vorher einen Plan gemacht, wo die Wände stehen sollen und wo die Türen hinkommen. Genauso sollten Sie an das Programmieren herangehen. Eine sorgfältige Planung vermeidet Etat- und Terminüberschreitungen. Je sorgfältiger die Planung, um so schneller wird Ihnen danach die Umsetzung gelingen. Ein schlecht konzipiertes Programm ist unter Umständen später nicht mehr wartbar.
Fragen Sie nicht nur Ihren Auftraggeber, sondern auch die Anwender, die Benutzer Ihrer Software nach ihren Erwartungen an das Programm. Das Produkt, das Sie erstellen, muss vom Anwender akzeptiert werden.

Der Entwurf
Pseudocode ist eine verbale Umschreibung der auszuführenden Anweisungen mit Schleifen, Variablen etc. Planen Sie zuerst eine Grobstruktur Ihres Programms als Pseudocode, den Sie dann Schritt für Schritt verfeinern. Solange, bis Sie jeden einzelnen Schritt Ihres Programms in einer richtigen Programmiersprache umsetzen können. Diese Methode wird auch "Top Down Methode" genannt.
Bei der Top Down-Methode sind Sie also gezwungen, zuerst das große Ziel und dann die Teilschritte festzulegen. Jeder Teilschritt wird wiederum in weitere Teilschritte zerlegt, bis sich kein Schritt weiter sinnvoll aufteilen lässt. Um die Details kümmern Sie sich später.
Beim fehleranfälligen Bottom Up-Design werden hingegen erst die Detaills einer Aufgabe betrachtet und dann das restliche System darauf aufbauend programmiert.
Ein Bild sagt mehr als 1000 Worte. Ein Funktionsbaum, Flussdiagramm oder Struktogramm kann die Funktionen eines Programms übersichtlich darstellen und Ihnen einen visuellen Überblick über Ihr Programm verschaffen.

Die Umsetzung
Um Programmcode zu schreiben, brauchen Sie eigentlich nur einen Texteditor. Komfortabler geht es allerdings mit einer spezialisierten Software - einer IDE (integrated development environment). Hier sind mehrere Werkzeuge wie Editor, Compiler, Linker, Debugger, evtl. auch eine Versionenkontrolle oder eine Hilfe zur Erstellung grafischer Benutzeroberflächen unter einem Dach zusammengefasst. Der Editor beherrscht Syntax-Highlighting, rückt den Code automatisch korrekt ein und vervollständigt automatisch den Quellcode. Eine Suchen und Ersetzen-Funktion erlaubt das schnelle Austauschen von Programmteilen. Fehlende include-Dateien werden automatisch erkannt. Eine Schnittstelle zu CVS oder Visual SourceSafe erleichtert das gemeinsame Arbeiten an einem Projekt und über eine eingebaute FTP- oder WebDAV-Funktion ist ein gutes Programm auch in der Lage, die Programmierung direkt auf einen Webserver zu laden. Beispiele für IDEs sind JBuilder von Borland, Visual Studio von Microsoft oder die OpenSource-Software Eclipse.

Wartungsfreundlich (nicht nur) mit PHP programmieren
Scripte zu einem Webauftritt fasst man in einem eigenen Ordner zusammen.
PHP-Include-Dateien, die Sammlungen von Funktionen und Klassen enthalten, kann man mit dem Suffic .inc.php versehen.
In Dateinamen, Variablennamen oder Kommentaren sollte man bei internationalen oder Open Source Projekten der Sprache Englisch den Vorzug geben.
Pro Verarbeitungsschritt ein separates Script. Jedes Script sollte mögliche Eingaben auf Validität und Plausibilität prüfen.
Funktionsnamen schreibt man klein. Vorschlag: da sie etwas tun, sollten ihre Namen mit einem Verb beginnen.
Die richtige Reihenfolge: Zuerst kommen die include-Anweisungen für Fremdbibliotheken, dann die für eigene Bibliotheken. Dann folgen Konstanten, dann die Variablen.
Kommentieren nicht vergessen.
Mit CVS kann man die Versionen einer Software auch im Team pflegen.

Fehlersuche/Debugging
Testen Sie Ihr Programm unter unterschiedlichen Bedingungen. Geben Sie dabei auch extreme Werte und fehlerhafte Eingaben ein.
Fehlersuche in Flash: geben Sie in ActionScript mit trace(); Variablen aus. Mit Fehlersuche > Variablen auflisten lassen sich Werte im Debugger anzeigen.
Verwenden Sie Schlüsselwörter einer Programmiersprache nicht für eigene Bezeichner (Variablen, Objekte, Funktionen).

Trick Tipps

Definieren Sie zu Anfang, welche Daten benötigt werden und welche ihr Programm ausgibt.
Bauen Sie in Ihr Programm die Möglichkeit ein, Fehler (wie falsche Ein- und Ausgaben) abzufangen.
Oft ist es hilfreich, zunächst einen einfachen Prototypen zu programmieren.
Modularisieren Sie Ihren Programmcode. Teilen Sie einzelne Aufgaben in separate Module auf.
In ActionScript wird mit #include"MeinSkript.as" externer Code eingebunden.
Lagern Sie Teile des Programms in Bibliotheken aus. Das Programm, das mehrere solcher externen Bibliotheken zu einer Einheit verknüpft, wird Linker genannt.

[nach oben]


   
    Glossar
 


Anweisung: ein Befehl innerhalb eines Computerprogramms
API: Application Programming Interface, Schnittstelle zu einer Software
Ausdruck: ein Ausdruck besitzt Operatoren und Operanden. Beispiel:
Spielstand = Punkte + 10;
das "=" ist hier der Zuweisungsoperator, das "+" ein mathematischer Operator.
ECMA: European Computer Manufacturers Association.
Funktion: wiederverwendbarer Code
GUI: Graphical Uesr Interface, grafische Benutzeroberfläche.
Handler: Ein Anweisungs-Block, der sich durch ein Ereignis ausgelößt wird. Ein Handler (Bearbeiter) arbeitet Anweisungen ab. Beispiel in ActionScript: on(release, release outside)
Integer: Ganzzahl wie 5 oder - 291
Konstante: eine Variable, deren Wert sich während der Programmausführung nicht ändert.
Methoden: in ein Objekt eingebettete Prozeduren
Operator: mathematische Operatoren sind unter anderem: + (plus),- (minus), / (Division),* (Multiplikation), ++ (erhöhen um 1), -- (verringern um 1). Vergleichsoperatoren sind beispielsweise: <, >, == (ist gleich (in C, ActionScript und JavaScript)), != (ungleich). Logische Operatoren sind: ! (Nicht), && (Und), || (Oder).
String: Zeichenkette
Variable: "Behälter" für veränderbare Werte innerhalb eines Programms.

[nach oben]

 

    Literaurhinweise und Links
 


Tutorial Grundlagen der Programmierung: http://www.highscore.de/grundlagen/index.html
Programmieren lernen: http://www.freenetpages.co.uk/hp/alan.gauld/german/
Einführung in Java: http://java.rrzn.uni-hannover.de/tkji/eidp/
Linksammlung zum Thema Programmierung: http://elsa.asn-graz.ac.at
PHP Handbuch: http://www.php.net/manual/de/
Einführung in PHP: http://sfk-online.com/support/edv/php_einfuehrung.php
Programmierung: Jürgen Bayer. Addison-Wesley. ISBN: 3-8273-1814-9

[nach oben]

 
 

 

Letzte Aktualisierung dieser Datei am: 16.2.2006
Autor: Stephan Franke · Impressum und Hinweise zu diesen Seiten · Suche
Diese Seiten wurden produziert von: sfk


Haben Sie Anregungen, Kritik oder Ideen zu dieser Seite? Sie können hier einen Kommentar schreiben.
Ihr Kommentar wird am Ende dieser Seite angefügt.

Bislang wurden zu dieser Seite keine Kommentare geschrieben