home *** CD-ROM | disk | FTP | other *** search
/ Solo Programadores 22 / SOLO_22.iso / disk22 / grnsist / jmpcalcp.txt < prev   
Encoding:
Text File  |  1996-03-25  |  4.0 KB  |  136 lines

  1. ************************************************************************
  2. *
  3. * APLICACION : DESARROLLO
  4. * PROGRAMA   : JMPCALCP
  5. * OBJETIVO   : CALCULADORA
  6. * AUTOR      : JMP
  7. * FECHA      : 3/8/94
  8. *
  9. ************************************************************************
  10. *
  11. DEFINE DATA LOCAL
  12. 01 I          (N3)
  13. 01 M          (F8)
  14. 01 X          (N15,7)
  15. 01 Y          (N15,7)
  16. 01 Z          (N15,7)
  17. 01 A          (N15,7)
  18. 01 B          (N15,7)
  19. 01 C          (N15,7)
  20. 01 D          (N15,7)
  21. 01 W-OPCION   (A2)
  22. 01 W-ENTERO   (N22)
  23. 01 W-DECIMAL  (N22)
  24. 01 S-DECIMAL  (N3)
  25. 01 W-MARCA    (N3)
  26. *
  27. END-DEFINE
  28. *
  29. ************************************************************************
  30. *
  31. ON ERROR
  32.    WRITE '--------------- ERROR ----------------'
  33.    WRITE 'CODIGO ................. : ' *ERROR-NR
  34.    WRITE 'PROGRAMA ............... : ' *PROGRAM
  35.    WRITE 'LINEA .................. : ' *ERROR-LINE
  36.    WRITE 'FECHA Y HORA ........... : ' *DATE *TIME
  37.    WRITE '======================================'
  38. END-ERROR
  39. *
  40. ************************************************************************
  41. *
  42.    SET KEY PF3=ON
  43.    MOVE 3 TO W-MARCA
  44. *
  45. REPEAT
  46.    /*
  47.    SET CONTROL 'WFL55C21B2/10'
  48.    INPUT MARK W-MARCA AND SOUND ALARM USING MAP 'JMPCALCM'
  49.    /*
  50.    IF *PF-KEY = 'PF3'
  51.       MOVE 'F' TO W-OPCION
  52.    END-IF
  53.    /*
  54.    MOVE 3 TO W-MARCA
  55.    DECIDE ON FIRST VALUE OF W-OPCION
  56.           /*
  57.           VALUE '+' COMPUTE Z = X + Y
  58.           VALUE '-' COMPUTE Z = X - Y
  59.           VALUE '*' COMPUTE Z = X * Y
  60.           VALUE '/' PERFORM EXAMINAR-DIVISOR
  61.                     COMPUTE ROUNDED Z = X / Y
  62.           /*
  63.           VALUE 'A+' COMPUTE A = A + Z
  64.           VALUE 'A-' COMPUTE A = A - Z
  65.           VALUE 'AZ' COMPUTE A = Z
  66.           VALUE 'XA' COMPUTE X = A
  67.           VALUE 'AX' COMPUTE A = X
  68.           VALUE 'YA' COMPUTE Y = A
  69.           VALUE 'AY' COMPUTE A = Y
  70.           VALUE 'A0' COMPUTE A = 0
  71.           /*
  72.           VALUE 'B+' COMPUTE B = B + Z
  73.           VALUE 'B-' COMPUTE B = B - Z
  74.           VALUE 'BZ' COMPUTE B = Z
  75.           VALUE 'XB' COMPUTE X = B
  76.           VALUE 'BX' COMPUTE B = X
  77.           VALUE 'YB' COMPUTE Y = B
  78.           VALUE 'BY' COMPUTE B = Y
  79.           VALUE 'B0' COMPUTE B = 0
  80.           /*
  81.           VALUE 'C+' COMPUTE C = C + Z
  82.           VALUE 'C-' COMPUTE C = C - Z
  83.           VALUE 'CZ' COMPUTE C = Z
  84.           VALUE 'XC' COMPUTE X = C
  85.           VALUE 'CX' COMPUTE C = X
  86.           VALUE 'YC' COMPUTE Y = C
  87.           VALUE 'CY' COMPUTE C = Y
  88.           VALUE 'C0' COMPUTE C = 0
  89.           /*
  90.           VALUE 'D+' COMPUTE D = D + Z
  91.           VALUE 'D-' COMPUTE D = D - Z
  92.           VALUE 'DZ' COMPUTE D = Z
  93.           VALUE 'XD' COMPUTE X = D
  94.           VALUE 'DX' COMPUTE D = X
  95.           VALUE 'YD' COMPUTE Y = D
  96.           VALUE 'DY' COMPUTE D = Y
  97.           VALUE 'D0' COMPUTE D = 0
  98.           /*
  99.           VALUE 'X' COMPUTE X = Z
  100.           VALUE 'Z+' COMPUTE Z = Z + X
  101.                      MOVE 1 TO W-MARCA
  102.           VALUE 'Y' COMPUTE Y = Z
  103.           VALUE 'S' COMPUTE ROUNDED Z = SQRT(X)
  104.           VALUE '1' PERFORM EXAMINAR-DIVISOR
  105.                     COMPUTE ROUNDED Z = 1 / Z
  106.           /*
  107.           VALUE 'P' COMPUTE ROUNDED M = Y * LOG(X)
  108.                     COMPUTE ROUNDED Z = EXP(M)
  109.           /*
  110.           VALUE 'R' PERFORM EXAMINAR-DIVISOR
  111.                     COMPUTE ROUNDED M = 1 / Y
  112.                     COMPUTE ROUNDED M = M * LOG(X)
  113.                     COMPUTE ROUNDED Z = EXP(M)
  114.           /*
  115.           VALUE 'F' SET CONTROL 'WB'
  116.                     FETCH 'MENU'
  117.           VALUE 'C' FETCH 'JMPCALCP'
  118.           /*
  119.           NONE VALUE
  120.                 REINPUT '==> OPCION NO VALIDA.'
  121.                         MARK *W-OPCION AND SOUND ALARM
  122.    END-DECIDE
  123. END-REPEAT
  124. *
  125. ************************************************************************
  126. DEFINE SUBROUTINE EXAMINAR-DIVISOR
  127. *
  128. IF Y = 0
  129.    REINPUT '==> EL DIVISOR NO PUEDE SER 0'
  130. END-IF
  131. END-SUBROUTINE
  132. *
  133. ************************************************************************
  134. *
  135. END
  136.