Programmer kan kalde hinanden som en subrutine. Subrutinen kan være ekstern (et separat program) eller intern (som en del af hovedprogrammet). Subrutiner er nyttige, når et program skal gentage den samme gruppe af kommandoer på flere forskellige steder.
Du kan kalde et separat program, anvende samme syntaks, som når du plejer at køre programmet fra indtastningslinjen.
Til at definere en intern subrutine skal du anvende kommandoen Define med Prgm...EndPrgm. Da en subrutine skal defineres, før den kan kaldes, er det god praksis at definere subrutiner i starten af hovedprogrammet.
En intern subrutine kaldes og udføres på samme måde som et separat program.
|
Define subtest1()= Prgm local subtest2 À Define subtest2(x,y)= Á Prgm Disp x,y EndPrgm ©Beginning of main program For i,1,4,1 subtest2(i,I*1000) Â EndFor EndPrgm |
|
À |
Erklærer subrutinen som en lokal variabel. |
|
Á |
Definerer subrutinen. |
|
 |
Kalder subrutinen. |
Bemærk: Anvend programeditorens Var-menu til at indtaste kommandoerne Define og Prgm...EndPrgm.
Ved slutningen af en subrutine vender eksekveringen tilbage til det program, der kaldte den. Subrutinen kan afsluttes på ethvert andet tidspunkt ved at anvende Return uden noget argument.
En subrutine kan ikke åbne lokale variable, der er erklæret i det program, der kalder op. På samme måde kan det program, der kalder, ikke åbne lokale variable, der er erklæret i en subrutine.
Lbl-kommandoer er lokale for de programmer, de er placeret i. Derfor kan en Goto-kommando i det program, der kalder, ikke gå til et mærke i en subrutine eller omvendt.
Ved evaluering af en brugerdefineret funktion eller kørsel af et program kan du angive et argument, der omfatter samme variabel, der blev anvendt til at definere funktionen eller oprette programmet. Men for at undgå cirkulære definitionsfejl skal du tildele en værdi for variable, der anvendes i evaluering af funktionen eller kørslen af programmet. For eksempel:
|
x+1&x À |
– eller –
|
For i,i,10,1 Disp i À EndFor |
|
À |
Udløser fejlmeddelelsen Cirkulær definition (Circular definition), hvis x eller i ikke har en værdi. Fejlen optræder ikke, hvis x eller i i forvejen er tildelt en værdi. |