home *** CD-ROM | disk | FTP | other *** search
/ PC & Mediji 1997 April / PCM_9704.iso / makri / kvadra~1.txt < prev    next >
Text File  |  1997-03-15  |  2KB  |  54 lines

  1. Sub MAIN
  2. '    Program izracuna kvadratni koren pozitivnih in negativnih
  3. '     stevil z Newtonovo iteracijsko metodo in strojno natacnostjo
  4. '    Opomba: SQRT (-1) = imaginarno stevilo "i"
  5.  
  6. '__________________zajem podatka ___________________________________
  7.  
  8. a = Val(Selection$()) : z = a
  9. If a < 0 Then a = Abs(a) : T = 1
  10. If (a) = 1 Then R$ = "1" : Goto IZPIS
  11. If (a) = 0 Then R$ = "0" : Goto IZPIS
  12.  
  13. '____________izracun kvadratnega korena stevila a___________________
  14.  
  15. a0 = a + 1 : a1 = (a0 + a / a0) / 2
  16.     While a0 <> a1
  17.         a0 = a1 :    a1 = (a0 + a / a0) / 2
  18.     Wend
  19. rezultat = a1 : R$ = Str$(rezultat)
  20.  
  21. '____________zaokrozitev na N decimalk (npr.6)____________________
  22. ZAOKROZEVANJE: N = 6
  23.  
  24. '________razdelitev na celi,decimalni in ekponentni del___________
  25.  
  26. dc = InStr(R$, ".") : exp = InStr(R$, "E") : If exp <> 0 Then exp$ = Mid$(R$, exp, Len(R$) - exp + 1) Else exp = Len(R$)
  27. If dc > 1 Then R$ = LTrim$(Left$(Str$(rezultat), dc)) Else Goto IZPIS
  28. dec1$ = Mid$(Str$(rezultat), dc + 1, exp - dc - 1)
  29. If N = O And Val(Mid$(dec1$, 1, 1)) >= 5 Then K1 = Val(R$) : If K1 > 0 Then K1 = K1 + 1 Else K1 = K1 - 1
  30. If K1 <> 0 Then R$ = Str$(K1) : Goto SKUPAJ
  31. If Len(dec1$) < N And exp$ = "" Then dec1$ = Mid$(Str$(rezultat), dc + 1, exp - dc)
  32. If Len(dec1$) > N Then dec2$ = Mid$(dec1$, N + 1, 1) : dec1$ = Mid$(dec1$, 1, N) : dec$ = ""
  33. If Val(dec1$) = 0 Then dec$ = dec1$ : Goto SKUPAJ
  34. If Val(dec2$) >= 5 Then
  35.      For x = 1 To N - 1 : dec$ = dec$ + Mid$(dec1$, x, 1) : Next : dec$ = dec$ + LTrim$(Str$(Val(Mid$(dec1$, N, 1)) + 1))
  36.     Else
  37.     dec$ = dec1$
  38. End If
  39. SKUPAJ:
  40. If Len(dec$) < N Then For x = Len(dec$) To N - 1 : dec$ = dec$ + "0" : Next
  41. R$ = R$ + dec$ + exp$
  42.  
  43. '__________z vklopom in izklopom REM izbiramo nacin izpisa_________
  44.  
  45. IZPIS:
  46.  
  47. Insert "sqrt " + Str$(z) + " = " + R$ + " "  : If T = 1 Then Insert "i "
  48.  
  49. REM WordRight : Insert " = " + R$ + " " : If T = 1 Then Insert "i (sqrt)" Else Insert " (sqrt) "
  50.  
  51. REM WordRight : CharRight 1 :  Insert Chr$(9) + R$  : If T = 1 Then Insert " i "
  52.  
  53. End Sub
  54.