Pokračování započatého tématu není ničím jiným, než obžalobou vývojářů od Hewlett Packard. Odpověď na zcela legitimní otázku "Proč v instrukční sadě HP-35s chybí mechanizmus pro nepřímý skok?" zůstane patrně firma obyvatelům planety Země dlužna ještě po další smutná tisíciletí. S jakou lehkostí bychom tomuto "superstroji" odpustili pár hloupých a zbytečných chyb ve firmwaru, kdyby byly k mání instrukce typu GTO(I) resp. XEQ(J). Přítomnost FN=(I) to opravdu nezachrání. Spíše dráždí fantazii uživatelovu vlezlou otázkou: "Když programové prostředky pro nepřímý skok ve firmwaru obsaženy jsou (jinak instrukci FN=(I) realizovat nelze), proč nejsou využity i u prostých instrukcí skoků???" Je to velice frustrující, ale nedá se nic dělat. Náš živočišný druh se s touto skutečností (stejně jako s mnoha dalšími) musí chlapsky vyrovnat a na úvahy o teple konejšivé náruči božské nepřímé adresace v instrukcích programových skoků na HP-35s jednou pro vždy rezignovat. Jak necitlivé...
Poslání druhé části kapitoly "Parciální derivace" na nás tedy z předchozího odstavce vycenilo zuby. Jasně, je to řešení pro HP-35s. Následující oba programy (výkonný D i ukázkový pro vyšetření extrému funkce E se zkoumanou funkcí J) jsou pouhým přepisem pro "pětatřicítku". Není v nich nic chytrého, co by možnosti tohoto výkonného stroje využilo a demonstrovalo. Viditelné rozdíly jsou minimální:
Nechme tedy fňukání a statečně přistupme k výpisu. Tentokrát je vše na jedné hromadě.
ADDR | CODE | X | Y | Z | T | I |
---|---|---|---|---|---|---|
Parciální derivace | ||||||
D001 | LBL D | |||||
D002 | -27 | &n | &var | |||
D003 | x<>i | &var | &n | |||
D004 | STO(I) | n = &var | ||||
D005 | STO I | &var | &var | |||
D006 | Σx | dxi | ||||
D007 | STO-(I) | var -= dxi | ||||
D008 | XEQ D027 | res1 | ||||
D009 | -30 | &Σx² | res1 | |||
D010 | STO I | &Σx² | res1 | &Σx² | ||
D011 | R↓ | res1 | ||||
D012 | STO(I) | Σx² = res1 | ||||
D013 | n | &var | ||||
D014 | STO I | &var | &var | |||
D015 | Σx | dxi | ||||
D016 | STO+(I) | var += dxi | ||||
D017 | STO+(I) | var += dxi | ||||
D018 | XEQ D027 | res2 | ||||
D019 | Σx² | res1 | res2 | |||
D020 | - | res2 - res1 | ||||
D021 | Σx | dxi | res | |||
D022 | STO-(I) | var -= dxi | res | |||
D023 | ENTER | dxi | dxi | res | ||
D024 | + | 2 dxi | res | |||
D025 | ÷ | res / (2 dxi) | ||||
D026 | RTN | výsledek | ||||
D027 | GTO J001 | |||||
LN=87, CK=A18E | ||||||
Výpočet extrému | ||||||
E001 | LBL E | dxi | &var | high | low | |
E002 | STO I | dxi | &var | high | low | dxi |
E003 | CLx | 0 | &var | high | low | |
E004 | -28 | &Σx | &var | high | low | |
E005 | x<> I | dxi | &var | high | low | &Σx |
E006 | x<>y | &var | dxi | high | low | |
E007 | STO(I) | Σx = &var | ||||
E008 | CLx | 0 | dxi | high | low | |
E009 | + | dxi | high | low | low | |
E010 | x!=0 | Je dxi zadáno? | ||||
E011 | GTO E018 | Ano, je. | ||||
E012 | R↓ | high | low | low | dxi | |
E013 | ENTER | high | high | low | low | |
E014 | R↓ | high | low | low | high | |
E015 | - | low - high | low | high | high | |
E016 | -5E4 | -5E4 | low - high | low | high | |
E017 | ÷ | dxi | low | high | high | |
E018 | x<>(I) | Σx = dxi | ||||
E019 | STO I | &var | low | high | high | &var |
E020 | R↓ | low | high | high | &var | &var |
E021 | STO(I) | var = low | ||||
E022 | x<>y | high | low | &var | ||
E023 | FN= D | |||||
E024 | SOLVE(I) | výsledek | ||||
E025 | RTN | |||||
LN=82, CK=5124 | ||||||
Zkoumané funkce: | ||||||
y = x² ln(x) | ||||||
J001 | LBL J | |||||
J002 | RCL X | x | ||||
J003 | x² | x² | ||||
J004 | LASTx | x | x² | |||
J005 | LN | ln(x) | x² | |||
J006 | × | x² ln(x) | ||||
J007 | RTN | výsledek | ||||
y = sin(a) | ||||||
J008 | RCL A | a | ||||
J009 | SIN | sin(a) | ||||
J010 | RTN | výsledek | ||||
LN=30, CK=F297 |
Použití programu:
Stisk kláves | Činnost | Display |
---|---|---|
1) y = x² ln(x) | ||
. 5 | dolní mez | 0.0000 0.5_ |
ENTER . 7 | horní mez | 0.5000 0.7_ |
ENTER 2 4 +/- | adresa proměnné X | 0.7000 -24_ |
ENTER 0 | krok nezávislé proměnné nezadán | -24.0000 0_ |
XEQ E ENTER | spuštění programu | RUNNING → SOLVING |
výsledek | 0.6065 0.6065 | |
SHOW | celá mantisa výsledku | 0.6065 606530676323 |
2) změna zkoumané funkce | ||
GTO D 0 2 7 | "ruční" skok na adresu instrukce skoku do zkoumané funkce | 0.6065 0.6065 |
PRGM | přepnutí do módu PROGRAM | D026 RTN D027 GTO J001 |
GTO J 0 0 8 | vložení nové instrukce skoku na požadovanou funkci | D027 GTO J001 D028 GTO J008 |
↑ | [Cursor UP] předchozí insrukce | D026 RTN D027 GTO J001 |
← | [BSP] odstranění předchozí/staré instrukce | D025 ÷ D026 RTN |
C | přepnutí do módu CALCULATE | 0.6065 0.6065 |
3) y = sin(a) | ||
0 | dolní mez | 0.6065 0_ |
ENTER 3 | horní mez | 0.0000 3_ |
ENTER 1 +/- | adresa proměnné A | 3.0000 -1_ |
ENTER . 0 0 5 | krok nezávislé proměnné | -1.0000 0.005_ |
XEQ E ENTER | spuštění programu | RUNNING → SOLVING |
výsledek | 1.5708 | |
π 2 ÷ | π / 2 | 1.5708 |
- | chyba výsledku | 5.0000E-11 |