Programme aufteilen - Theorie Lektion 3

Erstellt von Frithjof Sat, 14 Jul 2007 21:28:00 GMT

Du bist noch immer unterwegs zu Lektion 11, wo du dann beginnen wirst, ein Spiel zu programmieren.

Aus Lektion 7 weißt du bereits, dass lange Programme zunehmend schwieriger zu lesen sind. Du reihst eine Zeile an die nächste. Was machst du, wenn du im Verlauf des Programms an eine Stelle kommst, wo du genau denselben Code brauchen würdest, den du weiter oben schon einmal verwendet hast? Nochmal hinschreiben? Naja, das stinkt ja bereits schon beim nur dran denken. Du erinnerst dich, was stinkender Code ist?

Du lernst in dieser Theorielektion eine Möglichkeit kennen, die du sehr häufig brauchen wirst wenn es darum geht, gleichen Code wiederzuverwenden, ohne ihn erneut hinschreiben zu müssen.

Die Idee ist ganz einfach. Du schreibst deine Zeilen Code, die du häufiger verwenden möchtest, in eine Datei und gibst ihnen dabei einen Namen. Ja richtig gehört, du denkst dir einen Namen für die Programmzeilen aus. Immer dann wenn du anschließend die Zeilen Code verwenden möchtest, verwendest du stattdessen nur den Namen. Du rufst den Code bei seinem Namen!

Sagen wir, du willst in deinem Programm an verschiedenen Stellen die Aufforderung zur Eingabe einer Zahl verwenden


puts "Bitte gib eine Zahl größer 0 ein:" 

Du denkst dir als Namen frag_sie aus. Das Benennen des Codes sieht dann so aus:


def frag_sie
  puts "Bitte gib eine Zahl größer 0 ein:" 
end

Das Schlüsselwort def leitet die Benennung des Codes ein, gefolgt von dem Namen den du dir überlegt hast. Am Ende der Codezeilen wird die Benennung mit end abgeschlossen.

Nun kannst du den benannten Codeabschnitt verwenden, indem du ihn bei seinem Namen aufrufst. Dabei musst du nur darauf achten, dass der Aufruf natürlich nach der Benennung steht.


# theorie_03.rb

# Zuerst den Code mit einem Namen versehen
def frag_sie
  puts "Bitte gib eine Zahl größer 0 ein:" 
end

# Dann den benannten Code verwenden
frag_sie
a = gets

# Noch eine Zahl verlangen
frag_sie
b = gets

# und noch eine, weils so einfach ist
frag_sie
c = gets

Das Schlüsselwort def leitet sich von Definieren ab. Das Gebilde vom def über den Namen, den Code bis zum end hin nennt man auch ein Unterprogramm, weil es innerhalb eines anderen Programmes existiert. Andere Bezeichnungen dafür sind noch Subroutine, Funktion oder Methode.

Lass uns von nun an den Begriff Methode (d.h. eine Handlungsanweisung oder Art und Weise) dafür verwenden. Denn der benannte Code stellt eine Folge von Anweisungen dar, die bei Aufruf so ausgeführt werden.

Du hast also soeben deine erste Methode definiert, die Methode heißt frag_sie.

-
Update 15.07.2007

Üben mit Peter und Livia

Gestern Abend war es schon spät, Peter und Livia bereits in tiefen Schlaf gefallen. Heute morgen waren sie dann ganz enttäuscht, dass sie keine Übung zum Theorieartikel beisteuern konnten. Daher hier noch eine kleine Übung zu Methoden. Wie üblich erst selbst versuchen, wenn du nicht weiterkommst, Mama fragen, als letztes kannst du dann in der Lösung nachsehen.

Peter und Livia: Schreibe die Methode frag_sie so um, dass sie nach dem Namen der Anwenderin fragt. Schreibe zusätzlich noch eine Methode mit Namen sie_sagte, die ausgibt, was die Anwenderin eingegeben hatte. Verwende danach beide Methoden.

Lösungen

def frag_sie
  puts "Wie heisst du? " 
end

def sie_sagte
  a = gets
  puts "Aha, du heisst also #{a}" 
end

frag_sie
sie_sagte
Trackbacks

Verwenden Sie den folgenden Link zur Rückverlinkung von Ihrer eigenen Seite:
http://www.rubykids.de/trackbacks?month=07&year=2007&day=14&article_id=programme-aufteilen

Meine Nachricht

Einen Kommentar hinterlassen

Comments