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

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
C++ for Java-programmerere
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.
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.
MATLAB En kort innføring/repetisjon SIF8001-SIF8005 Høsten 2001.
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.
Objekt, Instanser og referanser + litt til. Objekter  Instanser  En instans er et objekt av en bestemt klasse  Instanser blir laget ved å kalle klassens.
Objektorientert programmering i PHP del 2
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
IS-102 Klassedefinisjoner
#include Ligner litt på import i java. Setter inn hele fila stdio.h i programteksten. Definerer en del io funksjoner slik at signaturen er kjent. I dette.
C# for javaprogrammerere
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!? .
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.
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.
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 31.8 Kapittel 3: Grunnlag for programmering i Visual Basic.
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.
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
INF 295 Algoritmer og datastrukturer Forelesning 2 - kapittel 1 Hans F. Nordhaug (Ola Bø)
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Dynamiske nettsider PHP Del 1 – variable. PHP  PHP (Personal Home Page)  Fritt tilgjengelig programmeringsspråk  åpen kildekode  Plattformuavhengig.
VI LAGER EN PLATEBUTIKK
Å 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.
INF Objektorientert programmering
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 Høgskolen i Molde Velkommen til INF150 Programmering Foreleser Bjørn Jæger.
Høydemeter Mål: Lage et program som regner ut stigning, største høyde, minste høyde m.m.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
Bompasseringer Mål: Slå sammen data om bompasseringer fra mange bomselskap. Sende ut en samlefaktura til hver bileier.
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.
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.
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.
IS-102 Interaksjon med objekter
Begynnerkurs i Python Realfagskonferansen 2019 Henrik H. Løvold
Utskrift av presentasjonen:

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

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Å

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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 Vi kommer tilbake til denne senere

Jæger: Robuste og sikre systemer Neste forelesning Mandag 2. oktober På rom B136