07. november 2003 - 00:19
Der er
9 kommentarer og 1 løsning
program kan ikke se forskel på 1 og 0,1
Hej Exp´s
Jeg har lavet et lille program der kan arbejde med trigonometriske begræber som cos, sin og tan. Jeg har fundet ud af at programmet ikke kan se forskel på 1 og 0,1.
Hvorfor??
\\themaster
p.s.: her er sourcen:
www.themaster.dk/trigtool.rar
Annonceindlæg fra Academic Work Denmark A/S
07. november 2003 - 00:29
#1
i programmering er der ik noget der hedder 0,1 .. det hedder 0.1 ..
07. november 2003 - 00:31
#2
jo.....du kan bare lave et replace statement: talsin = Str$(Replace(sinx.Text, ",", "."))
07. november 2003 - 04:07
#3
hmm.. men så har du også lavet dit tal om til tekst .. og er du sikker på at du regner i rigtige enheder... grader/radianer osv... ?
07. november 2003 - 07:55
#4
Prøv at vis noget af din kode
07. november 2003 - 09:04
#5
Private Sub cos_exe_Click() Dim talcos As Double Dim cos_res As Double If cosx.Text = "" Then MsgBox ("Husk at skrive en værdi.....") Else talcos = Str$(Replace(cosx.Text, ",", ".")) cosx_res.Caption = "Cos(x) = " & Cos(talcos) End If End Sub Private Sub Form_Load() vælg.AddItem "sin(x)", 0 vælg.AddItem "cos(x)", 1 vælg.AddItem "tan(x)", 2 vælg.AddItem "Tilbage til start", 3 Label1.Caption = "Velkommen til TrigTool. Dette lille program er udviklet til at regne med trigonomeriske grundligninger." & vbCrLf & "Programmet inhaolder alle trigonomeriske begræber: " & vbCrLf & vbCrLf & "Sin(x)" & vbCrLf & "Cos(x)" & vbCrLf & "Tan(x)" & vbCrLf & vbCrLf & "Hilsen THEMASTER.DK" sin_frame.Visible = False cos_frame.Visible = False tan_frame.Visible = False End Sub Private Sub sin_exe_Click() Dim talsin As Single If sinx.Text = "" Then MsgBox ("Husk at skrive en værdi.....") Else talsin = Str$(Replace(sinx.Text, ",", ".")) sinx_res.Caption = "Sin = " & Sin(talsin) End If End Sub Private Sub tan_exe_Click() Dim tan_12 As Single If tan_x.Text = "" Or tan_y.Text = "" Then MsgBox ("Husk at srive en værdi.......") ElseIf tan_x.Text = "0" Then MsgBox ("Du må sku da ikke dele med 0.....dumrian....") Else tan_1 = Str$(Replace(tan_x.Text, ",", ".")) tan_2 = Str$(Replace(tan_y.Text, ",", ".")) tan_12 = tan_2 / tan_1 tan_res.Caption = "Tan(x) = " & tan_12 End If End Sub Private Sub vælg_Click() If vælg.Text = "sin(x)" Then tan_frame.Visible = False cos_frame.Visible = False sin_frame.Visible = True start_frame.Visible = False ElseIf vælg.Text = "cos(x)" Then tan_frame.Visible = False cos_frame.Visible = True sin_frame.Visible = False start_frame.Visible = False ElseIf vælg.Text = "tan(x)" Then tan_frame.Visible = True cos_frame.Visible = False sin_frame.Visible = False start_frame.Visible = False Else tan_frame.Visible = False cos_frame.Visible = False sin_frame.Visible = False start_frame.Visible = True End If End Sub
07. november 2003 - 10:09
#6
Og prøv så at komme med et eksempel på hvad der går galt hvorhenne... PS: der er masser af andre trigonomeriske begræber end cos, sin og tan, fx. arctan, hyperbolsk sinus og så videre - derfor skal du nok ikke bruge ordet "alle" i din lille tekst :o)
07. november 2003 - 16:43
#7
Her går det galt: (det samme med cos-afsnittet) talsin = Str$(Replace(sinx.Text, ",", ".")) sinx_res.Caption = "Sin = " & Sin(talsin) Hvis jeg tager sin(1) giver den det samme som hvis jeg tager sin(0,1). Det passer jo langt fra...
07. november 2003 - 16:51
#8
Hvis du nu regnede efter, ville du se, at svaret ikke passer på nogen af udregningerne - de giver begge det samme forkerte resultat! Og det er jo fordi du tager sin af en string - de følgende eksempler giver det samme sin("1") = sin("0,1) = sin("Hej") = sin(0) Værdien af en string er altid 0! Så du skal bruge sinx_res.Caption = "Sin = " & Sin(Val(talsin)) Prøv at væn dig til at lave kontrolberegninger - det ville have hjulpet dig til at se, at du altid får taget sin og cos af værdien nul...
07. november 2003 - 16:54
#9
Bemærk i øvrigt også, at dawin_dk i sit svar 07/11-2003 04:07:37 gjorde opmærksom på problemet! Husk at ret teksten så du sikke antyder, at sin, con og tan er alle de trigonometriske funktioner der findes ;o)
09. november 2003 - 10:58
#10
'Programmet inhaolder alle trigonomeriske begræber' inhaolder... indeholder ?? - Mikker
Kurser inden for grundlæggende programmering