1 / 19

Mer sortering Mer Debugging Introduksjon til strukturer

Mer sortering Mer Debugging Introduksjon til strukturer. Ø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. Foreta utskrift i en prosedyre. Private Sub btnVis _Click() Handles btnVis.Click

brit
Download Presentation

Mer sortering Mer Debugging Introduksjon til strukturer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mer sortering Mer DebuggingIntroduksjon 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 ’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 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)

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

  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 • Uten prosedyre • 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 plassBruker 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 plassGjø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. Sortering av tabeller Eksempel: Dim tabell(2) As String tabell(0) = “Cecilie” tabell(1) = “Berit” tabell(2) = “Anne” 0 1 2 Cecilie Berit Anne Skriv kode for å sortere tabellen alfabetisk

  13. Sortering av tabeller Eksempel: Dim tabell(5) As String 0 1 2 3 4 5 Cecilie Berit Anne Grete Yara Amanda Skriv kode for å sortere tabellen alfabetisk

  14. 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 Next

  15. 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å:

  16. 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

  17. 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

  18. 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

More Related