Avatar billede karsten_larsen Praktikant
18. juli 2005 - 11:33 Der er 3 kommentarer og
1 løsning

Tage 2 værdier med fra den samme funktion

Hvordan tager jeg to værdier med fra den samme funktion.

Værdierne skabes fint i selve funktionen "femkant_e" med kan ikke tages med udenfor denne, hvor de senere skal bruges i en anden beregning.

Function femkant_e (faktor, x1, y1, x2, y2)
    faktor_omregnet  = (faktor - 25)*2/100
    alfa = (y1 - y2 )/ (x1 - x2)
    b = y1 - alfa*x1
    x_faktor_e = faktor_omregnet*(x2-x1) + x1
    y_faktor_e = alfa*x_faktor_e + b
    Response.Write("<br> kontrol udskrift x_faktor_e = " &x_faktor_e)
    Response.Write("<br> kontrol udskrift y_faktor_e = " &y_faktor_e)   
End Function
femkant_e 45,319,447,437,609

    Response.Write("<br>kontrol udskrift uden for funktion x_faktor_e = " &x_faktor_e)
    Response.Write("<br>kontrol udskrift uden for funktion y_faktor_e = " &y_faktor_e)   

Dette giver følgende resultat:

kontrol udskrift x_faktor_e = 366,2
kontrol udskrift y_faktor_e = 511,8
kontrol udskrift uden for funktion x_faktor_e =
kontrol udskrift uden for funktion y_faktor_e =

??:-) karsten_larsen
Avatar billede fennec Nybegynder
18. juli 2005 - 11:40 #1
Har du dim'et variablerne så de er golbale??

dim x_faktor_e, y_faktor_e
Function femkant_e (faktor, x1, y1, x2, y2)
    faktor_omregnet  = (faktor - 25)*2/100
    alfa = (y1 - y2 )/ (x1 - x2)
    b = y1 - alfa*x1
    x_faktor_e = faktor_omregnet*(x2-x1) + x1
    y_faktor_e = alfa*x_faktor_e + b
    Response.Write("<br> kontrol udskrift x_faktor_e = " &x_faktor_e)
    Response.Write("<br> kontrol udskrift y_faktor_e = " &y_faktor_e)   
End Function
femkant_e 45,319,447,437,609

    Response.Write("<br>kontrol udskrift uden for funktion x_faktor_e = " &x_faktor_e)
    Response.Write("<br>kontrol udskrift uden for funktion y_faktor_e = " &y_faktor_e)
Avatar billede karsten_larsen Praktikant
18. juli 2005 - 11:44 #2
ups - næhe de var røget ud. Tak for hjælpen.

Vil du lave et svar?

:-) karsten_larsen
Avatar billede fennec Nybegynder
18. juli 2005 - 11:56 #3
Du kunne også have overført dem som parameter på funktionen.

dim x_faktor_e, y_faktor_e
Function femkant_e (faktor, x1, y1, x2, y2, val1, val2)
    faktor_omregnet  = (faktor - 25)*2/100
    alfa = (y1 - y2 )/ (x1 - x2)
    b = y1 - alfa*x1
    val1 = faktor_omregnet*(x2-x1) + x1
    val2 = alfa*x_faktor_e + b
    Response.Write("<br> kontrol udskrift x_faktor_e = " &val1)
    Response.Write("<br> kontrol udskrift y_faktor_e = " &val2)   
End Function
femkant_e 45,319,447,437,609, x_faktor_e, y_faktor_e

Hvis man sender en variabel med kan man ændre værdien i den gennem funktionen. Det er fordi alle variabler (pr default) bliver overført som pointer og ikke som en kopi.

nemme kode:

function changeTemp(val1)
  val1 = val1 + 10
  resposne.write val1 &"<br>"
end function

temp = 1
response.write temp &"<br>"
changeTemp temp
response.write temp &"<br>"

skulle gerne give
1
11
11

Det kan dog overstyres med "byVal" (default er "byRef"). Same kode, men med:

function changeTemp(byVal val1)

skulle gerne give
1
11
1

.o) <-- One Eyed Jack
Avatar billede karsten_larsen Praktikant
18. juli 2005 - 12:00 #4
tak for uddybning
:-) karsten_larsen
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