STO(1)
INPUT(1)
RCL(i)
VIEW(i)
STO+, —, x, = (i)
DSE(i)
RCL+, —, x, <= (i)
ISG(i)
XEQ(i)
SOLVE(i)
GTO(i)
[FN d(i)
FN=(i)
Programmabesturing met (i)
Omdat de inhoud van 1 telkens nadat het programma is uitgevoerd
anders kan zijn, zelfs in verschillende delen van hetzelfde programma,
kan een instructie als GTO i» het programma op verschillende
momenten naar een verschillend label laten springen. Hierdoor blijft
het programma flexibel, omdat tot de uitvoering van het programma
in het midden wordt gelaten welke variabele of programmalabel nodig
is. (Zie het eerste voorbeeld hierna.)
Indirecte adressering is bijzonder handig voor het tellen en beheren
van lussen. De variabele : functioneert als een index met het adres
van de variabele waarin het controlegetal van de lus voor de functies
DSE en ISG staat. (Zie het tweede voorbeeld hierna.)
Voorbeeld: Subroutines kiezen met (i).
Het programma voor "Inpassing in een kromme" in hoofdstuk 16
gebruikt indirecte adressering om te bepalen welk model gebruikt
moet worden om de geschatte waarden voor z en y te berekenen.
(Verschillende subroutines berekenen z en y voor de verschillende
modellen). Vergeet niet dat 7 in ver uit elkaar liggende delen van het
programma opgeslagen en indirect geadresseerd wordt.
De eerste vier routines van het programma (S, L, E, P) geven aan
welk model voor inpassing in een kromme wordt gebruikt, en wijzen
aan ieder model een nummer toe (1, 2, 3, 4). Vervolgens wordt dit
nummer opgeslagen tijdens routine Z, het centrale ingangspunt voor
alle modellen:
SHS STO 1
13-22
Programmeertechnieken