Hej Hej, Inte helt insatt i VB.NET ännu, men jag skulle kanske försöka mig på något i stil med Exempel: Vad har hungarian notation eller inte att göra med något av detta? I regel så ser man det ändå i utvecklingsmiljön vad det är för datatyper, blir lite kaka på kaka, dessutom blir det svårare att byta datatyp ifall man måste det eftersom att namnen då också måste ändras. Bland annat. Hungarian notation innebär att kontroller sorteras efter vilken typ det är. Dessutom måste du för intelisens veta vilken datatyp det är. Kan tillägga att på just kontroller tillämpar jag hungarian notation bara för att om jag har t.ex. ett gäng textrutors värden som ska in i något objekt eller liknande så är det smidigt för då har jag alla textrutor under varandra i intellisensen. Men egenskaper, metoder, variabler etc. är clean, möjligtvis med undantag på en del privata i metoderna Detta löser väl inte problemet omm alla tal i arrayen exempelvis är negativa?! Sorry. Var länge sen jag läste vb... det sätts ju till första värdet och inte till något annat... Det måste finnas ett sätt att sortera en array. Ta första värdet i stigande respektive fallande ordning. Det borde göra biffen om det bara handlar om heltal. Porta om QuickSort Algoritmen enl. bifogad länk. Allt i en enkel loop: hungarian notation använder jag mig av oftast... <b>Hitta största och minsta värdet i en array</b>Hitta största och minsta värdet i en array
Jag undrar om jag skulle kunna få ett tips på hur man hittar det minsta och högsta värdet i en array.
Jag har en array som jag kallar AgeList där jag har massa åldrar på personer sparade. Jag ska sedan hitta den yngsta och den äldsta.
Jag hittade ett exempel i min bok här som lyder:
Dim intNumbers(24) As integer
Dim intCount As Integer
Dim intLowest As Integer = intNumbers(0) 'Sätter intLowest till värdet av Element 1 i array?
For intCount = 1 To (intNumbers.Length-1)
If intNumbers(intCount) < intLowest Then
intLowest = intNumbers(intCount)
End If
Next intCount
Men detta framstår för mig som att de tar värdet i element 1 och mäter alla andra emot, hur ska det kunna hitta det lägsta värdet i arrayen??
Jag är nybörjare och ganska ovan så det kan mycket väl vara rätt bara att jag inte fattar hur, men HUR i så fall? :0)Sv: Hitta största och minsta värdet i en array
det exempel du tar upp fungerar, det initierar först intLowest med elementet på index 0. Sedan körs loopen från index 1 och fram tills slutet av arrayn. Om värdet i arrayen på ett visst index är mindre än värdet som finns i intLowest tilldelas intLowest detta nya värde. Så i slutändan har intLowest det minsta värdet. Du kan vända på operatorn < om du vill ha det största värdet istället. Hoppas det ska hjälpa lite.Sv: Hitta största och minsta värdet i en array
<code>
minValue = 9999 'Största tänkbara värdet i arrayen.
for count = 1 to ubound(array)
if array(count) < minValue then
minValue = array(count)
end if
count = count + 1
End For
</code>
för att fiska fram minsta värdet och då
<code>
maxValue = 0 'Minsta tänkbara värdet i arrayen.
for count = 1 to ubound(array)
if array(count) > maxValue then
maxValue = array(count)
end if
count = count + 1
End For
</code>
Typ så...Sv: Hitta största och minsta värdet i en array
Dim Numbers() As Integer = {78, 12, 32, 34, 16, 76, 12, 23, 32, 65, _
24, 24, 54, 74, 23, 45, 24, 24, 54, 52, _
24, 24, 54, 74, 23}
Dim Min As Integer = Numbers(0)
Dim Max As Integer = Numbers(0)
For Index As Integer = 1 To (Numbers.Length - 1)
Select Case Numbers(Index)
Case Is > Max
Max = Numbers(Index)
Case Is < Min
Min = Numbers(Index)
End Select
Next
Console.WriteLine(String.Format("Min: {0}", Min))
Console.WriteLine(String.Format("Max: {0}", Max))
Hungarian notation är ute. Personligen tycker jag inte den tillför något.
Sv:Hitta största och minsta värdet i en array
Varför är det ute? Det tillför en bättre överskådlighet, speciellt när man ska ha koll på vad det är för objekt man använder.
//JohannesSv: Hitta största och minsta värdet i en array
Sv: Hitta största och minsta värdet i en array
Om man har ett formulär för att fylla i användar uppgifter:
CancelButton
FirstNameLabel
FirstNameTextBox
LastNameLabel
LastNameTextBox
SaveButton
Jämför man det med hungarian:
btnCancel
btnSave
lblFirstName
lblLastName
txtFirstName
txtLastName
Jag tycker inte hungarian är attraktivt, jag ser färre och färre som rekommenderar hungarian notation. Jag tror inte längre Microsoft rekommenderar den.
Tidigare fanns ett större behov av hungarian innan intelisens och smarta editorer.
Men man är fri att använda vilken notation man så önskar. Sv:Hitta största och minsta värdet i en array
Sv:Hitta största och minsta värdet i en array
Kanske bör sätta Min och Max till första talet i arrayn alternativt sätta Max till int.MinValue och Min till int.MaxValue.
Ja och nu löser ju inte detta problemet för en array utan element... men man får väl göra en koll på det med och slänga ett exception('Min och max är odefinierat för den tumma mängden") ;-)Sv: Hitta största och minsta värdet i en array
Sv:Hitta största och minsta värdet i en array
Sv: Hitta största och minsta värdet i en array
Programarkivet:Sortera Array QuickSort
<code>
Option Explicit
'Du har en Array dData eller vad din array heter.
'Du skickar värdet på Array(0) till lower och array(uperbound) till upper
'kvickt som en höna skiter har du lägsta i Array(0) och högsta i UperBound.
Private Sub QSort(lower As Integer, upper As Integer) 'Vb.net Integer VB6 Long
Dim pivot As Integer, temp As Integer
Dim first As Integer, last As Integer, middle As Integer
' deklarera mittpunkt i dData "pivot"
first = lower ' lägsta pekare
last = upper ' högsta pekare
middle = (first + last) / 2
pivot = dData(middle)
Do ' kör pekarna mot varandra
While dData(first) < pivot
first = first + 1
Wend
While dData(last) > pivot
last = last - 1
Wend
If first <= last Then
temp = dData(first)
dData(first) = dData(last)
dData(last) = temp
first = first + 1
last = last - 1
End If
Loop Until first > last
If lower < last Then
'Rekursiva anrop
Call QSort(lower, last)
End If
If first < upper Then
Call QSort(first, upper)
End If
End Sub
</code>Sv: Hitta största och minsta värdet i en array
<code>
dim min as integer
dim max as integer
min = 2147483648 'största möjliga för en integer, ändras givetvis om datatypen ändras
max = -2147483647 'minsta möjliga för en integer, ändras givetvis om datatypen ändras
For i = 1 To (Numbers.Length-1)
If Numbers(i) < min Then
min = Numbers(i)
End If
If Numbers(i) > max Then
max = Numbers(i)
End If
Next i
</code>Sv:Hitta största och minsta värdet i en array
Sv: Hitta största och minsta värdet i en array
Löd hans Rubrik och fråga.Sitter och funderar på hur Ni löser detta med Era exempel.
Han har en array med ålderdata. Hur får Ni in den i Er Ungerska notation ?
Går det att köra min Qsort SubRutin rätt upp och ner i VB.net ? (har aldrig beblandat mig med skiten)
Undrar Sven