HRM Resident
unread,Dec 5, 2022, 2:32:31 PM12/5/22Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Sign in to report message as abuse
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
This is a cross between Pascal and FORTRAN. It's odd it didn't take
off as it is better than both of those languages.
============
G0>type ARRAY.ALG
BEGIN
INTEGER A,B,C,D,E,F;
WRITE("INPUT THE UPPER AND LOWER BOUNDS OF A 3 DIMENSIONAL ARRAY");
WRITE("THE FIRST TWO ENTRIES ARE FOR THE 1ST DIMENSION");
WRITE("AND SO ON FOR THE OTHER DIMENSIONS. THE PROGRAM");
WRITE("EXPECTS SIX ENTRIES: A LOWER AND UPPER BOUND FOR EACH");
WRITE("DIMENSION. SAMPLE DATA AT THIS POINT IS 1,3,5,6,11,13");
READ(A,B,C,D,E,F);
BEGIN
INTEGER ARRAY THREE[A:B,C:D,E:F]; INTEGER I,J,K;
WRITE(TAB 14,"THREE DIMENSION ARRAY"); WRITE(" ");
WRITE(TAB 8,"ARRAY SUBSCRIPTS",TAB 17,"CONTENTS"); WRITE(" ");
WRITE(TAB 1,"ROW",TAB 11,"COLUMN",TAB 10,"PAGE"); WRITE(" ");
WRITE("INPUT VARIOUS INTEGER VALUES TO FILL THE ARRAY");
FOR I:=A STEP 1 UNTIL B DO
BEGIN
FOR J:= C STEP 1 UNTIL D DO
BEGIN
K:=E;
WHILE K<= F DO
BEGIN
READ(THREE[I,J,K]);
WRITE(I,TAB 8,J,TAB 8,K,TAB 5,THREE[I,J,K]); WRITE(" ");
K:=K+1;
END;
END;
END; WRITE(" ");
BEGIN INTEGER X,P;
WRITE("INPUT A VALUE FOR P, IF P<0 X WILL BE SET TO");
WRITE("TO THE FIRST ELEMENT IN THE ARRAY, IF P>0 THEN");
WRITE("X WILL BE SET TO THE LAST ELEMENT OF THE ARRAY");
WRITE("SAMPLE INPUT 3");
READ(P);
X:= IF P<0 THEN THREE[A,C,E] ELSE THREE[B,D,F];
WRITE("X= ",X," FIRST ELEMENT = ",THREE[A,C,E]," LAST ELEMENT = ",
THREE[B,D,F]); WRITE(" ");
IF P<> 1 THEN
BEGIN
WRITE(TAB 14,"SECOND PAGE OF ARRAY"); WRITE(" ");
WRITE(TAB 8,"ARRAY SUBSCRIPTS",TAB 17,"CONTENTS"); WRITE(" ");
WRITE(TAB 1,"ROW",TAB 11,"COLUMN",TAB 10,"PAGE"); WRITE(" ");
FOR I:=A STEP 1 UNTIL B DO
BEGIN
FOR J:=C STEP 1 UNTIL D DO
WRITE(I,TAB 8,J,TAB 8,E+1,TAB 5,THREE[I,J,E+1]);
END;
END
ELSE
BEGIN
WRITE(TAB 14,"SECOND ROW OF ARRAY"); WRITE(" ");
WRITE(TAB 8,"ARRAY SUBSCRIPTS",TAB 17,"CONTENTS"); WRITE(" ");
WRITE(TAB 1,"ROW",TAB 11,"COLUMN",TAB 10, "PAGE"); WRITE(" ");
FOR I:=C STEP 1 UNTIL D DO
BEGIN
J:=E;
WHILE J<=F DO
BEGIN
WRITE(THREE[A+1,I,J]);
J:=J+1;
END;
END;
END;
END;
WRITE(" ");
BEGIN
INTEGER Z,Y;
WRITE("INPUT A VALUE TO TEST THE ALGOL-M CASE STATEMENT");
WRITE("THE VALUE MUST BE BETWEEN 0 AND 4 SAMPLE 3");
WRITE("FOR THIS INPUT A RESULT OF 13 WILL BE RETURNED");
READ(Z);
CASE Z OF
BEGIN
Y:=10;
Y:=11;
Y:=12;
Y:=13;
Y:=14;
END;
WRITE(TAB 4,"Y = ",Y);
WRITE(" ");
END;
END;
END
G0>algolm sort
ALGOL-M COMPILER VERS 1.1
0 ERROR(S) DETECTED
RunCPM Version 6.0 (CP/M 60K)
G0>runalg sort
ALGOL-M INTERPRETER-VERS 1.0
ALGOL-M SORTING PROGRAM
INPUT AN INTEGER TO INDICATE THE NUMBER OF DECIMAL
NUMBERS TO BE SORTED. INPUT 9999 TO TERMINATE
-> 15
------------------------------
DATA SET 1
------------------------------
ORIGINAL DATA ORDER
INPUT DECIMAL NUMBERS
-> 5
-> -9
-> 122
-> 1
-> 0
-> -456
-> 98
-> 101
-> 12
-> -97
-> -1
-> 17
-> 1098
-> 111
-> 2
1 .50
2 -.90
3 .1220
4 .10
5 .
6 -.4560
7 .98
8 .1010
9 .12
10 -.97
11 -.10
12 .17
13 .1098
14 .1110
15 .20
THERE WERE 58 EXCHANGES REQUIRED; RESULTING ORDER IS
1 .98
2 .50
3 .20
4 .17
5 .1220
6 .12
7 .1110
8 .1098
9 .1010
10 .10
11 .
12 -.10
13 -.4560
14 -.90
15 -.97
------------------------------
INPUT AN INTEGER TO INDICATE THE NUMBER OF DECIMAL
NUMBERS TO BE SORTED. INPUT 9999 TO TERMINATE
-> 9999
END OF RUN
RunCPM Version 6.0 (CP/M 60K)
G0>
--
HRM Resident