Mérföldkövek a számológépek történetében
Az AER számológépek története és programozása
EL-5100S
Az AER-I 1. változata
Alapvetően algebrai kifejezések kiértékelésére készült, melyek hossza legfeljebb 80 lépés lehet. A gép adatregisztereit kétféleképpen tudjuk felhasználni: konstansként és változóként. A konstansokat a rendszer adottnak veszi, értékük mindig az adott regiszter kiértékeléskori értékével egyezik meg. A változók értékét a gépek minden egyes kiértékeléskor újra és újra bekérik. A matematikai függvények hagyományos jelölésrendszerét alapul véve, a változók azonosítóit az f( és )= jelek közé kell beírni. Ha nem használunk változókat, ez az utasítás elhagyható, és rögtön a kifejezéssel magával kezdhetjük a programot. A független memóriaregiszterbe való tárolás és hozzáadás, valamint a billentyűzeten nem szereplő kivonás AER programban szerepeltethető, de az RM utasítás nem, mivel az a memória mindenkori értékét írja be a kifejezésbe.A program (korabeli megnevezéssel sor vagy terület) legfeljebb 9 kifejezésrészt tartalmazhat, melyeket vesszővel lehet egymástól elválasztani. Minden kifejezésrész külön számítás, kiértékelésnél az eredményük sorra megjelenik a kijelzőn, az ANS szöveggel és a kifejezésrész sorszámával együtt. A fenti változó-bekérési utasítás bármelyik kifejezésrészben szerepelhet.
A kifejezésrészekben alapvetően minden, az adott számológéppel elvégezhető művelet, funkció szerepeltethető, azokkal a számítások ugyanolyan módon végezhetők, mint kézi számítási üzemmódban. A használt szimbólumok megegyeznek a billentyűkre írt szimbólumokkal. Nem lehet kifejezésrészbe beírni a szögmértékegység-váltást (DRG), a kijelzési formátum előírásait (F↔E, ill. FSE, TAB) és a törlési utasításokat (CL, CA). Mivel a statisztikai számítások külön üzemmódban végezhetők, ugyancsak nem lehet használni a statisztikai műveleteket és változókat.
Az öt terület, melyen a kifejezések elhelyezhetők, nem használhatóak szabadon, csak egymásután tölthetők fel kifejezésekkel. Ha egy kisebb sorszámú területet törlünk, a rákövetkező sorszámú területek eggyel kisebb sorszámot vesznek fel. Beíráskor a következő kifejezésre úgy tudunk lépni, ha a kifejezés-vége szimbólumot (◺) beírjuk az adott kifejezés végére, melynek hatására a gép a következő kifejezést fogja kijelezni.
A kifejezések kiértékelése COMP üzemmódban történik, az adott terület azonosítójának megfelelő billentyűsorozat lenyomásával (2ndF 1;, 2;, 3;, 4; vagy 5;). A sorszámot a kifejezéstől elválasztó jel itt még pontosvessző.
Az egyes területek végrehajtásakor, a terület végének elérése után a COMP gomb hatására a végrehajtás újból elindul a kifejezés elejéről, így kézzel vezérelt ciklusok készíthetők.
EL-5102
EL-5103
EL-5103S
EL-5050
Az AER-I 2. változata
A Sharp az 1980-as években két fő kategóriát fejlesztett a programozható számológépeket tekintve: az egyszerű, csak a billentyűsorozatokat ismételni tudó típusokat (EL-500-as sorozat programozható változatai), és a BASIC nyelven programozható zsebszámítógépeket (PC sorozat). A két kategórián felül a korábbiakban kifejlesztett, professzionális célú PC-1300 típusú programozható számológép idővel korszerűtlenné vált, az EL-5100-as sorozat pedig nem rendelkezett olyan programozási lehetőségekkel, mint például a feltételes elágazások kezelése. Az űrt 1985-ben töltötték be az EL-5050-es és EL-5150-es számológépekkel, melyek az AER rendszer jelentősen továbbfejlesztett változatát tartalmazták. Újdonságai:- 99, egyenként legfeljebb 160 lépésből álló terület, melyekhez a könnyű beazonosításukat célzó címkét (nevet) is fűzhetünk,
- beszédes nevű változókat is használhatunk (betűkkel és számokkal), melyek értéke első előfordulásukkor automatikusan bekérésre kerül,
- feltételes elágazásokat írhatunk a kifejezésekbe, melyek háromféle feltételt és az „igaz” és „hamis” ágnak megfelelő kifejezésrészeket tartalmazhatnak,
- ciklusokat szervezhetünk, melyek akár egymásba is ágyazhatók,
- területenként legfeljebb 10 szubrutint (alprogramot) használhatunk a többször visszatérő részek hatékony kezeléséhez,
- a kifejezésrészek irreleváns eredményeinek kijelzését letilthatjuk.
Főként kompatibilitási okokból megmaradt a korábbi változó-bekérési utasítás (f()=) is, melyhez viszont közvetlenül nem kapcsolhatunk feltételes elágazást. Ebben az esetben a záró )= utasításrész után egy elválasztójel (_) is írandó.
A kifejezésrészek korábbi vesszővel való tagolása mellett megjelent az elválasztójellel való tagolás is, mely az előtte szereplő kifejezésrész eredményét nem jelzi ki, de a kifejezés további kiértékelése tovább folyik. Így a felhasználói oldalról nem érdekes részeredmények kijelzését megtilthatjuk, ezáltal könnyebben használható, egyszerűbb programok írhatók.
A feltételes elágazások és ciklusok kezelése a megszokott címkére ugrás technikától eltérően valósult meg: egy adott feltétel kiértékelése után a feltétel igaz volta esetén az igaz-ágban, hamis volta esetén pedig a hamis-ágban megadott kifejezésrészek fognak lefutni, majd az utasítás lezárása után folytatódik a fő kifejezés kiértékelése. A gép billentyűzetéről beírható három feltétel (>, ≥, ≠) valójában öt, mivel a relációs jelek bal és jobb oldalára írt kifejezésrészek minden további nélkül felcserélhetők (tehát a szokványos C<6 mellett érvényes a 8>D is).
A kifejezés-vége utasítás (◺) használatát kiterjesztették az elágazási utasítások igaz- és hamis-ágaira is, így egy feltétel kiértékelésétől függően is leállíthatjuk a kifejezés további kiértékelését, azaz a program futását.
Ciklusok szervezésére is van mód, a ciklus eleje (↳) és ciklus vége (↰) utasítás közötti kifejezésrészeket a gép mindaddig ismétli, amíg feltételes elágazási utasítással, vagy szándékos hiba előidézésével a ciklusból ki nem lépünk. Amíg feltételes elágazások egymásba ágyazására nincs lehetőség, ciklusok egymáson belül is létrehozhatók.
Többször visszatérő rész-számítások alprogramként (szubrutinként) is megvalósíthatók (SUB:), így rövidebb és átláthatóbb programok írhatók. Egy területen legfeljebb 10 alprogram szervezhető, melyekre a számukkal hivatkozhatunk (2ndF és a számbillentyűk lenyomásával). Sajnos szubrutinokon belül nem használhatók sem a feltételes elágazási, sem a ciklusszervező utasítások.
Több adatregiszter lévén, az angol ábécé minden betűje használható konstansként vagy változóként, a korábbról ismert f()= utasítás használatával. Ezen felül lehetőség van kisbetűkből, speciális szimbólumokból és számokból álló változók használatára is, melyek értékét a gép területen belüli első előfordulásuk alkalmával kér be. Az ilyen változók azonosítói legfeljebb 7 karakter hosszúak lehetnek, és a STO utasítással nem használhatók.
Az EL-5050-es és EL-5150-es típusok már a Hitachi és a Sharp közös fejlesztését, az SC61720-as mikroprocesszort tartalmazzák, melyeket megtalálhatunk a korszak számos zsebszámítógépében, fordítógépében egyaránt.
Az EL-5030-as típus ugyanezen architektúra alapján készült, de az AER programjában néhány változtatást végeztek: a kisbetűs változók használatát kivették (VAR mód), helyette viszont a gép tömbök (mátrixok) kezelésére volt képes. A DIM utasítással megadott változótömböt a ciklusok segítségével könnyedén felhasználhattuk mátrixokkal való műveletvégzésre is.
Bár mindhárom típus jelentősen többet tudott az EL-5100-as elődöknél, de ezen funkciók többségét az AER módban nem használhattuk. Így a különböző számrendszerek közötti átváltások, a logikai műveletek, és az eredményt a kijelzett értékre való módosítását (MDF) nem használhattuk AER kifejezésben.
Ez a változat megtalálható az EL-9000 (EL-5200) típusú grafikus számológépben is, mint AER-I üzemmód, az EL-5030-as változattal megegyezően annyi megkötéssel, hogy a kisbetűs változónevek itt sem voltak használhatók.
EL-512S
EL-512 II
EL-512H
Az AER-I 3. változata
1987-ben az évek óta gyártott EL-512 típusú programozható számológép leváltására, az EL-5050/EL-5150-es számológépeknél egyszerűbben használható, de mégis hatékonyan programozható típust kezdett fejleszteni a Sharp cég, melyek az AER-I 2. változatán alapuló, de annak egyszerűsített változatát használták. Az EL-5010 (Európában EL-512S, az USÁ-ban EL-512 II) elődjéhez hasonlóan, négy kifejezést volt képes kezelni, ezek hossza 160 lépés lehetett.Az egyszerűsített változat nem volt képes szubrutinok (SUB), tömbök (DIM) és kisbetűs változónevek (VAR) kezelésére, viszont a statisztikai üzemmódban használható változók és funkciók AER kifejezésekben is szerepeltethetők lettek, azaz egyszerűen lehetett statisztikai programokat írni.
A beírt kifejezések az = billentyű kétszeri lenyomásával azonnal kiértékelhetőek lettek, üzemmódváltás nélkül is. A felhasznált kétsoros kijelzők előnyét kihasználva, az alsó (hétszegmenses) sorban jelentek meg a beírt numerikus értékek, így elkerülhetőek lettek az ilyenfajta hibás billentyűzésből eredő szintaktikai hibák.
EL-566E
Japánban oktatási célokra elkészült az EL-5010-es strapabíróbb változata EL-566 néven. Tudásuk, belső felépítésük teljesen azonos. A gépet éveken át gyártották, a 2007-es tanévre készült el újabb változata, az EL-566E, mely még mindig az AER programozási modelljét használta, minimális változtatásokkal: a vessző operátortól való elkülönítés miatt az AER kifejezésrész-elválasztó jelét kettőspontra cserélték, az AER programozási funkcióit pedig menürendszerből lehetett elérni. Kényelmi szempontból a feltételes elágazások igen- és nem-ágainak lezáró szögletes zárójele külön menüpontot kapott, ami utólagos javításoknál nagy előnyt jelent.
EL-5200
AER-II
A Sharp első grafikus számológépe nemcsak a függvényábrázolásban hozott újat, de programozási modellje is változott. Alapját az AER-I 2. változata adta, de a korábbi STO utasításon alapuló (pl. 3 STO B) értékadási utasítást a számítógépek programozási nyelveiben és a matematikában is megszokott formára cserélték (pl. B=3). Ugyanígy a változók értékeinek bekérésére egységesen az „=?” utasítás szolgált, ezzel egyidejűleg a korábbi „f()=” formát és a kisbetűs változóneveknél az első előforduláskori automatikus bekérést megszüntették. A változók és konstansok nevei szabadon megválaszthatók (8 karakteres hosszig), mindegyikbe lehet adatot tárolni (STO).A gépek tudásának bővülésével, az AER programokban fel lehetett használni a gép grafikus (függvényábrázolási) képességeit is, viszont a statisztikai és számrendszerek közötti konverziós funkciók továbbra sem voltak programozhatók.
Sajnos a többsoros kijelző lehetőségeit nem használták ki teljesen, így a hosszabb, összetettebb AER kifejezések továbbra is nehezen átlátható teli sorokban jelentek meg.
AER a zsebszámítógépekben
Egyes újabb zsebszámítógép-modelleket egyszerű kifejezések tárolására és kiértékelésére alkalmassá tettek, melyekkel így BASIC programok írása nélkül is lehetett egyszerűbb képletek eredményeit kiszámítani. Az AER terület mérete a zsebszámítógép RAM kapacitásától függött, 99 névvel ellátott AER kifejezés volt tárolható bennük, de ezek semmilyen elágazási, szubrutin-kezelési, ciklusszervezési utasítást nem tartalmazhattak, csupán a megszokott f()= formátumú változó-bekérési utasítást, az egybetűs változónevek használatát és a beépített függvények használatát. Szerepét könnyebben megérthetjük, ha tudjuk, hogy a konkurens Casio hasonló típusaiban alkalmazta a függvénymemóriát, mely hasonlóan az AER kifejezésekhez, egyszerű képletek tárolására és ismételt kiszámítására volt alkalmas.Az AER-II rendszer már megindult az EL-5100-assal nagyjából egyidőben indult BASIC nyelvű zsebszámítógépekhez való idomulás útján, és ez a folyamat a későbbiekben is folytatódott. A Sharp következő generációs grafikus számológépei (EL-9200, EL-9300) már egy menürendszeren alapuló, könnyen érthető, a BASIC nyelv kulcsszavain alapuló, címkékre való ugrási utasításokkal rendelkező, a többsoros kijelzők előnyeit kihasználó új programozási modellt használtak. A kijelzőn megjelenő programok ezentúl tagoltak és könnyebben értelmezhetőek lettek.
Az AER funkcióbillentyűi
Billentyű | AER változatok | Működés |
PB | I-1, I-2 | COMP módban az eredmény kijeleztetése után a kifejezést szerkesztésre megjeleníti a kijelzőn. AER módban megjeleníti az előzőleg beírt kifejezést, a kurzor az utolsó pozícióra kerül. Ha a kifejezés egy kijelzőnyi területen nem fér el, a gomb lenyomásával lapozhatunk az egyes részek között. |
I-2, II | COMP módban, változó értékének bekérésekor megjeleníti a változó aktuális tartalmát. AER módban megjeleníti az előzőleg beírt kifejezést, a kurzor az utolsó pozícióra kerül. Ha a kifejezés egy kijelzőnyi területen nem fér el, a gomb lenyomásával lapozhatunk az egyes részek között. |
|
← | mind | szerkesztési módban a kurzort balra lépteti. |
→ | mind | szerkesztési módban a kurzort jobbra lépteti. |
I-2, II | AER módban, ha az AER listában vagyunk (TITLE), a kijelzett kifejezés címkéjét átírhatóvá teszi (szerkesztési mód). Az ezután lenyomott COMP billentyű a kifejezést kijelzi szerkesztésre. | |
COMP | mind | COMP módban a kijelzett kifejezést futtatja. AER módban, ha nem vagyunk szerkesztési módban, új kifejezést nyit meg; ha szerkesztési módban vagyunk (→ után) a kijelzett kifejezést kijelzi szerkesztésre. |
STO vagy M⇒ | I-1, I-2, I-3 | COMP módban az utána lenyomott azonosítójú adatregiszterbe menti a számítás eredményét. Pl.: 2 × 3 STO C hatására a C regiszterbe 6 kerül. AER módban a STO (⇒) utasítást írja be, aminek hatására a kifejezés eredménye az utána megadott adatregiszterbe kerül. Pl.: 2 × 3 STO C futtatásakor a C regiszterbe 6 kerül. (A 2. változattól jele ⇒) |
RCL | I-1, I-2, I-3 | COMP módban kijelzi az utána lenyomott azonosítójú adatregiszter tartalmát. Pl. RCL J a J regiszter tartalmát jelzi ki. AER módban az adott adatregiszter tartalmát írja be a kifejezésbe. Pl. ha A=10, B=4.5, az RCL A + RCL B = beírásakor a kifejezés 10+4.5= lesz. |
A, B, illetve ALPHA A, ALPHA B stb. | I-1, I-2, I-3 | Adatregiszterek azonosítóit beíró billentyűk. COMP és AER módban önmagukban használva az adott azonosítót írják be a kifejezésbe. Pl. A B = futtatásakor az A és B regiszterek mindenkori szorzatát jelzi ki. |
ALPHA A, ALPHA B stb. | II | Változónevek beírására szolgáló billentyűsorozatok. Pl. A B futtatásakor az AB változó értékét jelzi ki. |
1;, 2: stb. | I-1, I-3 | COMP módban az adott azonosítójú kifejezést futtatják. AER módban az adott azonosítójú kifejezést jelzik ki szerkesztésre. |
CA | I-1 | COMP módban törli a kijelzést. AER módban törli a teljes programtárat, mindegyik területet beleértve. |
I-2, I-3, II | COMP módban törli a kijelzést. AER módban, a törlési szándék megerősítése után (ENT) törli az aktuálisan kijelzett kifejezést. |
|
◺ | I-1 | AER módban lezárja a területet és a következő területet kezdi szerkeszteni. Az utolsó területnél nem szabad használni. |
I-2, I-3, II | AER módban lezár egy kifejezésrészt (igen vagy nem ágat), ennek hiányában a területet. | |
, | I-2, I-3, II | Az előtte lévő kifejezésrész eredményét kijelzi, mielőtt a rákövetkező kifejezésrész feldolgozását elkezdené. Pl. AER-I-nél az A+2STOA,B-2 kifejezés előbb az A értékét kettővel megnöveli és ki is jelzi az eredményt, majd a COMP megnyomása után a B-2 érték kijelzése következik. |
_ | I-2, I-3, II | Az előtte lévő kifejezésrész eredményét nem jelzi ki, és a rákövetkező kifejezésrész feldolgozását kezdi el. Pl. AER-I-nél az A+2STOA_B-2 kifejezés az A értékét kettővel megnöveli, de ezt az értéket nem jelzi ki, majd a B-2 érték kijelzése következik. |
TITLE vagy PRO (TITLE) | I-2, II | Kijelzi a következő terület címkéjét. |
2ndF TITLE vagy 2ndF PRO (TITLE) | I-2, II | Kijelzi az előző terület címkéjét. |
↓ | I-2, II | A következő szubrutinra, vagy ennek hiányában területre lép és kijelzi annak tartalmát. |
2ndF ↑ | I-2, II | Az előző szubrutinra, főrutinra, vagy az előző területre lép és kijelzi annak tartalmát. |
f()= | I-1, I-2, I-3 | Változók megadására szolgáló rész kezdése, illetve lezárása. A kezdő és lezáró szimbólum között felsorolt adatregisztereket a gép minden kiértékeléskor újra bekéri. Pl. f()=AHf()= kezdetű kifejezés futtatásakor az A és H adatregisztereket bekéri a billentyűzetről. Feltételes ugrási utasítás ebben a kifejezésrészben nem használható. |
= | II | Értékadási utasítás. Tőle balra a változó neve, jobbra pedig a kiszámítandó kifejezés áll. Pl. atlo=3×8. |
SUB: | I-2, II | AER módban új szubrutint ad az aktuális terület végéhez. |
2ndF 1, 2 stb. | I-2, II | AER módban az adott számú szubrutin szimbólumát írja be a kifejezésbe, ami futtatáskor meghívja az adott szubrutint. |
2ndF >, >=, ≠ | I-2, I-3, II | AER módban feltételes elágazási utasítást ír be a kifejezésbe, azaz az adott relációs jelet használja a kifejezésben a bal és a jobb oldalon szereplő kifejezésrészek kiértékeléséhez. Ld. még -Y→[], -N→[] |
2ndF -Y→[] | I-2, I-3, II | AER módban az előtte lévő feltételes elágazási vizsgálat eredményétől függően, annak igaz volta esetén az ezután megadott kifejezésrészt hajtja végre. Lezárása ugyanezzel a billentyűvel történik. Ha nem ágat tartalmaz a kifejezés, az igen ág elhagyható. Pl. X 2ndF >= 25 2ndF -Y→[] B 2ndF -Y→[] kifejezés esetén, ha az X értéke 25 vagy nagyobb, a B adatregisztert jelzi ki. |
2ndF -N→[] | I-2, I-3, II | AER módban az előtte lévő feltételes elágazási vizsgálat eredményétől függően, annak hamis volta esetén az ezután megadott kifejezésrészt hajtja végre. Lezárása ugyanezzel a billentyűvel történik. Ha igen ágat tartalmaz a kifejezés, a nem ág elhagyható. Pl. X 2ndF >= 25 2ndF -Y→[] B 2ndF -Y→[] 2ndF -N→[] C -N→[] kifejezés esetén, ha az X értéke 25 vagy nagyobb, a B adatregisztert; ha kisebb, a C adatregisztert jelzi ki. |
2ndF ↳ | I-2, I-3, II | AER módban a ciklus kezdőpontját jelöli meg, ahová a 2ndF ↰ utasítás hatására a végrehajtás visszatér. |
2ndF ↰ | I-2, I-3, II | AER módban olyan utasítást ír a kifejezésbe, ami arra utasítja a gépet, hogy visszatérjen a hozzá tartozó 2ndF ↳ szimbólummal megjelölt részhez. Pl. 2ndF ↳ A × 2 STO A _ A 2ndF > 100 2ndF -Y→[] 2ndF ↰ 2ndF -Y→[] A kifejezés az A értékét addig szorozza 2-vel, amíg az eredmény 100-nál nagyobb nem lesz. |
2ndF VAR | I-2 | Bekapcsolja, vagy kikapcsolja a változónév üzemmódot. Ebben az üzemmódban a betűk és a számok, illetve a billentyűk fölé írt görög betűk automatikusan mint változók szerepelnek, így minden futtatáskor értéküket a gép bekéri. |
SHIFT 1, 2, .. A .. Z |
II | Változónevek beírására szolgáló billentyűk. A változónévben szereplő számok kisebb méretben jelennek meg, mint a normál számjegyek. |
M.CK | I-2, I-3, II | A szabad AER tárolóterület méretét, azaz a még felhasználható lépések számát jelzi ki. |
DIM | I-2, II | Tömböt (vektort, mátrixot) definiálhatunk. Az utasítás formátuma n×m elemű mátrix definiálásához: DIM változónév[n,m]. A későbbiekben az egyes elemekre a változónév[sor,oszlop] alakban hivatkozhatunk ugyanúgy, mint bármilyen másik változóra. Pl. DIM A[2,3] |
, | I-2, II | Tömb, ill. mátrix indexeinek beírása szögletes zárójelek között történik. Kétdimenziós tömb (mátrix) indexeit vesszővel kell elválasztani. Pl. A[2], vagy B[2,1] |
Mintaprogram
Az AER egyes változatait érdemes összevetni a korszak zsebszámítógépeiben használt BASIC nyelvvel egy mintaprogram segítségével, mely egy iskolai osztályozó program. Adott egy dolgozat, melynek megadjuk a maximális pontszámát, és az elégséges (2-es) szint alsó határát. Ezek után a megadott számú diákok elért pontszámai alapján kiírja az érdemjegyet és az elért százalékot, majd az összes diák pontszámainak bevitele után kiszámítja az összes diák átlagát érdemjegyben és százalékban egyaránt.A mintaadatok a következők:
Diák | Pontszám | Százalékos eredmény | Érdemjegy |
1. | 134 | 89,33 | 4 |
2. | 89 | 59,33 | 1 |
3. | 109 | 72,67 | 2 |
4. | 147 | 98,00 | 5 |
5. | 136 | 90,67 | 4 |
6. | 129 | 86,00 | 4 |
7. | 117 | 78,00 | 3 |
8. | 150 | 100,00 | 5 |
A gépek kis memóriakapacitása miatt a program nem írható meg az EL-5101, EL-5102, EL-5103 és EL-5103S típusú számológépekre. A több kifejezésrész összekapcsolhatóságának hiánya miatt a zsebszámítógépek AER üzemmódjában szintén nem írható meg a program.
BASIC (Sharp zsebszámítógépekre)
20 F=M*Y/100
30 PRINT "ELEGS.";F;" PONTTOL"
40 H=(M-F)/4
50 FOR D=1 TO X
60 GOSUB 300
70 PRINT E
80 NEXT D
90 PRINT "ATLAG:";O/X
100 PRINT "ATLAG %:";N/X
110 END
200 REM ADATBEVITEL
210 INPUT "MAX. PONTSZAM?";M
220 INPUT "ELEGS. %?";Y
230 INPUT "DIAKOK?";X
240 O=0:N=0:D=0
250 RETURN
300 REM DIAK ADATAI
310 PRINT D;". DIAK"
320 INPUT "PONTSZAM?";P
330 S=100*P/M
340 PRINT "PONT %:";S
350 N=S+N
360 E=INT((P-F)/H+2)
370 IF E<5 THEN E=5
380 IF E>2 THEN E=1
390 O=O+E
AER-I 1. változata (EL-5100, EL-5100S)
AER programlisták:2;f(F)=100F÷A,+CSTOC(F-D)÷E+2STOH,f(H)=I+HSTOIJ+1STOJJ+1◺
3;C÷J
2;f(F)=100F÷A,+CSTOCF-D=÷E+2STOH,f(H)=I+HSTOIJ+1STOJ+1◺
3;C÷J
AER kifejezésrész | BASIC megfelelője | leírása |
1;f(AB)= | 10 "A"INPUT A:INPUT B | max. pontszám és elégséges alsó százalékának bekérése |
AB÷100STOD, | 20 D=A*B/100:PRINT D | elégséges alsó ponthatárának kiszámítása és kiírása |
0STOCSTOISTOJ | 30 C=0:I=0:J=0 | változók törlése |
A-D=÷4STOE◺ | 40 E=(A-D)/4:PRINT E 50 END |
pontsávok kiszámítása |
2;f(F)= | 60 "B"INPUT F | pontszám bekérése |
100F÷A, | 70 X=F*100/A:PRINT X | pontszázalék kiszámítása és kiírása |
+CSTOC | 80 C=X+C | százalékösszeg képzése |
F-D=÷E+2STOH, | 90 H=(F-D)/E+2:PRINT H | számított érdemjegy kijelzése |
f(H)= | 100 INPUT H | valós érdemjegy beírása |
I+HSTOI | 110 I=I+H | érdemjegy-összeg képzése |
J+1STOJ | 120 J=J+1 | diák sorszámának növelése |
+1◺ | 130 PRINT J+1 140 END |
következő diák sorszámának kijelzése |
3;C÷J | 150 "C"PRINT C/J | százalékos átlag kijelzése |
Változók:
A | maximális pontszám |
B | elégséges alsó szintje %-ban megadva |
C | százalékösszeg |
D | elégséges alsó szintje pontszámban megadva |
E | érdemjegyek közötti sáv nagysága |
F | elért pontszám |
G | elért pontszám %-ban kifejezve |
H | elért érdemjegy |
I | érdemjegyek összege |
J | aktuális diák száma |
A program futtatása:
Először célszerű a kijelzési formátumot 2 tizedesre átírni: TAB 2.
A program első része a 2ndF 1; billentyűkkel indítható el COMP módban. Be kell írni a maximális pontszámot és az elégséges alsó határának százalékban megadott értékét.
Ezután megjelenik az elégséges alsó szintjének pontban kifejezett értéke, majd az egyes érdemjegyek sávjainak nagysága, pontszámban kifejezve.
Következhet a 2. terület futtatása a 2ndF 2; billentyűzéssel.
Be kell írni az első tanuló által elért pontszámot. Kijelzésre kerül az elért százalékos eredmény, majd egy szám. Ha ez a szám 2-nél kisebb, az érdemjegy 1-es. Ha 6, akkor hibátlan a dolgozat. Egyébként az érdemjegy a szám egészrésze. Az így kapott érdemjegyet vissza kell billentyűzni a gépbe.
Kijelzésre kerül a következő diák sorszáma. Ezután meg kell adni a következő diák pontszámát, mint fent.
Ha már nincs több diák, futtassuk a 3. területet a 2ndF 3; billentyűkkel.
Kijelzésre kerül a százalékos átlag. Mivel a program 1 lépésnyi helyet hagy szabadon, így nem lehet beleírni az átlagos osztályzat kiszámítását, de ez könnyen kiszámítható a százalékos átlag kijelzése után: CL I ÷ J =.
Billentyűzés | Kijelzés | Magyarázat |
2ndF 1; | 1;A=? | |
150 COMP | 1;B=? | Maximális pontszám beírása |
70 COMP | 2-es szint százalékos értékének beírása | |
1;ANS 1= 105.00 | 2-es szint alsó határa: 105 pont | |
COMP | 1;ANS 2= 11.25 | Az egyes érdemjegyek közötti pontsáv nagysága |
2ndF 2; | 2;F=? | |
134 COMP | 1. diák pontszámának beírása | |
2;ANS 1= 89.33 | 1. diák százalékos eredménye 89% | |
COMP | 2;ANS 2= 4.58 | 1. diák érdemjegye 4-es |
COMP | 2;H=? | |
4 COMP | Az érdemjegy beírása | |
2;ANS 3= 2.00 | A 2. diák adatai következnek | |
COMP | 2;F=? | |
89 COMP | 2. diák pontszámának beírása | |
2;ANS 1= 59.33 | 2. diák százalékos eredménye 59%. | |
COMP | 2;ANS 2= 0.58 | 2. diák érdemjegye 1-es |
1 COMP | Az érdemjegy beírása | |
2;ANS 3=3.00 | A 3. diák adatai következnek | |
... | Az utolsó diák eredményének kiírása után: | |
2ndF 3; | 3;ANS 1= | A százalékos átlag |
CL I ÷ J = | 3.50 | Az átlagosztályzat |
AER-I 2. változata (EL-5050, EL-5150)
Az AER ezen változata már lehetővé teszi a feltételes elágazások írását, így nem kell kézzel váltogatni az egyes területek futtatását, azt a program maga elvégzi. Mivel a rendelkezésre álló memóriaregiszterek száma is több, így célszerűbben megválaszthatók az egyes változók betűjelei is, valamint változók esetén alkalmazhatók a kisbetűs, beszédesebb nevek is. Ugyanígy megadhatók címkék az egyes programrészekhez, melyek a visszakeresést is megkönnyítik. Bár a szubrutinokban feltételes elágazások nem szerepeltethetők, így is célszerű volt ezekkel megoldani a program működését. A könnyebb olvashatóság miatt a kifejezésrészek között minden esetben szerepel szóköz, ott is, ahol ez nem lenne kötelező.Az AER listák a következők:
1: max×elegs÷100⇒F,diakok_0⇒O⇒N⇒D
2: f(P)=100P÷max⇒S,S+N⇒N_INT((P-F)÷H+2)⇒E
Az EL-5030-as gépnek nincs VAR üzemmódja, így az AER listák az alábbiak szerint alakulnak:
1: f(MYX)=MY÷100⇒F,X_0⇒O⇒N⇒D
2: f(P)=100P÷M⇒S,S+N⇒N_INT((P-F)÷H+2)⇒E
AER kifejezésrész | BASIC megfelelője | leírása |
1 | 10 "A"GOSUB 200 | első szubrutin hívása |
(max-F)÷4⇒H_ | 20 H=(M-F)/4 | pontsávok kiszámítása |
↳ | ciklus elejét jelző utasítás | |
2 | 30 GOSUB 300 | második szubrutin hívása |
E>5-Y-[5⇒E]_ | 40 IF E>5 THEN E=5 | hibátlan eredmény is 5-ös |
2>E-Y-[1⇒E]_ | 50 IF E<2 THEN E=1 | elégtelen beállítása 1-esnek |
E, | 60 PRINT E | érdemjegy kiírása |
O+E⇒O_ | 70 O=O+E | érdemjegy-összeg képzése |
D+1⇒D_ | 80 D=D+1 | diák sorszámának növelése |
D>=diakok-N-[↰]_ | 90 IF D>=X THEN 110 100 GOTO 30 |
ha még nincs minden diák adata bekérve, jöhet a következő |
O÷diakok, | 110 PRINT O/X | érdemjegy-átlag kiírása |
N÷diakok◺ | 120 PRINT N/X 130 END |
százalékos átlag kiírása |
1: max×elegs÷100⇒F, | 200 INPUT M:INPUT Y 210 F=M*Y/100 220 PRINT F |
a maximum pontszám és az elégséges alsó határának beírása |
diakok_ | 230 INPUT X | diákok számának bekérése |
0⇒O⇒N⇒D | 240 O=0:N=0:D=0 | változók törlése |
250 RETURN | szubrutin vége | |
2: f(P)= | 300 INPUT P | pontszám bekérése |
100P÷max⇒S, | 310 S=100*P/M:PRINT S | pontszázalék kiszámítása és kiírása |
S+N⇒N_ | 320 N=S+N | százalékösszeg képzése |
INT((P-F)÷H+2)⇒E | 330 E=INT((P-F)/H+2) | érdemjegy kiszámítása |
340 RETURN | számított érdemjegy kijelzése |
Változók:
max (M) | maximális pontszám |
elegs (Y) | elégséges alsó szintje %-ban megadva |
diakok (X) | diákok száma |
N | százalékösszeg |
O | érdemjegyek összege |
F | elégséges alsó szintje pontszámban megadva |
H | érdemjegyek közötti sáv nagysága |
P | elért pontszám |
S | elért pontszám %-ban kifejezve |
E | elért érdemjegy |
D | aktuális diák száma |
A program futtatása:
Billentyűzés | Kijelzés | Magyarázat |
TAB 0 | ||
TITLE az OSZTALYOZAS kiírásáig | 01:OSZTALYOZAS | |
COMP | max=? | |
150 COMP | elegs=? | Maximális pontszám beírása |
70 COMP | 2-es szint százalékos értékének beírása | |
ANS 1= 105.00 | 2-es szint alsó határa: 105 pont | |
diakok=? | ||
8 | diákok számának beírása | |
COMP | P=? | |
134 COMP | 1. diák pontszámának beírása | |
ANS 2= 89. | 1. diák százalékos eredménye 89% | |
COMP | ANS 3= 4. | 1. diák érdemjegye 4-es |
COMP | P=? | |
89 COMP | 2. diák pontszámának beírása | |
ANS 4= 59. | 2. diák százalékos eredménye 59%. | |
COMP | ANS 5= 1. | 2. diák érdemjegye 1-es |
COMP | ||
... | Az utolsó diák eredményének kiírása után: | |
COMP | ANS 18=4. | Az átlagos osztályzat |
TAB 2 | ANS 18=3.50 | Két tizedesre pontos érték |
COMP | ANS 19=84.25 | Az átlagos százalékos eredmény |
AER-I 3. változata (EL-5010, EL-512S, EL-512 II, EL-512H, EL-566, EL-566E)
Az AER mód egyszerűsítésének okán ezeknél a típusoknál nincs lehetőség szubrutinok alkalmazására, és VAR üzemmód használatára sem.Az AER listák a következők:
AER kifejezésrész | BASIC megfelelője | leírása |
1:f(ABC)= | 10 "A"INPUT A:INPUT B:INPUT C | max. pontszám, elégséges alsó százalékának és a diákok számának bekérése |
AB÷100⇒D, | 20 D=A*B/100:PRINT D | elégséges alsó ponthatárának kiszámítása és kiírása |
0⇒I⇒X⇒Y | 30 I=0:X=0:Y=0 | változók törlése |
A-D=÷4⇒E_ | 40 E=(A-D)/4 | pontsávok kiszámítása |
↳ | ciklus elejét jelző utasítás | |
f(F)= | 50 INPUT F | pontszám bekérése |
100F÷A⇒G, | 60 G=F*100/A:PRINT G | pontszázalék kiszámítása és kiírása |
G+X⇒X | 70 X=G+X | százalékösszeg képzése |
INT((F-D)÷E+2)⇒H_ | 80 H=INT((F-D)/E+2) | érdemjegy kiszámítása |
H>5-Y-[5⇒H]_ | 90 IF H>5 THEN H=5 | hibátlan érdemjegy 5-ös |
2>H-Y-[1⇒H]_ | 100 IF H<2 THEN H=1 | elégtelen érdemjegyek |
H, | 110 PRINT H | érdemjegy kijelzése |
I+H⇒I | 120 I=I+H | érdemjegy-összeg képzése |
Y+1⇒Y | 130 Y=Y+1 | diák sorszámának növelése |
Y>=C-N-[↰]_ | 140 IF Y>=C THEN 160 150 GOTO 50 |
|
I÷C, | 160 PRINT I/C | érdemjegy-átlag kiírása |
X÷C◺ | 170 PRINT X/C 180 END |
százalékos átlag kijelzése |
Változók:
A | maximális pontszám |
B | elégséges alsó szintje %-ban megadva |
C | diákok száma |
X | százalékösszeg |
I | érdemjegyek összege |
D | elégséges alsó szintje pontszámban megadva |
E | érdemjegyek közötti sáv nagysága |
F | elért pontszám |
G | elért pontszám %-ban kifejezve |
H | elért érdemjegy |
Y | aktuális diák száma |
A program futtatása:
Érdemes FSE-vel FIX kijelzést választani és TAB 0-val beállítani a kijelzési formátumot.
Billentyűzés | Kijelzés | Magyarázat |
2ndF 1: | ||
COMP | A=? | |
150 COMP | B=? | Maximális pontszám beírása |
70 COMP | C=? | 2-es szint százalékos értékének beírása |
8 COMP | diákok számának beírása | |
ANS 1= 105. | 2-es szint alsó határa: 105 pont | |
COMP | F=? | |
134 COMP | 1. diák pontszámának beírása | |
ANS 2= 89. | 1. diák százalékos eredménye 89% | |
COMP | ANS 3= 4. | 1. diák érdemjegye 4-es |
COMP | F=? | |
89 COMP | 2. diák pontszámának beírása | |
ANS 4= 59. | 2. diák százalékos eredménye 59%. | |
COMP | ANS 5= 1. | 2. diák érdemjegye 1-es |
COMP | ||
... | Az utolsó diák eredményének kiírása után: | |
COMP | ANS 18=4. | Az átlagos osztályzat |
TAB 2 | ANS 18=3.50 | Két tizedesre pontos érték |
COMP | ANS 19=84.25 | Az átlagos százalékos eredmény |
AER-II (EL-9000, EL-5200)
Az AER-II változatában szabadon használhatók a kisbetűs változónevek, és az értékadás, valamint a billentyűzetről való bekérés is hasonló lett a matematikában szokásos jelölésekhez, így a BASIC programhoz is. Egyéb tekintetben a program felépítése megegyezik az AER-I 2. változatával.AER lista:
1ponth=(max-elegszint)÷4_↳2eredm>5-Y-[eredm=5]_2>eredm-Y-[eredm=1]_eredm,eredmo=eredmo+eredm_diaksz=diaksz+1_diaksz>=diakok-N-[↰]_eredmo÷diakok,szazo÷diakok◺
1: max=?_elegs=?_diakok=?_elegszint=max×elegs÷100,eredmo=0_szazo=0_diaksz=0
2: pontsz=?_eredmsz=100pontsz÷max,szazo=szazo+eredmsz_eredm=INT((pontsz-elegszint)÷ponth+2)
AER kifejezésrész | BASIC megfelelője | leírása |
1 | 10 "A"GOSUB 200 | első szubrutin hívása |
ponth=(max-elegszint)÷4_ | 20 H=(M-F)/4 | pontsávok kiszámítása |
↳ | ciklus elejét jelző utasítás | |
2 | 30 GOSUB 300 | második szubrutin hívása |
eredm>5-Y-[eredm=5]_ | 40 IF E>5 THEN E=5 | hibátlan eredmény is 5-ös |
2>eredm-Y-[eredm=1]_ | 50 IF E<2 THEN E=1 | elégtelen beállítása 1-esnek |
eredm, | 60 PRINT E | érdemjegy kiírása |
eredmo=eredmo+eredm_ | 70 O=O+E | érdemjegy-összeg képzése |
diaksz=diaksz+1_ | 80 D=D+1 | diák sorszámának növelése |
diaksz>=diakok-N-[↰]_ | 90 IF D>=X THEN 110 100 GOTO 30 |
ha még nincs minden diák adata bekérve, jöhet a következő |
eredmo÷diakok, | 110 PRINT O/X | érdemjegy-átlag kiírása |
szazo÷diakok◺ | 120 PRINT N/X 130 END |
százalékos átlag kiírása |
1: max=?_ | 200 INPUT M | maximum pontszám beírása |
elegs=?_ | 210 INPUT Y | elégséges alsó határának bekérése |
diakok=?_ | 220 INPUT X | diákok számának bekérése |
elegszint=max×elegs÷100, | 230 F=M*Y/100: PRINT F | elégséges alsó ponthatárának kiírása |
eredmo=0_ | 240 O=0 | változó törlése |
szazo=0_ | 250 N=0 | változó törlése |
diaksz=0_ | 260 D=0 | változó törlése |
270 RETURN | szubrutin vége | |
2: pontsz=?_ | 300 INPUT P | pontszám bekérése |
eredmsz=100pontsz÷max, | 310 S=100*P/M:PRINT S | pontszázalék kiszámítása és kiírása |
szazo=szazo+eredmsz_ | 320 N=S+N | százalékösszeg képzése |
eredm=INT((pontsz-elegszint)÷ponth+2) | 330 E=INT((P-F)/H+2) | érdemjegy kiszámítása |
340 RETURN | számított érdemjegy kijelzése |
Változók:
max | maximális pontszám |
elegs | elégséges alsó szintje %-ban megadva |
diakok | diákok száma |
szazo | százalékösszeg |
eredmo | érdemjegyek összege |
elegszint | elégséges alsó szintje pontszámban megadva |
ponth | érdemjegyek közötti sáv nagysága |
pontsz | elért pontszám |
eredmsz | elért pontszám %-ban kifejezve |
eredm | elért érdemjegy |
diaksz | aktuális diák száma |
A program futtatása:
Érdemes FSE-vel FIX kijelzést választani és TAB 0-val beállítani a kijelzési formátumot.
Billentyűzés | Kijelzés | Magyarázat |
TITLE az OSZTALYOZAS kiírásáig | 01:OSZTALYOZAS | |
COMP | max=? | |
150 COMP | elegs=? | Maximális pontszám beírása |
70 COMP | diakok=? | 2-es szint százalékos értékének beírása |
8 COMP | diákok számának beírása | |
elegszi= 105.00 | 2-es szint alsó határa: 105 pont | |
COMP | pontsz=? | |
134 COMP | 1. diák pontszámának beírása | |
eredmsz= 89. | 1. diák százalékos eredménye 89% | |
COMP | ANS 3= 4. | 1. diák érdemjegye 4-es |
COMP | pontsz=? | |
89 COMP | 2. diák pontszámának beírása | |
eredmsz= 59. | 2. diák százalékos eredménye 59%. | |
COMP | ANS 5= 1. | 2. diák érdemjegye 1-es |
COMP | ||
... | Az utolsó diák eredményének kiírása után: | |
COMP | ANS 18=4. | Az átlagos osztályzat |
TAB 2 | ANS 18=3.50 | Két tizedesre pontos érték |
COMP | ANS 19=84.25 | Az átlagos százalékos eredmény |