• Increase font size
  • Default font size
  • Decrease font size

EVA - Programme

Drucken

   Beispiel und Fehlerbehandlung bei Anwendungen

   Module am Beispiel eines Rechners


Um ein Programm zu entwickeln, ist die Vorgehensweise anfangs rein sequentiell , man arbeitet nacheinander die Befehle ab und erreicht entsprechende Ergebnisse. Dabei ist es für EVA - Programme notwendig, der Eingabe die Verarbeitung folgen zu lassen und nicht umgekehrt. Ein einfaches Volumenberechnungsprogramm würde sich wie folgt darstellen.

01   a = input ()
02 b = input ()
03 c = input ()
04
05 V = a * b * c
06
07 print V

Dieses sehr einfache und selbsterklärende Programm hat gravierende Mängel. Der offensichtlichste ist die fehlende Benutzerführung. Der Benutzer hat keine Ahnung was passiert. Jedoch das kann man ändern .

01   a = int (raw_input ("Geben Sie einen Wert für a ein : ))
02 b = int (raw_input ("Geben Sie einen Wert für b ein : ))
03 c = int (raw_input ("Geben Sie einen Wert für c ein : ))
04
05 V = a * b * c
06
07 print V

Auch dieser sequentielle Code ist unzureichend. Hier sticht die Redundanz hervor. Es macht aus Effizienz und Speichergründen keinen Sinn, gleichen Code mehrfach aufzurufen. Einen Ausweg bietet die Verwaltung der einzelnen Schritte über einzelne Methoden. Die Methoden werden in einer separaten Testumgebung aufgerufen. Der Gesamttext wird hier zwar länger, aber es wurden universell einsetzbare Methoden geschaffen, die auch in einem anderen Kontext Verwendung finden können.

01   def eingabe ():
02 return int (raw_input ("Geben Sie einen Wert für a ein : ))
03
04 def verarbeitung (a,b,c):
05 return a * b *c
06
07 def ausgabe (wert):
08 return ("\n\tDas Volumen beträgt %d" %(wert))
09
10 # Testumgebung
11
12 a = eingabe ()
13 b = eingabe ()
14 c = eingabe ()
15
16 V = verarbeitung (a, b, c)
17
18 print ausgabe (V)
19

Hierbei werden Variablen übergeben, deren Typ eine entscheidende Rolle bei der Verarbeitung spielen. Scheinbar komplizierter, aber die hier vage angedeutete Vorgehensweise ist ein Schritt in Richtung Arbeitsteilung. Dadurch werden wichtige Softwarequalitäten erreicht, die vor allem in größeren Systemen eine entscheidende Rolle spielen.

In Anwendungen werden oft grafische Interfaces geschaffen, die dem Benutzer die Arbeit mit der Software erleichtern sollen (?). Trotzdem dies nicht der Kern der Programmierung ist, sondern eher zeitraubend und weit an den Konzepten vorbei, unser Beispiel nun etwas bunter.

01 import Tkinter
02 from Tkconstants import *
03
04 def verarbeitung () :
05 a = float (eingabe1.get ())
06 b = float (eingabe2.get ())
07 c = float (eingabe3.get ())
08
09 V = a * b * c
10
11 ergebnis ["text"] = V
12
13 # GUI Testumgebung
14
15 win = Tkinter.Tk ()
16 win ["bg"] = "green"
17 win.title ("Voluminator")
18
19 fenster = Tkinter.Frame (win)
20 fenster.pack ()
21
22 eingabe1 = Tkinter.Entry (fenster)
23 eingabe2 = Tkinter.Entry (fenster)
24 eingabe3 = Tkinter.Entry (fenster)
25
26 eingabe1.pack (side="left")
27 eingabe2.pack (side="left")
28 eingabe3.pack (side="left")
29
30 Rechenknopf = Tkinter.Button (fenster, text="V", command = verarbeitung)
31 Rechenknopf.pack ()
32
33 ergebnis = Tkinter.Label ()
34 ergebnis.pack ()
35
36 Tkinter.mainloop ()

Ausgehend von diesem Einstieg ist es nun möglich, sich genauer mit Problemen der Programmierung zu befassen und sich später komlexeren Datenstrukturen (objektorientiert) zu nähern.


   Python Referenz von von David M. Beazley  (1.57 MB)


 

(c) g-ymnasium.de 2006 - 2013 + Administrator