 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Christoph
Anmeldungsdatum: 07.04.2006 Beiträge: 108 Wohnort: NRW, Rietberg
|
Verfasst am: 18.08.2007, 20:39 Titel: Frage zu der graphischen Darstellung von Funktionen |
|
|
Hallo,
ich habe ein paar Fragen zu diesem Code hier:
http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=65
Es geht um die graphische Darstellung von Funktionen.
Ich habe einfach mal versucht in dem enthaltenden Beispielprogramm die Funktinen zu verändern, doch sobald ich da etwas verändere meckert der Compiler:
Hier mal e Auszug aus dem Beispielprogramm, in dem ich eine Funktion verändert hab:
Code: | '----------------------- Beispielprogramm: ----------------------
Dim As Single x(100), y1(100), y2(100), y3(100), y4(100), y5(100), dx=7/100
Dim As Integer i
'Berechnung der Funktionen y1 = 2^x, y2 = ^3^x, y3 = 4^x (ablegen als Arrays):
For i=-2 To 100
x(i)=i*dx-2
y1(i)=x^2(i) 'Verändert; vorher 2^x
y2(i)=3^x(i)
y3(i)=4^x(i)
y4(i)=Sin(i*dx)*10+50 'ergänzt
y5(i)=Cos(i*dx)*10+50 'ergänzt
Next i |
Der Compiler sagt mir:
Zitat: | Command executed:
"C:\Programme\FreeBASIC\fbc.exe" "D:\Christoph\FREEBASIC\Funktionen graphisch darstellen.bas"
Compiler output:
D:/Christoph/FREEBASIC/Funktionen graphisch darstellen.bas(19) error 68: Array access, index expected, before '^' in 'y1(i)=x^2(i) 'Verändert; vorher 2^x'
Results:
Compilation failed
System:
FBIde: 0.4.6
fbc: FreeBASIC Compiler - Version 0.17 (05-11-2007) for win32 (target:win32)
OS: Windows XP (build 2600, Service Pack 2)
|
Wieso will der das nicht? Was mache ich falsch?
Gruß
Christoph |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.08.2007, 20:43 Titel: |
|
|
Du hast eine For/Next Schleife
mit dem Startwert "-2"
Aber nur ein Array das von 0 bis 100 declariert ist
solltst entweder den Startwert in der For/Next anpassen oder sas Array
zb.
Code: |
Dim x(-2 to 100) as Integer
|
_________________
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Christoph
Anmeldungsdatum: 07.04.2006 Beiträge: 108 Wohnort: NRW, Rietberg
|
Verfasst am: 18.08.2007, 21:06 Titel: |
|
|
Achso, das (i) muss immer hinter das X !
Und das mit dem Array, ohja, gar nicht gesehen...
Ja jetzt läuft es!
so, als nächstes muss ich mal probieren, ob ich das in meinem Funktionsrechner einbauen kann....
Gruß
Christoph |
|
Nach oben |
|
 |
Christoph
Anmeldungsdatum: 07.04.2006 Beiträge: 108 Wohnort: NRW, Rietberg
|
Verfasst am: 18.08.2007, 21:51 Titel: |
|
|
So, also ich habe den Code etwas verändert und angepasst, nur das was noch nicht klappt ist, das ich die Funktion, die ich einlese anzeigen lassen kann...
So, mein Problem liegt darin, wie kann ich die eingelesen Funktion(Variable f) jetzt grafisch darstellen, probiere ich es dem Array (y1) f zuzuweisen gibt es nen Error:
Zitat: | Funktionen graphisch darstellen.bas(32) error 159: Invalid assignment/conversion in 'y1(i)= f'
|
Wie bekomme ich das jetzt hin, dass er mir das anzeigt?
Den Code habe ich schon etwas modifiziert.
Ich brauche ja nur 1 Funktion darstellen.
Code: | #INCLUDE "fbeval.bas" 'Eval Zubehör
#INCLUDE "stdeval.bas"
'Sin und Cos ergänzt u. etwas mehr :-)) :D
'Die Funktionsdarstellung von Sin u. Cos muß noch verbessert werden..
'möglich, daß es schneller geworden ist..
Declare Sub Koordinaten (xMin As Single, yMin As Single, xMax As Single, _
yMax As Single, nx As Integer, ny As Integer, _
xAchse As String, yAchse As String, Text As String)
Declare Sub ZeichneKurve (x() As Single, y() As Single, n As Integer, _
Farbe As Integer)
Const Schwarz=0, Blau=1, Gruen=2, Rot=4, Lila=5, hell=8, Gelb=14
' ----------------------- Beispielprogramm: ----------------------
dim as integer we,wa
dim f As String
Dim Result As Eval.Result
Input "Funktion";f 'Funktion: z.B x^4+6*x
input "WA";we 'Wertebereich Anfang
input "WE";we 'Wertebereich Ende
Dim As Single x(wa to we), y1(wa to we)', brauch nur eine ' y2(wa to we) , y3(wa to we), y4(wa to we), y5(wa to we),
'dim as single dx=7/100 'ka, war da schon drin^^
Dim As Integer i
'Berechnung der Funktionen y1 = 2^x, y2 = ^3^x, y3 = 4^x (ablegen als Arrays):
For i=wa To we
'Eval Variable setzen und verarbeiten
Eval.SetVariable("x", i)
Result = Eval.Execute(f)
y1(i)= f
? "fuer: x= " & i & Chr(10) & f & "=" &Result.Value
Print "_____________" 'Sieht übersichtlicher aus
Print "_____________"
Next i
'For i=wa To we 'Alter Block
'x(i)=i*dx-2
'y1(i)= 2^x 'Verändert; vorher 2^x
'y2(i)=10^x(i)+10*x(i)+120
'y3(i)=4^x(i)
'y4(i)=Sin(i*dx)*10+50 'ergänzt
'y5(i)=Cos(i*dx)*10+50 'ergänzt
'Next i
'Graphikfenster öffnen und Koordinatensystem mit Beschriftungen zeichnen:
Screen 12
Color 0, 15
Cls
Koordinaten(-2, 0, 5, 100, 7, 10, "x", "y", _
"y=x^2: rot y=3^x: blau y=4^x: gruen y=sin x: gelb y=cos x: lila")
'Funktionskurven ins Koordinatensystem zeichnen:
ZeichneKurve (x(), y1(), 100, hell+Rot)
'ZeichneKurve (x(), y2(), 100, Blau)
'ZeichneKurve (x(), y3(), 100, Gruen)
'ZeichneKurve (x(), y4(), 100, Gelb)
'ZeichneKurve (x(), y5(), 100, Lila)
GetKey
'---------------------- Beispielprogramm Ende ------------------
Sub PrintIt(byVal Zeile As Integer, byVal Spalte As Integer, byRef Was As String)
Locate Zeile, Spalte
?Was
End Sub
Sub Koordinaten(xMin As Single, yMin As Single, xMax As Single, yMax As Single,_
nx As Integer, ny As Integer, xAchse As String, yAchse As String, Text As String)
' Koordinatenfeld mit linearen Achsenteilungen.
' Parameter:
' - xMin ... yMax definieren die Abmessungen des Darstellungsfeldes.
' - nx, ny = Zahl der Achsenabschnitte auf der x- bzw. y-Achse
' - xAchse, yAchse = Beschriftung fuer x-Achse bzw. y-Achse
' - Text = Bildunterschrift.
' Der Graphikbildschirm muß vorher mit SCREEN 12 geöffnet sein!
Dim As Integer AnfZeile=2, AnfSpalte=15, EndZeile=22, EndSpalte=75, i, TextBeginn
Dim As Single ax=0.995*(xMax-xMin)/nx, ay=0.995*(yMax-yMin)/ny, x, y
View (AnfSpalte*8-4, AnfZeile*16-8)-(EndSpalte*8-4, EndZeile*16-8) 'Sichtfenster fuer Koordinatensystem
Window (xMin, yMin)-(xMax, yMax) 'mit Eckpunkten (xmin, ymin), (xmax, ymax)
For i=0 To nx 'Teilung horizontale Achse:
x=xMin+i*ax
Line (x, yMin)-(x, yMax)
Next i
For i=0 To ny 'Teilung vertikale Achse:
y=yMin+i*ay
Line (xMin, y)-(xMax, y)
Next i
'Beschriftung:
PrintIt(AnfZeile, AnfSpalte-Len(Str(yMax))-1, Str(yMax))
PrintIt(EndZeile, AnfSpalte-Len(Str(yMin))-1, Str(yMin))
PrintIt(EndZeile+1, AnfSpalte-.5*Len(Str(xMin)), Str(xMin))
PrintIt(EndZeile+1, EndSpalte-.5*Len(Str(xMax)), Str(xMax))
PrintIt((AnfZeile+EndZeile)/2, AnfSpalte-Len(yAchse)-1, yAchse)
PrintIt(EndZeile+1, (AnfSpalte+EndSpalte)/2-.5*Len(xAchse), xAchse)
PrintIt(EndZeile+3, (AnfSpalte+EndSpalte-Len(Text))/2, Text)
End Sub
Sub ZeichneKurve (x() As Single, y() As Single, n As Integer, Farbe As Integer)
' Kurve durch die Punkte x(0), y(0) bis x(n), y(n) in der angegebenen Farbe,
' z.B. in das mit der Sub Koordinaten gezeichnete Koordinatensystem.
For i As Integer=1 To n
Line (x(i-1), y(i-1))-(x(i), y(i)), Farbe
Next i
End Sub
sleep
'SEE Dateien Download:
'Die Dateien sind die, die der Rechner benötigt:
'fbeval.bas
'stdeval.bas
'Die Dateien könnt ihr euch hier runterladen: (für 0.17 tauglich gemacht)
' http://jeak.de/Subpages/siedlerchr/downloads/see_ohne_call.zip
|
So, wie bekomme ich das hin, dass der mir die Funktion die ich eingebe anzeigt?
Gruß
Christoph |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 18.08.2007, 22:00 Titel: |
|
|
(@Sebastian:
Ist da ein Fehler im Highlighting-Script oder in phpBB? Der Smiley in der Codebox.) _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 18.08.2007, 22:05 Titel: |
|
|
Mao hat Folgendes geschrieben: | (@Sebastian:
Ist da ein Fehler im Highlighting-Script oder in phpBB? Der Smiley in der Codebox.) | Das ist ein Fehler vom phpBB - das war schon immer so... _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 18.08.2007, 22:41 Titel: |
|
|
Christoph hat Folgendes geschrieben: | ..
'Berechnung der Funktionen y1 = 2^x, y2 = ^3^x, y3 = 4^x (ablegen als Arrays):
For i=wa To we
'Eval Variable setzen und verarbeiten
Eval.SetVariable("x", i)
Result = Eval.Execute(f)
y1(i)= f
? "fuer: x= " & i & Chr(10) & f & "=" &Result.Value
Print "_____________" 'Sieht übersichtlicher aus
Print "_____________"
Next i
'For i=wa To we 'Alter Block
'x(i)=i*dx-2
'y1(i)= 2^x 'Verändert; vorher 2^x
'y2(i)=10^x(i)+10*x(i)+120
'y3(i)=4^x(i)
'y4(i)=Sin(i*dx)*10+50 'ergänzt
'y5(i)=Cos(i*dx)*10+50 'ergänzt
'Next i
.. | Wenn der Original-Code nicht funktioniert hätte, wäre ich nicht daran gegegangen, Änderungen einzubauen. Ich finde es natürlich prima, daß du meine Version benutzt, dann brauche ich nur noch deinen Teil zu überprüfen
Gut, jetzt aber ernsthaft:
Imho solltest du erstmal probieren, die bereits eingebauten Funktionen(also die vor Sin() und Cos() ) mal mit See zu programmieren.
Wenn du damit sicher bist, dann vllt Sin() und Cos() probieren, denn wie ich schon gesagt habe. läßt die Grafik zu wünschen übrig. Da liegt aber der 'Fehler' dann eindeutig bei mir, weil ich mir das dann wohl doch nicht genau genug angesehen habe Dramm schwüber..
Wenn du das alles KANNST, ist es an der Zeit, eigene Funktionen zu probieren..
..und wenn die klappen, dann kannste auch mal fremde Funktionen ausprobieren..
btw: y1(i)=f kann ja wohl nur ein Versuch sein..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Christoph
Anmeldungsdatum: 07.04.2006 Beiträge: 108 Wohnort: NRW, Rietberg
|
Verfasst am: 18.08.2007, 23:22 Titel: |
|
|
@ytwinky
Also, der Code von dir, der funktioniert ja auch soweit, ich konnte da ja beliebige Funktionen eingeben....
Zitat: | ...Imho solltest du erstmal probieren, die bereits eingebauten Funktionen(also die vor Sin() und Cos() ) mal mit See zu programmieren.
Wenn du damit sicher bist, dann vllt Sin() und Cos() probieren, denn wie ich schon gesagt habe. läßt die Grafik zu wünschen übrig. Da liegt aber der 'Fehler' dann eindeutig bei mir, weil ich mir das dann wohl doch nicht genau genug angesehen habe Dramm schwüber..
Wenn du das alles KANNST, ist es an der Zeit, eigene Funktionen zu probieren..
..und wenn die klappen, dann kannste auch mal fremde Funktionen ausprobieren..
btw: y1(i)=f kann ja wohl nur ein Versuch sein..
Gruß
ytwinky |
Ich habe den Code ja nur soweit verändert, dass ich den Wertebereich eingeben kann und das mir nur 1 Funktion angezeigt wird, die andern brauch ich ja nicht....Der einfachheit halber...
Das einzige was ja jetzt fehlt, ist das SEE mit der graphischen Darstellung zusammenarbeitet...
-Ich kann ja eine Funtkion einlesen und auch verarbeiten, code vom Funktionsrechner...
-Das einzige was ja noch fehlt ist, das es iwie doch möglich ist, dass ich die Funktion, die ich eingebe, dem Grafik zeichner übergebe...
Zitat: | Imho solltest du erstmal probieren, die bereits eingebauten Funktionen(also die vor Sin() und Cos() ) mal mit See zu programmieren.
Wenn du damit sicher bist, dann vllt Sin() und Cos() probieren, ... |
Wie genau meinst du das?
Ich habe schon allerlei mit See ausprobiert, nehme immer ganz gerne die console.bas zum testen (von see)..
Komischweise unterstützt SEE nur:
Code: | Eval.SetFunction( "abs", @StandardSEEFunctions)
Eval.SetFunction( "acos", @StandardSEEFunctions)
Eval.SetFunction( "asin", @StandardSEEFunctions)
Eval.SetFunction( "atan2", @StandardSEEFunctions)
Eval.SetFunction( "atan", @StandardSEEFunctions)
Eval.SetFunction( "atn", @StandardSEEFunctions)
Eval.SetFunction( "exp", @StandardSEEFunctions)
Eval.SetFunction( "fix", @StandardSEEFunctions)
Eval.SetFunction( "int", @StandardSEEFunctions)
Eval.SetFunction( "ln", @StandardSEEFunctions)
Eval.SetFunction( "log", @StandardSEEFunctions)
Eval.SetFunction( "mod", @StandardSEEFunctions)
Eval.SetFunction( "rnd", @StandardSEEFunctions)
Eval.SetFunction( "sgn", @StandardSEEFunctions)
Eval.SetFunction( "sin", @StandardSEEFunctions)
Eval.SetFunction( "sqr", @StandardSEEFunctions)
Eval.SetFunction( "radians", @StandardSEEFunctions) ' converts degrees to radians
Eval.SetFunction( "degrees", @StandardSEEFunctions) ' converts radians to degrees
Eval.SetFunction( "avg", @StandardSEEFunctions) ' returns average value of passed arguments
Eval.SetFunction( "min", @StandardSEEFunctions) ' returns smallest value from argument list
Eval.SetFunction( "max", @StandardSEEFunctions) ' returns biggest value from argument list |
Hat der Autor da den Cos vergessen oder habe ich den nicht entdeckt?
Gruß
Christoph |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 18.08.2007, 23:37 Titel: |
|
|
Tja, ich sehe den auch nicht in der Liste..
Aaaaaber du kannst ja den Cosinus durch den Sinus ersetzen:
Aus dem Dreieck im Einheitskreis folgt:
Sin^2(Alpha)+Cos^2(Alpha)=1 ;Pythagoras
-->Cos(Alpha)=Sqr(1-Sin^2(Alpha)) ; für Sin^2(Alpha)<=1
Das ist zwar umständlich, aber so ginge es mit SEE.
Falls du eine Formel für den Tangens brauchst:
Tan(Alpha)=Sin(Alpha)/Cos(Alpha) ;für Cos(Alpha)<>0
Aber das steht ja auch auf dem Bild..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 19.08.2007, 11:00 Titel: |
|
|
hmm, habe ich eine neuere Version??
Code: | Eval.SetFunction( "abs", @StandardSEEFunctions)
Eval.SetFunction( "acos", @StandardSEEFunctions)
Eval.SetFunction( "asin", @StandardSEEFunctions)
Eval.SetFunction( "atan2", @StandardSEEFunctions)
Eval.SetFunction( "atan", @StandardSEEFunctions)
Eval.SetFunction( "atn", @StandardSEEFunctions)
Eval.SetFunction( "cos", @StandardSEEFunctions)
Eval.SetFunction( "exp", @StandardSEEFunctions)
Eval.SetFunction( "fix", @StandardSEEFunctions)
Eval.SetFunction( "int", @StandardSEEFunctions)
Eval.SetFunction( "ln", @StandardSEEFunctions)
Eval.SetFunction( "log", @StandardSEEFunctions)
Eval.SetFunction( "mod", @StandardSEEFunctions)
Eval.SetFunction( "rnd", @StandardSEEFunctions)
Eval.SetFunction( "sgn", @StandardSEEFunctions)
Eval.SetFunction( "sin", @StandardSEEFunctions)
Eval.SetFunction( "sqr", @StandardSEEFunctions)
Eval.SetFunction( "tan", @StandardSEEFunctions)
Eval.SetFunction( "hibyte", @StandardSEEFunctions)
Eval.SetFunction( "lobyte", @StandardSEEFunctions)
Eval.SetFunction( "hiword", @StandardSEEFunctions)
Eval.SetFunction( "loword", @StandardSEEFunctions)
Eval.SetFunction( "radians", @StandardSEEFunctions) ' converts degrees to radians
Eval.SetFunction( "degrees", @StandardSEEFunctions) ' converts radians to degrees
Eval.SetFunction( "avg", @StandardSEEFunctions) ' returns average value of passed arguments
Eval.SetFunction( "min", @StandardSEEFunctions) ' returns smallest value from argument list
Eval.SetFunction( "max", @StandardSEEFunctions) ' returns biggest value from argument list
| (stdeval.bas 15.09.2006)
EDIT/
Da ist ein Bug in der Darstellung: target="_blank"> ?? _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 19.08.2007, 11:46 Titel: |
|
|
Hi,
warum hab ich bloß nicht gleich erstmal den Foren-Suchdienst befragt?
Anyway..
Schönen Dank, volta
@Christoph:
Schau mal in StdEval oder wo die Funktionen sind..
..ja, ein Stück über der Liste, die du gepostet hast..
..da könnte ein 'Cos' stehen
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Christoph
Anmeldungsdatum: 07.04.2006 Beiträge: 108 Wohnort: NRW, Rietberg
|
Verfasst am: 19.08.2007, 14:28 Titel: |
|
|
Also, hier steht nen Cos, aber ich kann den nicht benutzen, habe das mal mit der console.bas probiert, sin(90) geht einwandfrei, aber cos kennt er nicht...
Hier sind die Sachen die über den andern stehen:
Code: | ' "constants"
Eval.SetVariable("pi", 3.1415926535897932)
Eval.SetVariable("e", 2.71828182845905)
' functions:
Function StandardSEEFunctions(argc As Integer, argv() As Double) As Double
Dim i As Integer
Dim Result As Double
Select Case Eval.CurrentFunction ' always uppercase
Case "ABS"
If argc > 0 Then Result = Abs(argv(0))
Case "ACOS"
If argc > 0 Then Result = ACos(argv(0))
Case "ASIN"
If argc > 0 Then Result = ASin(argv(0))
Case "ATAN2"
If argc > 1 Then Result = ATan2(argv(0), argv(1))
Case "ATN", "ATAN"
If argc > 0 Then Result = ATn(argv(0))
Case "COS"
If argc > 0 Then Result = Cos(argv(0))
Case "EXP"
If argc > 0 Then Result = Exp(argv(0))
Case "FIX"
If argc > 0 Then Result = Fix(argv(0))
Case "INT"
If argc > 0 Then Result = Int(argv(0))
Case "LN"
If argc > 0 Then Result = Log(argv(0))
Case "LOG"
If argc = 1 Then ' natural logarithm
Result = Log(argv(0))
ElseIf argc > 1 Then ' log of any base
Result = Log(argv(0)) / Log(argv(1))
End If
Case "MOD"
If argc > 1 Then
Result = argv(0)
For i = 1 to argc - 1
Result = Result Mod argv(i)
Next
End If
Case "RND"
If argc > 0 Then
Result = Rnd(argv(0))
Else
Result = Rnd()
End If
Case "SGN"
If argc > 0 Then Result = Sgn(argv(0))
Case "SIN"
If argc > 0 Then Result = Sin(argv(0))
Case "SQR"
If argc > 0 Then Result = Sqr(argv(0))
Case "TAN"
If argc > 0 Then Result = Tan(argv(0))
Case "RADIANS"
If argc > 0 Then Result = argv(0) * 3.1415926535897932 / 180
Case "DEGREES"
If argc > 0 Then Result = argv(0) * 180 / 3.1415926535897932
Case "AVG"
If argc > 0 Then
For i = 0 To argc - 1
Result += argv(i)
Next
End If
Case "MIN"
If argc > 0 Then
Result = argv(0)
For i = 1 To argc - 1
If argv(i) < Result Then Result = argv(i)
Next
End If
Case "MAX"
If argc > 0 Then
Result = argv(0)
For i = 1 To argc - 1
If argv(i) > Result Then Result = argv(i)
Next
End If
End Select
Return Result
End Function |
Nur, warum taucht er da auf, aber nicht in dem andern Teil...
Bin da etwas ....
Meine See Version ist:
Zitat: | Simple Expression Evaluator
v1.0 (Tuesday, September 12, 2006) |
Das war der letzte Link in dem Thema...
Gruß
Christoph |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 19.08.2007, 14:49 Titel: |
|
|
So, in dieser see.rar sind jetzt beide Versionen drin:
-Ohne Call
-diese ekligen $ entfernt
-die doofe Konstante für Pi durch 4*Atn(1) ersetzt
-die doofe Konstante für e durch Exp(1) ersetzt
(längere Konstanten bringen keine höhere Genauigkeit..)
Ähm, Sin(90) geht einwandfrei? Was soll 90 sein? Mußt du das nicht ins Bogenmaß umrechnen? Hier sind die Grundlagen dazu..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4699 Wohnort: ~/
|
Verfasst am: 19.08.2007, 16:09 Titel: |
|
|
ytwinky hat Folgendes geschrieben: | Ähm, Sin(90) geht einwandfrei? Was soll 90 sein? |
90 ist ungefähr 28,648*PI, nicht wahr?  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Christoph
Anmeldungsdatum: 07.04.2006 Beiträge: 108 Wohnort: NRW, Rietberg
|
Verfasst am: 19.08.2007, 16:35 Titel: |
|
|
sin 90 gibt 1, wenn ich das mit see rechne, kommt der auch auf das Ergebnis! Brauch ich nix umwandeln...
Siehe Screenshot:
Nur den Cos, will er nicht, bekomme immer nen Error...
Ich nehme dafür die console.bas, weil er mir den Error dann anzeigt:
Screenshot des Errors:
Da steht es weiß auf schwarz!
Vielleicht liegt es daran, dass der Cos schon in FreeBasic enthalten ist?
Das wäre doch unsinnig, weil Sin gibt es doch auch als Standard Funktion...
Gruß
Christoph |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4699 Wohnort: ~/
|
Verfasst am: 19.08.2007, 17:15 Titel: |
|
|
Dein erster Screenshot sieht mehr nach sin(90)=0.8939966636005579 aus als nach sin(90)=1 ...
Aber das mit dem cos ist seltsam. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.08.2007, 17:17 Titel: |
|
|
Christoph hat Folgendes geschrieben: | sin 90 gibt 1, wenn ich das mit see rechne, kommt der auch auf das Ergebnis! Brauch ich nix umwandeln... |
1 mag für den Laien zwar *ungefähr* 0.8939966636005579 sein, aber selbst bei einer CPU mit FDIV-bug wäre das noch eine sehr große heftige abweichung Sprich: dass das so "nah" an 1 dran ist, ist reiner zufall... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4699 Wohnort: ~/
|
Verfasst am: 19.08.2007, 17:23 Titel: |
|
|
Kann man alles gegen Endlich abschätzen ...
Ich bekomme ständig einen Segmentation fault. Wenn ich in der console.bas das stdeval durch ein fbeval ersetze, läuft es zwar, kennt aber weder sin noch cos.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
|
|
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.
|
|