Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Jæger: Robuste og sikre systemer INF150 Programmering mandag 25.9 MER OM: Sub-prosedyrer og sub-funksjoner Kap 4.

Liknende presentasjoner


Presentasjon om: "Jæger: Robuste og sikre systemer INF150 Programmering mandag 25.9 MER OM: Sub-prosedyrer og sub-funksjoner Kap 4."— Utskrift av presentasjonen:

1 Jæger: Robuste og sikre systemer INF150 Programmering mandag 25.9 MER OM: Sub-prosedyrer og sub-funksjoner Kap 4

2 Jæger: Robuste og sikre systemer 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 Jæger: Robuste og sikre systemer 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 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()

4 Jæger: Robuste og sikre systemer 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 Jæger: Robuste og sikre systemer Ser likheter med øvelse 4 bruker 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 Jæger: Robuste og sikre systemer 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 Jæger: Robuste og sikre systemer Forslag Knapp: BeregnGjennomsnittsHoyde –LagFil() –LesFil() –beregnGjennsomsnittshøyde() De to første er sub-prosedyrer Den siste er sub-funksjon

8 Jæger: Robuste og sikre systemer 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 Jæger: Robuste og sikre systemer 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 Jæger: Robuste og sikre systemer beregnGjennomsnitt sub-funksjon Function beregnGjennomsnitt() As Double Dim Sum As Double Sum = HøydePerson1 + HøydePerson2 + HøydePerson3 Return Sum / 3 End Function

11 Jæger: Robuste og sikre systemer 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 Jæger: Robuste og sikre systemer Data inn/ut av del-programmer Flere metoder finnes: 1.Lage variabler som alle kjenner –Globale variabler som deklareres rett etter "Public Class Form1" 2.Sende data inn og ut til delprogrammer i parantesen bak navnet (senere)

13 Jæger: Robuste og sikre systemer 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 Jæger: Robuste og sikre systemer 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 Jæger: Robuste og sikre systemer Gjentagelser – løkker do 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 Jæger: Robuste og sikre systemer 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 Jæger: Robuste og sikre systemer 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 Jæger: Robuste og sikre systemer Neste forelesning Mandag 2. oktober 1215-1400 På rom B136


Laste ned ppt "Jæger: Robuste og sikre systemer INF150 Programmering mandag 25.9 MER OM: Sub-prosedyrer og sub-funksjoner Kap 4."

Liknende presentasjoner


Annonser fra Google