Über Programmierung

Werbung
Josef Wassner
Über Programmierung
08.04.2017
Über Programmierung
In der Anfangszeit der der PC-Programmierung begann man natürlich wie auch heute mit einer Idee
für das Programm. Oft gliederte man das Programm nicht oder nur wenig, das führte zu langem,
unverständlichem Code (Programmen). Diese Art von Code wird mit Spagetticode bezeichnet und
steht für minderwertige Programmierung. Natürlich gab es auch zu dieser Zeit geniale Entwickler
welche ihre Programme mit den wenigen Mitteln die vorhanden waren perfekt programmierten.
Eine Verbesserung in vieler Hinsicht brachte die Unterteilung eines Programmes in verschiedene
Funktionen und Prozeduren (Modularisierung).
Eine Funktion liefert einen Wert (Ergebnis) zurück während eine Prozedur z.B. Werte in globalen
Variablen einliest oder verändert und andres. Guter Programmierstiel ist es, eine Funktion oder
Prozedur nur eine abgeschlossene, klar umrissene Aufgabe erfüllen zu lassen.
Die modernere Programmierung geht einen Schritt weiter und fasst sowohl Daten wie auch
Prozeduren und Funktionen zu Objekten zusammen. Wenn wir einen Windows Desktop anschauen
und mit der Rechten-Maustaste z.B. auf den Papierkorb klicken so erscheint ein Menü welches uns
mehrere Möglichkeiten zur Auswahl bietet. Diese Auswahl und deren Funktionen, welche hinter dem
Menü wirken, sowie alle weiteren Funktionen des Papierkorbes bilden ein Programm-Objekt welche
(meist ausschließlich) für das Papierkorb-Objekt zuständig ist. Oft werden Objekte der realen Welt
auf Programm-Objekte abgebildet d.h. sie werden der realen Welt nachempfunden.
Zum Beispiel kann ein Materiallager ein Objekt sein das alles im Lager verwaltet. Dieses Objekt hat
viele andere Objekte zu verwalten z.B. Schrauben, Muttern, Ersatzteile und so weiter. Dieses Objekt
hat gespeichert was wo liegt, wann es eine Bestellung machen muss weil das Material sonst leer ist,
es merkt sich wenn Material entnommen wird usw.
Ein Wichtiger Unterschied besteht zwischen Objekten und Klassen. Die Klassen sind die Vorlagen
von denen dann die Objekte erzeugt werden. Wenn man z.B. in Windows verschiedene Benutzer hat
welche gleichzeitig angemeldet sind so hat jeder seinen eigenen Papierkorb (Papierkorbobjekt). Alle
Papierkörbe aber werden durch die selbe Klasse (Papierkorbklasse) erzeugt. Also programmiert der
Entwickler die Klassen welche dann benutzt werden um Objekte zu instanziieren.
Einige wichtige Merkmale der Objektorientierten Programmierung sind u.a.:
 Kapselung der Daten (Daten können nur durch das Objekt selbst verändert werden)
 Polymorphie (wichtig wird aber hier nicht betrachtet)
 Vererbung heißt es kann Objekte geben welche Eigenschaften von Oberklassen besitzen z.B.
die Klasse der Autos hat im Allgemeinen die Eigenschaft dass es sich auf festem Boden
bewegen kann. Ein Amphibienfahrzeug kann das auch und zusätzlich kann es im Wasser
fahren. Also könnte ein Programmierobjekt Amphibie eine Subklasse von Auto sein d.h. sie
könnte die Eigenschaften, Funktionen, usw. der Autoklasse erben. Diese neue Klasse müsste
man dann nur um den Teil des Wasserfahrzeugs erweitern. Dies kann eine Menge Zeit beim
Programmieren sparen.
Wir beschreiben hier Methoden zum Entwurf von Programmen die nicht objektorientiert zu sein
brauchen es aber sein können.
Seite: 1
Josef Wassner
Über Programmierung
08.04.2017
Darstellung von Programmstrukturen
Struktogramme (eine genormte Darstellung nach DIN/EN .... 66 261)
Struktogramme sind grafische Darstellungen von Programmstrukturen die uns einen schnellen
Überblick über das Verhalten eines Programms ermöglichen sollen. Es gibt wenige Grundstrukturen,
welche sich zu komplexeren Strukturen zusammenfügen lassen wenn man sie ineinander
verschachtelt.
Sie dienen dazu, Abläufe zu veranschaulichen, damit diese in den verschiedensten
Programmiersprachen umgesetzt werden können. Deshalb sollten Struktogramme keine Begriffe aus
bestimmten Programmiersprachen verwenden, sondern alles mit allgemeinen prägnanten Begriffen
erläutern.
Folgestruktur von einfachen Anweisungen
Die Folgestruktur besteht aus aufeinanderfolgenden
Einzelanweisungen, wobei die Einzelanweisungen der Reihe
nach ausgeführt werden. Jede Anweisung wird genau einmal
ausgeführt.
Beispiel in Java:
Double x1, x2, a11, a12, a21, a22, c1, c2, det, det1, det2;
a11 = Double.valueOf(a11txt.getText());
a12 = Double.valueOf(a12txt.getText()); ….
det = a11 * a22 - a12 * a21;
det1 = c1 * a22 - a12 * c2;
det2 = a11 * c2 - c1 * a21;
Auswahlstruktur
Bei einer Auswahlstruktur wird in Abhängigkeit von einer
Bedingung eine bzw. ein Anweisungsblock (Folgestruktur)
durchlaufen. Falls die Auswahl nur einseitig erfolgen soll, wird
das andere Anweisungsfeld leer gelassen.
In dem Anweisungsfeld kann jede andere Struktur vorkommen,
d.h. eine Mehrfachauswahl. Doppelbedingungen können durch
zwei ineinander verschachtelte Auswahlstrukturen dargestellt
werden.
Java Beispiel: (am Anfang der Datei steht:) import javax.swing.JOptionPane;
if (det==0)
{
JOptionPane.showMessageDialog(this, "Hallo Welt", "Nachricht", JOptionPane.INFORMATION_MESSAGE);
}
else
{
x1=det1/det;
x2=det2/det;
x1txt.setText(x1.toString());
x2txt.setText(x2.toString());
}
Seite: 2
Josef Wassner
Über Programmierung
08.04.2017
Fallabfrage
Die Fallabfrage auch Fallunterscheidung genannt
stellt eine vereinfachte Form der mehrseitigen
Auswahl dar.
Java Beispiel:
int month = 8;
String monthString;
switch (month) {
case 1:
case 2:
case 3:
monthString = "Januar";
break;
monthString = "Februar";
break;
monthString = "Maerz";
break;
...
case 12: monthString = "Dezember";
break;
default: monthString = "ist kein Monat";
break;
}
Wiederholungsstrukturen
Wiederholungsstruktur
mit
vorausgehender
Bedingungsprüfung (abweisende Schleife). Vor dem
erstmaligen und allen weiteren Durchläufen des
Schleifenkörpers erfolgt die Bedingungsprüfung. Ist
die Bedingung erfüllt, werden die Anweisungen des
Schleifenkörpers ausgeführt.
Java Beispiel:
int count = 1;
while (count < 11)
{
System.out.println("Count is: " + count);
count++;
}
Wiederholungsstruktur
mit
nachfolgender
Bedingungsprüfung (nichtabweisende Schleife). Die
Anweisungen im Schleifenkörper werden so lange
wiederholt, bis die Bedingung nicht mehr erfüllt ist. Im
Gegensatz zur abweisenden Schleife wird der
Schleifenkörper mindestens einmal durchlaufen.
Seite: 3
Josef Wassner
Über Programmierung
08.04.2017
Java Beispiel:
int count = 1;
do {
System.out.println("Count is: "
+ count);
count++;
} while (count < 11);
Geschlossene, zählergesteuerte Schleife. Bei dieser
Schleifenstruktur ist die Anzahl der Schleifendurchläufe festgelegt, und wird durch einen Zähler
kontrolliert. Die Anzahl der Durchläufe kann durch den
Benutzer festgelegt, oder durch das Programm
gesteuert werden.
Java Beispiel:
for(int i=1; i<11; i++)
{
System.out.println("Count is: " + i);
}
Unterprogrammstrukturen
Unterprogramm (Funktion oder Prozedur) wird dann eingesetzt, wenn sich die darin enthaltenden
Anweisungen während des Programmablaufes häufig wiederholen. Das Unterprogramm kann von
mehreren Stellen aufgerufen werden, ist aber nur einmal vorhanden. Das Hauptprogramm wird
dadurch übersichtlicher, was die Pflege und Wartung erleichtert. Die Unterprogrammtechnik
unterstützt die Prinzipien der Strukturierung, Modularisierung und Mehrfachverwendung.
In der Objektorientierten Programmierung sind Unterprogramme sehr wichtig. In Objekten
werden sie statt Unterprogramme Methoden genannt. Die Datenkapselung innerhalb von
Objekten wird ebenfalls mit Unterprogrammen gemacht diese nennt man dann aber
Eigenschaften.
Seite: 4
Herunterladen