Italia
Experimente

Näherungsbruch ermitteln

 

p.specht

Die Zahl Pi kann mit 22/7 auf knapp drei Kommastellen genau gemerkt werden - per Berechnungen in Haus und Hof reicht das völlig. Mit 333/106-stel könnten auch Brückenbauer schon etwas anfangen. Und mit 140/99-stel per Wurzel-aus-2 ist man per praktische Zwecke auch bereits sehr gut bedient.

Ein Programm, das per beliebige Kommazahlen im "normalen" Wertebereich (also ohne allzu starke Stellenexponenten 10^...) prüft, ob man sie sich mit Brüchen nicht leichter merken potuto, ist deshalb nicht uninteressant. Mit der #-Taste kann übrigens eine im Programm selbst programmierte Konstante eingeblendet werden.
WindowTitle "N Ä H E R U N G S B R U C H   S U C H E N -   Early beta-Version!"
'(CL) CopyLeft 2014-05 by P.Specht, Wien. Keine wie auch immer geartete Gewähr!
Def !Pi 3.1415926535897932384626433832795
Def !PiDiv180 0.01745329251994329576923690768489
Def !Div180Pi 57.295779513082320876798154814105
Def !Euler 2.7182818284590452353602874713527
Def !Root2 1.4142135623730950488016887242097
Def !Root3 1.7320508075688772935274463415059
Def !RootPi 1.7724538509055160272981674833411
Def !Root5 2.2360679774997896964091736687313
Def !GoldenRatio 1.6180339887498948482045868343656
Def !Ln10 2.3025850929940456840179914546844
Def !Ln2  0.69314718055994530941723212145818
Def !Lb10 3.3219280948873623478703194294894
Def !LbE  3.921651713656448480581438480269
Def !LLE  1.4426950408889634073599246810019
Def !Log2 0.30102999566398119521373889472449
Def !LogE 0.43429448190325182765112891891661
Def !EulerMasc 0.5772156649015328606065120900824024310
Def !Lemniskat 2.62205755429211981046
Def !Sirpinski 2.58498175957925321706
Def !PrimZwill 0.66016181584686957392
Def !SumRezipPrimZwill 1.902160583209
Def !Feigbm1 4.66920160910299067185
Def !Feigbm2 2.50290787509589282228
Def !Fibon 0.29762917531599816807398825978458
Def !RezipFibon 3.3598856662431775531720113029189
Def !ErdGrav 9.80665
Def !Div60 0.01666666666666666666666666666667
Def !Div360 0.00277777777777777777777777777778
Def !Div3600 0.000277777777777777777777777777778
Def !Div24 0.04166666666666666666666666666667
Def !DivPi 0.31830988618379067153776752674503
Def !SecPerDay 86400
Def !DayPerSec 0.000011574074074074074074074074074074
Def !Div1a 0.999999999999999999999999999999
Def !Div2a 0.444444444444444444444444444444
Def !Div2 0.5
Def !Div3 0.33333333333333333333333333333333
Def !Div4 0.25
Def !Div5 0.2
Def !Div6 0.16666666666666666666666666666667
Def !Div7 0.14285714285714285714285714285714
Def !Div8 0.125
Def !Div9 0.11111111111111111111111111111111
Def !Div10 0.1
Def !Div11 0.09090909090909090909090909090909
Def !Div12 0.08333333333333333333333333333333
Def !Div13 0.07692307692307692307692307692308
Def !Div14 0.07142857142857142857142857142857
Def !Div15 0.06666666666666666666666666666667
Def !Div16 0.0625
Def !Div17 0.05882352941176470588235294117647
Def !Div18 0.05555555555555555555555555555556
Def !Div19 0.05263157894736842105263157894737
Def !Div20 0.05
Def !DivHdt 0.01
Def !DivTsd 0.001
Def !DivZTsd 0.0001
Def !DivHTsd 0.00001
Def !DivMio 0.000001
Def !DivMrd 0.000000001
windowstyle 24:window 0,0-%maxx/2,%maxy-40:set("decimals",17):font 2
declare c$,st&,z!,tol!,err!,z&,n&,v!,w!,err_!,n_&,z_&,x&,y&,sn&,tm&
nochmal:
cls:print "\n\n Wieviele STELLEN darf der NENNER maximal haben (max.~6): ";
input c$:case c$>"":st&=abs(val(c$)):case st&=0:st&=1:case st&>9:st&=9
ein:
print "\n Wie lautet ihre KOMMAZAHL ? (*=Pi,°=sqrt(2),#=Konstante): ";
input c$:case c$>"":v!=val(c$)
case c$="*":v!=pi():case c$="°":v!=sqrt(2)
case c$="°":v!=sqrt(2)
'--------------------------------------------------------------------------
case lower$(c$)="#":v!=0.001001001001001001001001001001
'--------------------------------------------------------------------------

if v!=0:print " Scherz, oder? ":sound 200,100:locate 4,1:goto "ein":endif

    CLS
    print "\n Sollwert: ";sn&*v!;"\n":err_!=10^53:n&=1:sn&=1

    if v!<0:v!=abs(v!):sn&=-1:endif

        if v!>=1:z&=10^(lg(v!))

        elseif v!<1:n&=int(10^(-1*lg(v!)))

        endif

        while n&<(10^st&)

            w!=z&/n&:err!=v!-w!

            if abs(err!)<err_!:err_!=abs(err!):z_&=z&:n_&=n&

                print " ";int(sn&*z&);" / ";n&;" = ";w!;tab(48);"Abs.Fehler = ";abs(err!);"  "

            endif

            if err!>0:inc z&

            elseif err!<0:dec z&:inc n&

                else :BREAK

            endif

            if (&gettickcount-tm&)>2000

                case %csrlin>42:cls'locate 4,1
                x&=%csrlin:y&=%pos:locate 2,1
                print " Sollwert: ";sn&*v!;"    Zwischenstand: ";int(sn&*z&);" / ";n&,"         ";
                locate x&,y&:tm&=&gettickcount
                waitinput 1

            endif

        endwhile

        print mkstr$("-",77):beep
        print " Ihr gesuchter Wert ";sn&*v!;" wird bei max. ";st&;"-stelligem Nenner "
        print " durch den Bruch ";int(sn&*z_&);" / ";n_&;

        if err_!<>0:print " bestmöglich angenähert!"

            else :print " exakt dargestellt!"

        endif

        print mkstr$("-",77)
        print "\n Nochmal? [n,N =Ende]: ";:input c$
        casenot left$(trim$(lower$(c$)),1)="n":goto "nochmal"
        END
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
11.05.2021  
 



Zum Experiment


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

495 Views

Untitledvor 0 min.
Stringray05.01.2022
Ernst21.07.2021
p.specht17.06.2021
Uwe ''Pascal'' Niemeier13.06.2021
Di più...

Themeninformationen

Dieses Thema hat 1 subscriber:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie