Avatar billede montago Praktikant
17. januar 2004 - 16:16 Der er 16 kommentarer og
2 løsninger

Sortering af Tal

dim A,B,C,Ar,Br,Cr,Asv,Bsv,Csv
A=0    'A skal være det største tal
B=0    'B skal være det næststørste (dog hvis A=B er B=A)
C=0    'C skal være det næststørste (dog hvis B=C er C=B)
Ar=0
Br=0
Cr=0
Asv=0  'skal indeholve Sumsvar for A
Bsv=0  'skal indeholve Sumsvar for B
Csv=0  'skal indeholve Sumsvar for C

For each Folder in objFolder.SubFolders
If Left(Folder.Name,1) <> "-" Then
   
    Response.Write "<tr><td><b>" & Folder.Name & "</b></td></tr>"

   
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPhysicalPath & "\" & Folder.Name)
    Set objFolderContents = objFolder.Files
    For Each objFileItem in objFolderContents
   
            Set Conn = Server.CreateObject("ADODB.Connection")
            Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("..\..\db\CarPolls.mdb")
            Set RS = Server.CreateObject("ADODB.Recordset")
            SQL = "Select * FROM poll where Car =" & "'cars/" & Folder.Name & "/" & objFileItem.Name & "'"
            RS.Open SQL, Conn, 3, 3
       
            Dim Sumsvar, Coolness
            Dim intRed, intGreen, intBlue, strColor
            Dim sv1, sv2, sv3, sv4, sv5, sv6
           
            if not RS.EOF then
                Sumsvar = RS("svar1") + RS("svar2") + RS("svar3") + RS("svar4") + RS("svar5") + RS("svar6")
                sv1 = RS("svar1") * 0 
                sv2 = RS("svar2") * 20
                sv3 = RS("svar3") * 40
                sv4 = RS("svar4") * 60
                sv5 = RS("svar5") * 80
                sv6 = RS("svar6") * 100
           
                If (sumsvar = 0) then sumsvar = 1
                Coolness = int((sv1 + sv2 + sv3 + sv4 + sv5 + sv6) / sumsvar)     
               
                if (coolness < 50) then
                    intRed         = int((2 * coolness / 100) * 255)
                    intGreen     = 255
                else
                    intRed         = 255
                intGreen     = int(((100 - coolness) / 100) * 255) * 2
                end if
                intBlue = 0
                strColor = "rgb(" & intRed & "," & intGreen & "," & intBlue & ")"
            else
                sumsvar = -1
            end if
            If sumsvar > 5 then
/// Her ønsker jeg sorteringen A>B>C>?

            end if
   
            Conn.Close
            Set Conn = Nothing
        Next
   
        Set objFSO = Nothing
          Response.Write "<tr><td>"
        Response.Write "<font color=""Gold"">" & Asv &" Votes / "& A & "%</font> <font color=""Silver"">" & Bsv & " Votes / " & B & "%</font> <font color=""Brass"">" & Csv & " Votes /" &  C & "%</font>"
          Response.Write "</tr></td>"
        A = 0
        B = 0
        C = 0
        Asv = 0
        Bsv = 0
        Csv = 0
               
    Set oFSO = nothing
End if
Next
Avatar billede ellebaek Nybegynder
17. januar 2004 - 18:37 #1
hvad er det problemet er ??

for hvis det bare er at sortere 3 tal så kan du bruge denne...

if tal1 < tal2 then
a = tal2
b=tal1
elseif tal1 = tal2 then
a = tal1
else
a=tal1
b=tal2
end if
Avatar billede montago Praktikant
17. januar 2004 - 19:19 #2
se lige i scriptet...

A skal være den højeste værdi af Coolness - med "Asv" tilhørende Sumsvar værdi
B skal være den næsthøjeste værdi af Coolness - med "Bsv" tilhørende Sumsvar værdi
C skal være den næsthøjeste værdi af Coolness - med "Csv" tilhørende Sumsvar værdi
Avatar billede ellebaek Nybegynder
17. januar 2004 - 20:10 #3
hvor definere du a, b og c ?
Avatar billede montago Praktikant
17. januar 2004 - 20:15 #4
de bliver dim'et i toppen...

se efter "/// Her ønsker jeg sorteringen A>B>C>?"
Avatar billede ellebaek Nybegynder
17. januar 2004 - 20:17 #5
ja, men hvilke tal er det der skal sorteres ?
Avatar billede montago Praktikant
17. januar 2004 - 20:24 #6
Coolness som er resultatet af beregningerne
Avatar billede ellebaek Nybegynder
17. januar 2004 - 20:32 #7
if A = 0 then
A = coolness
Asv = sumsvar

elseif B = 0 then
B = coolness
Bsv = sumsvar

elseif C = 0 then
C = coolness
Csv = sumsvar

else
if A < coolness then
C = B
B = A
A = coolness
Csv = Bsv
Bsv = Asv
Asv = sumsvar

elseif A = coolness then
A = coolness
Asv = sumsvar

elseif B < coolness then
C = B
Csv = Bsv
B = coolness
Bsv = sumsvar

elseif B = coolness then
B = coolness
Bsv = sumsvar

elseif C < coolness then
C = coolness
Csv = sumsvar
end if
end if

Måske virker dette...
Hvis du sætter det ind ved dine
Avatar billede montago Praktikant
17. januar 2004 - 20:47 #8
Den virker NÆÆÆsten....

Sorteringen tager ikke højde for at den første Coolness-værdi kan være den næststørste...

dvs. hvis coolness kommer sådan her : [68 77 25 30 10] bliver
A = 68
B = 77
Avatar billede ellebaek Nybegynder
17. januar 2004 - 20:51 #9
nå ja ;-)

if A < coolness then
C = B
B = A
A = coolness
Csv = Bsv
Bsv = Asv
Asv = sumsvar

elseif A = coolness then
A = coolness
Asv = sumsvar

elseif B < coolness then
C = B
Csv = Bsv
B = coolness
Bsv = sumsvar

elseif B = coolness then
B = coolness
Bsv = sumsvar

elseif C < coolness then
C = coolness
Csv = sumsvar
end if

hvad hvis den bare ser ud som dette ?
Avatar billede montago Praktikant
17. januar 2004 - 21:00 #10
Ser meget fint ud...

men der er endnu et krav:

hvis coolness flere gange har samme værdi, fx. [80 80 65 63 52]
skal A og B være 80
Avatar billede montago Praktikant
17. januar 2004 - 21:01 #11
den nemmeste løsning må næsten være med et Array... men if-then-else skulle kunne gøre det... :-/
Avatar billede ellebaek Nybegynder
17. januar 2004 - 21:03 #12
oki...

Så var det lige den jeg missede...

Det må jeg lige se på, 2 sek..
if A < coolness then
C = B
B = A
A = coolness
Csv = Bsv
Bsv = Asv
Asv = sumsvar

elseif A = coolness then
if B = coolness then
C = coolness
Csv = sumsvar
else
B = coolness
Bsv = sumsvar
end if

elseif B < coolness then
C = B
Csv = Bsv
B = coolness
Bsv = sumsvar

elseif B = coolness then
C = coolness
Csv = sumsvar

elseif C < coolness then
C = coolness
Csv = sumsvar
end if

Sådan her skulle jeg mene...
Avatar billede montago Praktikant
17. januar 2004 - 21:10 #13
Den virker perfekt nu...
Avatar billede ellebaek Nybegynder
17. januar 2004 - 21:26 #14
lækkert....

Så får du et svar!
Avatar billede montago Praktikant
17. januar 2004 - 21:28 #15
Jeg kan desværre ikke acceptere... da siden bare loader igen...

eksperten virker ikke :-(
Avatar billede ellebaek Nybegynder
17. januar 2004 - 21:30 #16
Virker mystisk.
Prøv at lukke IE og start den igen.

Det kan måske hjælpe..!
Avatar billede montago Praktikant
17. januar 2004 - 21:40 #17
nope... prøvede også i en anden tråd jeg har...
Avatar billede ellebaek Nybegynder
17. januar 2004 - 21:46 #18
oki...

Virker mystisk.

Men det kommer nok til at virke.
Bare prøv på et andet tidspunkt.
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