Avatar billede karsten_larsen Praktikant
11. marts 2004 - 10:23 Der er 14 kommentarer og
1 løsning

Array position sammenlignes med andet array

Hovedproblemet er:
En position i array [ResultatARR] skal sammenlignes med et andet array [arrS + et index nummer] . Hvis værdien stemmer overens skal placering i [arrS + et index nummer] registreres.

eksempler på data
ResultatARR = "4,2,3,4,5,3,2,1,3,2,1,1"
arrS0 = "2,3,1,4"
arrS1 = "6,3,1,3"
etc

Nedenstående fungerer fint som udgangspunkt - bortset fra at index nummer i arrS0(n) skal skifte syncront med i! Det vil sige, at position ResultatARR (0) skal sammenlignes med arrS0, at ResultatARR (1) skal sammenlignes med arrS1 osv.

Hvordan løses det?


    For i = 0 to 11
        var_resultat = ResultatARR (i)        
       
        For n = 0 to 3
        If     var_resultat = arrS0(n) then
            If n = 0 then
                resultat1 = resultat1 + 1
            end if
            If n = 1 then
                resultat2 = resultat2 + 1
            end if
            If n = 2 then
                resultat3 = resultat3 + 1
            end if
            If n = 3 then
                resultat4 = resultat4 + 1
            end if               
        end if
        next
    next


At bruge var_resultat = arrS& i (n) går ikke!

?:-) karsten_larsen
Avatar billede ellebaek Nybegynder
11. marts 2004 - 11:18 #1
For i = 0 to 11
        var_resultat = ResultatARR (i)       
        if i = 0 then
        arr = arrS0
        elseif i = 1 then
        arr = arrS1
        else
        arr = defaultarray 'ret selv til her...
        end if
        For n = 0 to 3
        If    var_resultat = arr(n) then
            If n = 0 then
                resultat1 = resultat1 + 1
            end if
            If n = 1 then
                resultat2 = resultat2 + 1
            end if
            If n = 2 then
                resultat3 = resultat3 + 1
            end if
            If n = 3 then
                resultat4 = resultat4 + 1
            end if               
        end if
        next
    next

Noget i denne stil, hvor du smider værdien af dit array over i en ny variabel hvis der er tale om et andet nummer i i. Du kan selv skrive mere til på ifsætningen i toppen.
Avatar billede karsten_larsen Praktikant
11. marts 2004 - 11:58 #2
-> ellebaek
Det giver en kørselsfejl - Typer stemmer ikke overens: 'arr', som er dette.

var_resultat = arr(n)

var_resultat = arr&(n) fungerer heller ikke

Jeg har også prøvet at hente arrS0 etc. fra et array, både som arrS0 og arrS0(n) der får jeg samme kørselsfejl.

?:-) karsten_larsen
Avatar billede ellebaek Nybegynder
11. marts 2004 - 12:01 #3
For i = 0 to 11
        var_resultat = ResultatARR (i)       
        if i = 0 then
        for j = 0 to UBound(arrS0)
        arr(j) = arrS0(j)
        next
        elseif i = 1 then
        for j = 0 to UBound(arrS0)
        arr(j) = arrS1(j)
        next
        else
        arr = defaultarray 'ret selv til her...
        end if
        For n = 0 to 3
        If    var_resultat = arr(n) then
            If n = 0 then
                resultat1 = resultat1 + 1
            end if
            If n = 1 then
                resultat2 = resultat2 + 1
            end if
            If n = 2 then
                resultat3 = resultat3 + 1
            end if
            If n = 3 then
                resultat4 = resultat4 + 1
            end if               
        end if
        next
    next

Så prøv det her, hvor hvert element bliver kopieret et af gangen.
Avatar billede karsten_larsen Praktikant
11. marts 2004 - 12:07 #4
Det samme
Typer stemmer ikke overens: 'arr' i denne linie:
arr(j) = arrS0(j)
Avatar billede ellebaek Nybegynder
11. marts 2004 - 12:13 #5
Splitter du de her over i et array ?
ResultatARR = "4,2,3,4,5,3,2,1,3,2,1,1"
arrS0 = "2,3,1,4"
arrS1 = "6,3,1,3"
Avatar billede karsten_larsen Praktikant
11. marts 2004 - 12:20 #6
Yes - sådan her:
s1 = "1,3,4,2"
arrS1 = Split(s1,",")   
   
ResultatARR = split(session("valg"),",")
Avatar billede ellebaek Nybegynder
11. marts 2004 - 12:22 #7
så laver vi det lidt om...
gør sådan her i stedet.

For i = 0 to 11
        var_resultat = ResultatARR (i)       
        if i = 0 then
        myarr = split(s0,",")
        elseif i = 1 then
        myarr = split(s1,",")
        else
        arr = defaultarray 'ret selv til her...
        end if
        For n = 0 to 3
        If    var_resultat = myarr(n) then
            If n = 0 then
                resultat1 = resultat1 + 1
            end if
            If n = 1 then
                resultat2 = resultat2 + 1
            end if
            If n = 2 then
                resultat3 = resultat3 + 1
            end if
            If n = 3 then
                resultat4 = resultat4 + 1
            end if               
        end if
        next
    next
Avatar billede karsten_larsen Praktikant
11. marts 2004 - 12:31 #8
hmm - det giver ikke samme fejl! Men der forekommer ingen sammenskrivning af værdier.

Efter første to gennemløb, burde det se sådan ud:
resultat1 = 1
resultat2 = 0
resultat3 = 0
resultat4 = 1
Avatar billede ellebaek Nybegynder
11. marts 2004 - 12:33 #9
har du sat disse linier:
resultat1 = 0
resultat2 = 0
etc.
Avatar billede karsten_larsen Praktikant
11. marts 2004 - 12:34 #10
hmm - den tager værdierne med!
Avatar billede ellebaek Nybegynder
11. marts 2004 - 12:35 #11
tager værdierne med ?
Avatar billede karsten_larsen Praktikant
11. marts 2004 - 12:38 #12
ja - var_resultat, myarr(n) antager værdier lige før

If var_resultat = myarr(n) then

Men ved overenstemmelse - sker der intet.
Avatar billede karsten_larsen Praktikant
11. marts 2004 - 12:43 #13
Fejlen ligger et andet sted - den skal jeg nok finde. Tak for hjælpen.

:-) karsten_larsen
Avatar billede ellebaek Nybegynder
11. marts 2004 - 12:45 #14
Anytime.

Takker for points..
..Ellebæk!
Avatar billede karsten_larsen Praktikant
11. marts 2004 - 12:49 #15
Fejlen er fundet, som ikke har noget med dette script at gøre. Det fungerer perfekt nu.

:-)) k_l
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