Wurzelziehen

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

FaFi

Betreff: Wurzelziehen

BeitragDo, Sep 16, 2004 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
wäre es möglich ein Programm zum Wurzelziehen mit Blitz Basic zu schreiben ?
(nur mal so gefragt)
 

Blitzkrieg Bop

BeitragDo, Sep 16, 2004 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ne, das is unmöglich. Very Happy
Natürlich geht das. Guck dir den Befehl Sqr in der Onlinehilfe an.
~ Hey Ho Let's Go ~
 

David

BeitragDo, Sep 16, 2004 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Meinte er vielleicht eine eigene Routine?
Bzw. was, wenn er die kubikwurzel will?? Smile

grüße
http://bl4ckd0g.funpic.de

FaFi

BeitragDo, Sep 16, 2004 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
ja
ich meine eine eigene routine oder funktion
 

Blitzkrieg Bop

BeitragDo, Sep 16, 2004 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht schon sowas?

Code: [AUSKLAPPEN]

zahl# = 15

Text 0,0,"Wurzel aus "+ Int(zahl#) +" : "+wurzel#(zahl#)

Function wurzel#(z#)
   Return Sqr(z#)
End Function    

WaitKey():End
~ Hey Ho Let's Go ~
  • Zuletzt bearbeitet von Blitzkrieg Bop am Do, Sep 16, 2004 18:38, insgesamt einmal bearbeitet
 

David

BeitragDo, Sep 16, 2004 18:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

[ot]
Ohhhh Bop!!
Hihi, nein ... das is wirklich total cool!!!

Das muss ich mir merken!
[/ot]

grüße
http://bl4ckd0g.funpic.de
 

Blitzkrieg Bop

BeitragDo, Sep 16, 2004 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
David, was soll diese Ironie? Very Happy
Er hat nach einer Routine zum Wurzelziehen gefragt und da habe ich ihm ein kleines, simples Beispiel geliefert, oder funzt es nicht? Confused
~ Hey Ho Let's Go ~
 

David

BeitragDo, Sep 16, 2004 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Hehe, nein!
Ich glaube er will eine Routine wo die Wurzel ohne mithilfe der BlitzBasic Funktion berechnet.
Quasi eine eigene Herleitung.

grüße
http://bl4ckd0g.funpic.de
 

Blitzkrieg Bop

BeitragDo, Sep 16, 2004 18:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Meinst du? ... hmm ... warum so kompliziert, wenns so einfach geht?
Also das werde ich ihm nun nicht mehr coden. Smile
~ Hey Ho Let's Go ~

FaFi

BeitragDo, Sep 16, 2004 19:21
Antworten mit Zitat
Benutzer-Profile anzeigen
is eigentlich für die Schule Exclamation

wollt halt mal rumprobieren
 

Blitzkrieg Bop

BeitragDo, Sep 16, 2004 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ist für die Schule bzw. bist du mit der SQR Lösung zufrieden?
~ Hey Ho Let's Go ~

FaFi

BeitragDo, Sep 16, 2004 19:33
Antworten mit Zitat
Benutzer-Profile anzeigen
die SQR Lösung geht

unser Lehrer wollt uns morgen wurzelziehen am pc zeigen und da wollt ich mich ein bischen einschleimen und eine selbstprogrammiertes programm mitbringen Very Happy

BladeRunner

Moderator

BeitragDo, Sep 16, 2004 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Wurzel aus einer Zahl entspricht gleich der Zahl hoch dem Quotient von 1 und der gewünschten Wurzel.
Also 4 ^ (1/2) = (Quadrat-)Wurzel aus 4.
Analog für alle anderen Wurzeln...
Viel Spass beim Selberprogrammieren....
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Holzchopf

Meisterpacker

BeitragDo, Sep 16, 2004 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Surprised

Dann nimm doch gleich ne Annäherungs-Routine Wink

Code: [AUSKLAPPEN]

 C + C
_______
 B       * A => A
A  + C


In BlitzBasic sieht das dann so aus:
Code: [AUSKLAPPEN]
A = (( C + C ) / (A^B + C )) * A


Das ganze packst du in eine Funktion. A, B und C müssen global und als Floats deklariert sein. Vor dem ersten Aufruf muss A auf 1 gesetzt werden, C auf den wert, von dem du die Wurzel haben willst und B gibt die Wurzel an (2 für Quadratwurzel, 3 für Kubikwurzel etc... )
Jedesmal wenn du dann die Funktion aufrufst, nähert sich A schrittweise der "B-ten" Wurzel aus C.
Habs getestet, nach 8-20 Schritten (je nach gewünschter genauigkeit oder ausgangszahl für C ) hast du das ergebnis Smile

MfG

Edit: Offenbar lässt die "Genauigkeit" von Blitz es nicht zu, extrem hohe Zahlen zu ziehen, schon bei der 8en Wurzel aus 256 rechnet er unendlich Rolling Eyes
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

Timo

BeitragDo, Sep 16, 2004 20:53
Antworten mit Zitat
Benutzer-Profile anzeigen
glaub ich weis was du meinst, das haben wir auch in Informatik gemacht. Eine Art schrittweise Iteration oder Näherung zu Wurzel. Ist aber schon länger her. Sollte ichs finden, schick ichs dir Smile

Triton

BeitragDo, Sep 16, 2004 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
1/x^n Rolling Eyes
 

Timo

BeitragDo, Sep 16, 2004 22:26
Antworten mit Zitat
Benutzer-Profile anzeigen
@Triton: nicht wirklich, wenn man Wurzel aus zwei Rechnet, also x=2 und n=2 dann erhält man 1/(2^2) = 0.25, müsste aber ~1.4 sein. Oder ich hab nicht ganz verstanden was du meintest Wink

TheProgrammer

BeitragFr, Sep 17, 2004 8:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

wert# = wurzel(64,3)
Print wert#


Function wurzel(n#,w#)

   wert# = n# ^ (1.0/w#)
   Return wert#

End Function


so. Hier wird z.B die ³-Wurzel von 64 zurückgeliefert.
Ein Problem: Die Zahlen werden gerundet...
Wie kann man das ändern?
aktuelles Projekt: The last day of human being
 

Dreamora

BeitragFr, Sep 17, 2004 8:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Garnicht, das ist die maximale Zahlengenauigkeit.
Wenn du es genauer willst musste Delphi oder C / C++ nehmen oder eine sonstige Sprache die Doubles unterstützt. ( da werden sie auch gerundet, nur haben da die zahlen viel mehr stellen zur verfügung )
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Vertex

BeitragFr, Sep 17, 2004 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function sqr2#(value#, error# = 0.00001)
   Local a#, b#
   
   a# = 1.0
   b# = value#
   Repeat
      b# = (b# + a#)/2.0
      a# = value#/b#
   Until (b#-a#)<error#

   Return a#
End Function

Print sqr2#(25.0)
WaitKey
vertex.dreamfall.at | GitHub

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group