DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦1392bea7e⟧

    Length: 2496 (0x9c0)
    Notes: Mikados TextFile, Mikados_K
    Names: »PSCT3«

Derivation

└─⟦ec8c1e0b0⟧ Bits:30007442 8" floppy ( MIKPROG vol. 1-3, MIKREL vol. 1-3, PCSE 4.7.80 vol 1-3, GL.SYS )
    └─ ⟦this⟧ »PSCT3« 

Text

PROGRAM PSCT3;
 
VAR A,B,C,D: REAL;
    I,J,START : INTEGER;
    E: ARRAY (1..2,1..5) OF REAL;
 
FUNCTION REALTEST( VAR Q: REAL; Z: REAL ): REAL;
  BEGIN
  Q := Q + Z;
  Z := Q - Z;
  REALTEST := Q*Z
  END;
 
PROCEDURE SIMPLETEST;
  BEGIN
  WRITELN( LIST, 1.0, 0.1234567890123456, 1234567890123456.78 );
  WRITELN( LIST, 1E3, 1E125, 0.555666777888999E-30 );
  A := 1.111111111111 + 2.222222222222;
  B := 3.333333333333E10 - 4.444444444444E10;
  C := 2.222222222222 * 1.1;
  D := 1.111111111111 / 1.11;
  WRITELN( LIST, A, B, C, D );
  END;
 
BEGIN
  START := TIME;
  WRITELN( 'START OF EXTENDED PRECISION TEST' );
 
  SIMPLETEST;
 
  A := 0.0; B := -0.0; C := -C; D := ABS( C );
  WRITELN( LIST, A, B, C, D );
 
  A := 5; B := -32767; C := 0; D := 5*7.0;
  WRITELN( LIST, A, B, C, D );
 
  A := 5.51; B := -5.49;
  WRITELN( LIST, TRUNC(A),',', TRUNC(B),',', TRUNC(-A),',', TRUNC(-B),
                 ',', TRUNC(5.0),',', TRUNC(-5.0),',', TRUNC(-4.999));
  WRITELN( LIST, ROUND(A),',', ROUND(B),',', ROUND(-A),',', ROUND(-B),
                 ',', ROUND(5.0),',', ROUND(-5.0),',', ROUND(-4.999));
 
  WRITELN( LIST, PWROFTEN(0), PWROFTEN(124) );
 
  A := 7.0; B := -5.0;
  WRITELN( LIST, REALTEST( A,B ), A, B );
 
  FOR I:=1 TO 2 DO
    FOR J:=1 TO 5 DO
      E(I,J) := I*10.0 + J;
  FOR I:=1 TO 2 DO
    FOR J:=1 TO 5 DO
      WRITELN( LIST, I:2, J:2, E(I,J):8:-1 );
 
  IF (-0.0<>0.0) OR (-5.0>1.0) OR (1.0E123<9.9E122) THEN
    WRITELN( LIST,'....OOPS !');
  IF (5.0>=5.0) AND (-11.999<-10.001) AND (1.999999999999<2.0) THEN
    WRITELN( LIST,'REAL COMPARISONS OK');
 
  FOR I:=-2 TO 15 DO
    BEGIN
    WRITELN( LIST, I:2, ' ', 1.23456789012345:20:I, ' ',
                            -1.23456789012345:I:3, '*' );
    WRITELN( LIST, I:2,' ',0.0000987654321:12:I,12345678901234.0:I:1 )
    END;
 
  FOR I:=-5 TO 5 DO
    BEGIN
    A := ABS(I);
    B := SQRT( A );
    WRITELN( LIST, I:2, B, B*B );
    IF A<>0.0 THEN
      WRITELN( LIST, I:2, LN( A ), EXP( A ), EXP( LN( A ) ) );
    B := I/10;
    C := SIN( B );
    D := COS( B );
    WRITELN( LIST, I:2, C, D, D*D + C*C );
    A := TAN( B );
    WRITELN( LIST, I:2, A, C/D, A-C/D, ARCTAN( A ) );
    END;
 
  WRITELN( LIST, 'TEST OF REAL NUMBERS COMPLETED.' );
  PAGE( LIST );
  WRITE( 'TEST OF REAL NUMBERS COMPLETED. ' );
  WRITELN( 'TIME USED = ', (TIME-START+0.0)/100:6:1, ' SECONDS.' )
END.