Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Mer sortering Mer Debugging Introduksjon til strukturer.

Liknende presentasjoner


Presentasjon om: "Mer sortering Mer Debugging Introduksjon til strukturer."— Utskrift av presentasjonen:

1 Mer sortering Mer Debugging Introduksjon til strukturer

2 Øv. 7 relatert •Lage histogram •Utskrift av histogram –Lag prosedyre SkrivUt() •Med kode for hver søyle •Med løkke som skriver ut alle søylene

3 Foreta utskrift i en prosedyre Private Sub btnVis_Click() Handles btnVis.Click Dim randomNum As New Random Dim frekvenstabell(9) As Integer ' plass til 10 Dim soyle As String For i As Integer = 0 To 100 frekvenstabell(randomNum.Next(0, 10)) += 1 Next SkrivUt(frekvenstabell) End Sub

4 Prosedyre SkrivUt(), Med kode for hver søyle Sub SkrivUt(ByVal frekvenstabell() As Integer) Dim soyle As String lstHistogram.Items.Clear() ’Skriv ut søyle for 0’erne soyle = frekvenstabell(0) & ": " For i As Integer = 0 To frekvenstabell(0) soyle = soyle & "*" Next lstHistogram.Items.Add(soyle) ’Skriv ut søyle for 1’erne soyle = frekvenstabell(1) & ": " For i As Integer = 0 To frekvenstabell(1) soyle = soyle & "*" Next lstHistogram.Items.Add(soyle) ’Skriv ut søyle for 2’erne soyle = frekvenstabell(2) & ": " For i As Integer = 0 To frekvenstabell(2) soyle = soyle & "*" Next lstHistogram.Items.Add(soyle) ’Skriv ut søyle for 3’erne soyle = frekvenstabell(3) & ": " For i As Integer = 0 To frekvenstabell(3) soyle = soyle & "*" Next lstHistogram.Items.Add(soyle) ’Skriv ut søyle for 4’erne soyle = frekvenstabell(4) & ": " For i As Integer = 0 To frekvenstabell(4) soyle = soyle & "*" Next lstHistogram.Items.Add(soyle) ’Skriv ut søyle for 5’erne soyle = frekvenstabell(5) & ": " For i As Integer = 0 To frekvenstabell(5) soyle = soyle & "*" Next lstHistogram.Items.Add(soyle) ’Skriv ut søyle for 6’erne soyle = frekvenstabell(6) & ": " For i As Integer = 0 To frekvenstabell(6) soyle = soyle & "*" Next lstHistogram.Items.Add(soyle) ’Skriv ut søyle for 7’erne soyle = frekvenstabell(7) & ": " For i As Integer = 0 To frekvenstabell(7) soyle = soyle & "*" Next lstHistogram.Items.Add(soyle) ’Skriv ut søyle for 8’erne soyle = frekvenstabell(8) & ": " For i As Integer = 0 To frekvenstabell(8) soyle = soyle & "*" Next lstHistogram.Items.Add(soyle) ’Skriv ut søyle for 9’erne soyle = frekvenstabell(9) & ": " For i As Integer = 0 To frekvenstabell(9) soyle = soyle & "*" Next lstHistogram.Items.Add(soyle) End Sub

5 Sub SkrivUt(ByVal frekvenstabell() As Integer) Dim soyle As String lstHistogram.Items.Clear() ’ legg inn løkke End Sub Prosedyre SkrivUt() Oppgave: Lag løkke som skriver ut alle søylene

6 Prosedyre SkrivUt() Med løkke som skriver ut alle søylene Sub SkrivUt(ByVal frekvenstabell() As Integer) Dim soyle As String lstHistogram.Items.Clear() For tall As Integer = 0 To 9 soyle = frekvenstabell(tall) & ": " For i As Integer = 0 To frekvenstabell(tall) soyle = soyle & "*" Next lstHistogram.Items.Add(soyle) Next End Sub

7 Mer introduksjon til sortering... først fra forrige gang •Anta at vi har en tabell med to tekst-elementer som er navnene Berit og Anne i posisjon 0 og 1 •Vi ønsker at disse skal stå i alfabetisk rekkefølge, de må derfor bytte plass. •Skrive kode for dette 1.Uten prosedyre 2.Med en prosedyre ByttOm(ByRef til tabell)

8 Innhold i 2 tabellplasser skal bytte plass Private Sub btnBytt_Click() Handles btnBytt.Click Dim tabell(1) As String ' plass til 2 tabell(0) = ”Berit” tabell (1) = ”Anne” ’BRØVER Å BYTTE: tabell(0) = tabell (1) tabell (1) = tabell(0) ’KJØR I DEBUGGER, HVA ER GALT? End Sub

9 Innhold i 2 tabellplasser skal bytte plass Bruker hjelpevariabel Private Sub btnBytt_Click() Handles btnBytt.Click Dim tabell(1) As String ' plass til 2 Dim hjelpevariabel As String tabell(0) = ”Berit” tabell (1) = ”Anne” hjelpevariabel = tabell(0) tabell(0) = tabell (1) tabell (1) = hjelpevariabel End Sub

10 Innhold i 2 tabellplasser skal bytte plass Gjør dette i prosedyre ByttOm() Private Sub btnBytt_Click() Handles btnBytt.Click Dim tabell(1) As String ' plass til 2 tabell(0) = ”Berit” tabell (1) = ”Anne” ByttOm(tabell) End Sub Sub ByttOm(ByRef tabell() As String) Dim hjelpevariabel As String hjelpevariabel = tabell(0) tabell(0) = tabell (1) tabell (1) = hjelpevariabel End Sub

11 Gjør prosedyre ByttOm() mer generell Private Sub btnBytt_Click() Handles btnBytt.Click Dim tabell(1) As String ' plass til 2 tabell(0) = ”Berit” tabell (1) = ”Anne” ByttOm(tabell(0), tabell(1)) End Sub Sub ByttOm(ByRef ordEn As String, ByRef ordTo As String) Dim hjelpevariabel As String hjelpevariabel = ordEn ordEn = ordTo ordTo = hjelpevariabel End Sub

12

13 Sortering av tabeller Eksempel: Dim tabell(2) As String tabell(0) = “Cecilie” tabell(1) = “Berit” tabell(2) = “Anne” CecilieBeritAnne 012 Skriv kode for å sortere tabellen alfabetisk

14 Sortering av tabeller Eksempel: Dim tabell(5) As String CecilieBeritAnne 012 Skriv kode for å sortere tabellen alfabetisk GreteYaraAmanda 345

15 Sorteringsrutine “boble-sortering” “bubble sort” Private Sub btnSorter_Click() Handles btnSorter.Click Dim tabell() As String = {"cecilie", "Berit", "Anne", "Grete", "Yara", "Amanda"} For i As Integer = 0 To tabell.GetUpperBound(0) - 1 For j As Integer = i + 1 To tabell.GetUpperBound(0) If tabell(j) < tabell(i) Then ByttOm(tabell(j), tabell(i)) End If Next

16 Visual Basic Debugger (s. 627) •Debuggingsvinduer: –Immediate: Kan endre verdier i variabler mens prog kjører –Watch: Kan velge variabler vi vil se innholdet i –Locals: Ser på dette nå:

17 Locals-window •Viser innholdet i alle lokale variabler til en prosedyre eller funksjon •Viser ikke globale variabler –Prøv: •Gjøre frekvenstabell om fra inn-paramenter til SkrivUt() og til en global variabel •Observer forskjellen i Locals-vinduet

18 Holde rede på informasjon som logisk sett hører sammmen •F.eks. dersom vi har navn, adresse og alder for 10 personer vil vi gjerne at opplysningene for en person behandles som en gruppe •Structures, side 343: Defineres øverst i kodevinduet, etter Public Class frmMittProgram: Structure Person Dim navn As String Dim adresse As String Dim alder As Integer End Structure

19 Bruk av strukturer, eksempel Private Sub btnTest_Click() Handles btnTest.Click Dim person1 As Person 'Deklarasjon av 1 person 'Bruker strukturen: gir den verdier og skriver den ut person1.navn = "Bjørn Jæger" person1.adresse = "Bjørsetsletta 2, 6411 Molde" person1.alder = 46 lstutskrift.Items.Add(person1.navn) lstutskrift.Items.Add(person1.adresse) lstutskrift.Items.Add(person1.alder) End Sub


Laste ned ppt "Mer sortering Mer Debugging Introduksjon til strukturer."

Liknende presentasjoner


Annonser fra Google