| |
|
|
p.specht
| Näherungsalgorithmus durch sog. "Naive Bruchaddition". (Verträgt noch keine negativen Zahlen!)
WindowTitle " BRUCHNÄHERUNG PER ´NAIVE ADDITION ZÄHLER+ZÄHLER & NENNER+NENNER"
AppendMenubar 101," Early Alphaversion!!! Besondere Zahlenwerte: Pi, E "
'(CL) Copyleft 2020-12 by P.Specht, Vienna/Austria. Ohne jede Garantie.
Declare x!,xint!,xfrac!,eps! , Z&,N&, Zu&,Nu&, Zo&,No& , w$,v$
Neu:
Clear x!,xint!,xfrac!,eps! , Z&,N&, Zu&,Nu&, Zo&,No& , w$,v$
Cls Rgb(200+Rnd(56),200+Rnd(56),200+Rnd(56)):Set("decimals",17)
Font 0
Print "\n\n\n Vorfrage: Auf wieviele Stellen genau soll der Bruch stimmen?: ";:Input v$
If v$="":v$="10":EndIf'default, Genauigkeit 10 Kommastellen
eps!=Val("1E-"+v$)
Print "\n Max.Fehler epsilon = ";Format$("%g",eps!)
hop:
Font 2
Print "\n Dein Zahlenwert: ",:Input w$
w$=Translate$(w$,",",".")
If Upper$(w$)="PI":w$=Str$(Pi()):Print w$:EndIf
If Upper$(w$)="E":w$=Str$(Exp(1)):Print w$:EndIf
x!=Val(w$)
If x!=0:Goto "Neu":EndIf
xint!=Int(x!):xfrac!=x!-xint!
Zu&=0:Nu&=1:Zo&=1:No&=1:N&=1
Nochma:
If Abs(xfrac!-Z&/N&)<eps!
Cls Rgb(200+Rnd(56),200+Rnd(56),200+Rnd(56))
Print "\n\n Ergebnis (auf ";v$;" Kommastellen): "
Print "\n ";Format$("%g",x!);" ~~ ";
Case xint!:Print Int(xint!);
case (Z&<>0) And (xint!<>0):print " & ";
Case Z&:Print Z&;"/";N&;
Print:Print:WaitInput:cls:Goto "hop"
EndIf
Z&=Zu&+Zo&:N&=Nu&+No&
If xfrac!<(Z&/N&)
Zo&=Z&:No&=N&
ElseIf xfrac!>(Z&/N&)
Zu&=Z&:Nu&=N&
EndIf
Print Z&;"/";N&
If %csrlin>27:cls:EndIf
Goto "nochma"
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 30.05.2021 ▲ |
|
|
|