Funksjoner og prosedyrer

Like dokumenter
Løsningsforslag Øving 7

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

Visual Basic. Repetisjon fra mandag

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Visual Basic. Repetisjon fra onsdag

Fasit til eksamen høst 2002, applikasjonsutvikling

HØGSKOLEN I SØR-TRØNDELAG

AVANSERTE TING LEVETID, BRUKSOMRÅDE OG KONVERTERING...

Løsningsforslag Eksamen i Programmering i Visual Basic høsten 2003 Laget av Runar Munkhaug

Objektorientering i VB videregående

HØGSKOLEN I SØR-TRØNDELAG

Introduksjon til Visual Basic 5

ARBEIDSNOTAT ARBEIDSNOTAT

Løsningsforslag ukeoppg. 9: okt (INF Høst 2011)

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk

Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

Lynkurs i shellprogrammering under Linux

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

Introduksjon til Visual Basic 5

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

MAT1030 Diskret matematikk

HØGSKOLEN I SØR-TRØNDELAG

Abaris-notat Teknisk beskrivelse av kodeverkskomponent for ICPC-2

File: C:\My Documents\fagprove\tp\klokke.txt , 08:42:20

1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO

Leksjon 6. Objekt. Evt. importsetninger. public class Klasse { Konstruktør. Objektmetoder. Innkapsling (private): set-og get-metoder

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.8

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

6108 Programmering i Java. Leksjon 5. Tabeller. Roy M. Istad 2015

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Høgskolen i Molde IBE150 Programmering Kontinuasjonseksamen (løsningsforslag) juni 2013

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

Etternavn Fornavn Født Død Annet Felt

Objektorientering i VB en introduksjon

Løse reelle problemer

Ta inn og ut av 2D-array. Java 6. Liste over ulike verdier i 2D-array. Det ferdige programmet. Vi skal lage et program som illustrerer hvordan man

OPPGAVE 5b og 8b Java Kode

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Innlesning fra tastatur med easyio. INF1000 høst Vi må først skrive i toppen av programmet: import easyio.*;

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Innføring i bruk av CGI4VB

Ukeoppgaver fra kapittel 3 & 4

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 2013

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Algoritmer og Datastrukturer

AMS-case. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt

Leksjon 3. Kontrollstrukturer

"Nelsons kaffebutikk"

Øvingsforelesning 1 Python (TDT4110)

Løsningsforslag EKSAMEN

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/ Vi holder orden på verdier med hjelp av variabler

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.6

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn?

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

HVA ER PROGRAMMERING?...

ML (kap 5 og 6) INF3110/4110. Variable i ML. Nye datatyper. Currying. Avanserte listeoperatorer. Typeanalyse

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3

Videregående programmering 6

Innføring i bruk av CGI4VB

Algoritmer - definisjon

Leksjon 3. Kontrollstrukturer

Introduksjon til beslutningsstrukturer

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010

INF1000 Metoder. Marit Nybakken 16. februar 2004

Introduksjon til objektorientert programmering

Ordliste. Obligatorisk oppgave 1 - Inf 1020

Kapittel 9: Sortering og søking Kort versjon

7) Radix-sortering sekvensielt kode og effekten av cache

MAT1030 Forelesning 30

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

UNIVERSITETET I OSLO

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1

Dagens tema: Sjekking

Transkript:

Funksjoner og prosedyrer i Visual Basic.NET Om funksjoner Kan redusere kodens lengde / kompleksitet Den som skriver må bry seg med detaljer Den som bruker funksjonen må ikke tenke på detaljer Lettere vedlikehold ett sted Generell, kan brukes i mange sammenhenger Reduserer størrelsen på kode God programmeringsskikk å bruke funksjoner Eksempel: snitt Function finngjennomsnitt(byval tall1 As Integer, ByVal tall2 As Integer) Dim sum, snitt As Single sum = tall1 + tall2 snitt = sum / 2 finngjennomsnitt = snitt Dim resultat as Single = finngjennomsnitt(10, 36) MsgBox("Gjennomgsnittet er " & resultat) MsgBox("Test" & finngjennomsnitt(10, 12)) Dim svar As Single svar = finngjennomsnitt(10, 12) Nytt eksempel: En funksjon for å slå sammen tekst Function vishelenavnet(byval fornavn as String, byval etternavn as String) Dim hele as String hele = fornavn & " " & etternavn vishelenavnet = hele 1

Bruke funksjonen Function vishelenavnet(byval fornavn as String, byval etternavn as String) Dim hele as String hele = fornavn & " " & etternavn vishelenavnet = hele Private Sub Button1_Click(...) Dim altsammen as String Dim for, etter as String for = TextBox1.text etter = TextBox2.text altsammen = vishelenavnet(for, etter) MsgBox(altSammen) Bruke funksjonen igjen Function vishelenavnet(vishelenavnet(byval fornavn as String, byval etternavn as String) 'antar at her er koden. Se tidligere slide Private Sub Button2_Click(...) dim hele as string hele = vishelenavnet( Nina", Saltvik") MsgBox(hele) og enda en gang, faktisk! Function vishelenavnet(vishelenavnet(b yval fornavn as String, byval etternavn as String) 'antar at her er koden. Se tidligere slide Ser her fleksibilitet og smart bruk i praksis Prosedyrer kan også lages Const max As Integer = 99 Private mat(max) As Integer Private Sub lagtilfeldig() Dim tilfeldigtall As Single Dim i As Integer For i = 0 To max tilfeldigtall = Rnd() mat(i) = tilfeldigtall * 5000 i Har nå en matrise med 100 tall mellom 0 og 5000 Var ikke det fort gjort? 2

Bruke prosedyren Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click dim i as Integer lagtilfeldig() for i = 0 to max 'konstanten max er 99... MsgBox mat(i) Det er kjedelig for brukeren å klikke OK 100 ganger Lager nå en prosedyre for å skrive ut i ListBox1 Private Sub skrivuttilfeldig() Dim temp As Integer For Each temp In mat ListBox1.Items.Add(temp) Merk deg forskjellen på en for each-løkke (her) og en vanlig for-løkke (som vist på forrige slide) Hva om vi vil ha sortert utskrift Eventuelt begge delene? Sortering, boblesort Dim antallgjennomlop, temp, i As Integer Dim intetombytte As Boolean antallgjennomlop = 1 Do intetombytte = True For i = 0 To max - antallgjennomlop If mat(i) > mat(i + 1) Then temp = mat(i) mat(i) = mat(i + 1) mat(i + 1) = temp intetombytte = False End If i antallgjennomlop = antallgjennomlop + 1 Loop Until intetombytte = True 3

Sortering ved utvelgelse Dim hittilminst As Integer = 0 Dim i As Integer Dim j As Integer Bruke ferdig metode i klassen Array Array.sort(mat) For i = 0 To tabell.length - 1 hittilminst = i For j = i To tabell.length - 1 If tabell(j) < tabell(hittilminst) Then Dim tmp = tabell(hittilminst) tabell(hittilminst) = tabell(j) tabell(j) = tmp End If Skriv ut, men nå sortert (Listbox2) Private Sub skrivutsortert() Dim temp As Integer For Each temp In mat ListBox2.Items.Add(temp) Skriv ut Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim snittforstesiste as Integer lagtilfeldig() skrivuttilfeldig() boblesortering() skrivutsortert() 4

ByVal, ByRef og Optional ByVal: (value) Gir verdi inn til prosedyren VB.NET tar en kopi av den originale verdien ByRef: (Reference) overfører data som en referanse til den fysiske minneadressen Vi får da direkte tilgang til dataene Optional: Kan velge om argumentet skal være med eller ikke, dersom ikke blir standard verdi satt Eks: ByVal, ByRef og Optional Function VolumAreal(ByVal gr As Integer, _ ByVal b As Integer, _ Optional ByVal h As Integer = 1) _ As Integer 'finner enten volum eller areal VolumAreal = gr * b * h Private Sub Form1_Load dim res = "volum av 2, 2, 2= " & VolumAreal(2, 2, 2) res += "areal av 3, 7= " & VolumAreal(3, 7) MsgBox(res) Applikasjon utviklet på forelesning 5