1 / 33

Filer Finne minste Finne Største Beregne gjennomsnitt Variabler Tabeller – Arrays Lage frekvenstabell

Filer Finne minste Finne Største Beregne gjennomsnitt Variabler Tabeller – Arrays Lage frekvenstabell. Eksempel : Tellinger av biler. Antall biler som passerer en tellestasjon på en time telles. Det er 52 tellestasjoner og for hver stasjon skrives antallet på filen: antallBiler.txt Du skal:

edda
Download Presentation

Filer Finne minste Finne Største Beregne gjennomsnitt Variabler Tabeller – Arrays Lage frekvenstabell

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. FilerFinne minsteFinne StørsteBeregne gjennomsnittVariablerTabeller – ArraysLage frekvenstabell

  2. Eksempel : Tellinger av biler • Antall biler som passerer en tellestasjon på en time telles. • Det er 52 tellestasjoner og for hver stasjon skrives antallet på filen: antallBiler.txt • Du skal: • Finne minste antall telt • Finne største antall telt • Beregne gjennomsnittlig antall biler for alle stasjonene

  3. Legg inn kode for å finne minste Dim antallBilerPrStasjon As Integer Dim sr As IO.StreamReader sr = IO.File.OpenText(“antallBiler.txt”) Do While (sr.peek() <> -1) antallBilerPrStasjon = sr.ReadLine Loop MsgBox(“Minste Verdi er: “ )

  4. Kode for å finne minste Dim antallBilerPrStasjon As Integer Dim minste As Integer Dim sr As IO.StreamReader minste = 1000 ‘tall som er større enn det største i filen sr = IO.File.OpenText(“antallBiler.txt”) Do While (sr.peek() <> -1) antallBilerPrStasjon = sr.ReadLine If antallBilerPrStasjon < minste Then minste = antallBilerPrStasjon Loop MsgBox(“Minste Verdi er: “ & minste)

  5. Oppgave: Finne største Modifiser koden foran slik at den finner største verdi

  6. Beregne gjennomsnitt • Formel: • Gjennomsnittlig antall biler per stasjon =Sum av biler for alle stasjoner dividert på antall stasjoner • gjennomsnitt = sum / antallStasjoner

  7. Legg inn kode for å beregne gjennomsnitt Dim antallBilerPrStasjon As Integer Dim sr As IO.StreamReader sr = IO.File.OpenText(“antallBiler.txt”) Do While (sr.peek() <> -1) antallBilerPrStasjon = sr.ReadLine Loop MsgBox(“Gjennomsnitt er: “ )

  8. Kode for å beregne gjennomsnitt Dim antallBilerPrStasjon, sum, antallStasjoner As Integer Dim gjennomsnitt As Double Dim sr As IO.StreamReader sr = IO.File.OpenText(“antallBiler.txt”) Do While (sr.peek() <> -1) antallBilerPrStasjon = sr.ReadLine sum = sum + antallBilerPrStasjon antallStasjoner = antallStasjoner + 1 Loop gjennomsnitt = sum / antallStasjoner MsgBox(“Gjennomsnitt er: “ & gjennomsnitt)

  9. Variabler • Vi har sett på følgende typer variabler. • Dim ord As String • Dim antall As Integer • Dim gjennomsnitt As Double • Dim finnes As Boolean • Dersom vi har mye data må vi ha mange variabler å lagre dem i • F.eks. En variabel or hvert land i en valutakalkulator eller en variabel for hver student i en klasse

  10. Tabell - Array • En Array er en samling variabler av samme type. • En Array gjør det enklere for oss å holde rede på mye data i et program

  11. Eksemplet med bruk av tabell • Vi gjorde tre ting: • Finne minste antall telt • Finne største antall telt • Beregne gjennomsnittlig antall biler for alle stasjonene • Les først tellingene inn i en tabell, og gjør de samme beregningene

  12. Lese fra fil til tabell Dim antallBilerPrStasjon, minste As Integer Dim sr As IO.StreamReader Dim tabellMedTellinger(52) As Integer Dim nr As Integer sr = IO.File.OpenText("c:\antallBiler.txt") Do While (sr.peek() <> -1) tabellMedTellinger(nr) = sr.ReadLine lstTellinger.Items.Add(tabellMedTellinger(nr)) nr = nr + 1 Loop sr.Close()

  13. For ... Next loops (side 277) Prøv: For i = 1 To 51 lstTall.Items.Add(i & “ “ & i ^ 2) Next

  14. Legg inn kode for å finne minste i en tabell Dim i As Integer = 0 Dim tabellMedTellinger(51) As Integer ‘plass til 52 For i = 0 To 51 lstTellinger.Items.Add(i & ": " & tabellMedTellinger(i)) Next MsgBox(“Minste Verdi er: “ )

  15. Finne Minste i en tabell Dim i As Integer = 0 Dim minste as Integer = 1000 For i = 0 To 51 lstTellinger.Items.Add(i & ": " & tabellMedTellinger(i)) If (tabellMedTellinger(i) < minste) Then minste = tabellMedTellinger(i) End If Next MsgBox(“Minste Verdi er: “ & minste)

  16. Kode som finner på hvilken plass i tabellen minste tall er Dim i As Integer = 0 Dim minste as Integer = 1000 Dim tabellMedTellinger(51) As Integer ‘plass til 52 Dim nummerTilMinste As Integer For i = 0 To 51 lstTellinger.Items.Add(i & ": " & tabellMedTellinger(i)) If (tabellMedTellinger(i) < minste) Then minste = tabellMedTellinger(i) nummerTilMinste = i End If Next MsgBox(“Minste Verdi er: “ & minste & “ Nummer: ” & NummerTilMinste)

  17. Les fra fil til tabell i Form Load, bruk verdiene i btnFinnMinste_Click() Public Class frmTabellTest Dim tabellMedTellinger(51) As Integer ’plass til 52 Private Sub frmTabellTest _Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim sr As IO.StreamReader Dim nr As Integer sr = IO.File.OpenText("c:\antallBiler.txt") Do While (sr.peek() <> -1) tabellMedTellinger(nr) = sr.ReadLine lstTellinger.Items.Add(tabellMedTellinger(nr)) nr = nr + 1 Loop sr.Close() End Sub Private Sub btnFinnMinste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFinnMinste.Click Dim i As Integer = 0 Dim minste As Integer = 1000 For i = 0 To 51 lstTellinger.Items.Add(i & ": " & tabellMedTellinger(i)) If (tabellMedTellinger(i) < minste) Then minste = tabellMedTellinger(i) End If Next MsgBox("Minste Verdi er: " & minste) End Sub End Class

  18. La VB finne tabellstørrelse Metoden GetUpperBound() gir størrelsen på tabellen. Kan brukes ved gjennomgang av tabell: str =tabellMedTellinger.GetUpperBound(0) For i = 0 To str If (tabellMedTellinger(i) < minste) Then minste = tabellMedTellinger(i) End If Next

  19. Endre tabellstørrelse mens programmet kjører • Format: ReDimarrayName(m) • m er antall nye elemener med same type som tabellen • Kan da deklarere en array uten å angi str. Dim tabellMedTellinger() As Integer • Str angis senere når den er kjent ReDim tabellMedTellinger(antElement) • Skriv om eksemplet til å bruke ReDim • Merk: Må ha to gjennomganger av filen i Form_Load

  20. Modifiser koden som finner plassen til minste slik at den finner plassen til største tall Dim i As Integer = 0 Dim minste as Integer = 1000 Dim tabellMedTellinger(51) As Integer ‘plass til 52 Dim nummerTilMinste As Integer For i = 0 To 51 lstTellinger.Items.Add(i & ": " & tabellMedTellinger(i)) If (tabellMedTellinger(i) < minste) Then minste = tabellMedTellinger(i) nummerTilMinste = i End If Next MsgBox(“Minste Verdi er: “ & minste & “ Nummer: ” & NummerTilMinste)

  21. Skriv kode som finner på hvilken plass i tabellen største tall er? Dim i As Integer = 0 Dim tabellMedTellinger(51) As Integer ‘plass til 52 For i = 0 To 51 lstTellinger.Items.Add(i & ": " & tabellMedTellinger(i)) If (tabellMedTellinger(i) >storste) Then storste = tabellMedTellinger(i) nummerTilStorste = i End If Next MsgBox(“Storste verdi er: “ & storste & “ Nummer: ” & NummerTilStorste)

  22. Skriv kode som finner på hvilken plass i tabellen største tall er? Dim i As Integer = 0 Dim storste as Integer = -1 Dim tabellMedTellinger(51) As Integer ‘plass til 52 Dim nummerTilStorste As Integer For i = 0 To 51 lstTellinger.Items.Add(i & ": " & tabellMedTellinger(i)) If (tabellMedTellinger(i) >storste) Then storste = tabellMedTellinger(i) nummerTilStorste = i End If Next MsgBox(“Storste verdi er: “ & storste & “ Nummer: ” & NummerTilStorste)

  23. Oppgave: Beregne gjennomsnitt Modifiser koden foran slik at den beregner gjennomsnitt

  24. Frekvenstabell for bokstaver (side 315) Dim index As Integer Dim setning, bokstav As String Dim bokstavTeller(25) As Integer setning = (TextBox1.Text).ToUpper For letterNum As Integer = 1 To setning.Length bokstav = setning.Substring(letterNum - 1, 1) If (bokstav >= "A") And (bokstav <= "Z") Then index = Asc(bokstav) - 65 bokstavTeller(index) += 1 End If Next lstTellinger.Items.Clear() For i As Integer = 1 To 25 bokstav = Chr(i + 65) If bokstavTeller(i) > 0 Then lstTellinger.Items.Add(bokstav & " " & bokstavTeller(i)) End If Next End Sub

  25. Problemer med Æ, Ø og Å Dim index As Integer Dim setning, bokstav As String Dim bokstavTeller(25) As Integer setning = (TextBox1.Text).ToUpper MsgBox("Æ: " & Asc("Æ")) MsgBox("Ø: " & Asc("Ø")) MsgBox("Å: " & Asc("Å")) For letterNum As Integer = 1 To setning.Length bokstav = setning.Substring(letterNum - 1, 1) If (bokstav >= "A") And (bokstav <= "Z") Then index = Asc(bokstav) - 65 bokstavTeller(index) += 1 End If Next lstTellinger.Items.Clear() For i As Integer = 1 To 25 bokstav = Chr(i + 65) If bokstavTeller(i) > 0 Then lstTellinger.Items.Add(bokstav & " " & bokstavTeller(i)) End If Next End Sub

  26. Frekvenstabell • Lag en frekvenstabell som viser hvor mange tellinger det er i intervallene: • Mindre enn 5 tellinger • Mellom 5 og 10 tellinger • Mellom 10 og 15 tellinger • Mellom 15 og 20 tellinger • Over 20 tellinger

  27. Prinsipp for kode Dim FrekvensTabell(5) As Integer If (tabellMedTellinger(i) < 5) Then FrekvensTabell(1) = FrekvensTabell(1) + 1 ElseIf (tabellMedTellinger(i) >=5) or (tabellMedTellinger(i) < 10) Then FrekvensTabell(2) = FrekvensTabell(2) + 1 ’osv for alle intervallene End If

  28. Eksempel: stasjonsnavn og tellinger • 5 tellestasjoner teller antall biler som passerer på en time • På filen stasjon-og-antallBiler.txt er det lagret stasjonsnavn og tellinger for hver stasjon • Du skal: • beregne gjennomsnittlig antall biler for alle stasjonene • finne minste antall tellinger på en stasjon hvilken stasjon det er. • finne største antall tellinger på en stasjon hvilken stasjon det er. • Lage en frekvenstabell som viser hvor mange ...

  29. stasjon-og-antallBiler.txt Kleive 13 Nordbyen 45 Bjørset 12 Kvam 34 Fuglset 89 Sentrum 96

  30. Dim sr As IO.StreamReader sr = IO.File.OpenText(“stasjon-og-antallBiler.txt”) Do While (sr.peek() <> -1) stasjon = sr.ReadLine antallBilerPrStasjon = sr.ReadLine sum = sum + antallBilerPrStasjon antallStasjoner = antallStasjoner + 1 Loop gjennomsnitt = sum / antallStasjoner

  31. finne minste og største antall besøk på en uke og hvilke uker dette var. Dessuten skal du lage en frekvenstabell som viser hvor mange uker det var

  32. Finne minste Dim minste As Integer = 1000 sr = IO.File.OpenText("c:\stasjon-og-antallBiler.txt") Do While sr.Peek() <> -1 stasjon = sr.ReadLine antallBilerPrStasjon = sr.ReadLine If antallBilerPrStasjon < minste Then minste = antallBilerPrStasjon End If Loop sr.Close() MsgBox(”Minste verdi er: ” & minste)

More Related