home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG028.ARK / ARRAY.ALG < prev    next >
Text File  |  1984-04-29  |  3KB  |  87 lines

  1. BEGIN
  2. INTEGER A,B,C,D,E,F;
  3. WRITE("INPUT THE UPPER AND LOWER BOUNDS OF A 3 DIMENSIONAL ARRAY");
  4. WRITE("THE FIRST TWO ENTRIES ARE FOR THE 1ST DIMENSION");
  5. WRITE("AND SO ON FOR THE OTHER DIMENSIONS.  THE PROGRAM");
  6. WRITE("EXPECTS SIX ENTRIES: A LOWER AND UPPER BOUND FOR EACH");
  7. WRITE("DIMENSION. SAMPLE DATA AT THIS POINT IS 1,3,5,6,11,13");
  8. READ(A,B,C,D,E,F);
  9.   BEGIN
  10.    INTEGER ARRAY THREE[A:B,C:D,E:F]; INTEGER I,J,K;
  11.     WRITE(TAB 14,"THREE DIMENSION ARRAY"); WRITE(" ");
  12.     WRITE(TAB 8,"ARRAY SUBSCRIPTS",TAB 17,"CONTENTS"); WRITE(" ");
  13.     WRITE(TAB 1,"ROW",TAB 11,"COLUMN",TAB 10,"PAGE"); WRITE(" ");
  14.     WRITE("INPUT VARIOUS INTEGER VALUES TO FILL THE ARRAY");
  15.     FOR I:=A STEP 1 UNTIL B DO
  16.       BEGIN
  17.        FOR J:= C STEP 1 UNTIL D DO
  18.          BEGIN
  19.           K:=E;
  20.           WHILE K<= F DO
  21.             BEGIN
  22.              READ(THREE[I,J,K]); 
  23.              WRITE(I,TAB 8,J,TAB 8,K,TAB 5,THREE[I,J,K]); WRITE(" ");
  24.              K:=K+1;
  25.             END;
  26.           END;
  27.        END; WRITE(" ");
  28.  
  29.     BEGIN INTEGER X,P;
  30.       WRITE("INPUT A VALUE FOR P, IF P<0 X WILL BE SET TO");
  31.       WRITE("TO THE FIRST ELEMENT IN THE ARRAY, IF P>0 THEN");
  32.       WRITE("X WILL BE SET TO THE LAST ELEMENT OF THE ARRAY");
  33.       WRITE("SAMPLE INPUT 3");
  34.       READ(P);
  35.       X:= IF P<0 THEN THREE[A,C,E] ELSE THREE[B,D,F];
  36.       WRITE("X= ",X," FIRST ELEMENT = ",THREE[A,C,E]," LAST ELEMENT = ",
  37.               THREE[B,D,F]); WRITE(" ");
  38.  
  39.       IF P<> 1 THEN
  40.         BEGIN
  41.           WRITE(TAB 14,"SECOND PAGE OF ARRAY"); WRITE(" ");
  42.     WRITE(TAB 8,"ARRAY SUBSCRIPTS",TAB 17,"CONTENTS"); WRITE(" ");
  43.       WRITE(TAB 1,"ROW",TAB 11,"COLUMN",TAB 10,"PAGE"); WRITE(" ");
  44.           FOR I:=A STEP 1 UNTIL B DO
  45.             BEGIN 
  46.               FOR J:=C STEP 1 UNTIL D DO
  47.                 WRITE(I,TAB 8,J,TAB 8,E+1,TAB 5,THREE[I,J,E+1]);
  48.             END;
  49.         END
  50.       ELSE
  51.         BEGIN
  52.           WRITE(TAB 14,"SECOND ROW OF ARRAY"); WRITE(" ");
  53.        WRITE(TAB 8,"ARRAY SUBSCRIPTS",TAB 17,"CONTENTS"); WRITE("  ");
  54.        WRITE(TAB 1,"ROW",TAB 11,"COLUMN",TAB 10, "PAGE"); WRITE(" ");
  55.           FOR I:=C STEP 1 UNTIL D DO
  56.             BEGIN
  57.              J:=E;
  58.              WHILE J<=F DO
  59.                BEGIN
  60.                  WRITE(THREE[A+1,I,J]);
  61.                  J:=J+1;
  62.                END;
  63.             END;
  64.          END;
  65.       END;
  66.  WRITE(" ");
  67.  
  68.    BEGIN
  69.      INTEGER Z,Y;
  70.      WRITE("INPUT A VALUE TO TEST THE ALGOL-M CASE STATEMENT");
  71.      WRITE("THE VALUE MUST BE BETWEEN 0 AND 4 SAMPLE 3");
  72.      WRITE("FOR THIS INPUT A RESULT OF 13 WILL BE RETURNED");
  73.      READ(Z);
  74.        CASE Z OF
  75.         BEGIN
  76.           Y:=10;
  77.           Y:=11;
  78.           Y:=12;
  79.           Y:=13;
  80.           Y:=14;
  81.         END;
  82.      WRITE(TAB 4,"Y = ",Y);
  83.      WRITE(" ");
  84.   END;
  85. END;
  86. END
  87.