Programmering i R. 6. mars 2004
|
|
- Tina Marthinsen
- 6 år siden
- Visninger:
Transkript
1 Programmering i R 6. mars Funksjoner 1.1 Hensikt Vi har allerede sette på hvordan vi i et uttrykk kan inkludere kall til funksjoner som er innebygd i R slik som funksjonene sum, plot o.s.v. Generelt virker funksjoner ved at funksjonen først mottar visse inndata som vi oppgir som argumenter, funksjonen utfører så en bestemt oppgave, f.eks. visse beregninger, og returnerer deretter resultatet av beregningene som sine utdata gjennom funksjonsverdien. Om vi for eksempel gjør vi et kall til mean utgjør vektoren vi oppgir som argument inndataene, mean beregner så gjennomsnittet av elementene i vektoren, og returnerer dette via funksjonsverdien. Når vi skal gjøre løse problemer som krever større beregninger vil det være hensiktsmessig å definere egne funksjoner som løser bestemte avgrensede deloppgaver av hele problemet. Definering av egne funksjoner er særlig hensiktsmessig når vi skal utføre varianter av samme oppgave flere ganger. Ved å definere en funksjon slipper vi i slike tilfeller å skrive programkode for å løse problemet mer en gang; det å definere funksjoner innebærer gjenbruk av programkode som slik sparer oss for masse arbeid. I tillegg til denne direkte arbeidsbesparelsen skaper bruk av egendefinerte funksjoner bedre oversikt ved at det blir mindre programkode å holde styr på. Når vi har skrevet en funksjon ferdig som løser en avgrenset veldefinert del av hele oppgaven kan vi glemme hvordan funksjonen virker i detalj og konsentrere oss om å løse resten av problemet. 1
2 Mindre programkode gjør at det blir lettere på et senere tidspunkt å endre programkoden hvis oppgaven vi ønsker å løse skulle endre seg eller hvis programkoden skulle vise seg å inneholde feil. 1.2 Formell virkemåte La oss først se på hvordan vi definerer en funskjon og hvordan en funksjon virker formelt ved å se på et enkelt eksempel. I likhet med andre objekter som vektorer o.l. lager vi en funksjon ved å bruke tilordningsoperatoren. Funksjonen blir altså selv et objekt i R sitt workspace på samme måte som andre variable. Fordi funksjonsdefinisjonen vanligvis går over flere linjer er det praktisk å skrive funskjonsdefinisjonen inn i en teksteditor, f.eks. notepad i windows. Skriv følgende inn i notepad, merk teksten og kopier denne ved å trykke ctrl-c, å lim så dette inn i R-vinduet ved å trykke ctrl-v i R. minfunksjon <- function(arg1,arg2=20) { arg1 <- arg1 + 5 a <- arg1+arg2 return(a^2) Gjør vi dette får vi opprettet et objekt av type funksjon med navn minfunksjon i R sitt workspace. Funksjonen har to formelle argumenter med navn arg1 og arg2. Argumentene vil være å betrakte som variable når uttrykkene inne i funksjonen blir beregnet (når vi gjør et kall til funksjonen). I linje to tilordnes verdien av uttrykket arg1 + 5 til arg1 (arg1 øker sin verdi med 5). I linje tre tilordnes verdien uttrykket arg1+arg2 nå har fått til variabelen a. I linje 4 beregnes verdien av uttrykket aˆ2 som returneres som funksjonsverdi. Dette uttrykket trenger strengt tatt ikke å omsluttes av return( ); lar vi være vil funksjonen returnere verdien av uttrykket på siste linje i funksjonsdefinisjonen. Som for innebygde funksjoner i R kan vi nå gjøre et kall til funksjonen: > minfunksjon(10,5) [1] 400 Vi ser at funksjonen oppfører seg som forventet; først legges 5 til 10 slik at arg1 får verdien 15. Variabelen a blir så lik summen av variablene arg1 og arg2 (20). Dette opphøyes så i andre slik at funksjonsverdien blir lik 400. Merk at variabelen a og argumentene arg1 og arg2 ikke lenger er tilstede etter kallet til funksjonen; disse er å betrakte som lokale variable som bare er synlige fra innsiden av funksjonen og som forsvinner når funksjonen har gjort sitt: 2
3 > a Error: Object "a" not found > arg1 Error: Object "arg1" not found > arg2 Error: Object "arg2" not found Dette er også ønskelig oppførsel i og med at vi ikke ønsker at variable vi bruker lokalt inne i funksjonen for å løse funksjonens oppgaver skal komme i konflikt med variabler vi har opprettet for å ta vare på beregningsresultat utenfor funksjonen. Om vi har opprettet en variabel a før kallet til minfunksjon vil a fortsatt ha samme verdi etter funksjonskallet: > a <- c(1,2,3) > minfunksjon(10,5) [1] 400 > a [1] Vektoren a her er å betrakte som en global variabel som ikke endrer seg når vi tilordner verdier til den lokale variabelen a inne i funksjonen minfunksjon. Sett fra utsiden trenger vi med andre ord ikke å bekymre oss for hvilke variabelnavn som brukes internt av funksjonen. Eksempelet over illusterer også bruken av default-verdier. I første linje i funksjonsdefinisjonen har vi spesifisert at arg2 har 100 som sin defaultverdi. Lar vi være å oppgi arg2 i kallet til funksjonen vil arg2 ta verdien 100 i påfølgende beregninger internt i funksjon slik at vi får: > minfunksjon(10) [1] Eksempel La oss betrakte tenke oss en bestand på N = 50 moskusokser. m = 15 av disse bærer på en bestemt genvariant på sitt Y-kromosom (hver hann har bare ett Y-kromosom). Fordi bestanden er blitt for stor blir det besluttet at bestanden skal reduseres til n = 20 okser. La oss anta at disse blir valgt tilfeldig fra den opprinnelige bestanden. Lar vi X betegne antall kopier av genvarianten som er i igjen i utvalget etter bestandsreduksjonen følger det 3
4 at X blir hypergeometrisk fordelt med sannsynlighetsfordeling ( )( ) m N m p X (x) = x n x ( ) N (1) n Vi ønsker å lage et plot over sannsynlighetsfordelingen. I første omgang ønsker vi å beregne uttrykket over, la oss si for x = 10. Vi ser at uttrykket innebærer at vi må beregne tre binomialkoeffisienter. Videre en binomial koeffisienten definert som ( ) n x = n! x!(n x)! som innbærer at vi i beregningen av hver binomialkoeffisient må beregne verdier av fakultetsfunksjonen tre ganger. Lager vi oss funksjoner som utfører disse deloppgavene på en generell måte kan vi altså spare oss for mye arbeid. La oss først lage en funksjon som beregner n! = 1 2 n. Dette kan vi gjøre ved å lage en vektor av tallene fra 1 til n med uttrykket 1:n og så beregne produktet av elementene i vektoren med et kall til funksjonen prod (tilsvarer funksjonen sum). En definisjon av hele funksjonen vil kunne være fac <- function(n) { resultat <- prod(1:n) return(resultat) Tester vi funksjonen ser vi at den virker slik den skal: > fac(4) [1] 24 Når vi har løst denne deloppgaven kan vi lett definere en funksjon for å beregne binomialkoeffisienten: binomcoef <- function(n,x) { fac(n)/(fac(x)*fac(n-x)) Til sist definerer vi en funksjon som beregner hele punktsannsynligheten i en gitt verdi X = x, p X (x) gitt ved (1): pgenfordeling <- function(x,n=50,m=15,n=20) { binomcoef(m,x)*binomcoef(n-m,n-x)/binomcoef(n,n) 4 (2)
5 Ved å spesifisere default-verdier i funksjonsdefinisjonen slipper vi å oppgi modellparameterene i kall til funksjonen. Vi kan nå beregne, f.eks. p X (3), sannsynligheten for at 3 av de 20 oksene etter bestandsreduksjonen vil bære genet: > pgenfordeling(3) [1] Oppgaven er nå løst ved vi har definert funksjonen pgenfordeling som gjør tre kall til til funksjonen binomcoef som tilsammen gjør tre ganger tre kall til funksjonen fac. 2 If-setninger 2.1 Eksempel La oss fortsette eksempelet fra del 1.3. Forsøker vi å beregne sannsynligheten for at genvarianten blir helt borte, altså p X (0) = P (X = 0) får vi > pgenfordeling(0) [1] Inf Dette er åpenbart feil, en punktsannsynlighet i en diskret modell kan ikke ta verdier som går mot uendelig. Etter litt mer testing av de funksjonene vi har laget finner vi at vår fakultetsfunksjon fac returnerer følgende for 0!: > fac(0) [1] 0 hvilket jo er feil i og med at 0! er definert lik 1. Ser vi på verdiene uttrykkene i funksjonen fac får om vi bruker 0 som argument ser vi følgende > 1:0 [1] 1 0 > prod(1:0) [1] 0 Løsningen er å bruke en såkalt if-setning som gjør at vi kan håndtere spesialtilfeller som dette. Vi skriver om funksjonen til følgende: fac <- function(n) { if (n==0) resultat <- 1 else 5
6 resultat <- prod(1:n) return(resultat) En if-setning består generellt av et logisk uttrykk etterfulgt av et eller to uttrykk hvorav et av disse beregnes avhengig av om verdien av det logiske uttrykket har verdi TRUE eller FALSE. I vår modifiserte definisjon av funksjonen fac vil uttrykket n==0 få verdi TRUE dersom argumentet n er lik 0 og i slike tilfeller vil tilordningsuttrykket resultat <- 1 utføres, i motsatt fall utføres uttrykket resultat <- prod(1:n). Til siste returnes verdien av den lokale variabelen resultat. Med denne modifikasjonen begynner ting å fungerer: > fac(0) [1] 1 > fac(4) [1] 24 > pgenfordeling(0) [1] e-05 Vi ser at det er temmelig usannsynlig at genvarianten forsvinner helt men ikke helt umulig. Om vi antar at genvarianten i utgangspunktet er mer skjelden, la oss si tilstede i bare m = 5 kopier, får vi at sannsynligheten for at det forsvinner blir langt større: > pgenfordeling(0,m=5) [1] Unntakshåndtering slik som i dette eksempelet er en ganske vanlig bruk av if-setninger men if-setninger kan selvsagt også brukes til en rekke andre formål. Generellt kan de to alternative uttrykkene i en if-setning være såkalt sammensatte uttrykk. Ett sammensatt uttrykk kan skrives på formen {uttrykk1; uttrykk2; uttrykk3 eller { uttrykk1 uttrykk2 uttrykk3 Sammensatte uttrykk brukes også i definisjoner av funksjoner, slik vi har sett for eksempel i del 1.2, og i andre programstrukturer. 6
7 3 Løkker 3.1 Eksempel Vi har allerede sett på hvordan vi mange funksjoner kan operere elementvis på vektorer, f.eks. vil logaritmefunksjonen beregne logaritmer elementvis for vektoren som vi oppgir som argument: > weight [1] > log(weight) [1] Hvorvidt en funskjon kan operere elementvis på vektorer som er oppgitt som argument vil avhenge av hvordan funksjonen virker internt. Ser vi på vår funksjon pgenfordeling ser vi at den ikke håndterer vektorer som sitt x argument: > pgenfordeling(0:15) [1] e-05 Warning messages: 1: the condition has length > 1 and only the first element will be used in: if (n == 0) return(1) else return(prod(1:n))... Slik vi har programmert vår funksjonen beregnes i tilfelle over bare p X (x) for x = 0 i tillegg til at vi får en rekke feilmeldinger. Skal vi beregne la oss si en vektor av sannsynlighetene p X (0), p X (1),..., p X (15) må vi derfor tilordne verdiene til resultatvektoren eksplisitt. Vi kunne ha gjort dette på følgende måte: > pvektor<-rep(0,16) > pvektor[0]<-pgenfordeling(0) > pvektor[1]<-pgenfordeling(1) > pvektor[2]<-pgenfordeling(2) Meningen med for-løkker er å forenkle slike operasjoner. I stedet for alle linjene i koden over kan vi utføre det samme ved å bruke en såkalt for-løkke: > pvektor<-rep(0,16) > for (i in 0:15) pvektor[i+1] <- pgenfordeling(i) 7
8 Det som her skjer er at uttrykket pvektor[i] <- pgenfordeling(i) utføres et antall ganger. Ved hver enkelt utførelse av uttrykket vil løkke-variabelen i ha elementer hentet fra vektoren 0:15 som verdi. Resultatet er at alle elementene i vektoren pvektor blir tilordnet riktige verdier (sannsynlighetene for at 0, 1, 2 kopier av genvarianten o.s.v. er tilstede i populasjonen etter bestandsreduksjonen): > pvektor [1] e e e e e-01 [6] e e e e e-02 [11] e e e e e-09 [16] e+00 Vi kan nå lage et plot av resultatet: > plot(0:15,pvektor,type="h",xlab="antall genkopier x",ylab="sannsynlighet") Argumentet type= h spesifiserer at plottet skal være av type histogram. Default-verdien til argument type er p. Resultatet blir som i figur antall genkopierx sannsynlighet Figur 1: Resultatet av kallet til plot funksjonen Generellt er for-løkker på formen 8
9 for (var in vektor {sammensatt uttrykk 9
Notat 2, ST Sammensatte uttrykk. 27. januar 2006
Notat 2, ST1301 27. januar 2006 1 Sammensatte uttrykk Vi har sett at funksjoner ikke trenger å bestå av annet enn ett enkeltuttrykk som angir hva funksjonen skal returnere uttrykkt ved de variable funksjonen
DetaljerNotat 2, ST januar 2005
Notat 2, ST1301 25. januar 2005 1 Sammensatte uttrykk Vi har sett at funksjoner ikke trenger å bestå av annet enn ett enkeltuttrykk som angir hva funksjonen skal returnere uttrykkt ved de variable funksjonen
DetaljerNotat 6 - ST februar 2005
Notat 6 - ST1301 22. februar 2005 1 Instruksjoner som data I begynnelsen av kurset definerte vi data som informasjon uttrykkt i et programmeringsspråk. Slike data kan være av ulik type, f.eks. enkle skalarer
DetaljerBioberegninger - notat 4: Mer om sannsynlighetsmaksimering
Bioberegninger - notat 4: Mer om sannsynlighetsmaksimering 8. mars 2004 1 Kort om Newton s metode i flere dimensjoner Newton s metode kan generaliseres til å løse sett av n ligninger med n ukjente. Skal
DetaljerINF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon.
INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon. Stephan Oepen & Erik Velldal Universitetet i Oslo 25. januar, 2013 På blokka 2 Forrige uke Introduksjon og oversikt Funksjonell
Detaljer<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.
Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] Webprogrammering høsten 2015 //funksjonskall printhallo(); //enda en gang printhallo();
DetaljerØvingsforelesning i Matlab TDT4105
Øvingsforelesning i Matlab TDT4105 Øving 6. Tema: funksjoner med vektorer, plotting, preallokering, funksjonsvariabler, persistente variabler Benjamin A. Bjørnseth 13. oktober 2015 2 Oversikt Funksjoner
DetaljerLæringsmål og pensum. Oversikt
1 2 Læringsmål og pensum TDT4105 Informasjonsteknologi grunnkurs: Uke 39 Betingede løkker og vektorisering Læringsmål Skal kunne forstå og programmere betingede løkker med while Skal kunne utnytte plassallokering
DetaljerFinne ut om en løsning er helt riktig og korrigere ved behov
Finne ut om en løsning er helt riktig og korrigere ved behov Finurlige feil og debugging av kode IN1000, uke5 Henrik H. Løvold Oppgave (Lett modifisert fra eksamen 2014) Skriv en funksjon Dersom parameteren
DetaljerST Bioberegninger, introduksjon Om kurset
ST1301 - Bioberegninger, introduksjon Om kurset Stokastisk modellering: Biologiske prosesser er stokastiske (genetisk drift, mutasjoner, overlevelse, død, populasjonsdynamikk). Vi trenger stokastiske modeller
DetaljerKapittel Oktober Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 14.
og Institutt for geofag Universitetet i Oslo 17. Oktober 2012 i MatLab En funksjon vil bruke et gitt antall argumenter og produsere et gitt antall resultater og : Hvorfor Først og fremst bruker vi når
DetaljerNotat 3 - ST februar 2005
Notat 3 - ST1301 1. februar 2005 1 Simulering fra modell Når vi skal analysere et gitt konkret innsamlet datasett vil vi gjøre dette med utgangspunkt i en statistisk modell. Vi kan si at en slik statistisk
DetaljerHvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.
Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på
DetaljerHvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.
Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på
Detaljer23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.
Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen
DetaljerFinne ut om en løsning er helt riktig og korrigere ved behov
Finne ut om en løsning er helt riktig og korrigere ved behov Finurlige feil og debugging av kode IN1000, uke5 Geir Kjetil Sandve Oppgave (Lett modifisert fra eksamen 2014) Skriv en funksjon Dersom parameteren
DetaljerProgrammering i R - del 2
Programmering i R - del 2 14. februar 2004 1 Simulering fra modell Når vi skal analysere et gitt konkret innsamlet datasett vil vi gjøre dette med utgangspunkt i en statistisk modell. Vi kan si at en slik
DetaljerINF 1000 høsten 2011 Uke september
INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 INF1000 undervisningen Forelesningene: Første
DetaljerINF1000 undervisningen INF 1000 høsten 2011 Uke september
INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første
Detaljerlage og bruke funksjoner som tar argumenter lage og bruke funksjoner med returverdier forklare forskjellen mellom globale og lokale variabler
42 Funksjoner Kapittel 4 Funksjoner Etter dette kapitlet skal du kunne lage og bruke enkle funksjoner lage og bruke funksjoner som tar argumenter lage og bruke funksjoner med returverdier forklare forskjellen
DetaljerMatematikk 1000. Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag
Matematikk 1000 Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag Oppgave 1 Hva gjør disse skriptene? a) Skriptet lager plottet vi ser i gur 1. Figur 1: Plott fra oppgave 1 a). b) Om vi endrer skriptet
DetaljerØving 12, ST1301 A: B:
Øving 12, ST1301 Oppgave 1 En to-utvalgs t-test forutsetter at observasjonene i hvert utvalg X 1 ; X 2 ; : : : ; X n og Y 1 ; Y 2 ; : : : ; Y m er uavhengige normalfordelte variable. Hvis testen oppfører
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerINF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
DetaljerNorsk informatikkolympiade runde. Sponset av. Uke 46, 2017
Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
DetaljerTDT4110 IT Grunnkurs Høst 2016
TDT4110 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Auditorieøving 1 Vennligst fyll ut følgende informasjon i blokkbokstaver
DetaljerØvingsforelesning i Matlab TDT4105
Øvingsforelesning i Matlab TDT4105 Øving 6. Tema: funksjoner med vektorer, plotting, while Benjamin A. Bjørnseth 12. oktober 2015 2 Oversikt Funksjoner av vektorer Gjennomgang av øving 5 Plotting Preallokering
Detaljer}?> <!DOCTYPE... <html xmlns="http://www.w3.org/1999/xhtml"> <head>... </head> <body> <p>nå skal vi printe hallo:</p> <?php //funksjonskall
Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] //funksjonskall printhallo(); //enda en gang printhallo(); Michael Preminger (michaelp@hio.no)
DetaljerIntroduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
DetaljerInnhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java
INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:
DetaljerFeilmeldinger, brukerinput og kontrollflyt
Feilmeldinger, brukerinput og kontrollflyt Skjønne hvordan et program presist utføres og forberede seg på håndtering av feil INF1000, uke2 Ragnhild Kobro Runde Programmeringskrøll Programmet vil ikke kjøre
DetaljerNorsk informatikkolympiade 2013 2014 1. runde
Norsk informatikkolympiade 2013 2014 1. runde Sponset av Uke 46, 2013 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerObject interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.
Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører
DetaljerØvingsforelesning TDT4105 Matlab
Øvingsforelesning TDT4105 Matlab Øving 2. Pensum: Funksjoner, matriser, sannhetsuttrykk, if-setninger. Benjamin A. Bjørnseth 8. september 2015 2 Innhold Funksjoner Matriser Matriseoperasjoner Sannhetsuttrykk
DetaljerST1301 Bioberegninger - Introduksjon
ST1301 Bioberegninger - Introduksjon Jarle Tufto 11. januar 2005 1 Om kurset Innenfor en del retninger av statistikk og biologifaget er behovet for programmeringsferdigheter relativt store. I forbindelse
DetaljerBetinget eksekvering og logiske tester i shell
Betinget eksekvering og logiske tester i shell Betinget eksekvering *? Programmet utfører operasjon(er) bare hvis en logisk betingelse er sann Bash tilbyr to kontrollstrukturer for å kunne gjøre betinget
DetaljerLøsningsforslag øving 8, ST1301
Løsningsforslag øving 8, ST3 Oppgave Hva gjør følgende funksjon? Hvilken fordeling har variabelen n som returneres som funksjonsverdi? Forklar hvorfor. Forutsett at to enkle positive tall blir oppgitt
DetaljerUtførelse av programmer, metoder og synlighet av variabler i JSP
Utførelse av programmer, metoder og synlighet av variabler i JSP Av Alf Inge Wang 1. Utførelse av programmer Et dataprogram består oftest av en rekke programlinjer som gir instruksjoner til datamaskinen
DetaljerMAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 MAT1030 Diskret Matematikk
Detaljer4 Matriser TMA4110 høsten 2018
Matriser TMA høsten 8 Nå har vi fått erfaring med å bruke matriser i et par forskjellige sammenhenger Vi har lært å løse et lineært likningssystem ved å sette opp totalmatrisen til systemet og gausseliminere
DetaljerTDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger. - 3rd edition: Kapittel 8. Professor Alf Inge Wang
1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger - 3rd edition: Kapittel 8 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære om Pensum Grunnleggende operasjoner på strenger Å skive/slice
DetaljerDebugging. Tore Berg Hansen, TISIP
Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...
DetaljerINF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004
INF1000 Metoder Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2015 2016 1. runde Sponset av Uke 46, 2015 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerLøsningskisse for oppgaver til undervisningsfri uke 8 ( februar 2012)
1 ECON 130 HG - februar 01 Løsningskisse for oppgaver til undervisningsfri uke 8 (0.-. februar 01) Oppg..1. Variabel: x = antall kundehenvendelser pr. dag 1. Antall observasjoner: n = 100 dager. I Excel
DetaljerNorsk informatikkolympiade 2012 2013 1. runde
Norsk informatikkolympiade 2012 2013 1. runde Uke 45, 2012 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler. Instruksjoner:
DetaljerMatematikk Øvingsoppgaver i numerikk leksjon 7 Løsningsforslag
Matematikk 1000 Øvingsoppgaver i numerikk leksjon 7 Løsningsforslag Oppgave 1 Halveringsmetoden igjen a) I skriptet vårt fra leksjon 6 skal altså linje 16 erstattes med while abs(b-a)>1e-3. Når vi gjør
DetaljerUendelig bakke. Introduksjon. Skrevet av: Kine Gjerstad Eide
Uendelig bakke Skrevet av: Kine Gjerstad Eide Kurs: Processing Tema: Tekstbasert, Animasjon Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon
DetaljerMatematikk Øvingsoppgaver i numerikk leksjon 4 m-ler
Matematikk 1000 Øvingsoppgaver i numerikk leksjon 4 m-ler I denne øvinga skal vi lære oss å lage m-ler små tekstler som vi bruker i MATLAB-sammenheng. Der nst to typer m-ler: Funksjonsler og skript. Funksjonsler
DetaljerMatematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag
Matematikk 1000 Øvingsoppgaver i numerikk leksjon Løsningsforslag Oppgave 1 Vektorer a) Variablene i MATLAB kan være tall, vektorer eller matriser. Vi kan for eksempel gi vektoren x = [1, 0, 3] på denne
DetaljerMetoder med parametre, løkker og arrayer
Metoder med parametre, løkker og arrayer Løse problemer med programmering INF1000, uke3 Ragnhild Kobro Runde METODER MED PARAMETRE Statiske void-metoder med parametre Den typen metoder vi så på forrige
DetaljerNewtons metode er en iterativ metode. Det vil si, vi lager en funksjon. F x = x K f x f' x. , x 2
Newtons metode er en iterativ metode. Det vil si, vi lager en funksjon F x = x K f x f' x, starter med en x 0 og beregner x 1 = F x 0, x = F x 1, x 3 = F x,... Dette er en metode der en for-løkke egner
DetaljerInformasjon Eksamen i IN1000 høsten 2017
Informasjon Eksamen i IN000 høsten 207 Tid 8. desember kl. 09.00 (4 timer) Faglærerne vil besøke lokalet ca kl 0. Oppgavene Oppgave 2b og 2c er flervalgsoppgaver. Her får man det angitte antall poeng om
DetaljerStatistikk 1 kapittel 5
Statistikk 1 kapittel 5 Nico Keilman ECON 2130 Vår 2017 Kapittel 5 Sannsynlighetsmodeller I kap. 4 så vi et eksempel med en s.v. X som hadde en uniform sannsynlighetsfordeling: alle verdier av x har like
DetaljerMatematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag
Matematikk 1000 Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag Oppgave 1 Vektorer a) Variablene i MATLAB kan være tall, vektorer eller matriser. Vi kan for eksempel gi vektoren x = [1, 0, 3] på denne
DetaljerBioberegninger, ST november 2006 Kl. 913 Hjelpemidler: Alle trykte og skrevne hjelpemidler, lommeregner.
Norges teknisk-naturvitenskapelige universitet Institutt for matematiske fag Side 1 av 5 Bokmål Faglig kontakt under eksamen: Førsteamanuensis Jarle Tufto Telefon: 99 70 55 19 Bioberegninger, ST1301 30.
Detaljerclass Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
DetaljerNorsk informatikkolympiade 2014 2015 1. runde
Norsk informatikkolympiade 2014 2015 1. runde Sponset av Uke 46, 2014 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerMengder, relasjoner og funksjoner
MAT1030 Diskret Matematikk Forelesning 15: og induksjon Dag Normann Matematisk Institutt, Universitetet i Oslo Mengder, relasjoner og funksjoner 9. mars 2010 (Sist oppdatert: 2010-03-09 14:18) MAT1030
DetaljerLøse reelle problemer
Løse reelle problemer Litt mer om løkker, prosedyrer, funksjoner, tekst og innlesing fra fil INF1000, uke4 Geir Kjetil Sandve 1 Tilbakeblikk Dere bør nå beherske det sentrale fra uke 1 og 2: Uttrykk, typer,
DetaljerRekursjon som programmeringsteknikk
Rekursjon Kap.7 Sist oppdatert 15.02.10 Rekursjon som programmeringsteknikk 10-1 Rekursiv tenkning Rekursjon er en programmeringsteknikk der en metode kan kalle seg selv for å løse problemet. En rekursiv
DetaljerTDT4105 Informasjonsteknologi, grunnkurs (ITGK)
1 TDT4105 Informasjonsteknologi, grunnkurs (ITGK) Introduksjon til programmering i Matlab Rune Sætre satre@idi.ntnu.no 2 Læringsmål og pensum Mål Lære om programmering og hva et program er Lære å designe
Detaljer1 Section 4-1: Introduksjon til sannsynlighet. 2 Section 4-2: Enkel sannsynlighetsregning. 3 Section 5-1: Introduksjon til sannsynlighetsfordelinger
1 Section 4-1: Introduksjon til sannsynlighet 2 Section 4-2: Enkel sannsynlighetsregning 3 Section 5-1: Introduksjon til sannsynlighetsfordelinger 4 Section 5-2: Tilfeldige variable 5 Section 5-3: Binomisk
DetaljerINF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme, del 2 Erik Velldal Universitetet i Oslo 7. mai 2015 Tema Forrige uke SICP 4.1. Structure and interpretation
DetaljerINF2810: Funksjonell Programmering. Tilstand og verditilordning
INF2810: Funksjonell Programmering Tilstand og verditilordning Stephan Oepen Universitetet i Oslo 2. mars 2017 Forrige gang 2 I dag 3 Vi blar om til kapittel 3 i SICP. Tilstand og verditilordning. Destruktive
DetaljerLøse reelle problemer
Løse reelle problemer Løse problemer med data fra fil, samt litt mer om funksjoner IN1000, uke6 Geir Kjetil Sandve Mål for uken Få enda mer trening i hvordan bruke løkker, samlinger og beslutninger for
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når
DetaljerJentetreff INF1000 Debugging i Java
Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren ingridgg@student.matnat.uio.no 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver
DetaljerST1301 Bioberegninger. Jarle Tufto
ST1301 Bioberegninger Jarle Tufto 30. november 2003 2 Forord Jarle Tufto Trondheim, 30. november 2003 3 4 Innhold 1 Introduksjon 7 1.1 Om kurset............................. 7 1.2 Hvorfor R?............................
DetaljerMatematikk Øvingsoppgaver i numerikk leksjon 1. Løsningsforslag
Matematikk 1000 Øvingsoppgaver i numerikk leksjon 1 Løsningsforslag Oppgave 2 Litt aritmetikk a) Her har vi skrevet ut det som kommer opp i kommandovinduet når vi utfører operasjonene. > 2+2 4 > 3-2 1
DetaljerMAT1030 Plenumsregning 1
MAT1030 Plenumsregning 1 Kapittel 1 Mathias Barra - 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 Velkommen til plenumsregning for MAT1030 Fredager 12:15 14:00 Vi vil gjennomgå utvalgte
DetaljerINF2810: Funksjonell Programmering. Kommentarer til prøveeksamen
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Kommentarer til prøveeksamen Erik Velldal Universitetet i Oslo 1: Grunnleggende (6 poeng)? (define foo '(a b))? (define bar foo)? (set!
DetaljerINF1000 Uke 4. Innlesning fra terminal. Uttrykk og presedens. Oversikt
Oversikt INF1000 Uke 4 Forgreininger, løkker og arrayer Litt repetisjon Blokker og forgreininger if-setninger if-else-setninger switch-setninger Løkker while-løkker do-while-løkker for-løkker Arrayer Opprette,
DetaljerTDT4110 IT Grunnkurs Høst 2016
TDT4110 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til Auditorieøving 1 1 Teori 1. Hvilket tall kan IKKE lagres
DetaljerEn innføring i MATLAB for STK1100
En innføring i MATLAB for STK1100 Matematisk institutt Universitetet i Oslo Februar 2017 1 Innledning Formålet med dette notatet er å gi en introduksjon til bruk av MATLAB. Notatet er først og fremst beregnet
DetaljerTDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,
1 TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.no 2 Frist for øving 1: Fredag 16. Sept. Noen oppstartsproblemer
DetaljerPlenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030
MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo Plenumsregning 1 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) MAT1030 Diskret Matematikk
DetaljerArv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
DetaljerPlenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode
Plenumsregning 1 Kapittel 1 Roger Antonsen - 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang av ukeoppgaver Gjennomgang av eksempler fra boka Litt repetisjon
DetaljerEKSAMENSOPPGAVE / EKSAMENSOPPGÅVE
Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE Eksamen i: Inf-1049, Introduksjon til beregningsorientert programmering Dato: 14. desember 2018 Klokkeslett: 09.00 13.00 Sted
DetaljerMatematikk Øvingsoppgaver i numerikk leksjon 5 for-løkker
Matematikk 1000 Øvingsoppgaver i numerikk leksjon 5 for-løkker I dette settet skal vi introdusere for-løkker. Først vil vi bruke for-løkker til å regne ut summer. Vi skal også se på hvordan vi kan implementere
DetaljerTDT4105 Informasjonsteknologi, grunnkurs (ITGK)
1 TDT4105 Informasjonsteknologi, grunnkurs (ITGK) Introduksjon til programmering i Matlab Rune Sætre satre@idi.ntnu.no 3 Læringsmål og pensum Mål Lære om programmering og hva et program er Lære om hvordan
Detaljerif-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS
Løkker og if-tester Gløer Olav Langslet Sandvika VGS 29.08.2011 Informasjonsteknologi 2 Funksjoner, løkker og iftester Læreplansmål Eleven skal kunne programmere med enkle og indekserte variabler eller
DetaljerVelkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel
Velkommen til plenumsregning for MAT1030 MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Torsdager 10:15 12:00 Gjennomgang
DetaljerINF2810: Funksjonell Programmering. Dataabstraksjon og Trerekursjon
INF2810: Funksjonell Programmering Dataabstraksjon og Trerekursjon Stephan Oepen & Erik Velldal Universitetet i Oslo 15. februar, 2013 Tema 2 Forrige uke Høyere-ordens prosedyrer: Prosedyrer som argumenter
DetaljerHØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL Delprøve Kandidatnr: Prøvedato: 2. mars 2005 Varighet: 3 timer (9:00 12:00) Fagnummer: LO196D Fagnavn: Videregående programmering med
DetaljerEn enkel while-løkke. 1 of 12 15.09.2015 15:28. 2 of 12 15.09.2015 15:28. while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt
while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 15/09-15 En liten repetisjon Løkker Arrayer (tabeller) Løkker
DetaljerNoen innebygde funksjoner - Vektorisering
1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Uke 41: «Matlab programs» (kapittel 6) Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no
DetaljerNorsk informatikkolympiade runde. Sponset av. Uke 46, 2015
Norsk informatikkolympiade 2015 2016 1. runde Sponset av Uke 46, 2015 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerINF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2
INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme, del 2 Erik Velldal Universitetet i Oslo 4. mai 2017 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer programs Metacircular
DetaljerNorsk informatikkolympiade runde. Sponset av. Uke 46, 2013
Norsk informatikkolympiade 2013 2014 1. runde Sponset av Uke 46, 2013 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerNoen innebygde funksjoner - Vektorisering
1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Uke 41: «Matlab programs» (kapittel 6) Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no
DetaljerMatematikk Øvingsoppgaver i numerikk leksjon 1 Løsningsforslag
Matematikk 1000 Øvingsoppgaver i numerikk leksjon 1 Løsningsforslag Oppgave 2 Litt aritmetikk a) Her har vi skrevet ut det som kommer opp i kommandovinduet når vi utfører operasjonene. >> 2+2 4 >> -2 1
DetaljerYouTube-kanal ITGK. Læringsmål og pensum
1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner - 3rd edition: Kapittel 5.1-5.6 Professor Alf Inge Wang 2 YouTube-kanal ITGK Professor Guttorm Sindre (foreleser den andre Python-parallellen
Detaljerwhile-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke
[Kurssidene] [ ABI - fagsider bibin ] Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Michael Preminger
DetaljerPython: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre
Python: Variable og beregninger, input og utskrift TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål for denne uka: Vite litt om design av programmer (2.1, 2.2, 2.4) Kunne skrive ut
DetaljerLøse reelle problemer
Løse reelle problemer Litt mer om løkker, metoder med returverdier, innlesing fra fil og strenger INF1000, uke5 Ragnhild Kobro Runde MER OM LØKKER Repetisjon fra forrige uke: while Syntaks: while (condition)
Detaljerløsningsforslag-uke5.txt
INF 1000 LØSNINGSFORSLAG TIL UKEOPPGAVER FOR UKE 5 1) Setningen er kompakt skrivemåte for int[] a; a = new int[50]; hvor den første setningen deklarerer arrayen a, og den andre setningen oppretter et array-objekt
Detaljer