Avatar billede broegger Nybegynder
25. juni 2001 - 10:42 Der er 9 kommentarer og
1 løsning

Ligningsløser

Jeg er i gang med at lave et program der kan løse ligninger. Programmet virker fint når jeg indtaster ligningen i selve sourcekoden, men problemet er at modtage et udtryk (fx. 2*X + 3) fra brugeren og få computeren til at regne på det. Hvordan gør jeg det?
Avatar billede qzar Nybegynder
25. juni 2001 - 10:43 #1
Hmm......!
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 11:24 #2
Lad os se din kode ...

du kan jo bruge

strVar = InputBox(\"Indtast ligning:\",\"\")

til at få indput fra brugeren af ..
Avatar billede broegger Nybegynder
25. juni 2001 - 11:53 #3
Det virker ikke... Når forsøger at løse ligningen via input fra inputboxen skriver den \"Compile Error: ByRef argument mismatch\".
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 11:56 #4
ahh .. den fejl kender jeg alt for godt ;-)
Det sker når du overfører en Variant variabel til en funktion der skal bruge en String.

Skriv f.eks.

MinSub (variabel)

istedet for

MinSub variabel
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 11:58 #5
Og ellers så lad os se din kode .. så bliver det langt nemmere at hjælpe.
Men endnu bedre er hvis du f.eks. skriver:

Dim minvar As String

minvar = InputBox(\"Indtast ligning:\",\"\")
Avatar billede broegger Nybegynder
25. juni 2001 - 11:59 #6
Øøøh... Det forstod jeg vist ikke helt...
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 12:01 #7
jamen .. så lad os se din kode !! Det er sku svært at hjælpe når ikke man har noget at se på ..
Avatar billede broegger Nybegynder
25. juni 2001 - 12:05 #8
Her er så koden:

Function Solve(X As Double, Num_Decimal As Double, Number As Integer)
Do
X = X + Num_Decimal
\' Round(X, n) afrunder X til n decimaler
Loop Until Round(\"HER SKAL INPUT FRA BRUGEREN STÅ (FX. (2 * X - 4))\", Number) >= 0
Select Case Number
Case Is < 14
  X = X - Num_Decimal
  Number = Number + 1
  Num_Decimal = 10 ^ (-1 * Number)
  Call Solve(X, Num_Decimal, Number)
Case Is = 14
  Call Solution(Round(X, Decimal_Num))
End Select
End Function
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 12:09 #9
nååååå .. på den måde ... jamen det er fordi at du ikke kan udføre kode skrevet som input fra en bruger.

Dvs.

x = (12 * 10) / 4 i kode virker fint men hvis du siger
x = inputbox(\"bla bla\",\"\") og brugeren indtaster (12 * 10) / 4

så vil x indeholde TEKSTEN \"(12 * 10) / 4\"
Du kan ikke få det udregnet med mindre du finder noget kode der kan udregne det.
Avatar billede broegger Nybegynder
25. juni 2001 - 12:16 #10
Ok. Tak skal du ha\'.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester