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

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Tabeller av objekter Klassen ArrayList
14 okt. 2003, Arne Maus Inst. for informatikk, UiO
Datafiler og serialisering Tekstfiler Scanner-klassen Binær overføring av data Direkte tilgang til filinnholdet Serialisering LC191D Videregående programmering.
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
TIF seminar -Visual Basic (VBA) og RExcel Elisabeth Orskaug Norsk Regnesentral Oslo, 8. november 2011.
Kontrollstrukturer (Kapittel 3)
Uke 8 - Mer om: Objekter, klasser og pekere
1 Java 6 Mer om metoder Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo.
Høgskolen i Oslo Webprogrammering Introduksjon til Java-scripting.
Java 12 Mer filbehandling - skrive til fil HashMap Et større eksempel Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet.
Tabeller – Arrays Lage frekvenstabell Norske Bokstaver
Mer sortering Mer Debugging Introduksjon til strukturer.
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
Eksempel: Administrasjon av biler. Eksempel •Program for å administrere informasjon om biler •Vi ser på tre deler: –Registrere biler: legge inn i tabell.
Objektorientert programmering i PHP del 2
Formler og funksjoner.
IS-102 Klassedefinisjoner
Oblig4 - forklaringer Arne og Ole Christian.
Generelt I/O if/else Funksjoner Lists Løkker Dictionaries Annet Listebehandling Klasser Python med noen algdat-anvendelser Åsmund Eldhuset asmunde *at*
En gang til!? .
Jæger: Robuste og sikre systemer Høgskolen i Molde INF150 Programmering Siste forelesning Pensum Kursevaluering.
Om Øvelse 7 Stoff relatert til øvelse 7 Generering av tilfeldige tall Bruk ting vi har lært før.
Tekstanalyse Mål: Vi skal sammenligne bøker fra to forfattere ved å se på frekvens av tegn.
Feilhåndtering. Feil er uunngåelige! Erfaring viser at feil i dataprogrammer som består av mer enn noen få linjer ikke er til å unngå. For å få et godt.
Utvider eksemplet om biler fra forrige gang med mer feilsjekk Tid og Dato.
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 7.9 Bakgrunn for øvelse 2 Bruk av variabler i beregninger Ser på tekststrenger (3.4 Strings.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 2.10 Default values – standardverdier ved oppstart MER OM: Sub-prosedyrer og sub-funksjoner.
Gjennomgang av prøven Tidsangivelse. Prøven deles ut Vi fyller ut øvelsen sammen.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 4.9 Forrige gang til og med: 3.2 Visual Basic Events (60-73) Nå: Litt om Group Box, CheckBox.
Datavedlikehold: innlegging, endring, sletting Gjennomgang av eksempel.
Sortering og søk. Sortering av data som ligger på en fil Prisipielt to hovedmåter gjøre dette på: 1.Arbeide mot filen 1.Lese en linje, og lese de resterende.
INF150 Programmering mandag 11.9
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 5.10 MER OM: Lesing fra fil Unntakshåndtering Kap 8.
Kap 02 Tabeller / Tabelloperasjoner. Enkeltvariable Les inn nedbørmengde for årets 12 måneder: Les n1 Les n2 … Les n12 n1 n2 n12.
Skåring av SSIS-skjemaene Frode Svartdal UiT / Diakonhjemmet høgskole.
Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker
Høgskolen i Oslo Webprogrammering Filbehandling i PHP.
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Dynamiske nettsider PHP Del 1 – variable. PHP  PHP (Personal Home Page)  Fritt tilgjengelig programmeringsspråk  åpen kildekode  Plattformuavhengig.
Uke 7 - del I: Repetisjon del II: Objekter, klasser og pekere 30 sept. 2003, Arne Maus Inst. for informatikk, UiO.
ELEFANTKLUBBEN (De eldste barna)
INF 4130 Eksamen 2008 Gjennomgang.
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 18.9 Lesing av data fra fil og skriving av data til fil. Side 411 – 4.. Kap 4.
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
Jæger: Robuste og sikre systemer INF150 Programmering Kapittel 2: Problemløsning Kapittel 3.1 og 3.2.
GPS simulator Et C# program som sender data fra en GPS fil til RS232 og simulerer en GPS engine. Tre linjer pr. sekund er satt opp.
1 INF5110 – 23. april, 2013 Noen oppgaver til kap. 8 Dette er en bedre utgave av oppgavene, lagt ut 24. april Nå fredag (26/4): Det blir ikke undervisning.
Föreläsning 13 Programmeringsteknik och Matlab 2D1312/2D1305 Inläsning från fil Skriva till fil StringTokenizer Sortering.
Objekt, Instanser og referanser + litt til. Objekter  Instanser  Kan sees på som det samme. Personen Per kan være både et objekt og en instans av klassen.
Vareopptelling Mål: Se hva vi har solgt av i hver måned.
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
Ekstra mange tips til Oblig 3! 12. mars 2007 Are Magnus Bruaset og Arild Waaler Inst. for informatikk, UiO.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
Byggeklosser i java  Klassedefinisjon  Variabel deklarasjon  Metodedeklarasjoner  En ordentlig klasse  Spesielle/kryptiske skrivemåter  løkker og.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 25.9 MER OM: Sub-prosedyrer og sub-funksjoner Kap 4.
Inf1000 (Uke 10) HashMap og ArrayList
INF1000 (Uke 4) Mer om forgreninger, While-løkker
Inf1000 (Uke 5) Arrayer, filer og tekst
Finne feil - Debugging Introduksjon til sortering.
Kapittel 5 Vilkårssetningar og løkker. 5.1 Boolske uttrykk George Boole ( ), britisk matematikar Utvikla teori om logikk ved bruk av symbol i.
Kapittel 7 Array (lister og tabellar). 7.1 Arrayelement Array (lister, tabellar) er kjent frå VB Blir brukt til å organisere data når vi har mange dataelement.
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 14.9 Ulike måter for å lese inn og skrive ut data. Kap. 3.5 mer om if – setninger Ferdige.
Statistikk Forkurs Hva er statistikk? undersøke registrere lage oversikt→ Presentasjon av informasjon formidle Arbeidet med statistikk kan vi dele.
Oversikt Access Hva en bør beherske så langt. Tabeller Felt Typer (heltall, desimaltall, tekst, Boolean) Primary Key.
Variabler, datatyper og uttrykk
IS-102 Interaksjon med objekter
For, While, prosedyrer m/ parametere, funskjoner
Utskrift av presentasjonen:

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: Finne minste antall telt Finne største antall telt Beregne gjennomsnittlig antall biler for alle stasjonene

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: “ )

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)

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

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

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: “ )

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)

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

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

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

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()

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

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: “ )

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)

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)

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 Class

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

Endre tabellstørrelse mens programmet kjører Format: ReDim arrayName(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

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)

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)

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)

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

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 Sub

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 Sub

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

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

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

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

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

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

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)