Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask1 Hva er programmering? Problemløsning og metoder Læreboka, kap.11.

Liknende presentasjoner


Presentasjon om: "HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask1 Hva er programmering? Problemløsning og metoder Læreboka, kap.11."— Utskrift av presentasjonen:

1 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask1 Hva er programmering? Problemløsning og metoder Læreboka, kap.11

2 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask2 Programvarekrise •Det er fra tid til annen nyhetsoppslag og fokusering på dataskandaler •1990: Rikstrygdeverkets informasjonssystem, TRESS-90 ble ikke ferdig til planlagt tid. Fem år senere blir prosjektet stoppet. Anslått tap ca 1,2 mrd. Kr. •1995: Statens Vegvesen taper 152 mill kr ved utvikling av et nytt system son viser seg å være ubrukelig. •1995: NSB taper 200 mill kr på et nytt billettsalg system som ikke fungerer •1999: Software bransjen tjener gode penger på år 2000-problemet •IT-bransjen er ikke den eneste som gjør feil og som ofte viser store økonomiske overskridelser, spørsmålet er HVORFOR dette skjer •Gjennom denne forelesningen skal ulike sider av dette belyses, og en skal se på hva som er så spesielt vanskelig ved utvikling av program

3 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask3 Problemløsning - datamaskin I forbindelse med datamaskiner snakker vi gjerne om problemløsning når det er en jobb vi ønsker gjort. Vi kan selvsagt snakke om problemer med maskinen, den henger seg, vi kommer inn osv. Men i denne sammenheng snakker vi om bruk av datamaskinen til å løse en eller annen oppgave.

4 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask4 Problemløsnings teknikker For å få til en problemløsning trenger vi: •oversikt over problemløsningsteknikker •oversikt over typiske problemstillinger som har sammenheng med representasjon av informasjon (brukergrensesnitt) •oversikt over problemstillinger relatert til beregning og manipulasjon av informasjon.

5 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask5 Detaljerte instruksjoner •Når det skal utvikles et dataprogram, er det nødvendig å lage detaljerte instruksjoner som datamaskinen skal utføre •En datamaskin kan ikke tenke selv, derfor må programmet være beskrevet ned til minste detalj, og ta hensyn til alle mulige feilsituasjoner som kan oppstå •Som en analogi til matlaging, kan vi se på et eksempel med instruksjoner for starten av et program som skal piske egg: Finn kartongen merket ”Egg” i kjøleskapet og sett den på benken; Finn to tomme plastboller, B1 og B2 i hjørneskapet; Definer Skallet som det harde hvite utenpå egget; Definer Plommen som det runde, gule inni egget; Definer Hviten som det flytende gjennomsiktige inni egget; Repeter 5 ganger: La E være et egg som fortsatt er helt, grip dette med én hånd; Kakk E mot kanten av B1 så Skallet så vidt sprekker;

6 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask6 Problemløsning - hovedfaser Problemløsning vil gjerne omfatte følgende hovedfaser: •Problemanalyse: hvilket problem skal løses? Er der delproblemer? •Finne løsningsstrategier (brukbare algoritmer) •Implementering av algoritmene i et programmeringsspråk

7 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask7 Delrutiner •Når vi utvikler et program er det viktig å bryte problemet ned i mindre deler •Hver del må klart og entydig beskrives •Vi må da utvikle del rutiner for hver enkelt del •For hver avgrenset del må vi beskrive hvordan denne del rutinen skal starte, og hva som skal bli resultatet av oppgaven •Ut i fra analogien med kjøkkenrutinen, kan vi fastslå: •Detaljeringen er på et helt annet nivå enn beskrivelsen i en kokebok •Hvis problemet er misforstått, blir løsningen gal selv om programmet i seg selv arbeider riktig •Jo mer fleksibelt eller generelt et system skal være, jo mer kompleks vil programmeringen også bli

8 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask8 Problemløsning - programmering •Etter hvert som en får oversikt over hvilke delrutiner som inngår i en problemløsning, prøver en å løse hvert delproblem. Dette kalles for skrittvis raffinering •Delrutinene må ses i sammenheng slik at det blir en totalløsning

9 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask9 Problemløsning - resultater •Når man bryter ned problemstillingen i delrutiner er det viktig at en klarer å definere hva en akseptabel løsning må innholde. I den sammenheng er det viktig å spesifisere •hvilke resultater (utdata) som kreves produsert •hvordan de skal de skal presenteres •hvilke inndata trengs for å kunne produsere de nødvendige resultater

10 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask10 Problemløsning - strategi I tillegg er det viktig å finne en effektiv strategi og en detaljert framgangsmåte for hvordan de foreskrevne utdata skal produseres - hvilket grensesnitt skal de ha mot brukeren? Hvordan skal brukeren involveres i utviklings prosessen ?

11 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask11 Livssyklus for programvare •Et programsystem starter gjerne med en idé eller at noen oppfatter et problem som ønskes løst ved hjelp av IT •Det avsluttes gjerne med at det kasseres eller skiftes ut med nytt •Hva som skjer mellom disse to tidspunkter, kalles livssyklus •En overordnet strategi kan derfor være å utvikle en modell for dette, en livssyklusmodell •Det finnes mange metoder for dette, og vi skal her se nærmere på det som tradisjonelt kalles vannfallsmetoden

12 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask12 Vannfallsmodellen •Utvikling av programvare tenkes sekvensielt gjennom 5 ulike faser: Analyse Konstruksjon Implementasjon Testing Vedlikehold Hva Design

13 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask13 Vannfallsmetoden •Analyse - Hva – definere problemet godt. •Design- hvordan skal vi løse problemet - modularisering •Implementering – via pseudokode •Test – rett opp feil •Vedlikehold Svakhet: Metoden tar tid og kanskje problemet endrer seg underveis

14 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask14 Programmerings paradigmer •Det finnes flere tilnærmingsmåter for programmering. Noen bruker ord som paradigmer alt etter hvilken innfallsvinkel vi velger. •Det vi har sett på er det såkalte prosedyreorienterte paradigme. Dette har vært toneangivende i mange år, og har fokusert på logiske prosedyrer som tar input data, prosesserer disse og lager output data.

15 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask15 Objekt-Orientert Programmering •Ved OOP betrakter vi objekter, og beskriver disse ved sine egenskaper, attributter og verdier. •Et objekt kan være feks et menneske (beskrevet ved navn, adresse mv) •Første skritt blir å identifisere alle objekter og relasjoner mellom dem •C++ og JAVA er objekt orienterte programmerings språk

16 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask16 Hvorfor programmering Hvorfor må jeg vite noe om programmering? •Hjelper deg til å forstå datamaskinen og hvordan den arbeider •Å skrive noen få programmer øker tryggheten og selvtilliten •Det er en analytisk måte å tenke/jobbe på

17 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask17 Programmeringsprosessen •Programmeringsprosessen henger sammen med problemløsningsprosessen. •Etter å ha definert problemet starter planleggingen med å løse det •Deretter koder vi løsningen/ vi programmerer •Tester ut •Dokumenterer programmet

18 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask18 Planlegge løsningen Planleggingen av programmeringsprosessen •Kan gjøres ved hjelp av et flytdiagram •Pseudokode •Begge deler

19 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask19 Koding av programmet Når vi skal kode den løsningen vi har kommet fram til må vi: •Velge programmeringsspråk •Følge språkets regler /syntaks •Skrive en programkode som utfører det vi har planlagt

20 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask20 Testing av programmet •Skrivebordstesting (teste ut manuelt med papir og blyant) •Kompilering (oversetter programmet til maskinkode) •Feilretting •Sette sammen eventuelle delprogrammer •Sjekke at du får de forventede resultat

21 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask21 Dokumentering av programmet •Forklare hva programmet gjør i form av kommentarsetninger og en forklaring i begynnelsen •Forklare hva de forskjellige deler gjør •Dokumentasjon hjelper både deg som programmerer og en eventuell ‘arvtaker’ av programmet.

22 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask22 Styring av program 3 strukturer: •Sekvens •Iterasjon - gjentakelse •Valg

23 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask23 Sekvens Start Hent inn en post (navn, personnummer) Skriv ut regning på poliklinisk undersøkelse Avslutt Eksempel – Pasienteregister skrevet i pseudokode

24 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask24 Iterasjon / gjentakelse /løkke Start Hent inn første post Så lenge der er poster på fila - les inn navn og personnummer -skriv ut regning -hent neste post til der ikke er flere igjen Slutt LØKKELØKKE

25 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask25 Valg Start Hent inn en post Les inn navn og undersøkelsestype Hvis undersøkelsestype = A så skal egenandelen settes til kr 200 ellers skal den være kr 500 Skriv ut regning VALGVALG

26 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask26 Sekvens med gjentakelse og valg Start Les inn første post Så lenge der er poster på fila/lista - gjør dette: Hvis undersøkelsestype = A så skal egenandelen være kr 200 ellers skal den være kr 500 Skriv ut regning Hent neste post til der ikke er flere igjen Avslutt

27 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask27 Hva er makroprogrammering? •Er et lite program som utfører en eller flere spesifiserte ting •I Word/Excel kan det enkelt lages en macro som utfører en bestemt tastesekvens eller beregning •Dette kan spare mye arbeide ved å forenkle operasjoner •Macrospråket som benyttes er Visual Basic •Visual Basic er et objektbasert programmeringsspråk •VB kan også benyttes som et selvstendig programmerings verktøy

28 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask28 Logiske strukturer ved programutvikling Bruk av variabler Oppdeling i prosedyrer og del-rutiner Boolsk algebra Loop programmering – eksempler

29 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask29 Eksempel på programmering •Vi skal i denne presentasjonen gjennomgå noen eksempler på programmering og logisk tenkning - struktur •Hensikten er å belyse hvorledes en kan dele opp et større program i mindre del-oppgaver samt å gjennomgå noen begrep •Boolsk algebra brukes i mange sammenheng, og er kort beskrevet med noen eksempler

30 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask30 Eksempel på beregning av areal •Hvis vi skal lage et program for beregning av areal i en trekant, kan dette typisk deles i følgende del-rutiner: •Input av data: •Brukeren taster inn sine data i to tekstfelter •Når han er ferdig med dette klikkes en kommandoknapp •Beregning av areal kan gjøres i egen del-rutine •Output av data: •Resultatet av beregningen presenteres

31 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask31 Eksempel på brukerinterface •Vi kan lage et brukerinterface på mange ulike måter •Dette er et enkelt eksempel på beregningsprogram: 2) Resultatet vises i en meldingsboks 1) Knappen starter en prosedyre

32 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask32 Bruk av variabler •I all programmering benyttes variabler •Dette er tall/bokstaver/ord/setninger som blir definert, og som lagres av programmet •Vi må navngi en variabel, for eksempel ”X” •Denne variabelen kan så tilordnes en verdi •For eksempel •X = 123 •X = ”abc”

33 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask33 Variabler benyttes i beregninger •En variabel kan benyttes i beregninger •For eksempel beregning av areal av en trekant: G = 45’ Grunnlinje H = 25’ Høyde A = (G * H)/2’ Areal •Bokstaver kan også brukes som variabler (streng) •For eksempel bruk av navn: Fornavn = ”Hans” Etternavn = ”Larsen”

34 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask34 Boolske verdier •Boolske verdier (sannhetsverdier) er data som enten har verdien 1 (True) eller 0 (False) •Dette benyttes for å lagre verdier av ja/nei typen •Det brukes også for å angi om et uttrykk er sant eller usant •Ved sammenligninger av verdier benyttes True/False for å se om vi har likhet, eller om en verdi er nådd •Eksempel: If A = B then ……………..… else ……………….. end if [ Programkode som utføres hvis uttrykket er sant ] [ Programkode som utføres hvis uttrykket er usant ]

35 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask35 Boolsk algebra •Boolske uttrykk er matematisk behandling av sanne/usanne verdier •For eksempel ”Saldo < 0” – dette uttrykket er sant dersom saldo er mindre enn 0 •Vi kan benytte de boolske operatorene i matematisk sammenheng: •AND (OG), OR (ELLER), NOT (IKKE), EXCLUSIVE OR (XOR) •Eksempler på uttrykk som benytter boolske operatorer: •(Time = 16.00) AND (Det regner) Uttrykket er TRUE når begge betingelsene samtidig er oppfylt, at klokka er fire og at det regner •(Time = 16.00) OR (Det regner) Uttrykket er TRUE når en av betingelsene er oppfylt, når klokka er fire eller når det regner •(Time = 16.00) AND NOT (Det regner) Uttrykket er TRUE når begge betingelsene er oppfylt, at klokka er fire og at det ikke regner •(Time = 16.00) XOR (Det regner) Uttrykket er TRUE bare dersom en av betingelsene er oppfylt, men ikke dersom begge er det Vi får derfor at uttrykket er TRUE både når klokka er fire og at det ikke regner samt også når det regner og at klokka ikke er fire

36 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask36 Boolsk sammenligning •Boolske operatorer kan også brukes sammen med operatorene: • (større enn) ; <> (forskjellig fra) • >= (Større eller lik); <= (mindre eller lik) •A >= B får verdien TRUE for eksempel hvis B= 4 og A = 5 •(Reply > 1 And Reply < 9) får verdien TRUE for alle tall mellom 1 og 9 •IF Svar = (Reply > 1 And Reply < 9) THEN Dette uttrykket er da sant for tall 1– 9 •IF NOT A <> B THEN ….. Dette uttrykket er sant når verdiene A = B •Eksempel på sammensatt uttrykk: •NOT (A > B) er sant for verdiene A<=B •X = (A >= B); Y = NOT(A > B); Z = X AND Y Dette uttrykket er sant når A = B •X = (A > B); Y = NOT(A > B); Z = X OR Y Dette uttrykket er sant for alle verdier •Følgende kode kan brukes til videre beregning om uttrykket er sant: IF Z THEN …………

37 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask37 Valg og løkker •Når beslutninger i et program skal tas benytter vi valgstrukturer. Disse kan kombineres med løkker •Det er flere ulike strukturer som kan benyttes: •If-Then, If-Then-Else, If-Then-Elseif-Else •Select Case •For-Next •Do-While •Løkkene kan være nestede (en løkke inne i en løkke) •Du kan bruke en kombinasjon av logiske operatorer: And-Or-Not •Du kan bruke sammenligningsoperatorer:

38 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask38 If - statement If betingelse Then santargument [Else elseargument] Eller : If betingelse1 Then [statementblock-1] [ElseIf betingelse2 Then [statementblock-2] ] [Else [statementblock-n] ] End If Evaluering Av vilkåret False (usant) True (sant) Statement utføres Evaluering Av vilkåret False (usant) True (sant) Statement utføres

39 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask39 For-Next - statement Bestem Start og Slutt Utfør handling Variable Er True Ja EKSEMPEL: Ferdig Nei

40 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask40 Do-Loop, Do-While Do While condition block of statements to be executed Loop Eller: Do block of statements to be executed Loop While condition Tall = 0 Tall = Tall + 1 Utfør handling Er tallet < grense Hvis ”True” gjenta løkke EKSEMPEL:

41 HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask41 Oppsummering •Få oversikt over hva programmet skal gjøre •Bruk pseudokode og/eller flytdiagram for å beskrive informasjonsflyten •Programkode skrives i ulike Moduler, sekvenser •Det er viktig å deklarere alle variabler som benyttes •Loop-programmering benyttes for å gjøre ulike typer valg og gjentakelser •Logiske operatorer kombineres med løkker og valg


Laste ned ppt "HØGSKOLEN I AGDER Agder University College HiA, Bodil Ask1 Hva er programmering? Problemløsning og metoder Læreboka, kap.11."

Liknende presentasjoner


Annonser fra Google