Variabler, datatyper og operatorer

Størrelse: px
Begynne med side:

Download "Variabler, datatyper og operatorer"

Transkript

1 12 Variabler, datatyper og operatorer Kapittel 2 Variabler, datatyper og operatorer Etter dette kapitlet skal du kunne forklare hva variabler er, og hvordan vi lager dem kjenne til regler for navngiving av variabler forklare hva en datatype er forklare hva vi bruker datatypene number, string og boolean til manipulere tekster (strings) med metodene til String-objektet forklare hva en operator er bruke aritmetiske operatorer, tilordningsoperatorer, konkateneringsoperatoren og typeof-operatoren gjøre om mellom datatypene number og string pssst Du finner videoer og andre ressurser på nettstedet på Lokus. Når vi skriver programmer, er det viktig å holde orden på verdier underveis. Vi kan se på et enkelt eksempel for å illustrere dette behovet. I figur 2.1 kan du se en kalkulator-app som lar brukeren skrive inn en temperatur i grader fahrenheit, for så å regne ut tilsvarende temperatur i grader celsius. Formelen for å finne temperaturen i grader celsius når vi kjenner temperaturen i grader fahrenheit, ser slik ut: C = (F 32) 5 9. C står for temperaturen i grader celsius, og F står for temperaturen i grader fahrenheit. Kalkulator-appen må altså kjenne temperaturen i grader fahrenheit for å regne ut temperaturen i grader celsius. Når vi skriver inn en temperatur i grader fahrenheit i kalkulatoren, blir verdien lagret i datamaskinens minne, slik at programmet kan bruke denne verdien i beregningen. For å finne igjen en verdi bruker vi et navn som peker på verdiens posisjon i minnet. Dette navnet kalles en variabel. Deler av koden som brukes i kalkulatoren kan derfor se slik ut (selve utregningen forklares senere i kapitlet):

2 Variabler, datatyper og operatorer 13 // Lager en variabel for å huske hva brukeren skriver inn var temperatur_fahrenheit; /* Kode som mottar verdien brukeren skriver inn */ // Lager en variabel for å huske temperaturen i grader celsius var temperatur_celsius = (temperatur_fahrenheit - 32) * (5/9); /* Kode som skriver ut celsius-verdien på nettsiden */ Figur 2.1: En enkel kalkulator som gjør om fra grader fahrenheit til grader celsius. Du kan prøve ut denne kalkulatoren på elevnettstedet. 2.1 Variabler En variabel er altså et navn som peker på en plass i datamaskinens minne. En variabel er altså et navn som peker på en plass i datamaskinens minne. Det vil si at variabelen inneholder posisjonen til verdien, og ikke selve verdien. Likevel sier vi ofte at en variabel har en verdi, og det er en helt grei praktisk tolkning som vi også vil bruke i denne boka. Som navnet antyder, kan en variabel variere. Det vil si at verdien til en variabel kan forandre seg i løpet av et program. Tenk på antall mål en spiller har scoret i FIFA, eller antall mynter Mario har samlet. Disse tallene varierer i løpet av et spill, men vi trenger ikke å lage nye variabler når tallene endrer seg. Fahrenheit-verdiene i eksemplet ovenfor vil også kunne variere. Vi bruker også variabler når vi ønsker å bruke den samme verdien mange ganger i løpet av et program. I spill kan vi for eksempel ofte angi en vanskelighetsgrad. Alle nivåene i spillet vil variere med denne vanskelighetsgraden. Da er det nyttig å lagre vanskelighetsgraden i én variabel, som vi bruker gjennom hele spillet. For å endre spillets vanskelighetsgrad, er det da nok å endre én variabel.

3 14 Variabler, datatyper og operatorer I JavaScript lager 1 vi en variabel ved å bruke nøkkelordet var etterfulgt av et navn vi bestemmer selv, og et semikolon: var antall; Deretter kan vi bruke tilordningsoperatoren (=) for å gi variabelen en verdi: antall = 7; Hvis vi ønsker at variabelen skal ha en verdi med én gang, kan vi tilordne en verdi i det vi lager en variabel: var antall = 7; Når vi først har laget en variabel, kan vi endre verdien slik: antall = 42; Vi bruker altså nøkkelordet var bare når vi lager nye variabler. Verdien til en variabel vil til en hver tid være den siste verdien vi har gitt den. En variabel kan endre sin verdi mange ganger i løpet av kjøringen av en app. For å undersøke hvilken verdi en variabel har må vi enten skrive ut verdien på en nettside, eller i konsollen. I koden nedenfor vises et fullstendig HTMLdokument der en variabel opprettes og verdien til variabelen skrives ut i konsollen. I resten av dette kapitlet viser vi bare koden som skal skrives mellom taggene <script> og </script>. Du bør derfor kopiere koden nedenfor for å prøve ut det vi skal gjennomgå i kapitlet. 1 <! doctype html > 2 < html > 3 < head > 4 < title > Variabler og konsollen </ title > 5 </ head > 6 <b ody > 7 8 <s cript > 9 // Lager variabelen antall og tilordner verdien 7 10 var antall = 7; // Skriver variabelens verdi til konsollen 13 console. log ( antall ); 14 </s cript > </b ody > 17 </ html > Kode 2.1: Et enkelt HTML-dokument som bruker konsollen. 1 formelt kalles det å deklarere en variabel

4 Variabler, datatyper og operatorer 15 For at koden vår skal bli så lett å lese som mulig, er det viktig at vi velger gode variabelnavn. Korte navn gjør koden lett å skrive, men det kan være lurt å velge lengre navn hvis det gjør koden lettere å forstå. Det er for eksempel mye lettere å lese en kode som bruker variabelnavnene antallriktige og antallmulige, enn en som bruker navnene tall1 og tall2. Derfor er det viktigere å fokusere på god leselighet enn på korte navn. Det finnes noen begrensninger for hva vi kan kalle variablene våre. I figur 2.2 kan du se en oversikt over regler for variabelnavn. Navnet kan ikke starte med et tall. Feil: var 2omgang; Riktig: var omgang2; Navnet kan ikke være det samme som et nøkkelord (ord som brukes av JavaScript). Feil: var var; Riktig: var min_var; Variabelnavn skiller mellom store og små bokstaver. Det vil si at navn og NAVN regnes som ulike variabelnavn Navnet kan ikke inneholde mellomrom, bindestreker eller punktum. Feil: var min-variabel.3; Riktig: var min_variabel3; Tegnene æ, ø og å kan brukes i variabelnavn, men det kan være lurt å venne seg til å ikke bruke dem. I stedet for æ, ø og å, kan ae, o og a brukes. Du bør for eksempel ikke bruke æ, ø eller å i filnavn For å bedre leseligheten av variabelnavn, kan «camel case» brukes. Da bruker vi stor forbokstav i alle ord etter variabelens første ord. Alternativt kan understrek (_) brukes til å skille ord. JavaScript bruker «camel case», det samme gjør vi i denne boka. Vanskelig å lese: var sumpoeng; Bedre: var sumpoeng; Figur 2.2: En oversikt over lovlige variabelnavn i JavaScript. camel case og store bokstaver i JavaScript Camel case har fått sitt navn fordi de store forbokstavene kan minne om kamelenes pukler. Vi bruker ikke stor forbokstav i det første ordet, fordi vanlige variabelnavn bør skrives med små bokstaver. Vi bruker altså camel case for å vise hvor et nytt ord dukker opp i et variabelnavn, for eksempel slik: var antallriktige;. Du kan også møte på variabelnavn med bare store bokstaver. Denne skrivemåten brukes på variabler som ikke skal forandres i løpet av kjøringen av en app. Et eksempel på en konstant er π, som vi finner i matematikkobjektet (Math.PI).

5 16 Variabler, datatyper og operatorer Oppgaver 2.1 Forklar om følgende variabelnavn er lovlige i JavaScript: variabel, spiller.2, 3.plass, antall_deltagere, antalldeltagere, antall-deltagere og årstall. 2.2 Foreslå bedre alternativer for variabelnavnene i forrige oppgave. Forklar hvorfor du mener dine forslag er bedre. 2.3 Lag en variabel som har ditt favorittall som verdi. Skriv ut verdien til variabelen i konsollen. 2.4 Gjør om verdien til variabelen du laget i forrige oppgave. Hva blir variabelens verdi i konsollen nå? 2.5 Lag variabelen var tall = 142; og skriv console.log(tal);. Legg merke til feilmeldingen du får. Semikolon i JavaScript I kode 2.1 på side 14 består JavaScript-koden av fire linjer: to kommentarer og to kodelinjer. Begge kodelinjene avsluttes med et semikolon (;). Vi bruker semikolon i JavaScript omtrent som vi bruker punktum i norskspråket. Et semikolon avslutter en setning (eng. statement), slik at Java- Script vet når en setning slutter. Vi kunne derfor ha skrevet kode 2.1 slik: var antall = 7; console.log(antall); Men hvis vi dropper det første semikolonet, slik: var antall = 7 console.log(antall); vil JavaScript tro at variabelen antall skal få verdien 7 console.log(antall), som ikke gir mening. Vi vil da få feilmeldingen Uncaught SyntaxError: Unexpected identifier i konsollen. Ofte skyldes en feilmelding at vi har glemt et tegn (for eksempel et semikolon) i koden vår, eller at vi har brukt feil tegn. 2.2 Datatyper JavaScript har tre primære datatyper: number, string og boolean. Number er for tall, string er for tekst og boolean er for enten sann eller usann (true eller false). Når vi skriver på et ark, er det lett for oss å vite hva som er et tall eller hva som er tekst. Det er ikke like lett for datamaskinen, som lagrer alt som 0-er

6 Variabler, datatyper og operatorer 17 og 1-ere. Vi må derfor hjelpe til litt, slik at den kan utføre de instruksjonene vi ønsker at den skal utføre. Datatyper lar oss gjøre det. I tillegg har JavaScript de to spesielle datatypene null og undefined. En variabel uten verdi (for eksempel var alder;), får datatypen undefined. Datatypen null brukes av noen programmerere for å angi at noe mangler innhold. Datatypen number Tall i JavaScript er av datatypen number. Et tall kan være et heltall (42), et negativt tall (-12) eller et desimaltall (3.14). I mange programmeringsspråk skilles det mellom heltall og desimaltall, men i JavaScript er alle tall av datatypen number. En tallvariabel kan se slik ut (legg merke til at punktum, ikke komma, brukes som desimalskilletegn): var andel = 0.72; Datatypen string Tekst i JavaScript er av datatypen string. En tekst kjennetegnes ved at den er omsluttet av anførselstegn (") eller apostrofer ('). Det er ingen praktisk forskjell mellom de to, det er altså en smakssak om du ønsker å bruke anførselstegn eller apostrofer. En tekstvariabel kan se slik ut: var sitat = "May the force be with you"; En tekst i JavaScript er egentlig et String-objekt. Objekter i JavaScript har ofte egne verktøy, kalt metoder. I figur 2.3 kan du se eksempler på noen av String-objektets metoder. Det første du må legge merke til, er at alle tegn i en tekst har sitt eget nummer (en index), som starter på 0. Denne nummereringen gjør det lettere å manipulere tekst. Ved å bruke hakeparenteser, kan vi hente ut enkelttegn (for eksempel sitat[17]), og vi kan bruke metoden indexof for å lete etter et tegn i en tekst. Hvis tegnet finnes, får vi indexen til den første forekomsten av bokstaven. Hvis tegnet ikke finnes, får vi -1. Vi kan derfor bruke indexof for å finne ut om et tegn finnes i en tekst. Vi får for eksempel bruk for string-objektets metoder når vi skal ha tekstfelter der brukere kan skrive inn informasjon. Hvis vi vil sjekke om en bruker har skrevet ordet «hei», er metoden tolowercase verdifull. Det er nemlig slik at ingen av ordene «HeI», «hei», «hei», «Hei», «hei» eller «HEI» har samme verdi som «hei». Det vil si at JavaScript tolker ordene som forskjellige. Grunnen til det er at JavaScript skiller mellom store og små bokstaver (JavaScript er skiftskillende, eng. case sensitive). Hvis vi bruker metoden tolowercase på teksten brukeren har skrevet inn, vil alle variantene av «hei» ovenfor, bli gjort om til «hei».

7 18 Variabler, datatyper og operatorer Figur 2.3: Oversikt over String-indekser og String-metoder. Datatypen Boolean En app består av en serie med instruksjoner. Noen av instruksjonene skjer hver gang programmet kjøres, mens andre bare vil skje i spesielle tilfeller. For å avgjøre om noe skal skje eller ikke, gjennomføres en test. For eksempel kan et program si «God morgen!» hvis tidspunktet er før ni, og «God kveld!» hvis tidspunktet er etter seks på kvelden. I et slikt program vil koden inneholde et «spørsmål», for eksempel: «Er tidspunktet før ni?». JavaScript vil da gi verdien true eller false, avhengig av hva tidspunktet er. Denne verdien kaller vi en boolean. Datatypen boolean har altså bare to mulige verdier: true (sann) eller false (usann). Vi bruker denne datatypen hver gang vi ønsker at et program skal foreta en avgjørelse. Oppgaver 2.6 Prøv å lage variabelen var tall = 2,71; (med komma, ikke punktum). Legg merke til feilmeldingen du får i konsollen. 2.7 Ta utgangspunkt i tekstvariabelen i figur 2.3. Hva blir resultatet av kodene nedenfor? a sitat[12]; b sitat.indexof("e"); c sitat.substring(14,21); 2.8 Lag en ny tekstvariabel og bruk length for å finne tekstens lengde.

8 Variabler, datatyper og operatorer Operatorer Et program vil inneholde mange forskjellige instruksjoner av ulik type. Noen ganger vil vi bruke matematikk, andre ganger vil vi undersøke om en variabel er av datatypen number eller string. En operator lar oss lage én verdi basert på flere verdier (for eksempel én sum fra fire tall). En setning som gjør om flere verdier til én verdi, kalles et uttrykk (eng. expression). Aritmetiske operatorer (matematikk) De fire regneartene som vi kjenner fra matematikken, kalles for aritmetiske operatorer. Operatorene som tilsvarer de fire regneartene, er + (pluss), - (minus), * (gange) og / (dele). var sum = 4 + 8; console.log(sum); // skriver ut 12 var differanse = 9-6; console.log(differanse); // skriver ut 3 var produkt = 8 * 7; console.log(produkt); // skriver ut 56 var kvotient = 15 / 3; console.log(kvotient); // skriver ut 5 Når vi skal utføre beregninger, er det viktig å ta hensyn til regnerekkefølge. Vi kan illustrere med et eksempel, der vi vil regne ut hvor mange brus vi må kjøpe inn til et bursdagsselskap: var antallbarn = 8; var antallvoksne = 8; var bruspergjest = 2; var antallbrus = antallbarn + antallvoksne * bruspergjest; console.log(antallbrus); // skriver ut 24 Her prøver vi å legge sammen antall barn og antall voksne, for så å gange svaret med 2 (antall brus per gjest). Vi forventer derfor at variabelen antallbrus får verdien 32, men hvis du prøver denne koden vil du se at verdien blir 24. Grunnen til det er at ganging (multiplikasjon) gjennomføres før pluss (addisjon). JavaScript følger regnerekkefølgen ganging, deling, pluss og minus. For å påvirke regnerekkefølgen, må vi bruke parenteser. I koden ovenfor må vi altså legge til parenteser i den nest nederste linjen, slik at antallbarn først legges til antallvoksne, før vi ganger med bruspergjest:

9 20 Variabler, datatyper og operatorer var antallbrus = (antallbarn + antallvoksne) * bruspergjest; console.log(antallbrus); // skriver ut 32 I tillegg til de fire regneartene, har vi de to operatorene inkrement (++) og dekrement (--). Dette er to nyttige operatorer som lar oss øke (inkrement) eller redusere (dekrement) en verdi med én. Vi kan for eksempel telle hvor mange ganger en knapp har blitt trykket: var antalltrykk = 0; // Når noen trykker på knappen antalltrykk++; // Øker variabelen antalltrykk med 1 console.log(antalltrykk); // skriver ut 1 Vi kommer til å bruke inkrement-operatoren i mange sammenhenger i denne boka. Vi har også den litt underlige modulusoperatoren (%), som gir oss resten ved deling: var rest1 = 9 % 3; // rest1 får verdien 0, fordi 9 delt på 3 er 3, med rest 0 var rest2 = 8 % 3; // rest2 får verdien 2, fordi 8 delt på 3 er 2, med rest 2 Vi bruker for eksempel modulus når vi ønsker å sjekke om et tall er delelig på et annet. Hvis vi får rest 0 når vi bruker modulus, vet vi at det første tallet er delelig på det andre. I tabell 2.1 vises en oversikt over aritmetiske operatorer (der var a = 7; og var b = 3;). Operator Beskrivelse Eksempel + Addisjon var c = a + b; // c = 10 - Subtraksjon var c = a - b; // c = 4 * Multiplikasjon var c = a * b; // c = 21 / Divisjon var c = b / a; // c = % Modulus (rest) var c = a % b; // c = 1 ++ Inkrement (øke med 1) var c = a++; // c = 8 -- Dekrement (minke med 1) var c = a--; // c = 6 Tabell 2.1: Aritmetiske operatorer (her er var a = 7; og var b = 3;).

10 Variabler, datatyper og operatorer 21 Oppgaver 2.9 Undersøk (og forklar) hva som blir resultatet av kodene nedenfor (bruk konsollen): a * 12 / 3 b 42-9 / 3 * 4 c (14 + 3) * 12 / 3 d (14 + 3) * (12 / 3) e 14 % 3 f 20 % 4 Tilordningsoperatorer Tidligere i kapitlet så vi på tilordningsoperatoren (=). Denne operatoren tilordner en verdi til en variabel. Det vil si at vi setter en variabels verdi lik noe, for eksempel var alder = 16;. Denne operatoren må ikke forveksles med likhetstegnet i matematikk. Vi har egne operatorer for å sammenligne verdier, og dem går vi gjennom i neste kapittel. Det finnes andre tilordningsoperatorer som lar oss endre verdier. Du kan se en oversikt over disse i tabell 2.2. Som du kan se, er disse bare forenklede skrivemåter av de aritmetiske operatorene. Vi bruker disse som alternativer til inkrementoperatoren (++) og dekrementoperatoren (--), når vi ønsker å endre en variabel med noe annet enn én. Hvis vi for eksempel lager et basketballspill, og noen scorer en 3-poenger, kan vi løse det slik: var poeng = 0; poeng += 3; // øker poeng med 3 (poeng = poeng + 3) console.log(poeng); // skriver ut 3 Her kan vi lese += 3 som «legg til 3 til variabelen poeng». Verdien til variabelen poeng øker altså med 3. Tilsvarende betyr -= 4 at vi skal trekke fra fire. Vi kan også kombinere gange, dele og modulus med tilordningsoperatoren (*=, /= og %=). String-operatorer Hvis vi vil legge sammen to tall, kan vi bruke addisjonsoperatoren (+). Men hva skjer om vi legger sammen to tekster (strings)? var totekster = "Hei" + " på deg!"; console.log(totekster); // skriver ut "Hei på deg!" Resultatet blir én tekst: «Hei på deg!». Pluss-symbolet har altså flere anvendelser, som avhenger av datatypene vi bruker. Hvis datatypen er string, blir tekstene «limt» sammen til en lengre tekst. Vi sier at vi konkatenerer tekstene. Pluss-symbolet kalles derfor konkateneringsoperatoren når det brukes på tekst. Vi kan også bruke tilordningsoperatoren += på tekst:

11 22 Variabler, datatyper og operatorer Operator Eksempel Tilsvarer = a = 4 a = 4 += a += 3 a = a + 3 -= a -= 5 a = a - 5 *= a *= 2 a = a * 2 /= a /= 7 a = a / 7 %= a %= 3 a = a % 3 Tabell 2.2: Tilordningsoperatorer. var tekst = "Hei"; console.log(tekst); // skriver ut "Hei" tekst += " på"; console.log(tekst); // skriver ut "Hei på" tekst += " deg!" console.log(tekst); // skriver ut "Hei på deg!" Denne operatoren konkatenerer («limer») ny tekst på eksisterende tekst. Resultatet av denne koden blir derfor «Hei på deg!». Legg merke til at vi må legge til mellomrom. Hvis vi ikke gjør det, får vi «Heipådeg!» i stedet. En vanlig feil skyldes at vi legger sammen det vi tror er to tall, mens det egentlig er et tall og en tekst: var tall = 17; var tekst = "42"; console.log(tall + tekst); // gir "1742" (en string) Denne feilen oppstår vanligvis når vi har et tekstfelt der en bruker kan skrive inn informasjon. I slike tilfeller må vi være litt ekstra på vakt. Senere i kapitlet presenteres typeof-operatoren, som lar oss sjekke en variabels datatype. Den kan vi bruke hvis vi er i tvil om en variabel inneholder en tekstverdi eller en tallverdi.

12 Variabler, datatyper og operatorer 23 Oppgaver 2.10 Lag variabelen var poeng = 50;. Undersøk (og forklar) hva som skjer med variabelen hvis du skriver: a poeng += 10; b poeng -= 10; c poeng *= 2; d poeng /= 2; e poeng %= 7; f poeng %= 5; g poeng++; h poeng--; 2.11 Lag variabelene var tekst1 = "Java"; og var tekst2 = "Script";, og bruk konkateneringsoperatoren (+) for å sette dem sammen til "JavaScript". typeof-operatoren En applikasjon kan være fri for feilmeldinger i konsollen, men likevel ikke fungere som vi ønsker. I slike tilfeller må vi bruke metoden console.log() underveis i koden vår, for å finne ut hvor ting går galt. En vanlig feil er at vi prøver å gjøre beregninger på en variabel som ikke er av datatypen number. Det skjer for eksempel når en bruker har skrevet noe i et tekstfelt. For å avdekke en slik feil, kan vi bruke typeof-operatoren. Denne operatoren lar oss undersøke hvilken datatype en variabel har. Nedenfor vises noen eksempler: var tekst = "litt tekst"; console.log(typeof(tekst)); // gir "string" var tall = 17; console.log(typeof(tall)); // gir "number" var tall = "17"; console.log(typeof(tall)); // gir "string" Datatypene object og array I tillegg til datatypene nevnt i dette kapitlet, har vi de to sammensatte datatypene array og object. De lar oss gruppere og organisere data. Hvis vi bruker typeof på arrayer og objecter, vil vi i begge tilfeller få "object". Det skyldes at arrayer er objekter. Vi kommer tilbake til disse senere i boka. Gjøre om mellom string og number Noen ganger vil typeof fortelle oss at en variabel har en annen datatype enn vi ønsker. Da må vi gjøre om datatypen. Vi kan bruke funksjonen String(),

13 24 Variabler, datatyper og operatorer for å gjøre om til datatypen string: var tall = 42; console.log(typeof(tall)); // gir "number" var tekstfratall = String(tall); console.log(tekstfratall); // gir "42" console.log(typeof(tekstfratall)); // gir "string" Tilsvarende kan vi bruke funksjonen Number() for å gjøre om til datatypen number, men det vil bare fungere hvis det er et tall å hente: var tekst = "42"; console.log(typeof(tekst)); // gir "string" var tallfratekst = Number(tekst); console.log(tallfratekst); // gir 42 console.log(typeof(tallfratekst)); // gir "number" var tekst2 = "1 414"; var tekst3 = "1,72"; // husk at punktum er desimaltegnet, komma gir feil console.log(number(tekst2)); // gir NaN (Not a Number) console.log(number(tekst3)); // gir NaN For at funksjonen Number() skal fungere, må teksten ha en spesiell form som JavaScript kjenner igjen som tall. Oppgaver 2.12 Lag følgende variabler og bruk typeof for å finne variablenes datatyper: a var navn; b var alder = 2; c var alder = 2.718; d var navn = "Ola"; e var aarstall = "1984" 2.13 Lag variablene var tekst1 = "17";, var tekst1 = "20 17"; og var tekst1 = "4,7";. a Hvilken datatype har disse variablene? b Prøv å gjøre om variablenes datatype til tall (number). Hvorfor går det ikke med alle?

14 Variabler, datatyper og operatorer 25 Sammendrag En variabel er et navn som peker på en verdi i datamaskinens minne. Verdien til en variabel kan variere. Vi lager (deklarerer) en variabel med nøkkelordet var. Det finnes regler for navngiving av variabler. Navnet kan ikke starte med et tall, inneholde bindestreker eller punktum, eller være det samme som et JavaScript-nøkkelord. I tillegg bør vanlige variabelnavn skrives med små bokstaver. Variabelnavn som består av flere ord bør deles opp ved å bruke stor forbokstav («camel case»), for eksempel antallmulige i stedet for antallmulige. Vi bruker ikke stor forbokstav på det første ordet. Vi bruker tilordningsoperatoren (=) for å gi en variabel en verdi. Vi bruker semikolon (;) for å avslutte en setning i JavaScript. JavaScript bruker datatypene number (tall), string (tekst) og boolean (true/false) for å skille mellom ulike typer data. Datatypen string (tekst) har egne metoder som lar oss manipulere tekster (indexof() som lar oss lete etter tegn i tekster, substring(), som lar oss dele opp en tekst, touppercase() som gjør om alle bokstaver i en tekst til store bokstaver, og tolowercase() som gjør om alle bokstaver i en tekst til små bokstaver). En operator lar oss lage én verdi basert på flere verdier. Vi har aritmetiske operatorer (matematikk, se tabell 2.1), tilordningsoperatorer (se tabell 2.2), konkateneringsoperatoren for tekst (strings) og typeof-operatoren som lar oss finne datatypen til en verdi. Vi kan gjøre om fra tekst (string) til tall (number) med funksjonen Number(), og fra tall (number) til tekst (string) med funksjonen String().

lage og bruke funksjoner som tar argumenter lage og bruke funksjoner med returverdier forklare forskjellen mellom globale og lokale variabler

lage 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

Detaljer

Kontrollstrukturer (valg og løkker)

Kontrollstrukturer (valg og løkker) Kapittel 3 Kontrollstrukturer (valg og løkker) 25 Kontrollstrukturer (valg og løkker) Etter dette kapitlet skal du kunne sammenligne verdier med sammenligningsoperatorer gjennomføre valg med if-setninger

Detaljer

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål Variabler og datatyper Gløer Olav Langslet Sandvika VGS Høst 2012 Informasjonsteknologi 2 Hva er programmering? Når du skal bake en kake følger du gjerne en oppskrift. Først er det beskrevet hva kaken

Detaljer

JS: Grunnleggende JavaScript

JS: Grunnleggende JavaScript JS: Grunnleggende JavaScript Skrevet av: Lars Klingenberg Kurs: Web Tema: Tekstbasert, Nettside Fag: Matematikk, Programmering, Teknologi Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregående skole Introduksjon

Detaljer

JS: Grunnleggende JavaScript Nybegynner

JS: Grunnleggende JavaScript Nybegynner JS: Grunnleggende JavaScript Nybegynner Web Introduksjon I denne oppgaven skal du lære helt enkle og grunnleggende elementer av JavaScript. Du vil lære om variabler, if-setninger, funksjoner og løkker.

Detaljer

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

if-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

Detaljer

Kapittel 1 En oversikt over C-språket

Kapittel 1 En oversikt over C-språket Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 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

Detaljer

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: fredrso@ifi.uio.no Utdanning: Dataingeniør, 2000 Cand.Scient,

Detaljer

Programmering Høst 2017

Programmering Høst 2017 Programmering Høst 2017 Tommy Abelsen Ingeniørfag - Data Innledning Dette er et dokument med litt informasjon og eksempler om kontrollstrukturer, samt oppgaver til forskjellige kontrollstrukturer. Spør

Detaljer

Python: 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 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

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

TDT4105 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

Detaljer

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen. Tetris Introduksjon Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 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

Detaljer

Et lite oppdrag i bakgrunnen

Et lite oppdrag i bakgrunnen Et lite oppdrag i bakgrunnen Under pultene på bakerste rad er det klistret post-it lapper med to tall skrevet på Regn ut summen av to nederste tall, skriv denne summen under de andre tallene, og send lappen

Detaljer

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill! Tetris Skrevet av: Kine Gjerstad Eide Kurs: Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

Matematikk 1000. Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Matematikk 1000. Øvingeoppgaver i numerikk leksjon 1 Å komme i gang Matematikk 1000 Øvingeoppgaver i numerikk leksjon 1 Å komme i gang I denne øvinga skal vi bli litt kjent med MATLAB. Vi skal ikkje gjøre noen avanserte ting i dette oppgavesettet bare få et visst innblikk

Detaljer

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Dagens tema Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet

Detaljer

Rekker (eng: series, summations)

Rekker (eng: series, summations) Rekker (eng: series, summations) En rekke er summen av leddene i en følge. Gitt følgen a 0, a 1, a,, a n,, a N Da blir den tilsvarende rekken a 0 + a 1 + a + + a n + + a N Bokstaven n er en summasjonsindeks.

Detaljer

Rekker (eng: series, summations)

Rekker (eng: series, summations) Rekker (eng: series, summations) En rekke er summen av leddene i en følge. Gitt følgen a 0, a 1, a,, a n,, a N Da blir den tilsvarende rekken a 0 + a 1 + a + + a n + + a N Bokstaven n er en summasjonsindeks.

Detaljer

Øvingsforelesning 1 Python (TDT4110)

Øvingsforelesning 1 Python (TDT4110) Øvingsforelesning 1 Python (TDT4110) Introduksjon, Kalkulasjoner Ole-Magnus Pedersen Oversikt Praktisk Info Repetisjon fra sist Oppgaver for øving 2 2 Praktisk Info Last opp øvinger på Blackboard før godkjenning

Detaljer

Verdier, variabler og forms

Verdier, variabler og forms [Kurssidene] [ ABI - fagsider bibin ] Verdier, variabler og forms Michael Preminger (michaelp@hio.no) 16/01-14 Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 Litt om forrige times øvelsesoppgaver

Detaljer

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon Oversikt INF1000 Uke 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning Uttrykk

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 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.

Detaljer

INF1000 Behandling av tekster

INF1000 Behandling av tekster INF1000 Behandling av tekster Marit Nybakken marnybak@ifi.uio.no 23. februar 2004 Tekster Vi kommer nesten aldri utenom å bruke tekststrenger i programmene våre, ikke minst fordi det nesten alltid skal

Detaljer

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. JS: Hei JavaScript! Introduksjon Web Introduksjon I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Steg 1: Bruke

Detaljer

Metoder med parametre, løkker og arrayer

Metoder 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

Detaljer

Oblig 4 Undervisningshefte i grunnleggende JavaScript programmering

Oblig 4 Undervisningshefte i grunnleggende JavaScript programmering Oblig 4 Undervisningshefte i grunnleggende JavaScript programmering Innhold: Variabler Boolske verdier Kontrollstrukturer Datastrukturer Løkker Funksjoner Events DOM behandling av Christine Skjønhaug Færø

Detaljer

Norsk informatikkolympiade runde

Norsk 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.

Detaljer

Læringsmål og pensum. if (be): else (not_to_be):

Læringsmål og pensum. if (be): else (not_to_be): 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk - 3rd edition: Kapittel 3 Professor Alf Inge Wang 2 if (be): else (not_to_be): 3 Læringsmål og pensum Mål Lære å bruke og

Detaljer

Kapittel august Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 2.

Kapittel august Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 2. Institutt for geofag Universitetet i Oslo 28. august 2012 Kommandovinduet Det er gjennom kommandovinduet du først og fremst interagerer med MatLab ved å gi datamaskinen kommandoer når >> (kalles prompten

Detaljer

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Valg og betingelser TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Kunne forstå og bruke if-setninger sammenlikning av strenger nøstede beslutningsstrukturer betingelser

Detaljer

$antall_maaneder =12; Variablene $pris og $antall_maaneder i eksemplet ovenfor har

$antall_maaneder =12; Variablene $pris og $antall_maaneder i eksemplet ovenfor har Et program som legger sammen to brukergitte tall må hente det ene hente det andre legge tallene sammen [Kurssidene] [ ABI - fagsider bibin ] presentere resultatet. Mellom operasjonene må data tas vare

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum

Detaljer

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum

Detaljer

Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen.

Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen. IN1000 - Seminaroppgaver til uke 1 Nyttig å vite: PEP 8 -- Style Guide for Python Code. Dersom det som undervises i IN1000 ikke samstemmer med PEP, så skal dere følge den stilen som undervises og ikke

Detaljer

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. JS: Hei JavaScript! Skrevet av: Arve Seljebu Kurs: Web Tema: Tekstbasert, Nettside Fag: Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon I denne oppgaven blir du introdusert for

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu. 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 11. Sept. Noen oppstartsproblemer

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk - 3rd edition: Kapittel 3 Professor Alf Inge Wang 2 if (be): else (not_to_be): 3 Læringsmål og pensum Mål Lære å bruke og

Detaljer

Verden - Del 2. Steg 0: Oppsummering fra introduksjonsoppgaven. Intro

Verden - Del 2. Steg 0: Oppsummering fra introduksjonsoppgaven. Intro Verden - Del 2 Nybegynner Processing Intro Denne oppgaven bygger på oppgaven med samme navn som ligger på introduksjonsnivå her i Processingoppgavene. Klikk her for å gå til introduksjonsoppgaven av verden.

Detaljer

INF Innleveringsoppgave 6

INF Innleveringsoppgave 6 INF1010 - Innleveringsoppgave 6 Frist: Onsdag 16. mars, 10:00 Maks 6 poeng Om obligatorisk oppgave 4, 6 og 7 i INF1010, våren 2016: "Leger og resepter" Du skal jobbe med en problemstilling omkring leger

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger

Detaljer

INF 1000 høsten 2011 Uke september

INF 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

Detaljer

INF1000 undervisningen INF 1000 høsten 2011 Uke september

INF1000 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

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger. - 3rd edition: Kapittel 8. Professor Alf Inge Wang

TDT4110 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

Detaljer

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

INF1000 (Uke 5) Mer om løkker, arrayer og metoder INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse

Detaljer

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning

Detaljer

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet ut? Variabler,

Detaljer

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Page 1 Page 2 Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Verdier, variabler og forms Michael Preminger (michaelp@hio.no) 30/08-06 Et program kan ha mange variabler, og alle trenger

Detaljer

Designe et program. TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Mål.

Designe et program. TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Mål. 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output Terje Rydland - IDI/NTNU 2 Læringsmål og pensum Mål Lære om å designe

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Tirsdag 12. juni 2012 Tid for eksamen: 9:00 15:00 Oppgavesettet er

Detaljer

Betinget eksekvering og logiske tester i shell

Betinget 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

Detaljer

Kap 2: Løkker og lister

Kap 2: Løkker og lister Kap 2: Løkker og lister Ole Christian Lingjærde, Inst for Informatikk, UiO 26-30 August, 2019 (Del 2 av 2) Forrige forelesning på en foil Formatert utskrift: %-operator og f-strings To typer løkker: while-løkker

Detaljer

Kapittel 1. Tallregning

Kapittel 1. Tallregning Kapittel 1. Tallregning Regning med tall er grunnlaget for mer avansert matematikk. I dette kapitlet repeteres følgende fra grunnskolen: Brøkregning Desimaltall Regning med positive og negative tall Potenser

Detaljer

Simulering - Sannsynlighet

Simulering - Sannsynlighet Simulering - Sannsynlighet Når regnearket skal brukes til simulering, er det et par grunninnstillinger som må endres i Excel. Hvis du får feilmelding om 'sirkulær programmering', betyr det vanligvis at

Detaljer

Veiledning og oppgaver til OpenOffice Calc. Regneark 1. Grunnskolen i Nittedal

Veiledning og oppgaver til OpenOffice Calc. Regneark 1. Grunnskolen i Nittedal Veiledning og oppgaver til OpenOffice Calc Regneark 1 Grunnskolen i Nittedal Regneark 1 Når du er ferdig med heftet skal du kunne: Vite hva et regneark er. Oppstart og avslutning av OpenOffice Calc. Flytting

Detaljer

TDT4165 PROGRAMMING LANGUAGES. Exercise 01 Introduksjon til Oz

TDT4165 PROGRAMMING LANGUAGES. Exercise 01 Introduksjon til Oz TDT4165 PROGRAMMING LANGUAGES Fall 2012 Exercise 01 Introduksjon til Oz Denne øvingen vil gjøre deg kjent med Emacs og Mozart. Du må kunne bruke disse verktøyene for å gjøre resten av øvingene. Mozart

Detaljer

Likninger - en introduksjon på 8. trinn Hva er en likning og hva betyr å løse den?

Likninger - en introduksjon på 8. trinn Hva er en likning og hva betyr å løse den? side 1 Detaljert eksempel om Likninger - en introduksjon på 8. trinn Hva er en likning og hva betyr å løse den? Dette er et forslag til undervisningsopplegg der utgangspunktet er sentrale problemstillinger

Detaljer

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS Mine notater Gløer Olav Langslet Sandvika VGS Et praktisk eksempel med objekter Vi kjenner alle til korktavlen med gule lapper. Vi henger opp en lapp for at vi selv eller andre skal huske eller bli minnet

Detaljer

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Programmering i C++ Løsningsforslag Eksamen høsten 2005 Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det

Detaljer

Norsk informatikkolympiade runde

Norsk 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.

Detaljer

Kapittel 1. Tallregning

Kapittel 1. Tallregning Kapittel 1. Tallregning Regning med tall er grunnlaget for mer avansert matematikk. I dette kapitlet repeteres følgende fra grunnskolen: Brøkregning Desimaltall Regning med positive og negative tall Potenser

Detaljer

løsningsforslag-uke5.txt

lø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

Leksjon 2. Setninger og uttrykk

Leksjon 2. Setninger og uttrykk 6108 Programmering i Java Leksjon 2 Setninger og uttrykk Del 1 Roy M. Istad 2015 Variabel Verdi Datatype Navnsatt lagringsplass. (Tenk: Oppbevaringsboks). Innholdet i en variabel. (Tenk: Klosse). Hvor

Detaljer

Leksjon 2. Setninger og uttrykk

Leksjon 2. Setninger og uttrykk 6108 Programmering i Java Leksjon 2 Setninger og uttrykk Del 1 Roy M. Istad 2015 Variabel Verdi Datatype Navnsatt lagringsplass. (Tenk: Oppbevaringsboks). Innholdet i en variabel. (Tenk: Klosse). Hvor

Detaljer

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2017

Norsk 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.

Detaljer

Verden - Del 2. Intro. Skrevet av: Kine Gjerstad Eide

Verden - Del 2. Intro. Skrevet av: Kine Gjerstad Eide Verden - Del 2 Skrevet av: Kine Gjerstad Eide Kurs: Processing Tema: Tekstbasert Fag: Matematikk, Programmering, Samfunnsfag Klassetrinn: 8.-10. klasse, Videregående skole Intro Denne oppgaven bygger på

Detaljer

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER .9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,

Detaljer

Oppgavesett med fasit

Oppgavesett med fasit TIL ENT3R ELEVENE Oppgavesett med fasit Tommy Odland Sist oppdatert: 1. november 2013 http://is.gd/ent3rknarvik http://tommyodland.com/ent3r 1 INNHOLD 1 Om dette dokumentet 3 1.1 Formål og oppbygging..................................

Detaljer

INF Obligatorisk innlevering 5

INF Obligatorisk innlevering 5 INF1000 - Obligatorisk innlevering 5 Frist: 2. Oktober kl 22:00 Temaer denne uka: Klasser og objekter. I denne obligen skal du som nytt tema jobbe med klasser og objekter, i tillegg til å bruke det du

Detaljer

Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator

Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator Litt mer om løkker Arrayer le Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i slo Java Repetisjon: operatorene ++ og -- Instruksjon i = i + i = i - Alternativ Prefiks-operator

Detaljer

Forberedelseskurs i matematikk

Forberedelseskurs i matematikk Forberedelseskurs i matematikk Formålet med kurset er å friske opp matematikkunnskapene før et år med realfag. Temaene for kurset er grunnleggende algebra med regneregler, regnerekkefølgen, brøk, ligninger

Detaljer

Steg 1: Lag bildedeklarasjon

Steg 1: Lag bildedeklarasjon Bildepresentasjon Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide Kurs: Processing Tema: Tekstbasert, Animasjon Fag: Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole

Detaljer

Et forsøk på definisjon

Et forsøk på definisjon Et forsøk på definisjon [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 18/08-17 Engelsklignende språk, med rigid syntaks, som kan brukes til å skrive instruksjoner (eksempel

Detaljer

Hjelpemidler: 4 A4-sider (2 to-sidige ark eller 4 en-sidige ark) med egenproduserte notater (håndskrevne/maskinskrevne)

Hjelpemidler: 4 A4-sider (2 to-sidige ark eller 4 en-sidige ark) med egenproduserte notater (håndskrevne/maskinskrevne) Informasjon om eksamen EKSAMEN Emnekode: ITF10213 Emnenavn: Innføring i programmering Dato: 05/12-2017 Eksamenstid: 09.00-13.00, 4 timer Hjelpemidler: 4 A4-sider (2 to-sidige ark eller 4 en-sidige ark)

Detaljer

Forelesning 14. Rekursjon og induksjon. Dag Normann februar Oppsummering. Oppsummering. Beregnbare funksjoner

Forelesning 14. Rekursjon og induksjon. Dag Normann februar Oppsummering. Oppsummering. Beregnbare funksjoner Forelesning 14 og induksjon Dag Normann - 27. februar 2008 Oppsummering Mandag repeterte vi en del om relasjoner, da spesielt om ekvivalensrelasjoner og partielle ordninger. Vi snakket videre om funksjoner.

Detaljer

INF1000 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 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

Detaljer

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen. Kuprat Skrevet av: Geir Arne Hjelle Kurs: Python Tema: Tekstbasert Fag: Norsk Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon I dette kurset skal vi introdusere programmeringsspråket Python. Dette

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00

Detaljer

Jentetreff INF1000 Debugging i Java

Jentetreff 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

Detaljer

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn BOKMÅL EKSAMENSFORSIDE Skriftlig eksamen med tilsyn Emnekode: 108 + 108N Dato: 19.12.201 Ansv. faglærer: Roy M. Istad Campus: Bø Antall oppgaver: 5 Tillatte hjelpemidler (jfr. emnebeskrivelse): Alt trykt

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Forelesning 14: Rekursjon og induksjon Dag Normann Matematisk Institutt, Universitetet i Oslo 27. februar 2008 Oppsummering Mandag repeterte vi en del om relasjoner, da spesielt

Detaljer

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004 Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004 13. september 2004 En viktig del av den første obligatoriske oppgaven er å få erfaring med hvordan Java håndterer tall. Til å begynne med kan dette

Detaljer

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

class 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

Detaljer

Eksamensoppgave i IFUD1025 Programmering i Java og IINI4013 Programmering i Java

Eksamensoppgave i IFUD1025 Programmering i Java og IINI4013 Programmering i Java Fakultet for teknologi Eksamensoppgave i IFUD1025 Programmering i Java og IINI4013 Programmering i Java Faglig kontakt under eksamen: Vuokko-Helena Caseiro Tlf.: +39 06 51 26 063 Eksamensdato: 30. november

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 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

Detaljer

Utførelse av programmer, metoder og synlighet av variabler i JSP

Utfø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

Detaljer

Verden. Steg 1: Vinduet. Introduksjon

Verden. Steg 1: Vinduet. Introduksjon Verden Introduksjon Processing Introduksjon Velkommen til verdensspillet! Her skal vi lage begynnelsen av et spill hvor man skal gjette hvilke verdensdeler som er hvor. Så kan du utvide oppgava til å heller

Detaljer

Verden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide

Verden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide Verden Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide Kurs: Processing Tema: Tekstbasert Fag: Matematikk, Programmering, Samfunnsfag Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Velkommen

Detaljer

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim Hvor gammel er du? Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim Kurs: Python Tema: Tekstbasert Fag: Programmering Klassetrinn: 5.-7. klasse, 8.-10. klasse Hvor gammel er du? I dette oppgavesettet

Detaljer

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015 Beskrivelse av programmeringsspråket Compila15 INF5110 - Kompilatorteknikk Våren 2015 Her beskrives syntaksen og den statiske semantikken (hva som skal sjekkes av kompilatoren) til språket Compila15. Den

Detaljer

AVANSERTE TING LEVETID, BRUKSOMRÅDE OG KONVERTERING...

AVANSERTE TING LEVETID, BRUKSOMRÅDE OG KONVERTERING... Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Variabler, konstanter og datatyper Svend Andreas Horgen Lærestoffet er utviklet for faget IINI1004 Programmering i Visual Basic Resymé: Denne

Detaljer

Pekere og referanser.

Pekere og referanser. lesson.md Pekere og referanser. Leksjonen gir en innføring i pekere og referanser, samt argumentoverføring. Skrevet av Mildrid Ljosland, Else Lervik og Ole Christian Eidheim. Eksemplene for denne leksjonen

Detaljer

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang Matematikk 1000 Øvingeoppgaver i numerikk leksjon 1 Å komme i gang I denne øvinga skal vi bli litt kjent med MATLAB. Vi skal ikkje gjøre noen avanserte ting i dette oppgavesettet bare få et visst innblikk

Detaljer

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale. Høgskolen i Telemark Fakultet for allmennvitenskapelige fag EKSAMEN I 6108/6108N PROGRAMMERING I JAVA 21. 12. 2015 Tid: 4 timer Sidetall: Hjelpemiddel: Merknader: Framside + 5 sider Alt trykt og skriftlig

Detaljer

Vektorer. Dagens tema. Deklarasjon. Bruk

Vektorer. Dagens tema. Deklarasjon. Bruk Dagens tema Dagens tema Deklarasjon Vektorer Vektorer (array-er) Tekster (string-er) Adresser og pekere Dynamisk allokering Alle programmeringsspråk har mulighet til å definere en såkalte vektor (også

Detaljer

Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {

Arv. 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

Detaljer

Oppsummering av Uke 3. MAT1030 Diskret matematikk. Binære tall. Oppsummering av Uke 3

Oppsummering av Uke 3. MAT1030 Diskret matematikk. Binære tall. Oppsummering av Uke 3 Oppsummering av Uke 3 MAT1030 Diskret matematikk Forelesning 3: Mer om representasjon av tall Dag Normann Matematisk Institutt, Universitetet i Oslo 21. januar 2008 Mandag 14.01 og delvis onsdag 16.01

Detaljer