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

  1. Sub MAIN
  2. '    program izracuna "TAN" ( TAN = SIN/COS )za Abs(a)<11796480
  3.  
  4. '__________________zajem podatka in pretvarjanje v radiane_________
  5.  
  6. a = Val(Selection$()) : adeg = a
  7. If a Mod 360 <> 0 Then a = a - Int(a / 360) * 360 Else a = 0
  8. If a < 0 Then a = 360 + a
  9. If Abs(a) = 45 Or Abs(a) = 225 Then R$ = "1" : Goto IZPIS
  10. If Abs(a) = 135 Or Abs(a) = 315 Then R$ = "-1" : Goto IZPIS
  11. If Abs(a) = 0 Or Abs(a) = 180 Or Abs(a) = 360 Then R$ = "0" : Goto IZPIS
  12. If Abs(a) = 90 Or Abs(a) = 270 Then nesk = 1 : Goto IZPIS
  13. a = a * 3.1415926535898 / 180
  14.  
  15. '__________________izracun SIN kota "a"____________________________
  16.  
  17. a2 = a : imen = 1 : koef = 1 : s = 1
  18. For N = 1 To 12
  19.     stev = a2 * a * a : a2 = stev
  20.     For x = s To (2 * N + 1) : imen = imen * x : Next  x : s = 2 * N + 2
  21.     If (N / 2 - Int(N / 2)) <> 0 Then koef = koef * (- 1)
  22.     vrsta = vrsta + (koef * stev / imen) : koef = 1
  23. Next
  24. rezultat1 = a + vrsta
  25.  
  26. '__________________izracun COS kota "a"____________________________
  27.  
  28. a2 = 1 : imen = 1 : koef = 1 : s = 1 : vrsta = 0
  29. For N = 1 To 12
  30.     stev = a2 * a * a : a2 = stev
  31.     For x = s To 2 * N : imen = imen * x : Next  x : s = 2 * N + 1
  32.     If (N / 2 - Int(N / 2)) <> 0 Then koef = koef * (- 1)
  33.     vrsta = vrsta + (koef * stev / imen) : koef = 1
  34. Next
  35. rezultat2 = 1 + vrsta
  36. rezultat = rezultat1 / rezultat2                'TAN = SIN/COS
  37. R$ = Str$(rezultat)
  38.  
  39. '________________zaokrozitev na N decimalk________________________
  40.  
  41. N = 4 : If Len(R$) < 4 + N Then Goto IZPIS
  42. prim = 1 : For I = 1 To N : prim = prim * 10 : Next
  43. dc = InStr(R$, ".")
  44. If dc > 1 Then R$ = LTrim$(Left$(Str$(rezultat), dc)) Else Goto IZPIS
  45. dec1 = Val(Mid$(Str$(rezultat), dc + 1, N + 1)) / 10
  46. dec2 = Val(Mid$(Str$(rezultat), dc + 1, N) + "0") / 10
  47. D = dec1 - dec2 : If D >= 0.5 Then dec2 = dec2 + 1
  48. dec$ = LTrim$(Str$(dec2)) : s = Len(dec$)
  49. If dec2 = prim Then R$ = Str$(Val(R$) + 1) + "." : dec$ = "0" : s = 1
  50. For x = s + 1 To N : dec$ = "0" + dec$ : Next
  51.  
  52. IZPIS:
  53. Insert "tan " + Str$(adeg) : Superscript 1 : Insert " 0 " : Superscript 0 :
  54. If nesk <> 1 Then Insert " = " + R$  + dec$  Else Insert " = " : InsertSymbol .Font = "Symbol", .CharNum = "165"
  55.  
  56. REM WordRight : Superscript 1 : Insert " 0 " : Superscript 0 : If nesk <> 1 Then Insert " = " + R$  + dec$ + " (tan)" Else Insert " = " : InsertSymbol .Font = "Symbol", .CharNum = "165"
  57.  
  58. REM WordRight : CharRight 1 :  Insert Chr$(9) + R$ + dec$
  59.  
  60. End Sub
  61.