Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ALGOL TFGs FORTRAN

2 views
Skip to first unread message

HRM Resident

unread,
Dec 5, 2022, 2:32:31 PM12/5/22
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

James Warren

unread,
Dec 5, 2022, 2:41:27 PM12/5/22
to
Better. Still ugly.
0 new messages