V1 cot2©
Een probleem is echter dat dit instrument moei
lijk is mee te nemen in de rimboe of naar een
booreiland. Hier kan de zakcomputer onbetaal
bare diensten bewijzen.
Staat 6 geeft een overzicht van problemen die
gemakkelijk kunnen worden opgelost met be
hulp van de zakcomputer. Het aantal stappen is
in wezen onbelangrijk, evenals de benodigde
rekentijd, die normaal tussen 3'/2 en 16 secon
den ligt. De lange rekentijden zijn echter wel
vermeld.
Het indirecte (i) geheugen (HP-67/97)
In het rekenproces worden dezelfde formules
veelal meerdere malen toegepast. Vaak gebruikt
men hiervoor subroutines, maar de aanwezig
heid van het indirecte (i) of (I) geheugen opent
nieuwe perspectieven, (i) kan worden voorge
steld als een geheel getal tussen 0 en 25. (i) kan
worden vergroot of verkleind m.b.v. ISZ en
DSZ in het (i) geheugen, of het geheugen aan
gewezen door (i) kan worden vergroot of ver
kleind met ISZ (i) en DSZ (i), in beide gevallen
met een test op 0. Hierdoor is het mogelijk met
één (sub)routine indirect steeds andere geheu
gens aan te spreken: dit houdt het programma
kort.
Ook kunnen sprongen worden gemaakt naar
een bekend punt in het programma (lijnnummer
of „label"), of subroutines worden opgeroepen
aangeduid door (i). Normaal zijn bewerkingen in
de geheugens A t/m E niet mogelijk, maar via
b.v. STO x (i) of STO (i) zijn deze wél moge
lijk. Ook is relatieve adressering mogelijk.
Het voorbeeld iteratief rekenen (staat 5) kan
worden toegepast op de programmeerbare zak
computer. (Zie hiervoor staat 7). In een dergelijk
geval wordt (i) voorgesteld als een geheel getal
tussen —1 en —999.
Rekentijd
Om goed een programma te kunnen schrijven,
wordt meestal eerst een z.g. stroomdiagram
(flow chart) ontworpen. Het stroomdiagram
toont schematisch het verloop van de bereke
ning, duidt programmasprongen aan, verwijst
naar subroutines, etc.
De programmeur heeft tot taak programma's
vooral eenvoudig te houden,zowel wat betreft
de werking als het gebruik. Hoewel de rekentijd
vrij kort is, blijkt dat in vele gevallen deze nog
verkort kan worden.
In de eerste plaats kan dit gebeuren door het
zoeken naar „labels" zoveel mogelijk te voor
komen; dit kost namelijk tijd en elke milli-seconde
telt. Een kort programma met veel subroutines
is ongunstiger in het gebruik dan een lang pro-
54
gramma, mits het programma op hetzelfde
kaartje past.
Ook gaat veel tijd verloren met het oproepen
van functies. Is een functie, bijvoorbeeld SIN 0,
meerdere malen in gebruik, dan kan het beter in
een geheugen worden geplaatst. De tijd beno
digd voor het bepalen van de waarde van een
functie is variabel. Zo kost het oproepen van
SIN 0g minder tijd dan dat van 399s9999999;
TAN O9 kost echter minder tijd dan SIN O9.
Ook kan de rekentijd verkort worden door het
programma voor de gebruiker simpel te houden.
De zakcomputers hebben namelijk geen letters
op de „display", dus vragen kunnen (nog) niet
worden gesteld. Wel kan een codering worden
toegepast, zodat bijvoorbeeld 1 betekent hoek
invoeren, 2 afstand invoeren, 3 X ordi
naat invoeren, 4 Y ordinaat invoeren, enz.
Een eenvoudig voorbeeld wordt in de staten 8a,
8b en 8c gegeven, nl. een programma „Coördi-
natenberekeningen op een rechte lijn".
Staat 8a geeft, in chronologische volgorde,
aanwijzingen voor het gebruik van het program
ma, zoals dit beschreven staat in staat 8b en
vastgelegd is op een magneetkaartje. Een uitge
werkt voorbeeld ter controle van de goede wer
king van het programma of als instructie voor
een nieuwe gebruiker van het programma vin
den we in staat 8c.
Het bepalen van de waarde van een functie
Hierboven is reeds vermeld dat de rekentijd voor
het berekenen van functies variabel is. In dit
verband is het interessant te zien hoe deze func
ties o.a. in de HP-machines worden verkregen.
Teneinde de lengte van het programma tot een
minimum te beperken, wordt een enkele func
tie, nl. tan 0, het eerst ontwikkeld. Wanneer
tan 0 eenmaal is berekend, vindt men sin 0 met
behulp van de formule
itan 0
sin 0
V1 tan2©
Cos 0 wordt dan berekend door gebruik te ma
ken van de formule:
cot 0
COS0
We zien dat deze formules identiek zijn, behalve
dat de cotangens de tangens vervangt. Aange
zien 0 en 0 n x (360°) precies dezelfde trigo
nometrische functies opleveren, wordt iedere
kaarthoek gereduceerd tot een positieve hoek
tussen 0° en 360°. In alle berekeningen wordt er
van uitgegaan dat de hoeken in radialen uitge
drukt worden. Een in graden uitgedrukte hoek
wordt eerst tot radialen herleid met behulp van
de formule:
0rad 0° x tt 180 09 x ?r /200.