Matris | |
![]() | ![]() |
![]() | |
Om vi har många variabler kan vi spara dessa i en matris. En matris är en variabel som kan rymma många värden och varje värde i matrisen har ett index. Man kan definiera endimensionella matriser. Till exempel: Dim Tal(100) as Integer Den första är en endimensionell matris med namnet Tal med plats för 101 olika variabler. En variabel i positionen Tal(0) en annan variabel i positionen Tal(1) och så vidare till positionen Tal(100). Tilldelning kan ske till exempel genom en slinga: For i = 0 to 100 Resultatet blir att i Tal(0) finns värdet 0, i Tal(1) ligger värdet 2 och så vidare till Tal(100) som har värdet 200. En tvådimensionell matris kan till exempel deklareras som: Dim Matris(3,12) As Integer En slinga kan se ut så här: For i = 0 to 3 Först är i lika med noll och den inre slingan körs med j = 0 till j =12. Sedan blir i lika med ett och den inre slingan körs igen med värden på j mellan 0 och 12. Detta blir en tabell med 4 kolumner och 13 rader. Det vill säga att man kan tilldela matrisen 13 olika värden i matrisen där position i=0: Matris(0,0)=0, Matris(0,1)=2, Matris(0,2)=4... Matris(0,12)=24. Sedan 13 värden i matrisens där position i=1: Matris(1,0)=3, Matris(1,1)=5, Matris(1,2)=7... Matris(1,12)=27 och så vidare. En tredimensionell matris: Dim Tal(10,20,15) Det blir en matris med 11 positioner i första dimensionen, 21 i den andra och 16 i den tredje dimensionen. Dessa kan tilldelas med till exempel: For i = 0 To 10 Resultatet blir alltså 10*20*15=3000 olika värden i den matrisen med till exempel position Tal(2,2,3)=12. Det går också att tilldela en text till en matris, men då måste vi dimensionera med String: Dim Namn(100) As String Då kan vi skriva till exempel: Namn(36) = TextBox1.Text Matrisens trettiosjätte position får då det som står i textboxen. Det går också att göra tvärtom, att tilldela en variabel eller något annat ett värde från en matris: TextBox1.Text = Namn(12) Textboxen får då det som finns i matrisens tolfte position.
Programmet blir som nedan. Observera att jag inte har använt matrisens nollte position; det blir lättare att tänka då. Dim vek(5) As Integer Kör programmet och skriv in ett tal i varje Textbox. Klicka på knappen och talen är sorterade. UBoundAntag att vi har en matris med 10 element: Dim matris(9) As Integer Antag vidare att vi vill loopa genom matrisen med en For To-sats: For i=0 To 9 I stället för 9 kan vi skriva UBound(matris): For i = 0 To UBound(matris) Det innebär att loopen går till det övre värdet som matrisen har. Om vi nu inser att matrisen måste innehålla fler element, till exempel: Dim matris(25) As Integer behöver vi inte ändra i For To-satsen. UBound hittar att det nu finns 26 element och loopar därmed 26 gånger. | |
![]() | ![]() |
![]() | |
SupportData.Net |