Mer sortering Mer Debugging Introduksjon til strukturer.

Slides:



Advertisements
Liknende presentasjoner
Tabeller av objekter Klassen ArrayList
Advertisements

Kap 04 Lister. Listestrukturer Listestrukturer hensiktsmessige ved såkalte flyktige tabeller (tabeller med relativt mye innsetting/sletting)
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.
Webprogrammering Arrays.
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
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.
ADA 95 – del6 Foreleser: Olaf Hallan Graven Bok: Programming in ADA95 (2nd) John Barnes.
Objektorientert programmering i PHP del 2
Hvordan tenke lurt når du skriver tekst?
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
IS-102 Klassedefinisjoner
Tema: Introduksjon Hvorfor Velocity? Installasjon Velocity VS. JSF / JSP Eksempler Oppsumering.
C# for javaprogrammerere
En gang til!? .
Operativsystemer.  Tilstandsmaskiner kalles på engelsk Finite State Machines.  Tilstandsmaskiner er en metode til å beskrive systemer med logisk og.
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.
Filer Finne minste Finne Største Beregne gjennomsnitt Variabler Tabeller – Arrays Lage frekvenstabell.
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.
Databaser. Introduksjon til Databaser Resten av foilene fra kap 10.1 som vi går gjennom på neste forelesning.
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.
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.
Bruk av PHP. Nyttige funksjoner Tidsfunksjoner –Time(), date(), checkdate(), mktime() Tabellfunksjoner –Navigasjon current(), key(), next(), prev(), end(),
Introduksjon til Java 5.0. Hva er nytt i 5.0? Generiske typer For-løkke med iterator (for-hver løkke) Automatisk innpakking av primitive typer Metadata.
Kap 02 Tabeller / Tabelloperasjoner. Enkeltvariable Les inn nedbørmengde for årets 12 måneder: Les n1 Les n2 … Les n12 n1 n2 n12.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker
ADA 95 – del3 Foreleser: Olaf Hallan Graven Bok: Programming in ADA95 (2nd) John Barnes.
Instead-of-trigger Faglig forum. Instead-of-trigger Problem: En har et VIEW som består av mange JOINs. Komplekst å oppdatere alle tabellene som inngår.
Uke 7 - del I: Repetisjon del II: Objekter, klasser og pekere 30 sept. 2003, Arne Maus Inst. for informatikk, UiO.
Løsningsforslag til MOFScript oppgave. Metamodellen.
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.
02 - Java datatyper Grundlæggende om datatyper og variable.
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.
Termbaser Lars Nygaard. Termbaser Database over begreper Innhold –Definisjoner –Oversettelser –Leksikalske relasjoner –Eksempler.
OpenEdge og.NET Jan Kolstad PUG Norway Lillehammer 2004.
B.V. Electronic Østerbro Skive GuideOnLine Framework.
INF1000 (Uke 14) Resten av eksamen H03 + del av V05 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B.
Informasjonssystem for tannlege Kloster-Jensen
Ortering Mål: Se på forskjellige måter for sortering.
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
INF1000 (Uke 12) Sortering og eksamensoppgaver Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen.
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.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
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 3 Bruk av klasser og objekt. 3.1 Å lage objekt Eit variabelnamn i Java representerer Ein primitiv verdi (f eks boolean, int ) Eit objekt (f eks.
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.
SPSS-kurs. Program Dagen vil bli delt inn i fire bolker: Bolk 1 - 9:30-10:30 – Åpne/lagre datasett, datatyper, definere variable. Bolk 2 – 10:45-11:30.
SPSS-kurs.
Oversikt Access Hva en bør beherske så langt. Tabeller Felt Typer (heltall, desimaltall, tekst, Boolean) Primary Key.
Triks Avslutt alle klasser, metoder og løkker samtidig som du lager dem. Deklarer alle variablene/referansene på begynnelsen av klassen. Hvis du definerer.
Begynnerkurs i Python Realfagskonferansen 2019 Henrik H. Løvold
For, While, prosedyrer m/ parametere, funskjoner
Utskrift av presentasjonen:

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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