1 / 19

Om Øvelse 7 Stoff relatert til øvelse 7 Generering av tilfeldige tall Bruk ting vi har lært før

Om Øvelse 7 Stoff relatert til øvelse 7 Generering av tilfeldige tall Bruk ting vi har lært før. Den virkelige verden og dataprogrammer. I den virkelige verden er det ofte slik at vi ikke kan vite hva som skal skje, men vi vet at det er et sett med muligheter og at en av dem vil skje.

mya
Download Presentation

Om Øvelse 7 Stoff relatert til øvelse 7 Generering av tilfeldige tall Bruk ting vi har lært før

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. Om Øvelse 7Stoff relatert til øvelse 7Generering av tilfeldige tallBruk ting vi har lært før

  2. Den virkelige verden og dataprogrammer • I den virkelige verden er det ofte slik at vi ikke kan vite hva som skal skje, men vi vet at det er et sett med muligheter og at en av dem vil skje. • Eksempler: • Kasting av terning: Etter kast vet vi at at den vil vise et tall 1..6 og at hvert tall er like sannsynlig • I trafikken vet vi at det vil skje mange ulykker. Dette vet vi av erfaring og vi kan finne hvor sannsynlig det er at det vil skje en ulykke i fremtiden

  3. Tilfeldige tall – The Random Class (side 485) • Det er ofte nyttig å lage dataprogrammer som simulerer den virkelige verden • For å innføre elementer med usikkerhet benyttes tilfeldige tall. • Dette er så mye brukat at alle programmeringsspråk har laget ferdig kode som gir oss tilfeldige tall.I VB er det Random-klassen (Random-klassen kan også kalles en Random-kontroll om du vil, men den har ikke noe som i vises et skjermvindu slik som f.eks. en TextBox-kontroll.)

  4. Eksempel Deklarerer et nytt objekt av type Random DimlagTilfeldigTallAsNewRandom Bruker det nye objektet: tall = lagTilfeldigTall.Next() Får et positivt tall mellom 0 og 4294967295 (Fordi VB bruker 32 bits tall som gir maks 2**32 = 4294967296 verdier)

  5. ... eksempel Private Sub btnBeregn_Click() Handles btnBeregn.Click Dim lagTilfeldigTall As New Random Dim tall As Integer tall = lagTilfeldigTall.Next() lstVis.Items.Add("Tilfeldig tall: " & tall) End Sub

  6. ... eksempel Lag et tilfeldig tall mellom m og n: tall = lagTilfeldigTall.Next(m, n) MERK: tall blir et tall fra m og opp til n, men ikke med n Eksempel: Lag et tilfeldig tall mellom 1 og 10: tall = lagTilfeldigTall.Next(1, 11)

  7. ... eksempel Lag et tilfeldig tall mellom 0 og 9: tall = lagTilfeldigTall.Next(1, 10) Private Sub btnBeregn_Click() Handles btnBeregn.Click Dim lagTilfeldigTall As New Random Dim tall As Integer tall = lagTilfeldigTall.Next(1, 10) lstVis.Items.Add("Tilfeldig tall: " & tall) End Sub

  8. ... eksempel Lag en frekvenstabell for 100 tilfeldig tall hvor hvert tall er mellom 0 og 9: Dim frekvenstabell(9) As Integer frekvenstabell(0) inneholder antall 0'ere frekvenstabell(1) inneholder antall 1'ere osv frekvenstabell(9) inneholder antall 9'ere

  9. ... eksempel Kode for å lage 100 tilfeldig tall mellom 0 og 9 og telle opp antall av hvert tall. Resultatet av tellingene legges i en frekvenstabell. Private Sub btnBeregn_Click() Handles btnBeregn.Click Dim lagTilfeldigTall As New Random Dim tall As Integer Dim frekvenstabell(9) As Integer For i As Integer = 1 To 100 tall = lagTilfeldigTall.Next(0, 10) frekvenstabell(tall) += 1 Next For i As Integer = 0 To 9 lstVis.Items.Add(i & ": " & frekvenstabell(i)) Next End Sub

  10. Oppgave Modifiser koden slik at den lager 200 tilfeldig tall mellom 1 og 10 og ellers som før: Telle opp antall av hvert tall og legg resultatet av tellingene i en frekvenstabell. Private Sub btnBeregn_Click() Handles btnBeregn.Click Dim lagTilfeldigTall As New Random Dim tall As Integer Dim frekvenstabell(9) As Integer For i As Integer = 1 To 100 tall = lagTilfeldigTall.Next(0, 10) frekvenstabell(tall) += 1 Next For i As Integer = 0 To 9 lstVis.Items.Add(i & ": " & frekvenstabell(i)) Next End Sub

  11. Løsning Koden som lager 100 tilfeldig tall mellom 1 og 10 og ellers som før: Telle opp antall av hvert tall og legg resultatet av tellingene i en frekvenstabell. Private Sub btnBeregn_Click() Handles btnBeregn.Click Dim lagTilfeldigTall As New Random Dim tall As Integer Dim frekvenstabell(9) As Integer For i As Integer = 1 To 200 tall = lagTilfeldigTall.Next(1, 11) frekvenstabell(tall-1) += 1 Next For i As Integer = 0 To 9 lstVis.Items.Add(i+1& ": " & frekvenstabell(i)) Next End Sub

  12. ... repeter noe fra slides fra forrige gang

  13. Frekvenstabell • Basert på tellinger av antall biler i ulike tellestasjoner laget i tabellMedTellinger(52 • Lag en frekvenstabell som viser hvor mange tellinger det er i intervallene: • Mindre enn 20 tellinger • Mellom 20 og 40 tellinger • Mellom 40 og 65 tellinger • Mellom 60 og 80 tellinger • Over 80 tellinger

  14. Prinsipp for kode 'Det er 5 intervaller Dim FrekvensTabell(4) As Integer 'plass til frekvens for hvert intervall ' Kode inni en løkke som går gjennom de 52 elementene i tabellen: If (tabellMedTellinger(i) < 20) Then FrekvensTabell(0) = FrekvensTabell(0) + 1 ElseIf (tabellMedTellinger(i) >=20) or (tabellMedTellinger(i) < 40) Then FrekvensTabell(1) = FrekvensTabell(1) + 1 ’osv for alle intervallene End If

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

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

  17. Dim sr As IO.StreamReader sr = IO.File.OpenText(“stasjon-og-antallBiler.txt”) ' MERK: To lesinger for å lese rett tall Do While (sr.peek() <> -1) stasjon = sr.ReadLine antallBilerPrStasjon = sr.ReadLine sum = sum + antallBilerPrStasjon antallStasjoner = antallStasjoner + 1 Loop gjennomsnitt = sum / antallStasjoner

  18. antallBiler.txt 13 45 120 105 89 56 45 67 45 96 34 12 34 45 23 67 45 34 74 89 134 98 23 12 6 32 34 2 12 45 34 23 43 34 23 27 67 56 28 17 12 56 8 9 3 3 6 3 5 38 1 2

  19. antallBiler-sortert.txt 1 2 2 3 3 3 5 6 6 8 9 12 12 12 12 13 17 23 23 23 23 27 28 32 34 34 34 34 34 34 38 43 45 45 45 45 45 45 56 56 56 67 67 67 74 89 89 96 98 105 120 134

More Related