Avatar billede clausjacobsen Nybegynder
13. august 2001 - 22:52 Der er 5 kommentarer og
1 løsning

Compare på 2 Array

Hej, er der nogen der kan hjælpe.....

Jeg skal lave en compare på 2 arrays, og have skrevet forskellen ud i en tekstfil, er der nogen der kan hjælpe ?
Avatar billede jelzin101 Praktikant
13. august 2001 - 22:56 #1
har de lige mange elementer ?
Avatar billede jelzin101 Praktikant
13. august 2001 - 23:46 #2
jeg har lige kogt flg. lille ting sammen :

Dim ar1(0 To 10) As Integer
Dim ar2(0 To 10) As Integer
Dim arhlp(0 To 10) As Boolean
Dim i As Integer

Private Sub Command1_Click()
Randomize
For i = 0 To 10
    ar1(i) = Int(10 * Rnd)
    ar2(i) = Int(10 * Rnd)
    arhlp(i) = False
Next i

For i = 0 To 10
    If ar1(i) = ar2(i) Then: arhlp(i) = True
Next i

Open \"sammenlign.txt\" For Output As #1
For i = 0 To 10
    Write #1,
    Write #1, i; \" er \"; arhlp(i)
    Write #1,
    Next i
    Close #1
End Sub

den laver 3 arrays (11 værdier 0 - 10) ar1, ar2 som heltalsværdier, arhlp som boolske værdier.
i den første løkke fyldes ar1 og ar2 med tilfældige tal 0-9 og alle værdier af arhlp sættes til false.

i næste løkke sammenlignes disse værdier parvist og hvis de er ens bliver arhlp for denne placering i array\'et sat til at være true.

tilsidst åbnes textfilen og der skrives til den. (ikke append der bliver bare overskrevet.)
Avatar billede jelzin101 Praktikant
14. august 2001 - 01:38 #3
Open \"compare.txt\" For Output As #1
Write #1, \"|----------------Sammenligning af arrays-------------|\"
Write #1,
Write #1, \" Indgang              ens\"
For i = 0 To 10
Write #1,
Write #1, \"    \"; i; \"            \"; arhlp(i)
Next i
Close #1
Print \"filen: \" & CurDir; \"\\compare.txt er blevet skrevet\"
End Sub



-giver et lidt pænere output.
Avatar billede jelzin101 Praktikant
14. august 2001 - 02:36 #4
og så var det man kedede sig en smule.... og forbedrede det foregående. :
Dim ar1(0 To 10) As Integer
Dim ar2(0 To 10) As Integer
Dim arhlp(0 To 10) As Boolean
Dim i, j, k, l As Integer
Dim m  As Single
Dim a, b, c, d As String

Private Sub Command1_Click()

If UBound(ar1) <= UBound(ar2) Then: l = UBound(ar1)
If UBound(ar2) > UBound(ar2) Then: l = UBound(ar2)

For i = 0 To l \' laver 2 tilfældige arrays
Randomize
ar1(i) = Int(5 * Rnd)
ar2(i) = Int(5 * Rnd)
Next i

For i = 0 To l \'tjek værdier
    arhlp(i) = False
        If ar1(i) = ar2(i) Then: arhlp(i) = True: j = j + 1
  Next i

k = l - j \' matcher ikke
m = (j / l * 100) \' procent matcher
a = \"Der blev fundet \" & j & \" matchende værdier\"
b = \"  \" & k & \" værdier matchede ikke\"
c = \"Dette betyder at :\" & m & \" % af værdierne er ens.\"
d = \"dato: \" & Date & \" tidspunkt: \" & Time

\' udskrift
Open \"compare.txt\" For Output As #1
    Write #1, \"|----------------Sammenligning af arrays-------------|\"
    Write #1, d
    Write #1,
    Write #1, \" Indgang              ens\"
      For i = 0 To l
        Write #1,
        Write #1, \"    \"; i; \"            \"; arhlp(i)
      Next i
  Write #1, \"|----------------------------------------------------|\"
  Write #1,
  Write #1, \"|---Stats---|\"
  Write #1, a
  Write #1, b
  Write #1, c
  Write #1, \"|--------------------|\"
Close #1
Print \"filen: \" & CurDir; \"\\compare.txt er blevet skrevet\"
End Sub



//* Jelz.
Avatar billede clausjacobsen Nybegynder
14. august 2001 - 09:48 #5
Hej jelzin,

Du er en gud, tak for hjælpen, det var lige som jeg ønskede det.

Point går lige i din kasse ;-)

Tak,
ClausJacobsen
Avatar billede jelzin101 Praktikant
14. august 2001 - 12:05 #6
mange tak :)
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