home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC & Mediji 1997 April
/
PCM_9704.iso
/
makri
/
enax.txt
< prev
next >
Wrap
Text File
|
1997-03-15
|
3KB
|
72 lines
Sub MAIN
' program izracuna "e^x" za ABS(X) < 230. (Mat.prirocnik str.378)
' opomba: e^2.3 = e^2 * e^0.3
' opomba: e^(-2.3) = 1 / e^2.3
'__________________zajem podatka__________________________________
e = 2.7182818284591
P = Val(Selection$()) : a = Abs(P) : If a > 230 Then R$ = " Prevelik eksponent ! " : Goto IZPIS
'________________razstavljanje eksponenta_________________________
x = Int(a) : k = a - x 'celi in decimalni del eksponenta
'___________izracun e^x za celi del eksponenta____________________
If x >= 0 Then rezultat1 = 1
For c = 1 To x : rezultat1 = rezultat1 * e : Next
If k = 0 Then rezultat = rezultat1 : Goto ULOMEK
'___________izracun e^x za dec.del eksponenta_____________________
a2 = 1 : imen = 1 : vrsta = 0
For N = 1 To (50 + (0.01 / k))
On Error Goto KONEC 'prekoracitev
stev = a2 * k : a2 = stev 'x na N
imen = imen * N 'n fakt.
vrsta = vrsta + (stev / imen)
Next
KONEC:
T = N : rezultat = 1 + vrsta
'_____________mnozenje obeh vmesnih rezultatatov__________________
If rezultat1 <> 0 Then rezultat = rezultat1 * rezultat
ULOMEK:
If P < 0 Then rezultat = 1 / rezultat
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 "e ^ " + Str$(P) + " = " + R$ + " "
REM WordRight : Insert " = " + R$ + " (e ^ " + Str$(P) + ") "
REM WordRight : CharRight 1 : Insert Chr$(9) + R$
End Sub