Juniors WorkstationLidos BerlinComputer PassDies und Das
Nutzungsbedingungen    Datenschutz    Impressum       Kontakt        Registrieren       <== zurück zur Startseite    
 
  Lernen durch Lehren
 
  LDL - Wissenswertes
  LDL - Hardwaretests
  LDL - Softwaretests
  LDL - Tipps & Tricks
  LDL - Workshops
 


  Profan² Einsteiger FAQ 7.5
 
  Profan² Einsteiger FAQ 7.5
  Profan² an die Schulen
  Profan² Script - FAQ
  Profan² Erweiterungen
  Profan² Helferlein
  Profan² Quellcode
 


  HTML Einsteiger FAQ 4.07
 
  HTML Einsteiger FAQ 4.07
  HTML indirekte Fragen
  kleine JavaScript FAQ
 


250 MB mit PHP / MySQL
 
Sie suchen noch Webspace, der kosten- und werbefrei ist, PHP (5.x) und MySQL (3.x) unter- stützt ...

Sie haben Fragen und benötigen Antworten
 
Das verstehen wir - und genau aus diesem Grund haben wir versucht, auf Ihre (am häu- figsten) gestellten Fragen zu antworten.
 
Lern- und Lehrbereich: Juniors Workstation
 
   einen Beitrag auswählenzum Anfang eine Seite zurück  eine Seite vor zum Ende     
   Bereich Kennung Zuordnung Klick Titel 
34  Workstation FAQ Profan Profan-FAQ48317  Was sind Proceduren, wozu sind sie da? Profan-FAQ - Was sind Proceduren, wozu sind sie da?
35  Workstation FAQ Profan Profan-FAQ44948  Was ist eine Fehlermeldung, Warnung? Profan-FAQ - Was ist eine Fehlermeldung, Warnung?
36  Workstation FAQ Profan Profan-FAQ45837  Was sind Arrays? Profan-FAQ - Was sind Arrays?
62  Workstation FAQ Profan Profan-FAQ40586  Wie kann ich den Bildschirmschoner umgehen? Profan-FAQ - Wie kann ich den Bildschirmschoner umgehen?
63  Workstation FAQ Profan Profan-FAQ41469  Ein Programm ohne eigenes Fenster? Profan-FAQ - Ein Programm ohne eigenes Fenster?
64  Workstation FAQ Profan Profan-FAQ38911  Wie stelle ich einen einfachen Fehler fest? Profan-FAQ - Wie stelle ich einen einfachen Fehler fest?
65  Workstation FAQ Profan Profan-FAQ38068  Wie stelle ich fest, ob ein genereller Fehler auftritt? Profan-FAQ - Wie stelle ich fest, ob ein genereller Fehler auftritt?
66  Workstation FAQ Profan Profan-FAQ39540  Wie stelle ich fest, ob ein multimedialer Fehler auftritt? Profan-FAQ - Wie stelle ich fest, ob ein multimedialer Fehler auftritt?
67  Workstation FAQ Profan Profan-FAQ39123  Ausführungsanweisung auf den Befehl "IF" nicht gefunden Profan-FAQ - Ausführungsanweisung auf den Befehl
68  Workstation FAQ Profan Profan-FAQ40654  Feststellen, ob eine Datei vorhanden ist Profan-FAQ - Feststellen, ob eine Datei vorhanden ist

135 registrierte Beiträge gefunden; davon werden aktuell 10 angezeigt. 

 
   Was sind Proceduren, wozu sind sie da?

Natürlich kennt PROFAN² auch (noch) die von BASIC her bekannte Sprunganweisung GOTO und GOSUB. Da GOTO aber der erklärte Feind jeder strukturierten Programmierung ist, sollte man es besser vermeiden.

Dies ist auch durch Proceduren problemlos möglich. Zudem werden GOTO- und GOSUB-Befehle etwa 10 bis 20 mal langsamer ausgeführt, als ein Proceduraufruf.

GOTO benutzt als Parameter einen String und springt zu dem Label (der Einsprungmarke), das dem String entspricht. Das Label muß alleine in einer Zeile stehen und wird mit einem Doppelpunkt abgeschlossen.

   GOTO "Start"    
   PRINT "Zeile wird nie geschrieben."        
   Start:    
   PRINT "Hier fängt das Programm an!" 

Auch GOSUB benutzt als Parameter einen String und springt zu dem Label (der Einsprungmarke), das dem String entspricht, aber mit RETURN als Rücksprung endet. Seine Berechtigung hat die GOSUB-Anweisung vielleicht gerade noch, wenn man "berechnete Sprungziele" ermöglichen will. Übersichtlich wird ein solches Programm aber kaum sein, vom Tempoverlust mal ganz abgesehen.

   PRINT "Start im Hauptprogramm"    
   GOSUB "Unterprogramm"        
   PRINT "... wieder im Hauptprogramm"    
   WAITINPUT     
   Unterprogramm:     
   PRINT      
   PRINT "... jetzt im Unterprogramm"     
   PRINT    
   RETURN 

Hinweis:
GOTO und GOSUB sind nur noch aus Kompatibilitätsgründen vorhanden und werden daher sicher in künftigen Versionen nicht mehr unterstützt werden.

Im übrigen ist eine Procedur auch eine Art "Unterprogramm", das zudem wie ein neuer Befehl behandelt werden kann. Sie wird einmal definiert und kann zu jeder Zeit wie ein neuer Befehl verwandt werden.

   PROC PROCEDUR     
   PRINT     
   PRINT "... jetzt in der Procedur"     
   PRINT    
   ENDPROC
     
   CLS    
   PRINT "Start im Hauptprogramm"    
   PROCEDUR    
   PRINT "... wieder im Hauptprogramm"    
   WAITINPUT 

Mein Tipp:
Daraus folgend sollten alle Proceduren vor dem Beginn des eigentlichen Programmes definiert werden. Häufig verwandte Proceduren (z.B. eine Copyright-Anzeige) sollte man in eine Include-Datei packen und sich so unnötige Schreibarbeit für beliebige andere Programme ersparen.

Und natürlich können Sie einer Procedur auch Parameter (bis 8 Parameter) übergeben. Diese Parameter und alle in der Procedur declarierten Variablen sind "LOKAL", d.h. sie sind nur der Procedur selbst bekannt.

   PROC Wiederhole     
   PARAMETERS Anzahl%, Text$     
   DECLARE I%      
   PRINT    
   LET I% = 0     
   WHILE @Lt(I%,Anzahl%)      
   PRINT I%;Text$     
   WEND     
   PRINT    
   ENDPROC
     
   CLS    
   PRINT "Start im Hauptprogramm"    
   WIEDERHOLE 5, ". Wiederholung"    
   PRINT "... wieder im Hauptprogramm"    
   WAITINPUT 

Achtung:
Alle außerhalb der Procedur bekannten Variablen sind ebenfalls der Procedur bekannt, es sei denn, es gibt lokale Variablen mit gleichem Namen. In diesem Fall gehen die Werte für die außerhalb der Procedur gültigen Variablen verloren oder enthalten falsche Werte.

Soll die Procedur vor dem ENDPROC verlassen werden, ist der "RETURN"-Befehl zu nutzen. Mit "RETURN" kann ebenfalls ein Parameter zurückgegeben werden, der je nach Typ mit der Funktion @$(0), @%(0), @&(0) oder @!(0) abgefragt werden kann.

   PROC PROCEDUR     
   PRINT     
   PRINT "... jetzt in der Procedur"     
   PRINT     
   RETURN " - Ok -"    
   ENDPROC
     
   CLS    
   PRINT "Start im Hauptprogramm"    
   PROCEDUR    
   PRINT "... wieder im Hauptprogramm";@$(0)    
   WAITINPUT 

Achtung:
Auch wenn eine Procedur mit RETURN verlassen wird, darf das ENDPROC nicht fehlen.

©2012 Lidos Berlin - alle Rechte vorbehalten.