Avatar billede hjep Nybegynder
19. februar 2003 - 14:13 Der er 19 kommentarer og
1 løsning

Mindste variabel?

Hvis man nu har 10 variable og man kun skal have vist den mindste, er der så en snedig måde.

Den eneste jeg sådan lige havde i tanker var

if var1<var2 or var1<var3 osv osv. then
response.write(var1)

Men det er jo godt nok meget der skal laves. Der er vel noget der er nemmere.
Avatar billede soes Nybegynder
19. februar 2003 - 14:36 #1
hvis du ligger alle dine vaerdier ind i et array kan du paa arrayet foretage en sortering, efter stigende/falende.

finder lige en artikkel til dig.
Avatar billede soes Nybegynder
19. februar 2003 - 14:38 #2
http://activedeveloper.dk/julekalender/julegaver/bubble.asp

denne artikkel beskriver meget grundigt hvordan det hele fungere
Avatar billede longshanks Nybegynder
19. februar 2003 - 14:44 #3
hvis du lægger værdierne ind i et array skal jeg nok lave bubblesort algoritmen til dig!
Avatar billede soes Nybegynder
19. februar 2003 - 14:46 #4
hvis du laeser artiklen jeg linker til vil du meget hurtigt se at der er tale om en bubblesort. hvorfor lave dobbelt arbejde :o)
Avatar billede longshanks Nybegynder
19. februar 2003 - 14:53 #5
Jeg har læst artiklen, og er man ikke hardcore ASP haj, vil den ikke give meget mening.....

Artiklen rummer de første 200 linier, hvorimod en dedikeret bubblesort, ikke vil fylde over 20 linier.

Så meget ekstra arbejde er det faktisk heller ikke :)
Avatar billede hjep Nybegynder
19. februar 2003 - 15:10 #6
Til longshank

Jeg prøvet at lægger værdierne ind og det virker fint nok med det eksempel. Men havde du et der var nemmere. Jeg fatter ikke lige helt koden men den kan da bruges

myArray(0,0) = 10
myArray(0,1) = 30
myArray(0,2) = 80
myArray(0,3) = 20
myArray(0,4) = 90
myArray(0,5) = 20
myArray(0,6) = 95
myArray(0,7) = 100
myArray(0,8) = 110
myArray(0,9) = 105
myArray(0,10) = 114
Avatar billede longshanks Nybegynder
19. februar 2003 - 15:25 #7
Det du har givet mig er faktisk et allerede sorteret, dvs. den mindste variabel/værdi altid vil være i myArray(0,0). Så er sortering unødvendig.

Men får du værdierne ind i vilkårlig rækkefølge, så skal arrayet sorteres, ala nedenstående, opbygget som en før/efter forklaring(bemærk at jeg har ændret lidt i dit array, og i værdiernes rækkefølge)Håber du kan bruge det:

<%
dim myArray(11)

myArray(0) = 20
myArray(1) = 30
myArray(2) = 114
myArray(3) = 20
myArray(4) = 90
myArray(5) = 10
myArray(6) = 105
myArray(7) = 100
myArray(8) = 110
myArray(9) = 95
myArray(10) = 80

Response.write "<b><u>Her ses arrayets indhold før sortering</u></b><br>"

for t = 0 to uBound(myArray)
Response.write myArray(t) & "<br>"
Next

do
    swapped = false
        for y = 0 to ubound(myArray)-1
            if cint(myArray(y)) > cint(myArray(y+1)) then
                tmp = myArray(y)
                myArray(y) = myArray(y+1)
                myArray(y+1) = tmp
                swapped = true
            end if
    Next
loop while swapped
Response.write "<br><br><br><b><u>Her ses arrayets indhold efter sortering</u></b><br>"
for t = 0 to uBound(myArray)
Response.write myArray(t) & "<br>"
Next

%>
Avatar billede longshanks Nybegynder
19. februar 2003 - 15:26 #8
Prøv at køre koden i en asp fil, så forstår du nok bedre!
Avatar billede hjep Nybegynder
19. februar 2003 - 15:44 #9
Det virker og jo tak lidt mere overskueligt. Men nu er der selvfølgelig opstået et andet problem. Jeg tror måske jeg har to variabler eller der skal i hvert fald tilknyttes en tekst.

myArray(1)=10

På min side står der så
myArray(1)=tal1   

tal1 har jeg så fundet et at andet sted på siden og er i det her tilfælde 10. Det virker som det skal. Men tal1 er altid knyttet til en "Afd1" og den kunne  jeg godt tænke mig at få skrevet ud også. Er det nemt?
Hvis jeg tager udgangspunkt i ovenstående

myArray(0) = 20
myArray(1) = 30
myArray(2) = 114
myArray(3) = 20

myArray(0) = tal1
myArray(1) = tal2
myArray(2) = tal3
myArray(3) = tal4

tal1 hører altid til "afd1" ligeledes hører tal2 altid til afd2. Afd er altså en fast tekst hvorimod tal1, tal2 er en variabel som jeg finder længere oppe på siden. 

Det jeg så skal skrive ud er det mindste tal + den afd som hører til tal.

Giver det en mening eller er det helt sort
Avatar billede longshanks Nybegynder
19. februar 2003 - 15:51 #10
2 minutter!!!
Avatar billede longshanks Nybegynder
19. februar 2003 - 15:57 #11
Prøv at køre denne kode!!

<%
dim myArray(11), myArray1(11)

myArray1(0) = "afd 1"
myArray1(1) = "afd 2"
myArray1(2) = "afd 3"
myArray1(3) = "afd 4"
myArray1(4) = "afd 5"
myArray1(5) = "afd 6"
myArray1(6) = "afd 7"
myArray1(7) = "afd 8"
myArray1(8) = "afd 9"
myArray1(9) = "afd 10"
myArray1(10) = "afd 11"

myArray(0) = 20
myArray(1) = 30
myArray(2) = 114
myArray(3) = 20
myArray(4) = 90
myArray(5) = 10
myArray(6) = 105
myArray(7) = 100
myArray(8) = 110
myArray(9) = 95
myArray(10) = 80

Response.write "<b><u>Her ses arrayets indhold før sortering</u></b><br>"

for t = 0 to uBound(myArray)
Response.write myArray(t) & " - " & myArray1(t) & "<br>"
Next

do
    swapped = false
        for y = 0 to ubound(myArray)-1
            if cint(myArray(y)) > cint(myArray(y+1)) then
                tmp = myArray(y)
                myArray(y) = myArray(y+1)
                myArray(y+1) = tmp
               
                tmp = myArray1(y)
                myArray1(y) = myArray1(y+1)
                MyArray1(y+1) = tmp
               
                swapped = true
            end if
    Next
loop while swapped
Response.write "<br><br><br><b><u>Her ses arrayets indhold efter sortering</u></b><br>"
for t = 0 to uBound(myArray)
Response.write myArray(t) & " - " & myArray1(t) & "<br>"
Next

%>
Avatar billede longshanks Nybegynder
19. februar 2003 - 15:58 #12
Der sorteres nu i 2 arrays på samme tid
Avatar billede hjep Nybegynder
19. februar 2003 - 16:12 #13
Ok nu ligner det noget. Der var kanon. Der er lige en sidste ting der godt nok driller.

Prøv lige at kigge resultatet/sorteringen. Ser det ikke sjovt ud?


Her ses arrayets indhold før sortering
19,56 - afd 1
14,01 - afd 2
18,44 - afd 3
10,12 - afd 4
12,9 - afd 5
9,76 - afd 6
12,89 - afd 7
13,51 - afd 8


Her ses arrayets indhold efter sortering

10,12 - afd 4
9,76 - afd 6
12,9 - afd 5
12,89 - afd 7
14,01 - afd 2
13,51 - afd 8
18,44 - afd 3
19,56 - afd 1


10,12 mindste tal
Sidste linie bruger jeg Response.write myArray(1) & " mindste tal"


10,12 mindste tal
Avatar billede hjep Nybegynder
19. februar 2003 - 16:13 #14
Jeg har rettet øverste linie til
dim myArray(8), myArray1(8)
Avatar billede hjep Nybegynder
19. februar 2003 - 16:19 #15
Hvis jeg prøver med nogle andre cifre. Her er alle tallene over 10 og så går det fint. Det er da lidt mærkeligt eller.......


Bilskade 5. sal 12,9Her ses arrayets indhold før sortering
19,16 - afd 1
14 - afd 2
21 - afd 3
12,21 - afd 4
12,9 - afd 5
10 - afd 6
14,24 - afd 7
12,79 - afd 8
-



Her ses arrayets indhold efter sortering
-
10 - afd 6
12,21 - afd 4
12,9 - afd 5
12,79 - afd 8
14 - afd 2
14,24 - afd 7
19,16 - afd 1
21 - afd 3
10 - afd 6 mindste tal
Avatar billede longshanks Nybegynder
19. februar 2003 - 16:21 #16
prøv at udskift cint() til cdbl() istedet!! i sorterings algoritmen
Avatar billede longshanks Nybegynder
19. februar 2003 - 16:22 #17
2 steder der skal udskiftes!
Avatar billede longshanks Nybegynder
19. februar 2003 - 16:22 #18
Nu trækker vi vist snart op til en pointforhøjelse :)
Avatar billede hjep Nybegynder
19. februar 2003 - 16:32 #19
Jo det kan jeg godt se. Den blev lægere end hvad planen var. Til gengæld virker det perfekt nu. Takker for hjælpen!
Avatar billede longshanks Nybegynder
19. februar 2003 - 16:36 #20
var så lidt ;)
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