Avatar billede sp Nybegynder
20. marts 2002 - 12:31 Der er 7 kommentarer og
1 løsning

Find den der der indeholder det mindste tal

Hej.

Jeg har en række tal og vil gerne have at den mindste bliver valgt og værdien bliver tilføjet variablen. Hvordan kan det lade sig gøre?

Pos1
Pos2
Pos3
Pos4

MinPos = Den mindste af dem.

M.v.h.
Søren Peter

Avatar billede rou Nybegynder
20. marts 2002 - 12:37 #1
Hvor har du de tal, i en database eller måske en array?
Avatar billede sp Nybegynder
20. marts 2002 - 12:46 #2
Pos1, Pos2, Pos3 og Pos4 indeholder hver et tal.
Normalt kan jeg lave if-sætninger indtil den finder det mindste, men det ville fylde rigtigt meget.
Derfor spørger jeg om der er en mulighed for at opstille det på en måde, så jeg kan finde det mindste tal.

M.v.h.
Søren Peter
Avatar billede rou Nybegynder
20. marts 2002 - 12:54 #3
Hmm, nedenstående er det eneste jeg lige kan komme i tanke om...

<%
Function FindLowest(sVals)
  dim aVals, iCnt, iLowest
  aVals = Split(sVals,",")
  iLowest = aVals(0)
  For iCnt = 0 To UBound(aVals)
    If(CLng(aVals(iCnt)) < CLng(iLowest)) Then iLowest = aVals(iCnt)
  Next
  FindLowest = iLowest
End Function

iMinVar = FindLowest(Pos1 &","& pos2, &","& pos3, &","& pos4)
%>
Avatar billede sp Nybegynder
20. marts 2002 - 14:06 #4
Hvad med FindLowest(Pos1 &","& pos2, &","& pos3, &","& pos4)?
Den laver en fejlmelding. Er det en streng der skal splittes?
Avatar billede rou Nybegynder
20. marts 2002 - 14:12 #5
nope, det er fordi der er komma efter pos2 og pos3 :)

My bad.
Avatar billede sp Nybegynder
20. marts 2002 - 22:11 #6
HVordan ændre man det så den før fjerner alle der har værdien 0 ?
Den skal kun sortere dem der har en værdi der er større end 0
Avatar billede sp Nybegynder
20. marts 2002 - 22:33 #7
Det virker ikke.
Jeg har forsøgt at se hvad aVals(0) er.
Den er 0.     

sVals = EndPos1 &","& EndPos2 &","& EndPos3 &","& EndPos4 &","& EndPos5
    aVals = Split(sVals,",")
  iLowest = aVals(0)
  For iCnt = 0 To UBound(aVals)
        If(aVals(iCnt) < iLowest) Then iLowest = aVals(iCnt)
  Next
Avatar billede sp Nybegynder
21. marts 2002 - 15:32 #8
Jeg fandt ud af det selv... Nu virker det:

    ' Find alle muligheder der eksisterer
            If EndPos1 > 0 Then sVals = EndPos1
            If EndPos2 > 0 Then sVals = sVals & " " & EndPos2
            If EndPos3 > 0 Then sVals = sVals & " " & EndPos3
            If EndPos4 > 0 Then sVals = sVals & " " & EndPos4
            If EndPos5 > 0 Then sVals = sVals & " " & EndPos5
            If EndPos6 > 0 Then sVals = sVals & " " & EndPos6
          ' Sørg derefter for at det er et gyldigt Array
            sVals = Trim(sVals)
            sVals = Replace(sVals," ",",")
          ' Find så den laveste position, som må være der hvor linket slutter
            aVals = Split(sVals,",")
          iLowest = aVals(0)
          For iCnt = 0 To UBound(aVals)
            If(aVals(iCnt) < iLowest) Then iLowest = aVals(iCnt)
          Next
        EndPos = iLowest
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