Utvider eksemplet om biler fra forrige gang med mer feilsjekk Tid og Dato.

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
14 okt. 2003, Arne Maus Inst. for informatikk, UiO
C++ for Java-programmerere
Høgskolen i Oslo Webprogrammering Grunnleggende PHP.
Gjenfinningssystemer og verktøy II
TIF seminar -Visual Basic (VBA) og RExcel Elisabeth Orskaug Norsk Regnesentral Oslo, 8. november 2011.
Kontrollstrukturer (Kapittel 3)
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
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
Mer sortering Mer Debugging Introduksjon til strukturer.
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
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
En gang til!? .
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.
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.
Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse.
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.
Datavedlikehold: innlegging, endring, sletting Gjennomgang av eksempel.
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
Om øvelse 9 Vedlikehold av data Databaser. Øvelse 9 I øvelse 8 så vi på: –Registrering av informasjon om hjelpere To små utvidelser av øvelse 8: –Endring.
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 august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
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.
Høgskolen i Oslo Webprogrammering Filbehandling i PHP.
Høgskolen i Oslo Web-programmering Feilhåndtering i PHP.
Mål Gjennomgå deler av de mest brukte funksjonene relatert til
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
VI LAGER EN PLATEBUTIKK
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.
Oppgaver til kodegenerering etc. INF-5110, 2013 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet,
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
1 INF5110 – 23. april, 2013 Svar på noen oppgaver til kap. 8 Beklager noe trykkfeil og rot på forelesningene Håper dette er bedre (lagt ut 24/4) Nå fredag.
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.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
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.
Objekt, Instanser og referanser + litt til. Objekter  Instanser  Kan sees på som det samme. Personen Per kan være både et objekt og en instans av klassen.
Vareopptelling Mål: Se hva vi har solgt av i hver måned.
GSV – Generic Storage and Validation Hovedprosjekt 2004/2005 Oppgave 10E Trond Smaavik
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
Trondheim Lytte- og Læresenter. Sammendrag Prosjektet ble iverksatt fordi Trondheim Lytte- og Læresenter så behovet i å ha et elektronisk kundearkiv i.
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 INF150 Programmering mandag 25.9 MER OM: Sub-prosedyrer og sub-funksjoner Kap 4.
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.
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.
IS-102 Interaksjon med objekter
Begynnerkurs i Python Realfagskonferansen 2019 Henrik H. Løvold
Utskrift av presentasjonen:

Utvider eksemplet om biler fra forrige gang med mer feilsjekk Tid og Dato

Sjekke om tabell finnes Vi så på dette forrige gang (kode: Se forelesning 19 slide 7) I koden fra forrige gang krasjer programmet dersom filen ikke finnes fordi det ikke er laget en tabell –Har to tilfeller: 1.Første gang vi kjører programmet finnes ikke filen 2.Alle andre ganger leses innholdet i filen inn i en tabell

Sjekker dette i Form_Load Lager oss en global variable ForsteGang for å holde rede de to tilfellene 1.ForsteGang settes lik True i Form_Load dersom filen ikke finnes 2.ForsteGang settes lik False ellers (dvs. dersom filen finnes og tabellen er fylt inn). Gjør dette ved å sjekke om lesning går bra i prosedyren "leseFilTilTabell()" Gjøre Prosedyren om til en Funksjon som returnerer True dersom lesing går bra og False ellers

Lager en global variable ForsteGang Gjøres øverst i filen sammen med andre globale definisjoner og deklarasjoner: Public Class Form1 Structure Bil Dim merke As String Dim modell As String Dim arsmodell As Integer End Structure Dim biler() As Bil Dim bilteller As Integer Dim forsteGang As Boolean '...

I Form_Load() Tester om lesing fra fil gikk bra Private Sub Form1_Load(...) Handles MyBase.Load If (leseFilTilTabell("c:\biler.txt")) Then sortertabell(biler) lstVis.Items.Clear() For i As Integer = 0 To biler.GetUpperBound(0) lstVis.Items.Add(biler(i).merke & ", " & biler(i).modell & ", " & biler(i).arsmodell) Next forsteGang = False Else forsteGang = True End If

Sub leseFilTilTabell() gjøres om til Function Function leseFilTilTabell(ByVal filnavn As String) As Boolean Try ' det som kan gå galt er at filen ikke eksisterer Dim sr As IO.StreamReader = IO.File.OpenText(filnavn) '... som før Return True Catch ex As Exception MsgBox("Filen " & filnavn & " eksisterer ikke") Return False End Try End Sub

Registrering av ny bil i tabell Private Sub btnRegistrer_Click(…) Handles btnRegistrer.Click Dim nyBil As Bil If forsteGang = True Then 'Det er ingenting i tabellen ennå bilteller = 0 ReDim biler(bilteller) forsteGang = False 'setter den til False slik at testen ikke blir sann neste gang Else bilteller = biler.GetUpperBound(0) + 1 ReDim Preserve biler(bilteller) End If If (txtMerke.Text = "" Or txtModell.Text = "" Or txtArsmodell.Text = "") Then MsgBox("Du MÅ gi alle opplysninger") Else nyBil.merke = txtMerke.Text nyBil.modell = txtModell.Text nyBil.arsmodell = CInt(txtArsmodell.Text) biler(bilteller) = nyBil bilteller += 1 lstRegistrerte.Items.Add(nyBil.merke & ", " & nyBil.modell & ", " & nyBil.arsmodell) End If End Sub

Husker fra forelesning 18: Tid og Dato Til tidsangivelser fins det et eget DateTime objekt i Visual Basic DateTime lagrer tidspunkt som år, måned, dato, time, minutt og sekund. DateTime får verdier fra operativsystemet. Operativsystemet lagrer tiden som et antall klokketikk som løper –Fra:24:00:00, 1. januar, år 0001 Anno Domini –Til: 23:59:59, 31. desember, 9999 A.D. Klokketikkene måles ienheter a 100-nano sekund og en spesifikk dato er antall klokketikk siden 24:00:00, 1. januar, år 0001 –Eksempel: Et kolkketikk med verdi representerer fredag, 1. januar år 0100 kl 24:00:00

Tid og Dato Deklarere datetime-variabel Dim tidspunkt As DateTime tidspunkt initialiseres automatisk til :00:00 Tilordne verdi til en datetime-variabel –I programmet kan du tilordne verdi til en datetime- variabel verdi slik: –Dato: tidspunkt = #8/11/2006# Legg merke til at dette er 11. august.

... forts. Klokkeslett: tidspunkt = #17:20:00# Dato og klokkeslett: tidspunkt = #08/11/ :25:00# Når en legger inn bare tidspunkt blir datoen automatisk satt til Når en legger inn bare dato blir tidspunktet automatisk satt til 00:00:00 # markerer begynnelsen og slutten på tidspunktet.

Tid og Dato Eksempel –Finn hvor mange dager det er til Jul –Lag et program som teller ned

Fast dato (f.eks. Jul) Dagens dato (endres jevnlig) 'Lager en DateTime-variabel som settes 'lik 24. desember 2006: Dim jul As DateTime = #12/24/2006# 'Lager en DateTime-variabel til å holde dagens dato Dim idag As DateTime

Finne antall dager i en periode F.eks.: Antall dager til Jul 'VB har laget et ferdig objekt for å holde rede på 'tidsintervaller: TimeSpan Dim jul As DateTime = #12/24/2006# 'Lager en DateTime-variabel til å holde dagens dato Dim idag As DateTime Dim spenn As TimeSpan spenn = jul.Subtract(idag).Duration MsgBox("Antall dager til Jul: " & spenn.ToString)

' TOTALT ANTALL AV ULIKE ENHETER lstTider.Items.Add("Dager til Jul: " & spenn.TotalDays) lstTider.Items.Add("Timer til Jul: " & spenn.TotalHours) lstTider.Items.Add("Minutter til Jul: " & spenn.TotalMinutes) lstTider.Items.Add("Sekunder til Jul: " & spenn.TotalSeconds) ' DEL-ANTALL AV ULIKE ENHETER lstTider.Items.Add(" ") lstTider.Items.Add("Timer: " & spenn.TotalHours & " timer") lstTider.Items.Add("Minutter: " & spenn.Minutes & " minutter") lstTider.Items.Add("Sekunder: " & spenn.Seconds & " sekunder") ' FORMATERING TIL HELTALL vha. CInt() lstTider.Items.Add(" ") lstTider.Items.Add("Timer: " & CInt(spenn.TotalHours) & " timer") lstTider.Items.Add("Minutter: " & CInt(spenn.Minutes) & " minutter") lstTider.Items.Add("Sekunder: " & CInt(spenn.Seconds) & " sekunder")

Oppgave i foreles. Beregn pris på strømforbruk pr. dag Gitt: –Periode – –Forbruk: 1500 kWh –Pris: 0.83 kr/kWh Beregn –Totalpris for perioden: –Pris på strømforbruk pr. dag:

Klokketikk – Egen hendelse side 476 Timer Control- objekt i VB –Trigger en hendelse etter at en viss tid har gått –Finner TimerControl objektet i Tool Box Dette vises ikke i skjermbildet! –Property Interval setter hvor ofte hendelsen skal sendes ( i millisekund), f.eks. 1 sekund: 1000 –Property Enabled settes til True for å starte tmrKlokke.Enabled = True

Klokketikk – Egen hendelse side 476 Private Sub tmrKlokke_Tick(...) Handles tmrKlokke.Tick Dim eksamen As DateTime = #12/12/2006# Dim spenn As TimeSpan spenn = eksamen.Subtract(DateTime.Now).Duration lstTider.Items.Add("Nedtelling til eksamen: " & CInt(spenn.TotalDays) & " dager" & CInt(spenn.TotalHours) & " timer") End Sub