1 / 18

INF150 Programmering mandag 25.9

INF150 Programmering mandag 25.9. MER OM: Sub-prosedyrer og sub-funksjoner Kap 4. INF150: Bratt kurve!. Første del: Basiskunnskaper Basiskunnskaper om bruk av Visual Studio og hvordan en kommer i gang med å lage program. Andre del: Grunnleggende programmeringsteknikker Variabler

cher
Download Presentation

INF150 Programmering mandag 25.9

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. INF150 Programmeringmandag 25.9 MER OM: Sub-prosedyrer og sub-funksjoner Kap 4

  2. INF150: Bratt kurve! • Første del: Basiskunnskaper • Basiskunnskaper om bruk av Visual Studio og hvordan en kommer i gang med å lage program. • Andre del: Grunnleggende programmeringsteknikker • Variabler • Kontrollstrukturer (IF-THEN-ELSE) • Filer • Prosedyrer • Funksjoner • Løkker • Array - tabeller • Egendefinerte datatyper • Objekter • Tredje del: Problemløsning • Her vil vi stort sett bruke tiden på å løse programmeringsproblemer. Gitt et problem, hvordan går vi frem for å lage programmet som løser problemet. NÅ

  3. Oppgave i forelesning: Beregne gjennomsnittshøyde • Navn og høyde til 3 personer ligger på en tekstfil • Ligner på øvelse 4 • Lager en tekstfil først • Notepad eller lag filen i programmet ditt med: Dim swAs IO.StreamWriter = IO.File.CreateText("navnoghoyde.txt") sw.WriteLine("Bjørn Jæger") sw.WriteLine("1,80") sw.WriteLine("Kai Olsen") sw.WriteLine("1,86") sw.WriteLine("Judith Molka-Danielsen") sw.WriteLine("1,68") sw.Close()

  4. Program til en knapp Beregn: Les fra fil og beregn ... • Les navn og høyde fra tekstfil og LEGG I VARIABLER Private Sub btnBeregn_Click(...) Handles btnBeregn.Click Dim sr As IO.StreamReader = IO.File.OpenText("navnoghoyde.txt") Dim NavnPerson1, NavnPerson2, NavnPerson3 As String Dim HøydePerson1, HøydePerson2, HøydePerson3 As Double Dim Sum As Double Dim Gjennomsnitt As Double ' Det som leses fra fil legges i variabler NavnPerson1 = sr.ReadLine HøydePerson1 = CDbl(sr.ReadLine) NavnPerson2 = sr.ReadLine HøydePerson2 = CDbl(sr.ReadLine) NavnPerson3 = sr.ReadLine HøydePerson3 = CDbl(sr.ReadLine) sr.Close() Sum = HøydePerson1 + HøydePerson2 + HøydePerson3 ListBox1.Items.Add("Sum: " & CStr(Sum)) Gjennomsnitt = Sum / 3 ListBox1.Items.Add("Gjennomsnitt: " & CStr(Gjennomsnitt)) End Sub

  5. Ser likheter med øvelse 4bruker filer og variabler • Leser valutakurser fra tekstfil • Må lage tekstfilen først • Notepad eller lag filen i programmet som foran • Leser valutakurser fra tekstfil og inn i ...VARIABLER

  6. Bruker sub-prosedyrer og sub funksjon til å gjøre det samme • Knapp: BeregnGjennomsnittsHoyde • Anta at det finnes en tekstfil med data (Eventuelt: lag først en tekstfil med navn og høyde) • Les fra tekstfilen • Beregn gjennomsnittshøyde • Forslag til delprogrammer (sub-prosedyrere og sub-funksjoner)?

  7. Forslag • Knapp: BeregnGjennomsnittsHoyde • LagFil() • LesFil() • beregnGjennsomsnittshøyde() • De to første er sub-prosedyrer • Den siste er sub-funksjon

  8. LagFil() sub-procedure Sub LagFil() Dim sw As IO.StreamWriter = IO.File.CreateText("navnoghoyde.txt") sw.WriteLine("Bjørn Jæger") sw.WriteLine("1,80") sw.WriteLine("Kai Olsen") sw.WriteLine("1,86") sw.WriteLine("Judith Molka-Danielsen") sw.WriteLine("1,68") sw.Close() End Sub

  9. LesFil() SubProsedure Sub LesFil() Dim sr As IO.StreamReader = IO.File.OpenText("navnoghoyde.txt") NavnPerson1 = sr.ReadLine HøydePerson1 = CDbl(sr.ReadLine) NavnPerson2 = sr.ReadLine HøydePerson2 = CDbl(sr.ReadLine) NavnPerson3 = sr.ReadLine HøydePerson3 = CDbl(sr.ReadLine) sr.Close() End Sub

  10. beregnGjennomsnitt sub-funksjon Function beregnGjennomsnitt() As Double Dim Sum As Double Sum = HøydePerson1 + HøydePerson2 + HøydePerson3 Return Sum / 3 End Function

  11. Få tak i verdiene • Verdiene som leses i LesFil dvs. navn og høyder må bli kjent for program som bruker LesFil() • Det vil si at variablene vi legger data i må kunne brukes av andre • Variabler her: • Dim NavnPerson1, NavnPerson2, NavnPerson3 As String • Dim HøydePerson1, HøydePerson2, HøydePerson3 As Double

  12. Data inn/ut av del-programmer Flere metoder finnes: • Lage variabler som alle kjenner • Globale variabler som deklareres rett etter "Public Class Form1" • Sende data inn og ut til delprogrammer i parantesen bak navnet (senere)

  13. Ser på metode 1 først: Lage variabler som alle kjenner Public Class Form1 ' Globale variabler lages/deklareres her Dim NavnPerson1, NavnPerson2, NavnPerson3 As String Dim HøydePerson1, HøydePerson2, HøydePerson3 As Double Sub LesFil() ' .... leser verdier inn i de globale variablene her NavnPerson1 = sr.ReadLine HøydePerson1 = CDbl(sr.ReadLine) '... End Sub Function beregnGjennomsnitt() As Double '... Bruker variablene her Sum = HøydePerson1 + HøydePerson2 + HøydePerson3 '... End Function

  14. Program til knapp Beregn med kall av sub-programmer Private Sub btnBeregn_Click(...) Handles btnBeregn.Click Dim Gjennomsnitt As Double LagFil() LesFil() Gjennomsnitt = beregnGjennomsnitt() lstBox.Items.Add("Gjennomsnitt: " & CStr(Gjennomsnitt)) End Sub

  15. Gjentagelser – løkkerdo loop • I programmer gjentas ofte kode mange ganger. F.eks: • Les inn mange linjer fra fil • Be om opplysninger fra bruker til de er korrekt • osv. • Til dette benyttes løkker • En logisk betingelse avgjør når programmet skal slutte å gjenta kode

  16. Do Loops side 248 Syntaks: Do While condition Statements Loop Eksempel (i hendelsesprosedyre til knapp): Dim tall As Integer = 1 Do While tall <= 5 MsgBox("Tall: " & tall) tall = tall +1 'Hva skjer dersom denne ikke er med? Loop

  17. SELECT CASE • For å velge hva som skal utføres benyttes ofte Select Case som alternativ til IF ... ELSE ... ENDIF • Select Case er beskrevet i boken s 218... • Vi kommer tilbake til denne senere

  18. Neste forelesning Mandag 2. oktober 1215-1400 På rom B136

More Related