Virtual Museum of Calculators
Menu
C/CE
Calculators
Slide Rules
Others
Manufacturers
Search
Váltás magyarra

Milestones in the History of Calculators

History and Programming of AER Calculators

 
As a world first, Sharp introduced the EL-5100 scientific calculator in 1979, which was the first to include a dot matrix LCD display capable of displaying alphanumeric characters, and the first to be used with the now standard expression evaluation method: the algebraic expression keyed in will be calculated only after pressing the = key. In addition, the machine was programmable, as it was able to store such expressions in four programs (areas) and recalculate them with new and new values. The manufacturer called the new system AER which abbreviates Algebraic Expression Reserve. Later, several machines were built according to this system, and the AER itself was further developed and expanded with conditional branching, looping and subroutine handling capabilities, which are common in professional programmable calculators.

Calculators with AER: EL-5100 (1979), EL-5150 (1985), front: EL-5103 (1980), EL-512S (1988), EL-9000 (1986)
EL-5100
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-5101
EL-5102
EL-5103
EL-5103S
The subsequent models with smaller memory (EL-5101, EL-5102, EL-5103, EL-5103S) could handle only a single AER area which can contain up to 48 steps. In manual calculation mode (COMP), however, the 80-step expressions also remained evaluable. The number of variables that could be used on these machines was only six (A..E and M).
EL-5150
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.
The machines, which can now store 99 expressions, also store a short identifier for each of them, based on which we can choose between our programs in a menu-like manner.

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.

EL-5030

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-5010
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-566
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-9000
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.

PC series

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
After the description of each AER program, a detailed description can be found, where each part of the expression is listed separately with an equivalent BASIC instruction (program line), for comparison and easier understanding.

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)

10 "A"GOSUB 200
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:
1;f(AB)=AB÷100STOD,0STOC0STOI0STOJ(A-D)÷4STOE◺
2;f(F)=100F÷A,+CSTOC(F-D)÷E+2STOH,f(H)=I+HSTOIJ+1STOJJ+1◺
3;C÷J
Due to the small capacity of the AER program memory, certain simplifications and tricks had to be applied in order to accommodate the most important parts of the program. Thus, the resulting program is as follows:
1;f(AB)=AB÷100STOD,0STOCSTOISTOJA-D=÷4STOE◺
2;f(F)=100F÷A,+CSTOCF-D=÷E+2STOH,f(H)=I+HSTOIJ+1STOJ+1◺
3;C÷J
Mivel a program ígySince the program contains 79 steps, only one step remains free. It was not possible to enter the steps for calculating and displaying the grade average, this must be calculated manually.
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:

01:GRADING: 1(max-F)÷4⇒H_↳2E>5-Y-[5⇒E]_2>E-Y-[1⇒E]_E,O+E⇒O_D+1⇒D_D>=students-N-[↰]_O÷students,N÷students◺
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
For input the value of P variable, we must use the f()= instruction, because lowercase variables initiate input for the first time only, but f()= instruction forces input in each cycle.

EL-5030 has no VAR mode, so the AER lists were modified:

01:GRADING: 1(M-F)÷4⇒H_↳2E>5-Y-[5⇒E]_2>E-Y-[1⇒E]_E,O+E⇒O_D+1⇒D_D>=X-N-[↰]_O÷X,N÷X◺
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:

1:f(ABC)=AB÷100⇒D,0⇒I⇒X⇒Y_(A-D)÷4⇒E_↳f(F)=100F÷A⇒G,G+X⇒X_INT((F-D)÷E+2)⇒H_H>5-Y-[5⇒H]_2>H-Y-[1⇒H]_H,I+H⇒I_Y+1⇒Y_Y>=C-N-[↰]_I÷C,X÷C◺
EL-566E uses semicolons instead of colons:
1:f(ABC)=AB÷100⇒D;0⇒I⇒X⇒Y_(A-D)÷4⇒E_↳f(F)=100F÷A⇒G;G+X⇒X_INT((F-D)÷E+2)⇒H_H>5-Y-[5⇒H]_2>H-Y-[1⇒H]_H;I+H⇒I_Y+1⇒Y_Y>=C-N-[↰]_I÷C,X÷C◺
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:

01:GRADING: 1dist=(max-pass)÷4_↳2grade>5-Y-[grade=5]_2>grade-Y-[grade=1]_grade,grades=grades+grade_student=student+1_student>=students-N-[↰]_grades÷students,percs÷students◺ 1: max=?_passp=?_students=?_pass=max×passp÷100,grades=0_percs=0_student=0 2: score=?_gradep=100score÷max,percs=percs+gradep_grade=INT((score-pass)÷dist+2)
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

Sharp
EL-5100
1979-83
Sharp
EL-5100S
1983-85
Sharp
EL-5050
1985-89
Sharp
EL-5150
1985-90
Sharp
EL-512S
1988
Design & HTML: Modulit Bt.
(C) www.arithmomuseum.com 2004-2016.