September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
35
Task/Arrays/Simula/arrays-1.simula
Normal file
35
Task/Arrays/Simula/arrays-1.simula
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
BEGIN
|
||||
|
||||
PROCEDURE STATIC;
|
||||
BEGIN
|
||||
INTEGER ARRAY X(0:4);
|
||||
|
||||
X(0) := 10;
|
||||
X(1) := 11;
|
||||
X(2) := 12;
|
||||
X(3) := 13;
|
||||
X(4) := X(0);
|
||||
|
||||
OUTTEXT("STATIC AT 4: ");
|
||||
OUTINT(X(4), 0);
|
||||
OUTIMAGE
|
||||
END STATIC;
|
||||
|
||||
PROCEDURE DYNAMIC(N); INTEGER N;
|
||||
BEGIN
|
||||
INTEGER ARRAY X(0:N-1);
|
||||
|
||||
X(0) := 10;
|
||||
X(1) := 11;
|
||||
X(2) := 12;
|
||||
X(3) := 13;
|
||||
X(4) := X(0);
|
||||
|
||||
OUTTEXT("DYNAMIC AT 4: ");
|
||||
OUTINT(X(4),0);
|
||||
OUTIMAGE
|
||||
END DYNAMIC;
|
||||
|
||||
STATIC;
|
||||
DYNAMIC(5)
|
||||
END ARRAYS.
|
||||
145
Task/Arrays/Simula/arrays-2.simula
Normal file
145
Task/Arrays/Simula/arrays-2.simula
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
BEGIN
|
||||
|
||||
CLASS ITEM;;
|
||||
|
||||
CLASS ITEMARRAY(N); INTEGER N;
|
||||
BEGIN
|
||||
REF(ITEM) ARRAY DATA(1:N);
|
||||
OUTTEXT("NEW ITEMARRAY WITH "); OUTINT(N, 0); OUTTEXT(" ELEMENTS");
|
||||
OUTIMAGE;
|
||||
END;
|
||||
|
||||
CLASS ARRAYLIST;
|
||||
BEGIN
|
||||
|
||||
PROCEDURE EXPAND(N); INTEGER N;
|
||||
BEGIN
|
||||
INTEGER I;
|
||||
REF(ITEMARRAY) TEMP;
|
||||
OUTTEXT("EXPAND TO CAPACITY "); OUTINT(N, 0); OUTIMAGE;
|
||||
TEMP :- NEW ITEMARRAY(N);
|
||||
FOR I := 1 STEP 1 UNTIL SIZE DO
|
||||
TEMP.DATA(I) :- ITEMS.DATA(I);
|
||||
ITEMS :- TEMP;
|
||||
END;
|
||||
|
||||
PROCEDURE ADD(T); REF(ITEM) T;
|
||||
BEGIN
|
||||
IF SIZE + 1 > CAPACITY THEN
|
||||
BEGIN
|
||||
CAPACITY := 2 * CAPACITY;
|
||||
EXPAND(CAPACITY);
|
||||
END;
|
||||
SIZE := SIZE + 1;
|
||||
ITEMS.DATA(SIZE) :- T;
|
||||
OUTTEXT("SIZE IS "); OUTINT(SIZE, 0); OUTIMAGE;
|
||||
END;
|
||||
|
||||
PROCEDURE REMOVE(I); INTEGER I;
|
||||
BEGIN
|
||||
INTEGER J;
|
||||
IF I < 1 OR I > SIZE THEN ERROR("REMOVE: INDEX OUT OF BOUNDS");
|
||||
FOR J := I STEP 1 UNTIL SIZE - 1 DO
|
||||
ITEMS.DATA(J) :- ITEMS.DATA(J + 1);
|
||||
ITEMS.DATA(SIZE) :- NONE;
|
||||
SIZE := SIZE - 1;
|
||||
END;
|
||||
|
||||
REF(ITEM) PROCEDURE GET(I); INTEGER I;
|
||||
BEGIN
|
||||
IF I < 1 OR I > SIZE THEN ERROR("GET: INDEX OUT OF BOUNDS");
|
||||
GET :- ITEMS.DATA(I);
|
||||
END;
|
||||
|
||||
INTEGER CAPACITY;
|
||||
INTEGER SIZE;
|
||||
REF(ITEMARRAY) ITEMS;
|
||||
|
||||
CAPACITY := 20;
|
||||
SIZE := 0;
|
||||
EXPAND(CAPACITY);
|
||||
|
||||
END;
|
||||
|
||||
|
||||
ITEM CLASS TEXTITEM(TXT); TEXT TXT;;
|
||||
|
||||
ARRAYLIST CLASS TEXTARRAYLIST;
|
||||
BEGIN
|
||||
PROCEDURE ADD(T); TEXT T;
|
||||
THIS TEXTARRAYLIST QUA ARRAYLIST.ADD(NEW TEXTITEM(T));
|
||||
TEXT PROCEDURE GET(I); INTEGER I;
|
||||
GET :- THIS TEXTARRAYLIST QUA ARRAYLIST.GET(I) QUA TEXTITEM.TXT;
|
||||
END;
|
||||
|
||||
|
||||
ITEM CLASS REALITEM(X); REAL X;;
|
||||
|
||||
ARRAYLIST CLASS REALARRAYLIST;
|
||||
BEGIN
|
||||
PROCEDURE ADD(X); REAL X;
|
||||
THIS REALARRAYLIST QUA ARRAYLIST.ADD(NEW REALITEM(X));
|
||||
REAL PROCEDURE GET(I); INTEGER I;
|
||||
GET := THIS REALARRAYLIST QUA ARRAYLIST.GET(I) QUA REALITEM.X;
|
||||
END;
|
||||
|
||||
|
||||
REF(TEXTARRAYLIST) LINES;
|
||||
REF(REALARRAYLIST) REALS;
|
||||
INTEGER I;
|
||||
|
||||
LINES :- NEW TEXTARRAYLIST;
|
||||
LINES.ADD("WE");
|
||||
LINES.ADD("HAVE");
|
||||
LINES.ADD("SEEN");
|
||||
LINES.ADD("THAT");
|
||||
LINES.ADD("ARRAYS");
|
||||
LINES.ADD("ARE");
|
||||
LINES.ADD("A");
|
||||
LINES.ADD("VERY");
|
||||
LINES.ADD("CONVENIENT");
|
||||
LINES.ADD("WAY");
|
||||
LINES.ADD("OF");
|
||||
LINES.ADD("STORING");
|
||||
LINES.ADD("SIMPLE");
|
||||
LINES.ADD("VALUES");
|
||||
LINES.ADD("AND");
|
||||
LINES.ADD("REFERENCES");
|
||||
LINES.ADD("TO");
|
||||
LINES.ADD("MORE");
|
||||
LINES.ADD("COMPLEX");
|
||||
LINES.ADD("CLASS");
|
||||
LINES.ADD("OBJECTS");
|
||||
LINES.ADD("IN");
|
||||
LINES.ADD("AN");
|
||||
LINES.ADD("ORDERED");
|
||||
LINES.ADD("LIST");
|
||||
LINES.ADD(".");
|
||||
|
||||
FOR I := 1 STEP 1 UNTIL LINES.SIZE DO
|
||||
BEGIN
|
||||
OUTINT(I, 0); OUTTEXT(": ");
|
||||
OUTTEXT(LINES.GET(I)); OUTIMAGE;
|
||||
END;
|
||||
|
||||
|
||||
REALS :- NEW REALARRAYLIST;
|
||||
FOR I := 1 STEP 1 UNTIL 10 DO
|
||||
REALS.ADD(I * I);
|
||||
|
||||
FOR I := 1 STEP 1 UNTIL REALS.SIZE DO
|
||||
BEGIN
|
||||
OUTINT(I, 4); OUTTEXT(": ");
|
||||
OUTFIX(REALS.GET(I),2,10); OUTIMAGE;
|
||||
END;
|
||||
|
||||
FOR I := REALS.SIZE STEP - 2 UNTIL 1 DO
|
||||
REALS.REMOVE(I);
|
||||
|
||||
FOR I := 1 STEP 1 UNTIL REALS.SIZE DO
|
||||
BEGIN
|
||||
OUTINT(I, 4); OUTTEXT(": ");
|
||||
OUTFIX(REALS.GET(I),2,10); OUTIMAGE;
|
||||
END;
|
||||
|
||||
END;
|
||||
Loading…
Add table
Add a link
Reference in a new issue