home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC & Mediji 1997 April
/
PCM_9704.iso
/
makri
/
kvadra~1.txt
< prev
next >
Wrap
Text File
|
1997-03-15
|
2KB
|
54 lines
Sub MAIN
' Program izracuna kvadratni koren pozitivnih in negativnih
' stevil z Newtonovo iteracijsko metodo in strojno natacnostjo
' Opomba: SQRT (-1) = imaginarno stevilo "i"
'__________________zajem podatka ___________________________________
a = Val(Selection$()) : z = a
If a < 0 Then a = Abs(a) : T = 1
If (a) = 1 Then R$ = "1" : Goto IZPIS
If (a) = 0 Then R$ = "0" : Goto IZPIS
'____________izracun kvadratnega korena stevila a___________________
a0 = a + 1 : a1 = (a0 + a / a0) / 2
While a0 <> a1
a0 = a1 : a1 = (a0 + a / a0) / 2
Wend
rezultat = a1 : R$ = Str$(rezultat)
'____________zaokrozitev na N decimalk (npr.6)____________________
ZAOKROZEVANJE: N = 6
'________razdelitev na celi,decimalni in ekponentni del___________
dc = InStr(R$, ".") : exp = InStr(R$, "E") : If exp <> 0 Then exp$ = Mid$(R$, exp, Len(R$) - exp + 1) Else exp = Len(R$)
If dc > 1 Then R$ = LTrim$(Left$(Str$(rezultat), dc)) Else Goto IZPIS
dec1$ = Mid$(Str$(rezultat), dc + 1, exp - dc - 1)
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
If K1 <> 0 Then R$ = Str$(K1) : Goto SKUPAJ
If Len(dec1$) < N And exp$ = "" Then dec1$ = Mid$(Str$(rezultat), dc + 1, exp - dc)
If Len(dec1$) > N Then dec2$ = Mid$(dec1$, N + 1, 1) : dec1$ = Mid$(dec1$, 1, N) : dec$ = ""
If Val(dec1$) = 0 Then dec$ = dec1$ : Goto SKUPAJ
If Val(dec2$) >= 5 Then
For x = 1 To N - 1 : dec$ = dec$ + Mid$(dec1$, x, 1) : Next : dec$ = dec$ + LTrim$(Str$(Val(Mid$(dec1$, N, 1)) + 1))
Else
dec$ = dec1$
End If
SKUPAJ:
If Len(dec$) < N Then For x = Len(dec$) To N - 1 : dec$ = dec$ + "0" : Next
R$ = R$ + dec$ + exp$
'__________z vklopom in izklopom REM izbiramo nacin izpisa_________
IZPIS:
Insert "sqrt " + Str$(z) + " = " + R$ + " " : If T = 1 Then Insert "i "
REM WordRight : Insert " = " + R$ + " " : If T = 1 Then Insert "i (sqrt)" Else Insert " (sqrt) "
REM WordRight : CharRight 1 : Insert Chr$(9) + R$ : If T = 1 Then Insert " i "
End Sub