Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Wurzeln ziehen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Gast






BeitragVerfasst am: 03.11.2004, 23:17    Titel: Wurzeln ziehen Antworten mit Zitat

Hi!
Da es mir einfach zu kompliziert ist ne lib. in Delphi/C++ zu schreiben, einzubinden, um mehr Nachkommastellen zu verwenden. Ich habe ein Interessantes Verfahren gefunden, das nicht dem Intervallhalbierungsverfahren gleicht und damit nicht darauf angewiesen ist alle stellen "auf einmal" zu berechnen.
Meine Idee war, immer die berechnete Nachkommazahl in eine Datei/einen String zu Adden. Die berechnung sollte so ablaufen:

http://www.tinohempel.de/info/mathe/wurzel/wurzel.htm



Ich wollte, dass jede einzelne Nachkommastelle mit 100Multipliziert wird um "die nächsten 2 zahlen herunterzuholen"; also frage ich mich: wie kann ich eine "Wurzel" mit einer stelle berechnen, sodass ein Rest entsteh, und wie kann ich eine Ziffer in einen String oder eine Datei speichern/addieren?
Nach oben
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 04.11.2004, 15:48    Titel: Antworten mit Zitat

Benutz einfach folgende Routine. Ich habe auch automatisch eine Fehlererkennung bei falschen Parameter gemacht...

Stellen ist die Anzahl der Stellen, die du nach dem Komma (sofern vorhanden haben willst).

Code:
CLS

PRINT ZieheWurzel (7, 1) ' Ausgabe: 2.6

FUNCTION ZieheWurzel (Zahl, Stelle)

IF Zahl <= 0 THEN ZieheWurzel = -1: EXIT FUNCTION

tmp$ = STR$(SQR(Zahl))

IF INSTR(tmp$, ".") THEN
 IF Stelle > 0 THEN

  tmp$ = MID$(tmp$, 1, INSTR(tmp$, ".") + Stelle)

 END IF
END IF

  ZieheWurzel = VAL(tmp$)

END FUNCTION


cu, Stormy
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
simfight
Gast





BeitragVerfasst am: 04.11.2004, 23:00    Titel: Antworten mit Zitat

ich verstehe leider den source nich... keine ahnung ich mache immer waws falsch... naja was solls kannst du mal n beispiel prog postenwo ich(und wie) die schleife einbinde oder noch besser alles komkmentieren?

wäre echt nett, aber war auch so schon ein guter schritt in die richtige ruchtung... thx
Nach oben
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 06.11.2004, 10:03    Titel: Antworten mit Zitat

Normalerweise verwendet man dafür bekanntlich
Code:
wurzel! = SQR(wert!)
wurzel# = SQR(wert#)

Im letzteren Fall mit 16 Stellen Genauigkeit. Damit dieses Projekt dennoch Sinn macht, wäre irgend eine hochgenaue Wurzelberechnung denkbar.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
simfight
Gast





BeitragVerfasst am: 06.11.2004, 18:47    Titel: Antworten mit Zitat

jaja mensch ich weiss... hab jetzt nenalgorythmus für java mit nem proggi, funzt ganz gut... aber für QB wäre trotzdem ganz gut
Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz