home *** CD-ROM | disk | FTP | other *** search
/ PC & Mediji 1997 January / PCM_9701.iso / makri / atan3.txt < prev    next >
Encoding:
Text File  |  1996-11-24  |  2.1 KB  |  64 lines

  1. Sub MAIN
  2.  
  3. '    program izracuna "ARCTAN" (Mat.prirocnik str.380)
  4. '   (zelo pocasen za "a" okrog 1)
  5.  
  6. '__________________zajem podatka ___________________________________
  7.  
  8. a = Val(Selection$())
  9. pi = 3.1415926535898
  10. If (a) = 0 Then R$ = "0" : Goto IZPIS
  11. If (a) = 1 Then R$ = "45" : Goto IZPIS
  12. If (a) = - 1 Then R$ = "-45" : Goto IZPIS
  13. If Abs(a) < 1 Then Goto MALI Else Goto VELIKI
  14.  
  15. MALI:
  16. '__________________izracun "arctan" za Abs(a)<1_____________________
  17.  
  18. a2 = a : imen1 = 1 : st1 = 1  : stev1 = a2
  19. For N = 1 To (35 + 3 * Int(1 / (1 - Abs(a))))    'zg.meja se prilagaja "a"
  20.     stev1 = a2 * a * a : a2 = stev1
  21.     imen = (2 * N + 1)
  22.     st1 = st1 * (- 1)
  23.     K = st1  / imen  * stev1 : vrsta = vrsta + K
  24. Next
  25. rezultat = 180 / pi * (a + vrsta) : R$ = Str$(rezultat) : Goto ZAOKR
  26.  
  27. VELIKI:
  28. '__________________izracun "arctan" za Abs(a)>1_____________________
  29.  
  30. a2 = a : imen1 = 1 : st1 = 1  : stev1 = a2
  31. For N = 1 To (35 + 3 * Int(1 / (Abs(a) - 1)))    'zg.meja se prilagaja "a"
  32.     stev1 = a2 * a * a : a2 = stev1
  33.     imen = (2 * N + 1)
  34.     st1 = st1 * (- 1)
  35.     K = st1  / (imen  * stev1) : vrsta = vrsta - K
  36. Next
  37.     If a > 0 Then rezultat = 90 + 180 / pi * (- 1 / a + vrsta)
  38.     If a < 0 Then rezultat = - 90 + 180 / pi * (- 1 / a + vrsta)
  39. R$ = Str$(rezultat)
  40.  
  41. ZAOKR:
  42. '________________zaokrozitev na N decimalk________________________
  43.  
  44. N = 4
  45. prim = 1 : For I = 1 To N : prim = prim * 10 : Next
  46. dc = InStr(R$, ".")
  47. If dc > 1 Then R$ = LTrim$(Left$(Str$(rezultat), dc)) Else Goto IZPIS
  48. dec1 = Val(Mid$(Str$(rezultat), dc + 1, N + 1)) / 10
  49. dec2 = Val(Mid$(Str$(rezultat), dc + 1, N) + "0") / 10
  50. D = dec1 - dec2 : If D >= 0.5 Then dec2 = dec2 + 1
  51. dec$ = LTrim$(Str$(dec2)) : s = Len(dec$)
  52. If dec2 = prim Then R$ = Str$(Val(R$) + 1) + "." : dec$ = "0" : s = 1
  53. For x = s + 1 To N : dec$ = "0" + dec$ : Next
  54.  
  55. IZPIS:
  56.  
  57. Insert "atan " + Str$(a) + " = " + R$ + dec$ : Superscript 1 : Insert " 0 " : Superscript 0
  58.  
  59. REM WordRight : Insert " = " + R$ + dec$ : Superscript 1 : Insert " 0 " : Superscript 0 : Insert " (atan)"
  60.  
  61. REM WordRight : CharRight 1 :  Insert Chr$(9) + R$ + dec$
  62.  
  63. End Sub
  64.