Milestones in the History of Calculators
History and Programming of AER Calculators
Calculators with AER: EL-5100 (1979), EL-5150 (1985), front: EL-5103 (1980), EL-512S (1988), EL-9000 (1986)
EL-5100S
AER-I First version
It is basically designed to evaluate algebraic expressions. An expression can be up to 80 steps long. There are two ways to use machine data registers (memories): as a constant and as a variable. A constant always correspond to the value of the given register at the time of evaluation. Value for a variable are requested again and again each time they are evaluated. Based on the traditional notation of mathematical functions, the identifiers of the variables should be entered between the f( and )= symbols. If you do not use variables, you can omit this statement and start the program with the expression right away. Storing and adding to the independent memory register, as well as subtraction which were not labeled on the keyboard, can be included in the AER program, but the RM statement cannot, because it enters the current value of the memory in the expression.The program (or its official name, line or area) can contain up to 9 parts of expressions, which must be separated by commas. Each part of the expression is a separate calculation, in case of evaluation their results are displayed one after another, together with the ANS text and the serial number of the part of the expression. The variable request statement above can be included in any part of the expression.
Basically, all the operations and functions that can be performed with the calculator can be included in the expressions, with which calculations can be performed in the same way as in manual calculation mode. The symbols used are the same as the symbols on the keys. You cannot enter the angle unit change (DRG), display format specification (F↔E or FSE, TAB) and delete instructions (CL, CA) in an expression. Because statistical calculations can be performed in a separate mode, statistical operations and variables cannot be used either.
The five areas in which expressions can be placed are not free to use, they can only be populated one after the other with expressions. If an area with a lower sequence number is deleted, the subsequent areas with a sequence number will take one smaller number. When typing, you can move to the next expression by entering the end-of-expression symbol (◺) at the end of that expression, which will cause the machine to display the next expression.
Expressions are evaluated in COMP mode by pressing the key sequence corresponding to the area number (2ndF 1:, 2:, 3:, 4: or 5:). The sign separating the area number from the expression is still a semicolon here.
When executing each area, after reaching the end of that area, the COMP key restarts the execution from the beginning of that expression so that manually controlled cycles can be created.
EL-5102
EL-5103
EL-5103S
EL-5050
AER-I Second version
In the 1980s, Sharp developed two main categories of programmable calculators: simpler types that can only repeat keystrokes (programmable versions of the EL-500 series), and pocket computers (PC series) that can be programmed in BASIC language. In addition to the two categories, the previously developed professional-purpose PC-1300 programmable calculator became outdated over time, and the EL-5100 series did not have programming capabilities such as conditional branching. The space was filled in 1985 with the EL-5050 and EL-5150 calculators, which included a significantly improved version of the AER system. The new features are:- 99 areas, up to 160 steps each, and label (name) may be entered for easier identification,
- you can also use variables with longer labels (with letters and numbers), the value is automatically requested when they first occur,
- conditional branches can be written to the expressions, which can contain three types of conditions and „true” and „false” branching parts.
- we can organize cycles that can even be nested,
- a maximum of 10 subroutines per area can be used to efficiently manage recurring parts,
- you can disable the display of irrelevant results of the expressions.
Mainly for compatibility reasons, the previous variable request statement (f()=) has been retained, to which we cannot directly link conditional branching. In this case, a multistatement delimiter (_) must be written after the closing )= instruction part.
In addition to multistatement delimiter (comma), a new delimiter is appeared (space or underline), which does not display the result of the expression part before it, and the further evaluation of the expression continues. Thus, we can prevent the display of sub-results that are not interesting from the user side, thus writing easier-to-use, simpler programs.
The handling of conditional branches and loops is different from the usual label jumping technique: after evaluating a given condition, the true part will be executed if the condition is true, and the false part if the condition is false. The three conditions that can be entered from the machine keyboard (>, ≥, ≠) are actually five, because the parts of the expression written to the left and right of the relational symbols can be interchanged. So in addition to the standard C<6, 8>D is also possible.
The use of the end-of-expression instruction (◺) has been extended to the true and false parts of branch statements, so that depending on the evaluation of a condition, we can stop further evaluation of the expression or the whole program.
It is also possible to organize loops, the instructions between the beginning of the loop (↳) and the end of the loop (↰) instructions are repeated until you exit the loop with a conditional branch instruction or by causing an error. It is not possible to use conditional branching in a branching instruction, but loops can be nested.
Repeating calculations can also be implemented as subroutines (SUB:), so shorter and more transparent programs can be written. Up to 10 subroutines can be created in an area, and these subroutines can be referenced (and called) by their number (2ndF and the number keys). Unfortunately, conditional branches and loops cannot be used within subroutines.
Each letter of the English alphabet can be used as a constant or a variable using the previously known f()= instruction. In addition, it is possible to use variables consisting of lowercase letters, special symbols and numbers, the value of which is requested by the machine when they first occur in the area. These variable names (or labels) can be up to 7 characters long and cannot be used with the STO statement.
The EL-5050 and EL-5150 models already include the SC61720 microprocessor, joint development of Hitachi and Sharp, which can be found in many pocket computers of the era.
The EL-5030 was based on the same architecture, but some changes were made to the AER program: the use of lowercase variables was removed (VAR mode), but instead the machine was able to handle arrays (matrices). The array of variables specified with the DIM instruction, and also be easily used to perform operations on matrices using loops.
Although all three models knew significantly more than their EL-5100 predecessors, most of these features could not be used in AER mode. Thus, conversions between different number systems, logical operations, and conversion of the result to the displayed value (MDF) could not be used in the AER expression.
This version can also be found in the EL-9000 (EL-5200) graphing calculator as AER-I mode, with the same limitation as the EL-5030 version, so that lowercase variable names could not be used here either.
EL-512S
EL-512 II
EL-512H
AER-I Third version (simplified)
In 1987, in order to replace the EL-512 programmable calculator, which had been manufactured for years, Sharp began to develop an easier-to-use, yet efficiently programmable type of EL-5050/EL-5150 calculators, based on AER-I version 2, but a simplified version was used. Like its predecessor, the EL-5010 (EL-512S in Europe, EL-512 II in the US) was able to handle four expressions with 160 step capacity each.The simplified version can not handle subroutines (SUB), arrays (DIM) and lowercase variable names (VAR), but variables and functions that can be used in statistical mode could also be included in AER expressions, i.e. it was easy to write statistical programs.
The entered expressions can be evaluated immediately by pressing the = key twice, even without changing the mode. Taking advantage of the two-line displays used, the numeric values entered appeared in the bottom (seven-segment) line, thus avoiding syntax errors due to incorrect keystrokes.
EL-566E
In Japan, a more durable version of the EL-5010 called EL-566 has been developed for educational purposes. Their knowledge and internal structure are completely the same. The machine was manufactured for years, with a newer version for the 2007 school year, the EL-566E, which still used the AER programming model, with minimal changes: due to separation from the comma operator, the AER expression separator was replaced with a colon, the programming functions could be accessed from a menu system. For convenience, the closing square brackets for the yes and no parts of the conditional branches have been given a separate menu item, which is a great advantage for subsequent program modifications.
EL-5200
AER-II
Sharp’s first graphing calculator has a new programming model, which was based on version 2 of the AER-I, but the assignment instruction based on the STO instruction (e.g. 3 STO B) was replaced with the usual form in computer programming languages and mathematics (e.g. B ). Similarly, to request the new value of a variable, use the "=?" instruction. The former "f()=" instruction and automatic requesting for lowercase variables were no longer available. Data can be stored with STO to all constants or variables.The graphical (function) capabilities of the machine could also be used in AER programs, but the statistics and conversion functions between number systems could still not be programmed.
Unfortunately, although a multi-line display were used, the programs appear in full and even hard-to-read lines.
AER in Pocket Computers
Some newer pocket computers have been adapted to store and evaluate simple expressions, allowing simpler formulas to be calculated without writing BASIC programs. The size of the AER area depended on the RAM capacity of the pocket computer. 99 AER expressions could be stored in them, but they could not contain any branching, subroutine handling, looping instructions, only the usual f()= variable request instruction can be used among with one-letter variable names and the use of built-in functions. This was an answer to Casio’s function memory, which can contain simpler expressions.The AER-II system was already started adopting some advantages from BASIC-language pocket computers which were developed in parallel with the EL-5100. Sharp’s next-generation graphing calculators (EL-9200, EL-9300) use a new programming model based on a menu system with instructions based on BASIC keywords, so easy-to-understand programs can be written with label-based jumping capabilities. The programs on the display are now easier to read because of using line breaks on multi-line displays.
Function Keys of AER
Key | AER Versions | Function |
PB | I-1, I-2 | in COMP mode, displays the expression for editing after an answer. in AER mode, displays the previously entered expression, the cursor will be in the last position. If the expression is longer than the display, pressing PB scrolls the expression. |
I-2, II | in COMP mode, when entering a variable, displays the current value of that variable. in AER mode, displays the previously entered expression, the cursor will be in the last position. If the expression is longer than the display, pressing PB scrolls the expression. |
|
← | all | moves the cursor one position left in editing mode |
→ | all | moves the cursor one position right in editing mode |
I-2, II | in AER mode, when displaying AER titles, label of the current expression will be edited. Pressing COMP after that, editing of expression will be possible. | |
COMP | all | in COMP mode, runs the current expression in AER mode, when not in editing mode, creates a new blank expression; when in editing mode (after →) displays the current expression for editing. |
STO or M⇒ | I-1, I-2, I-3 | in COMP mode, stores the result to the given memory register (variable). E.g.: 2 × 3 STO C results 6 stored in memory register C. in AER mode, places a STO (→) instruction, which stores the expression result to the given memory register. E.g.: 2 × 3 STO C results 6 stored in memory register C. |
RCL | I-1, I-2, I-3 | in COMP mode, displayt the given memory register contents. E.g. RCL J shows the contents of register J. in AER mode, places the contents of the given memory register to the expression. E.g. if A=10, B=4.5, keying RCL A + RCL B = results the expression will be 10+4.5=. |
A, B, or ALPHA A, ALPHA B etc. | I-1, I-2, I-3 | Places the appropriate memory register name (variable name) to the expression. E.g. A B = results the expression will be AB=. |
ALPHA A, ALHA B etc. | II | Places the appropriate letter to the expression. |
1;, 2: etc. | I-1, I-3 | in COMP mode, runs the appropriate AER expression. in AER mode, displays the appropriate AER expression for editing. |
CA | I-1 | in COMP mode, clears the display. in AER mode, clears the entire AER memory, including all expressions. |
I-2, I-3, II | in COMP mode, clears the display. in AER mode, deletes the displayed AER expression. |
|
◺ | I-1 | in AER mode, closes the area and displays the next area for editing. Must not be used in the end of the last area. |
I-2, I-3, II | in AER mode, places an end instruction to the expression. | |
, | I-2, I-3, II | Before interpreting the next part of expression, result of the previous part will be displayed. E.g. (AER-I) A+2STOA,B-2 expression adds 2 to A, displays the result, then displays the result of B-2 after pressing COMP. |
_ | I-2, I-3, II | Continues interpreting the expression with the next part without displaying the result of the previous part. E.g. (AER-I) A+2STOA_B-2 expression adds 2 to A without displaying the result, then shows the result of B-2. |
TITLE or PRO (TITLE) | I-2, II | Displays the title of the next expression. |
2ndF TITLE or 2ndF PRO (TITLE) | I-2, II | Displays the title of the previous expression. |
↓ | I-2, II | Moves to the next subroutine, or expression and displays that. |
2ndF ↑ | I-2, II | Moves to the previous subroutine, main routine, or expression and displays that. |
f()= | I-1, I-2, I-3 | Instruction for inputting variables. Between the starting and closing instruction, the given memory registers will be defined as variables, so values of that will be requested to key in over and over. E.g. after running an expression which starts with f()=AHf()=, variables A and H will be requested for input from the keyboard. In this part, conditional branches can not be used. |
= | II | Instruction for assigning value to a variable. The name of the variable is on the eft, the calculation is on the right. E.g. diameter=3×8. |
SUB: | I-2, II | in AER mode, adds a new subroutine at the end of the current expression. |
2ndF 1, 2 stb. | I-2, II | in AER mode, places the symbol of the appropriate subroutine. After run, this calls the given subroutine. |
2ndF >, >=, ≠ | I-2, I-3, II | in AER mode, places a conditional branching instruction to the expression, so compares the following two expression parts, and depends of the result, interpreting the expression will be continued. See -Y→[], -N→[] |
2ndF -Y→[] | I-2, I-3, II | in AER mode, places a true branch in a conditional jump instruction. If the previously given condition is true, the expression after this instruction will be executed.. To end the expression part, press this key again. If the expression contains a No branch, the Yes branch can be omitted. E.g. X 2ndF >= 25 2ndF -Y→[] B 2ndF -Y→[] expression results displaying B if X is greater than or equal to 25. |
2ndF -N→[] | I-2, I-3, II | in AER mode, places a false branch in a conditional jump instruction. If the previously given condition is false, the expression after this instruction will be executed.. To end the expression part, press this key again. If the expression contains a Yes branch, the No branch can be omitted. E.g. X 2ndF >= 25 2ndF -Y→[] B 2ndF -Y→[] 2ndF -N→[] C -N→[] expression results displaying B if X is greater than or equal to 25, or displaying C if not. |
2ndF ↳ | I-2, I-3, II | in AER mode, places the start of loop instruction, to where the execution will be returned with 2ndF ↰. |
2ndF ↰ | I-2, I-3, II | in AER mode, places the end of loop instruction, which causes the execution will return to the corresponding 2ndF ↳ part. E.g. 2ndF ↳ A × 2 STO A _ A 2ndF > 100 2ndF -Y→[] 2ndF ↰ 2ndF -Y→[] A expression multiplies A by 2 until the result will be greater than 100. |
2ndF VAR | I-2 | Turns on, or off the variable mode. In that mode, pressing alphabetic or numeric keys, among with the greek symbols labeled on keyboard, enters the name of a variable, which will be requested to input at every execution. |
SHIFT 1, 2, etc. A .. Z |
II | For entering variable names. The numbers in variable names is smaller than as usual. |
M.CK | I-2, I-3, II | Displays the remaining free space in the AER storage. |
DIM | I-2, II | Defines an array (vector or matrix). To define a n×m matrix, place DIM variablename[n, m] to the expression. E.g. DIM A[2,3] |
, | I-2, II | For entering indices for arrays and matrices: the one or two indices must be in between of square brackets. The indices of two-dimensional arrays (matrices) must be separated with commas. E.g. A[2], vagy B[2,1] |
Programming example
The different versions of the AER can be compared to the BASIC language used in pocket computers of the era using a sample school grading program. Given a test for which we give the maximum score and the lower limit of passing the test. It then displays the grade (between 1=F and 5=A) and percentage based on the scores achieved by the specified number of students, and after entering the scores for all students, calculates the average of all students in both grades and percentages.The sample data are as follows:
Student No. | Score | Percentage | Grade |
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 |
Due to the small memory capacity, this program cannot be implemented on EL-5101, EL-5102, EL-5103 and EL-5103S models. Due to the lack of multistatement operators, the program cannot be written in the AER mode of pocket computers either.
BASIC (for Sharp Pocket Computers)
20 F=M*Y/100
30 PRINT "PASS LIMIT FROM";F
40 H=(M-F)/4
50 FOR D=1 TO X
60 GOSUB 300
70 PRINT E
80 NEXT D
90 PRINT "AVERAGE:";O/X
100 PRINT "AVERAGE %:";N/X
110 END
200 REM DATA INPUT
210 INPUT "MAX. SCORE?";M
220 INPUT "PASS LIMIT %?";Y
230 INPUT "STUDENTS?";X
240 O=0:N=0:D=0
250 RETURN
300 REM STUDENT DATA
310 PRINT "STUDENT";D
320 INPUT "SCORE?";P
330 S=100*P/M
340 PRINT "PERCENTAGE:";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
400 PRINT "GRADE:";E
410 RETURN
AER-I First version (EL-5100, EL-5100S)
AER program lists: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 expression part | BASIC equivalent | Description |
1;f(AB)= | 10 "A"INPUT A:INPUT B | inputting max. score and pass limit percent |
AB÷100STOD, | 20 D=A*B/100:PRINT D | calculating pass limit score |
0STOCSTOISTOJ | 30 C=0:I=0:J=0 | clearing variables |
A-D=÷4STOE◺ | 40 E=(A-D)/4:PRINT E 50 END |
calculating score/grade distances |
2;f(F)= | 60 "B"INPUT F | inputting score |
100F÷A, | 70 X=F*100/A:PRINT X | calculating percentage |
+CSTOC | 80 C=X+C | accumulating percentages |
F-D=÷E+2STOH, | 90 H=(F-D)/E+2:PRINT H | displaying calculated grade |
f(H)= | 100 INPUT H | inputting the real grade |
I+HSTOI | 110 I=I+H | accumulating grade sum |
J+1STOJ | 120 J=J+1 | next student identifier |
+1◺ | 130 PRINT J+1 140 END |
displaying next student identifier |
3;C÷J | 150 "C"PRINT C/J | displaying average percentage |
Variables:
A | maximum score |
B | pass limit in percentages |
C | sum of percentages |
D | pass limit score |
E | score/grade distance |
F | earned points (score) |
G | earned percentage |
H | earned grade |
I | sum of grades |
J | current student number |
Running the program:
First, the display format must be defined as 2 decimals with TAB 2.
The first expression can be started by pressing 2ndF 1; in COMP mode. The maximum score and pass limit in percentages must be keyed in.
Then, displays the pass limit score, and the score/grade distance.
The second expression can be started by pressing 2ndF 2;.
The earned score for student 1 must be keyed in. Displays the earned percentage and a calculated grade between 0 and 6. If this number is smaller than 2, the test fails (grade is 1). If this number is 6, which means 100% pass, grade is 5. In all other cases, the grade is the integer part of the displayed number. The grade must be keyed in.
Displays the number of the next student. The above steps must be repeated.
After displaying and entering the grade of the last student, the third expression must be started by pressing 2ndF 3;.
Displays the percentage average. The grade average can be easily calculated as follows: CL I ÷ J =.
Key(s) | Display | Description |
2ndF 1; | 1;A=? | |
150 COMP | 1;B=? | entering maximum score |
70 COMP | entering pass limit percentage | |
1;ANS 1= 105.00 | the pass limit is 105 points | |
COMP | 1;ANS 2= 11.25 | the distance between the grades is 11.25 points. |
2ndF 2; | 2;F=? | |
134 COMP | entering earned score for student 1. | |
2;ANS 1= 89.33 | percentage for student 1 is 89.33 %. | |
COMP | 2;ANS 2= 4.58 | grade is 4. |
COMP | 2;H=? | |
4 COMP | reentering the grade | |
2;ANS 3= 2.00 | the next student is the second | |
COMP | 2;F=? | |
89 COMP | entering earned score for student 2 | |
2;ANS 1= 59.33 | percentage for student 2 is 59.33 %. | |
COMP | 2;ANS 2= 0.58 | grade is 1. |
1 COMP | reentering the grade | |
2;ANS 3=3.00 | the next student is the third | |
... | After displaying the results for the last student: | |
2ndF 3; | 3;ANS 1= | percentage average |
CL I ÷ J = | 3.50 | average grade |
AER-I Second version (EL-5050, EL-5150)
This version of AER allows you to use conditional branches, so you don't have to switch between running each area manually, it's done by the program itself. The number of available memory registers is more, and for variables, it is possible to use longer labels, and you can specify labels for each program section, which also makes retrieval easier. Although conditional branches cannot be included in the subroutines, these were used for demonstational purposes. For ease of reading, spaces are always included between expression parts, even where this would not be mandatory.The AER lists are as follows:
1: max×passp÷100⇒F,students_0⇒O⇒N⇒D
2: f(P)=100P÷max⇒S,S+N⇒N_INT((P-F)÷H+2)⇒E
EL-5030 has no VAR mode, so the AER lists were modified:
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 expression part | BASIC equivalent | Description |
1 | 10 "A"GOSUB 200 | calling first subroutine |
(max-F)÷4⇒H_ | 20 H=(M-F)/4 | calculating score/grade distance |
↳ | start of the loop | |
2 | 30 GOSUB 300 | calling second subroutine |
E>5-Y-[5⇒E]_ | 40 IF E>5 THEN E=5 | 100% pass grade is 5 |
2>E-Y-[1⇒E]_ | 50 IF E<2 THEN E=1 | fail grade is 1 |
E, | 60 PRINT E | displays grade |
O+E⇒O_ | 70 O=O+E | accumulating grades |
D+1⇒D_ | 80 D=D+1 | next student number |
D>=students-N-[↰]_ | 90 IF D>=X THEN 110 100 GOTO 30 |
if there are other students, looping back |
O÷students, | 110 PRINT O/X | displays grade average |
N÷students◺ | 120 PRINT N/X 130 END |
displays percentage average |
1: max×passp÷100⇒F, | 200 INPUT M:INPUT Y 210 F=M*Y/100 220 PRINT F |
entering maximum score and pass limit percentage |
students_ | 230 INPUT X | entering number of students |
0⇒O⇒N⇒D | 240 O=0:N=0:D=0 | clearing variables |
250 RETURN | end of subroutine | |
2: f(P)= | 300 INPUT P | inputting earned score |
100P÷max⇒S, | 310 S=100*P/M:PRINT S | displaying score percentage |
S+N⇒N_ | 320 N=S+N | accumulating score percentage |
INT((P-F)÷H+2)⇒E | 330 E=INT((P-F)/H+2) | calculating grade |
340 RETURN | end of subroutine |
Variables:
max (M) | maximum score |
passp (Y) | pass limit in percentages |
students (X) | number of students |
N | sum of percentages |
O | sum of grades |
F | pass limit score |
H | score/grade distance |
P | earned score |
S | earned percentage |
E | earned grade |
D | current student number |
Running the program:
Key(s) | Display | Description |
TAB 0 | ||
TITLE until GRADING | 01:GRADING | |
COMP | max=? | |
150 COMP | passp=? | entering maximum score |
70 COMP | entering pass limit (in percentages) | |
ANS 1= 105.00 | pass limit is 105 points | |
students=? | ||
8 | entering number of students | |
COMP | P=? | |
134 COMP | entering earned score of student 1 | |
ANS 2= 89. | percentage is 89% for student 1 | |
COMP | ANS 3= 4. | grade is 4 for student 1 |
COMP | P=? | |
89 COMP | entering earned score of student 2 | |
ANS 4= 59. | percentage is 59% for student 2 | |
COMP | ANS 5= 1. | grade is 1 for student 2 |
COMP | ||
... | ||
COMP | ANS 18=4. | average grade |
TAB 2 | ANS 18=3.50 | two decimal places |
COMP | ANS 19=84.25 | average percentage |
AER-I Third version (EL-5010, EL-512S, EL-512 II, EL-512H, EL-566, EL-566E)
Due to the simplification of the AER mode, it is not possible to use subroutines or VAR mode for these types.The AER lists are as follows:
AER expression part | BASIC equivalent | Description |
1:f(ABC)= | 10 "A"INPUT A:INPUT B:INPUT C | input maximum score, pass limit percentage and number of students |
AB÷100⇒D, | 20 D=A*B/100:PRINT D | calculating pass limit score |
0⇒I⇒X⇒Y | 30 I=0:X=0:Y=0 | clearing variables |
A-D=÷4⇒E_ | 40 E=(A-D)/4 | calculating score/grade distance |
↳ | starting the loop | |
f(F)= | 50 INPUT F | input earned score |
100F÷A⇒G, | 60 G=F*100/A:PRINT G | calculating earned percentage |
G+X⇒X | 70 X=G+X | accumulating percentages |
INT((F-D)÷E+2)⇒H_ | 80 H=INT((F-D)/E+2) | calculating degree |
H>5-Y-[5⇒H]_ | 90 IF H>5 THEN H=5 | 100% pass grade is 5 |
2>H-Y-[1⇒H]_ | 100 IF H<2 THEN H=1 | fail grade is 1 |
H, | 110 PRINT H | displaying grade |
I+H⇒I | 120 I=I+H | accumulating grades |
Y+1⇒Y | 130 Y=Y+1 | next student |
Y>=C-N-[↰]_ | 140 IF Y>=C THEN 160 150 GOTO 50 |
|
I÷C, | 160 PRINT I/C | displaying grade average |
X÷C◺ | 170 PRINT X/C 180 END |
displaying percentage average |
Variables:
A | maximum score |
B | pass limit in percentages |
C | number of students |
X | sum of percentages |
I | sum of grades |
D | pass limit score |
E | score/grade distance |
F | earned score |
G | earned percentage |
H | earned grade |
Y | current student number |
Running the program:
Press FSE until FIX appears, and TAB 0 to display only integer portions.
Key(s) | Display | Description |
2ndF 1: | ||
COMP | A=? | |
150 COMP | B=? | entering maximum score |
70 COMP | C=? | entering pass limit (in percentages) |
8 COMP | entering number of students | |
ANS 1= 105. | pass limit is 105 points | |
COMP | F=? | |
134 COMP | entering earned score of student 1 | |
ANS 2= 89. | percentage is 89% for student 1 | |
COMP | ANS 3= 4. | grade is 4 for student 1 |
COMP | F=? | |
89 COMP | entering earned score of student 2 | |
ANS 4= 59. | percentage is 59% for student 2 | |
COMP | ANS 5= 1. | grade is 1 for student 2 |
COMP | ||
... | ||
COMP | ANS 18=4. | average grade |
TAB 2 | ANS 18=3.50 | two decimal places |
COMP | ANS 19=84.25 | average percentage |
AER-II (EL-9000, EL-5200)
In the AER-II version, lowercase variable names can be used, and the assignment of values and the request value from the keyboard have become similar to the notations common in mathematics and in BASIC programs. In other respects, the structure of the program is the same as AER-I version 2.AER list:
AER expression part | BASIC equivalent | Description |
1 | 10 "A"GOSUB 200 | calling first subroutine |
dist=(max-pass)÷4_ | 20 H=(M-F)/4 | calculating score/grade distance |
↳ | start of the loop | |
2 | 30 GOSUB 300 | calling second subroutine |
grade>5-Y-[grade=5]_ | 40 IF E>5 THEN E=5 | 100% pass grade is 5 |
2>grade-Y-[grade=1]_ | 50 IF E<2 THEN E=1 | fail grade is 1 |
grade, | 60 PRINT E | displays grade |
grades=grades+grade_ | 70 O=O+E | accumulating grades |
student=student+1_ | 80 D=D+1 | next student number |
student>=students-N-[↰]_ | 90 IF D>=X THEN 110 100 GOTO 30 |
if there are other students, looping back |
grades÷students, | 110 PRINT O/X | displays grade average |
percs÷students◺ | 120 PRINT N/X 130 END |
displays percentage average |
1: max=?_ | 200 INPUT M | entering maximum score |
passp=?_ | 210 INPUT Y | entering pass limit percentage |
students=?_ | 220 INPUT X | entering number of students |
pass=max×passp÷100, | 230 F=M*Y/100: PRINT F | displaying pass limit |
grades=0_ | 240 O=0 | clearing variable |
percs=0_ | 250 N=0 | clearing variable |
student=0_ | 260 D=0 | clearing variable |
270 RETURN | end of subroutine | |
2: score=?_ | 300 INPUT P | inputting earned score |
gradep=100score÷max, | 310 S=100*P/M:PRINT S | displaying score percentage |
percs=percs+gradep _ | 320 N=S+N | accumulating score percentage |
grade=INT((score-pass)÷dist+2) | 330 E=INT((P-F)/H+2) | calculating grade |
340 RETURN | end of subroutine |
Variables:
max | maximum score |
passp | pass limit in percentages |
students | number of students |
percs | sum of percentages |
grades | sum of grades |
pass | pass limit score |
dist | score/grade distance |
score | earned score |
gradep | earned percentage |
grade | earned grade |
student | current student number |
Running the program:
Press FSE until FIX appears, and TAB 0 to display only integer portions.
Key(s) | Display | Description |
TITLE until GRADING | 01:GRADING | |
COMP | max=? | |
150 COMP | passp=? | entering maximum score |
70 COMP | students=? | entering pass limit (in percentages) |
8 COMP | entering number of students | |
pass= 105.00 | pass limit is 105 points | |
COMP | score=? | |
134 COMP | entering earned score of student 1 | |
gradep= 89. | percentage is 89% for student 1 | |
COMP | ANS 3= 4. | grade is 4 for student 1 |
COMP | score=? | |
89 COMP | entering earned score of student 2 | |
gradep= 59. | percentage is 59% for student 2 | |
COMP | ANS 5= 1. | grade is 1 for student 2 |
COMP | ||
... | ||
COMP | ANS 18=4. | average grade |
TAB 2 | ANS 18=3.50 | two decimal places |
COMP | ANS 19=84.25 | average percentage |