Introduksjon Oversikt over syntaks Eksempler og avslutning. Regex i Perl. Knut Auvor Grythe. September 21, 2006

Størrelse: px
Begynne med side:

Download "Introduksjon Oversikt over syntaks Eksempler og avslutning. Regex i Perl. Knut Auvor Grythe. September 21, 2006"

Transkript

1 September 21, 2006

2 Litt om regex Praktisk bruk Hva er Regex? Forkortelse for Regular Expression (regulært uttrykk på norsk). En kjapp og grei måte å gjenkjenne enkle tekst-strukturer på. Velegnet for å gjenkjenne eller modisere tekst på et gitt format. Veldig kompakt syntaks, og dermed lite å skrive. Kan brukes i de este programmeringsspråk (men har ofte litt varierende syntaks)

3 Litt om regex Praktisk bruk Hvordan ser en regex ut? En regex er i utgangspunktet bare en tekststreng, der noen få av tegnene har en spesiell betydning. I en del språk (for eksempel Perl) skrives regexer med en skråstrek før og etter. Denne regexen gjenkjenner teksten banan: /banan/

4 Litt om regex Praktisk bruk Hva gjør den egentlig? En regex går gjennom teksten fra venstre til høyre, helt til den nner et tre. En regex er grådig. Om to ulike tre begynner på samme sted i teksten, vil den alltid ta det lengste. Hva som skjer når regexen matcher noe avhenger av hvordan den er brukt.

5 Litt om regex Praktisk bruk Bruksområder i Perl Tre vanlige bruksområder for regex i perl er matching, substitusjon og splitting. Det nnes også andre bruksområder, men da er det i praksis matching som utføres. Matching if ($var = /banan/) { do_stu(); } Substitusjon $var = s/banan/eple/; Splitting = split(/a/, banan);

6 Litt om regex Praktisk bruk Hvordan bruke andre tegn enn // Selv om det er standard å skrive regexen inni //, er det fullt lovlig å bruke andre tegn i stedet. Dette er kjekt om du skal matche et pattern med mange /-er i, og ikke har lyst til å escape alle sammen. For at Perl skal kjenne igjen matching må man skrive en m foran uttrykket, dersom man bruker noe annet enn //. Det er ganske vanlig å bruke komma eller kolon som tegn. Matching if ($var = m,banan,) { do_stu(); } Substitusjon $var = s,banan,eple,;

7 Litt om regex Praktisk bruk Modikatorer Modikatorer er ting du kan skrive bak uttrykket ditt for å få det til å oppføre seg litt annerledes. Vi konsentrerer oss om de to viktigste, /g og /i. Modikatorer brukes ved å plassere dem rett bak siste / i utrykket. Eksempler /abcd/i s/abcd/blarb/g s/abcd/blarb/ig et matche-uttrykk med /i. et substitusjons-uttrykk med /g. et substitusjons-uttrykk med både /g og /i.

8 Litt om regex Praktisk bruk Modikatorer - Hva de gjør Nå som vi vet hvordan vi slenger på en modikator kan vi kanskje få vite hva de gjør også :-) /i gjør at uttrykket ikke skiller på store og små bokstaver (case-insensitive). Litt tregere enn å bare skrive inn store og små bokstaver manuelt, siden den følger gjeldende locale, men neppe noe problem i praksis. /g brukes kun i substitusjon, og står for global. Vanligvis vil substitusjonen bare bytte ut første tre, men med denne vil den bytte ut alle tre.

9 Litt om regex Praktisk bruk Kommandolinje-testing av matche-uttrykk (grepping) Perl echo "vi liker bananer" perl -ne 'print if /banan/' Andre språk echo "vi liker bananer" grep 'banan' echo "vi liker bananer" sed -e '/banan/p' -e 'd' echo "vi liker bananer" awk '/banan/ {print}'

10 Litt om regex Praktisk bruk Kommandolinje-testing av substitusjons-uttrykk (sedding) Perl echo "vi liker bananer" perl -pe 's/banan/rosin/' Andre språk echo "vi liker bananer" sed 's/banan/rosin/' echo "vi liker bananer" awk '{sub(/banan/, "rosin"); print}'

11 Å matche en helt vanlig tekst-streng Om du skal matche en helt vanlig tekst-streng, kan du bare skrive den rett ut, som for eksempel /banan/ som vi har sett før. NB! Husk imidlertid at enkelte tegn har spesiell betydning, og disse må escapes om du vil ha selve tegnet. Et eksempel på dette er punktum, som kan matches med /\./. Den største forskjellen på de ulike regex-dialektene er hva som skal escapes. En del språk tolker alt som tekst, og bruker spesialbetydningen når du escaper i stedet. Hva andre språk gjør er imidlertid litt utenfor skopet til kurset.

12 Liste over magiske tegn(-sekvenser) \ Quote the next metacharacter. Match any character (except newline) * Match 0 or more times + Match 1 or more times? Match 1 or 0 times {n} Match exactly n times {n,} Match at least n times {n,m} Match at least n but not more than m times Match the beginning of the line $ Match the end of the line (or before newline at the end) Alternation () Grouping [] Character class

13 Tegnet. (punktum). (punktum) matcher et vilkårlig tegn. Eksempel /bl.pp/ matcher blipp, blapp, blupp og så videre. NB: Vilkårlige tegn innebærer også whitespace, men per default ikke linjeskift (kan endres med en modier vi snakker om senere).

14 Tegnet * (stjerne) * (stjerne) sier at forrige tegn skal matches 0 eller ere ganger. Eksempel 1 /bla*pp/ matcher blpp, blapp, blaapp, blaaapp og så videre. Eksempel 2 /bl.*pp/ matcher alt i Eksempel 1, samt f.eks. blupp, blåbærkopp, blå muggsopp og så videre.

15 Tegnet + (pluss) + (pluss) fungerer akkurat som * (stjerne), bortsett fra at det er 1 eller ere i stedet for 0 eller ere. Eksempel /bla+pp/ matcher blapp, blaapp, blaaapp og så videre, men ikke blpp (som /bla*pp/ ville matchet).

16 Tegnet? (spørsmålstegn)? (spørsmålstegn) sier at forrige tegn skal matches 0 eller 1 ganger. Eksempel /sk?/ matcher sk og s, og ingenting annet.

17 Tegnene { og } (krøllparenteser) { og } brukes for å gi et egendenert intervall over hvor mange ganger forrige tegn skal matches. Eksempler /{3}sk/ matcher iisk. /{2,3}sk/ matcher isk og iisk. /{2,}sk/ matcher isk, iisk, iiisk og så videre. NB! Første argument er ikke valgfritt! /{,3}sk/ matcher faktisk bare {,3}sk.

18 Sammenhengen mellom kvantikatorene) Tegn Krøllparentes-uttrykk * {0,} + {1,}? {0,1} Du kan med andre ord bruke kun { og } om du vil, men ingen gjør det i praksis.

19 Tegnet og $ (hatt og dollar) og $ matcher henholdsvis start of line og end of line. Det vil altså si endene på variablene. Dersom det siste tegnet i variabelen er et linjeskift, matcher den også rett før linjeskiftet. Eksempler / banan/ matcher banankompott, men ikke stor banan. /banan$/ matcher stor banan, men ikke banankompott. / banan$/ matcher kun banan eller banan\n.

20 Tegnet (pipe) (pipe) betyr eller, og er sikkert velkjent fra boolsk algebra. Det kan settes mellom to eller ere alternativer for match. Eksempel 1 /banan eple/ matcher både banan og eple (og strenger som inneholder en eller ere av dem av dem). Eksempel 2 /banan eple pære/ matcher det samme som Eksempel 1, pluss pære.

21 Tegnene ( og ) (parenteser) Parenteser brukes til å gruppere, mye på samme måten som vi er vant til fra boolsk algebra. De brukes også til litt annet småtteri, som vi skal se på snart. Eksempel / (banan sviske)kompott$/ matcher banankompott og sviskekompott.

22 Tegnene [ og ] (rkantparenteser) Firkantparenteser brukes når det er ere alternativer til et tegn. Tegnene skrives rett og slett etter hverandre inni rkantparentesene. Firkantparenteser er egentlig et kapittel for seg, og kommer mer utfyllende senere. Eksempel /bl[aui]pp/ matcher blapp, blupp eller blipp.

23 Mer om parenteser Som vi så for ikke så lenge siden, brukes parenteser til å gruppere ting med. Vi så eksempelet / (banan sviske)kompott$/, der parenteser brukes til å avgrense skopet til variable. Parenteser kan imidlertid også brukes til å hente ut en substreng av det som ble matchet, og det kan vi bruke til mye rart.

24 Variablene $1, $2, $3, etc. (1) Når et uttrykk med parenteser i matcher, blir innholdet i parentesene lagt i spesielle variable, kalt tilbakereferanser. Den første påbegynte parentesen blir lagt i $1, den neste i $2, og så videre. Merk at disse variablene må brukes med en gang, siden de forsvinner så fort du gjør en ny regex-matching lenger nede i koden. Ta en kopi!

25 Variablene $1, $2, $3, etc. (2) Dette eksempelet plasserer en i $a og to i $b dersom uttrykket matcher (og det gjør det). Eksempel my $var = "en to"; my $a; my $b; if ($var = /(.*) (.*)/) { $a = $1; $b = $2; }

26 Direkte uthenting av tilbakereferanser Om du kaller en matching i array-kontekst returneres alle tilbakereferansene som en array. Ulempen med denne metoden er at du må undersøke verdiene etterpå for å få vite om det matchet eller ikke, og det blir ikke like pent i mine øyne. Notasjonen er heller ikke så intuitiv, spør du meg. Jeg ser sjelden denne konstruksjonen i bruk i praksis. Eksempel my $var = "en to"; my ($a, $b) = $var = /(.*) (.*)/;

27 Bruk av tilbakereferanser i substitusjons-uttrykk Du kan også bruke $1 med venner i substitusjoner. Eksempel # Dette bytter om på en og to. my $var = en to; $var = s/(.*) (.*)/$2 $1/; PS: En del andre språk, som f.eks. sed og vim, bruker \1 i stedet for $1 og så videre.

28 Bruk av tilbakereferanser inne i selve patternet Om du vil, kan du også bruke tilbakereferanser til en tidligere del av patternet lenger ute i regexen. Dette kan for eksempel være kjekt om du skal matche en serie av like tegn, men det er mer enn ett alternativ for hvilket tegn det er. Når du gjør tilbakereferanser inne i selve patternet, må du bruke \1 i stedet for $1 og så videre. $1 og lignende vil ikke virke! De er nemlig ikke denert ennå. Eksempel: Fjerning av trippelkonsonanter my $var = busssjåfør; $var = s/(.)\1+/$1$1/g;

29 Viktig bruksområde: Tainting Tainted mode er en feature i Perl som tvinger deg til å sjekke inputen din til scripts. Det er et nyttig verktøy for å unngå lite kledelige sikkerhetshull i webapplikasjoner, for eksempel. Tainted mode virker slik at det eneste du får lov å bruke innleste (ergo potensielt skumle) variabler til, er å kjøre regex-matching på dem. Så kan du hente ut $1 med venner derfra, og bruke dem. Tainted mode slås på med opsjonen -T bak perl-programmet.

30 Hvordan gruppere uten at innholdet huskes Om du ønsker å bruke parenteser til gruppering, men ikke ønsker å bruke innholdet i parentesen etterpå, kan du bruke?: først i parentesen. Dette er spesielt nyttig i split(), men også greit om du har masse parenteser du vil huske, men så plutselig noen du ikke vil huske midt inni. Det sparer også bittelitt minne, men det er mindre viktig. Eksempel # returnerer (b, a, n, a, n, e, r) = split(/(a e)/, "bananer"); # returnerer (b, n, n, r) = split(/(?:a e)/, "bananer");

31 Et gjensyn med [ og ] For en stund siden snakket vi så vidt om [ og ], som brukes for å denere en klasse av tegn. De skal vi snakke litt mer om nå. La oss først huske at en serie med tegn i rkantparenteser betyr at vi matcher ett av tegnene i rkantparentesen en gang. Eksempel /[abc]/ matcher ett tegn, som kan være enten a, b eller c.

32 Matching av eksibelt antall tegn med tegnklasse Skal vi matche et annet antall tegn enn nøyaktig ett, må vi (som vanlig) bruke en kvantikator som f.eks. *, +,? eller {m,n}. Eksempel /[abc]+/ matcher ett eller ere tegn, som kan være enten a, b eller c.

33 Tegnsekvenser Siden det er litt tiltak å skrive tegnklasser som for eksempel [ ], [abcdef] og sånt, har man mulighet for å angi intervaller. Dette gjøres med bindestrek. Sekvens Tilsvarer [0-9] [ ] [a-f] [abcdef] [0-9a-f] [ abcdef] Eksempel / 0x[0-9a-fA-F]+$/ matcher et hexadecimalt tall, som for eksempel 0x1337babe.

34 Negasjon Av og til ønsker du å matche alt unntatt visse tegn, som for eksempel alt unntatt kolon. For å gjøre dette kan du bruke en negert tegnklasse. Dette gjøres ved å sette tegnet (hatt) fremst i tegnklassen. Det stemmer, hatt betyr noe helt annet inni en tegnklasse enn den betyr utenfor. Litt forvirrende i starten, men det går fort over. Eksempel / ([ :]*)/ matcher fra starten av strengen til første kolon (eller slutten av strengen, om det ikke nnes noe kolon i den) og legger resultatet i $1.

35 Escaping av spesielle tegn i tegnklasser Siden (hatt), - (bindestrek) og ] har spesiell betydning i en tegnklasse (] avslutter klassen), må man escape dem om man vil ha et bokstavelig tegn. Dette kan gjøres enten ved å escape dem med backslash, eller ved å plassere dem spesielle steder i tegnklassen. I praksis brukes ofte spesiell plassering, siden dette er vanlig i andre regex-implementasjoner. Tegn Plassering for å escape (hatt) Et annet sted enn fremst - (bindestrek) Helt bakerst eller helt fremst (bak eventuell hatt) ] Helt fremst (bak eventuell hatt)

36 Ferdigdenerte tegnklasser Perl har også en del ferdigdenerte tegnklasser. Disse kan brukes enten som byggestener i egendenerte tegnklasser, eller for seg selv. Eksemplene nedenfor benytter \w, som matcher tegn som kan være i ord (det vil si bokstaver, tall og _ (underscore)). Eksempler /(\w+)/ henter ut det første ordet og legger det i $1. /([\w-]+)/ gjør som forrige eksempel, men tillater bindestrek i ordet.

37 Liste over ferdigdenerte tegnklasser Dette er en liten oversikt over de mest brukte ferdigdenerte tegnklassene. Det nnes en del ere, men de er ikke like vanlige. Du nner dem i perldoc perlre. Klasse betydning \w Match a "word" character (alphanumeric plus _) \W Match a non-"word" character \s Match a whitespace character \S Match a non-whitespace character \d Match a digit character \D Match a non-digit character \b Match a word boundary

38 Eksempler Avslutning Eksempel: Strippe HTML Dette eksempelet har dere sikkert sett før, på plakaten til kurset. Nå har dere sikkert lært nok til å se hva den gjør også! Merk at om du leser inn en linje om gangen vil ikke denne koden støtte html-tags som går over ere linjer. Vi ser at uttrykket matcher en <, så innholdet i tagen (ett eller ere tegn som ikke er >, og så til slutt >. Substitusjonen er også global, så alle treene blir erstattet med en tom streng. Eksempel s/<[ >]+>//g

39 Eksempler Avslutning Eksempel: Hente ut linker fra HTML Om du vil hente ut alle linkene i et HTML-dokument, kan du for eksempel matche på det som er i hermetegn bak href=. \s* er med her og der fordi det er valgfritt med mellomrom der. Eksempel /href\s*=\s*([ ]+)/i I praktisk bruk perl -ne 'print $1\n if /href\s*=\s*([ ]+)/i' l.html

40 Eksempler Avslutning Eksempel: Hente ut ere linker per linje fra HTML Eksempelet på forrige slide hadde en begrensning: Det støttet bare en link per linje. Det er sikkert fullt mulig å lage en regex som støtter å ske ut ere, og legge dem i $1, $2 og så videre, men det blir bare tungvint og ekkelt. I stedet kan vi enten modisere input-dataene (f.eks. legge inn linjeskift mellom alle HTML-tags) eller kjøre ere matchinger per linje. Vi satser på å gjøre ere matchinger per linje. Her har vi samme regex som i stad, men substituerer bort patternet i stedet for å matche det. Slik holder vi på til det ikke er mer som matcher. Eksempel perl -ne 'print $1\n while s/href\s*=\s*([ ]+)//i' l.htm

41 Eksempler Avslutning Eksempel: Matche primtall Følgende kode matcher et primtall. Den er vel kanskje ikke kjempe-intuitiv, men virker for små primtall. For store primtall går den kjapt tom for minne og tryner. Dette er for øvrig omtrent tregest tenkelige måte å regne ut om noe er primtall eller ikke, så den bør kun brukes som kuriositet ;-) Den fungerer ved at man først matcher to eller ere tegn, før man matcher denne sekvensen to eller ere ganger. I praksis bruteforcer man altså om tallet er delelig med noe. Eksempel perl -e '(1x$ARGV[0]) = / (..+?)\1+$/ print prime\n'

42 Eksempler Avslutning Generelle triks Når du skriver en regex er det noen få triks som gjerne sparer deg for en del hodebry: Gjør den enkel først, legg på særtilfeller etter hvert. Test at den gjør det du vil underveis. Det er fort gjort å snike inn en skrivefeil som ødelegger alt. Om regexen blir kjempediger og fæl, stopp og tenk på hvorvidt dette egentlig var rett verktøy å bruke. Kanskje du bør lage en skikkelig parser i stedet? Av og til kan det være kjekt å først matche på et grovt pattern, hente ut det som er interessant, og så matche videre med en ny regex.

43 Eksempler Avslutning Hva er Regex IKKE bra til? Nå som vi har sett at regex gjør det mulig å gjøre masse ott, er det kanskje en plan å se litt på hva det ikke passer så bra til. Regex støtter ikke rekursjon. Dette gjør det håpløst å matche f.eks. HTML skikkelig, siden vi ikke kan holde styr på start- og slutt-tager. Om teksten er litt komplisert er det ofte vel så greit å skrive en skikkelig parser, i stedet for en supergrisete regex. Regex er ikke veldig maintainable, spesielt ikke om du overdriver.

44 Eksempler Avslutning Hvordan lære mer? Om du vil lære mer, er det selvsagt et triks å bruke regex en del. Selv bruker jeg bortimot daglig regex til et eller annet, som regel i forbindelse med små onelinere jeg bruker for å massere tekst. Jeg bruker det også mye for å gjøre søk og erstatt i vim (jeg har brukt en del regexer i vim mens jeg skrev disse foilene). Om du vil lese mer, er kommandoen perldoc perlre veldig n. O'Reilly har også noen bøker jeg tror er bra, og et par av dem ligger sikkert på PVV. Har man et obskurt problem er det også ofte hjelp å få på IRC, eventuelt på mailinglister med nerder på (som f.eks. aktive@pvv.ntnu.no).

Linux-programmer som bruker regulæruttrykk: grep, sed, awk

Linux-programmer som bruker regulæruttrykk: grep, sed, awk Linux-programmer som bruker regulæruttrykk: grep, sed, awk grep * søking i tekstlige data grep [OPTIONS] REGEX [FILE...] Verktøy som finnes i alle Unix-lignende OS Leser en eller flere tekstfiler, eller

Detaljer

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Løkker TDT4110 IT Grunnkurs Professor Guttorm Sindre Denne uka Vi trenger å Støttes av Hente data fra bruker Vise data til bruker Lagre data i minnet for bruk videre i programmet Fra tastatur:

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

Argumenter fra kommandolinjen

Argumenter fra kommandolinjen Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene

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

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

Sprettball Erfaren ComputerCraft PDF

Sprettball Erfaren ComputerCraft PDF Sprettball Erfaren ComputerCraft PDF Introduksjon Nå skal vi lære hvordan vi kan koble en skjerm til datamaskinen. Med en ekstra skjerm kan vi bruke datamaskinen til å kommunisere med verden rundt oss.

Detaljer

Robotinvasjon Introduksjon ComputerCraft PDF

Robotinvasjon Introduksjon ComputerCraft PDF Robotinvasjon Introduksjon ComputerCraft PDF Introduksjon Vi har sett enkle datamaskiner. Nå skal vi leke oss med roboter, og finne ut hvordan vi kan få dem til å gjøre forskjellige ting for oss. Steg

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 2 Læringsmål Mål Introduksjon til filer (som inndata og utdata) Å bruke

Detaljer

Norsk informatikkolympiade runde

Norsk informatikkolympiade runde Norsk informatikkolympiade 2016 2017 1. runde Sponset av Uke 46, 2016 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.

Detaljer

Regulæruttrykk for søking i tekst

Regulæruttrykk for søking i tekst Regulæruttrykk Regulæruttrykk for søking i tekst Aka. regex(p) / regular expressions Beskriver et søkemønster : Kan angi teksten vi søker etter eksplisitt : Jan Kan bruke metategn* til å angi variasjon:

Detaljer

Shellscripting I. Innhold

Shellscripting I. Innhold Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Shellscripting I Tor Halsan 19.08.2010 Lærestoffet er utviklet for faget LN199D Scripting av Servere Resymé: Leksjonen er første innføring

Detaljer

LISP PVV-kurs 25. oktober 2012

LISP PVV-kurs 25. oktober 2012 LISP PVV-kurs 25. oktober 2012 Hva er Lisp? Grunnleggende konsepter Variabler (Pause) Lister Løkker Funksjoner Oversikt over kurset Først: Få tak i en implementasjon av Common Lisp Mange implementasjoner

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

ToPlayer. Steg 1: Kom i gang med metodene setup og draw. Gjør dette: Introduksjon:

ToPlayer. Steg 1: Kom i gang med metodene setup og draw. Gjør dette: Introduksjon: ToPlayer Introduksjon Processing Introduksjon: Nå skal vi lage et spill som to personer kan spille mot hverandre. Vi har kalt det ToPlayer, men du kan kalle det hva du vil. Målet er å dytte en figur, eller

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

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

ToPlayer. Introduksjon: Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide ToPlayer Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide Kurs: Processing Tema: Tekstbasert Fag: Matematikk, Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon: Nå skal vi

Detaljer

Høst 2014. Øving 5. 1 Teori. 2 Månedskalender. Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap

Høst 2014. Øving 5. 1 Teori. 2 Månedskalender. Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4105 IT Grunnkurs Høst 2014 Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Øving 5 1 Teori a) Hva er den binære ASCII-verdien av bokstaven E (stor e)?

Detaljer

Mer om mengder: Tillegg til Kapittel 1. 1 Regneregler for Booleske operasjoner

Mer om mengder: Tillegg til Kapittel 1. 1 Regneregler for Booleske operasjoner MAT1140, H-16 Mer om mengder: Tillegg til Kapittel 1 Vi trenger å vite litt mer om mengder enn det som omtales i første kapittel av læreboken. I dette tillegget skal vi først se på regneregler for Booleske

Detaljer

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities. Oversikt UNIX shell 1 UNIX shell Beskrivelse Bash 2 Kommandolinje som brukergrensesnitt 3 Input og output 4 Bash builtins 5 Linux utilities Lars Vidar Magnusson () Forelesning i Operativsystemer 30.08.2011

Detaljer

Matematisk induksjon

Matematisk induksjon Matematisk induksjon 1 Innledning Dette er et nytt forsøk på å forklare induksjon. Strategien min i forelesning var å prøve å unngå å få det til å se ut som magi, ved å forklare prinsippet fort ved hjelp

Detaljer

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad. EKSAMEN Emnekode: Emne: ITM20606 Webprogrammering med PHP Dato: Eksamenstid: 11/12-2007 09.00-13.00 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne) Faglærer: Tom

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

Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed).

Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed). Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/2-2008 Legger ut en oppgave til kap. 4 (se beskjed). tein Krogdahl Ifi, UiO Merk: Av de foilene som ble delt ut på papir på

Detaljer

Kap. 4: Ovenfra-ned (top-down) parsering

Kap. 4: Ovenfra-ned (top-down) parsering Kap. 4: Ovenfra-ned (top-down) parsering Dette bør leses om igjen etter kapittelet: First og Follow-mengder Boka tar det et stykke uti kap 4, vi tok det først (forrige foilbunke) LL(1)-parsering og boka

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 10 Frist: 2014-04-11 Mål for denne øvinga:

Detaljer

Mattespill Nybegynner Python PDF

Mattespill Nybegynner Python PDF Mattespill Nybegynner Python PDF Introduksjon I denne leksjonen vil vi se litt nærmere på hvordan Python jobber med tall, og vi vil lage et enkelt mattespill. Vi vil også se hvordan vi kan gjøre ting tilfeldige.

Detaljer

NIO 1. runde eksempeloppgaver

NIO 1. runde eksempeloppgaver NIO 1. runde eksempeloppgaver Oppgave 1 (dersom du ikke klarer en oppgave, bare gå videre vanskelighetsgraden er varierende) Hva må til for at hele det følgende uttrykket skal bli sant? NOT(a OR (b AND

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

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

Matematikk Ø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

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

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110) Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med

Detaljer

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110) Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med

Detaljer

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2016

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2016 Norsk informatikkolympiade 2016 2017 1. runde Sponset av Uke 46, 2016 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.

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

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

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

AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1

AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1 AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1 Ole Kristian Pedersen, Høst 2016 Agenda Introduksjon til Python for begynnere Intro til øving 1 Litt om lenkede lister Øvingssystemet

Detaljer

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF Introduksjon Vi begynner med å bygge en enkel datamaskin. Etter å ha brukt litt tid på å bli kjent med hvordan datamaskinen virker, bruker vi den

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

INF INF1820. Arne Skjærholt. Terza lezione INF1820. Arne Skjærholt. Terza lezione

INF INF1820. Arne Skjærholt. Terza lezione INF1820. Arne Skjærholt. Terza lezione Arne Skjærholt Terza lezione Arne Skjærholt Terza lezione Regulære uttrykk Regex Regulære uttrykk (regular expressions) er et godt eksempel på det som kalles finite-state methods (hvorfor det heter det

Detaljer

MAT1030 Plenumsregning 1

MAT1030 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

Detaljer

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker 29. januar 2013 Stein Krogdahl, Ifi, UiO NB: Ikke undervisning fredag 1. februar! Oppgaver som gjennomgås 5. februar

Detaljer

Steg 1: Regneoperasjoner på en klokke

Steg 1: Regneoperasjoner på en klokke Diffie-Hellman nøkkelutveksling Skrevet av: Martin Strand Kurs: Python Tema: Tekstbasert, Kryptografi Fag: Matematikk, Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Du har tidligere

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

Kodetime for Nordstrand barneskole

Kodetime for Nordstrand barneskole Kodetime for Nordstrand barneskole av Veronika Heimsbakk og Lars Erik Realfsen 1 Hva er Processing? Processing er et programmeringsspråk som er gratis, og tilgjengelig for alle! Man kan programmere i Processing

Detaljer

INF120: Oblig 3. Yngve Mardal Moe

INF120: Oblig 3. Yngve Mardal Moe Yngve Mardal Moe Mar 28, 2019 Contents 1 Hva trenger dere for denne oppgaven 3 2 Hvordan skal dere arbeide med denne oppgaven 5 3 En søkeindeks 7 4 Å slå opp i en søkeindeks 9 5 Å utvide en søkeindeks

Detaljer

Løkker og arrayer. Løse problemer med programmering. INF1000, uke3 Geir Kjetil Sandve

Løkker og arrayer. Løse problemer med programmering. INF1000, uke3 Geir Kjetil Sandve Løkker og arrayer Løse problemer med programmering INF1000, uke3 Geir Kjetil Sandve Hva vi har lært så langt Variabler og uttrykk Beslutninger Kontrollflyt og feilmeldinger Metoder og parametre Fokus i

Detaljer

Lynkurs i shellprogrammering under Linux

Lynkurs i shellprogrammering under Linux Lynkurs i shellprogrammering under Linux Interaktiv bruk av shell Shell/skall er en applikasjon som lar bruker taste inn tekstlige kommandoer til Linux en og en linje om gangen (leser linjer fra stdin).

Detaljer

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

Plenumsregning 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

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

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

MAT1030 Diskret Matematikk

MAT1030 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

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

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

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

4 Matriser TMA4110 høsten 2018

4 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

Detaljer

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv Bygg et Hus Introduksjon I denne leksjonen vil vi se litt på hvordan vi kan få en robot til å bygge et hus for oss. Underveis vil vi lære hvordan vi kan bruke løkker og funksjoner for å gjenta ting som

Detaljer

Håndtering av tekstfiler

Håndtering av tekstfiler Håndtering av tekstfiler Tekstlige data og Linux Linux er i stor grad et tekstbasert OS Har svært mange og gode verktøy (filterprogrammer) som leser tekst fra STDIN eller filer, og skriver tekstlig output

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

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

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen Kanter, kanter, mange mangekanter Skrevet av: Sigmund Hansen Kurs: Processing Tema: Tekstbasert, Animasjon Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole

Detaljer

Operativsystemer og nettverk

Operativsystemer og nettverk Løsningsforslag til eksamen i Operativsystemer og nettverk 04.06.2015 Oppgave 1: Generelt om Linux a) Det grunnleggende brukergrensesnittet i Linux er et tastaturbasert CUI (Commandline User Interface),

Detaljer

Longest. increasing. subsequence. Betingelser. Matrise- common. Grådig vs. DP. Forside. Intro. Fibonacci-tall. Memoisering DP

Longest. increasing. subsequence. Betingelser. Matrise- common. Grådig vs. DP. Forside. Intro. Fibonacci-tall. Memoisering DP og dynamisk Matrisemultiplikasjomultiplikasjon programmering Matrise- Åsmund Eldhuset og Dette er to ganske like teknikker for å lage algoritmer De kan brukes på svært mange tilsynelatende forskjellige

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

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

Vi har sett enkle datamaskiner. Nå skal vi leke oss med roboter, og finne ut hvordan vi kan få dem til å gjøre forskjellige ting for oss.

Vi har sett enkle datamaskiner. Nå skal vi leke oss med roboter, og finne ut hvordan vi kan få dem til å gjøre forskjellige ting for oss. Robotinvasjon Skrevet av: Geir Arne Hjelle Kurs: Computercraft Tema: Tekstbasert, Minecraft Fag: Programmering, Teknologi Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregående skole Introduksjon Vi har

Detaljer

Hash-funksjoner. Introduksjon. Steg 1: Strekkoder. Eksempel. Skrevet av: Martin Strand

Hash-funksjoner. Introduksjon. Steg 1: Strekkoder. Eksempel. Skrevet av: Martin Strand Hash-funksjoner Skrevet av: Martin Strand Kurs: Python Tema: Tekstbasert, Kryptografi Fag: Matematikk, Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Tidligere har vi sett hvordan

Detaljer

Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2)

Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Dagens tema Syntaks (kapittel 2.1 + Komp. 47, kap. 1 og 2) 1/19 Forelesning 6 1.10.2003 Litt om kompilering og interpretering En kompilator oversetter et program til et annet språk, for eksempel maskinspråk.

Detaljer

Løse reelle problemer

Lø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)

Detaljer

Enkle generiske klasser i Java

Enkle generiske klasser i Java Enkle generiske klasser i Java Oslo, 7/1-13 Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Del 1: Enkle pekere Før vi tar fatt på det som er nytt i dette notatet, skal vi repetere litt

Detaljer

Norsk informatikkolympiade 2014 2015 1. runde

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

Detaljer

Litt om kompilering og interpretering. Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Syntaks og semantikk

Litt om kompilering og interpretering. Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Syntaks og semantikk Litt om kompilering og interpretering Dagens tema Syntaks (kapittel 2. + Komp. 47, kap. og 2) En kompilator oversetter et program til et annet språk, for eksempel maskinspråk. Et program interpreteres

Detaljer

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python I disse oppgavene skal vi introdusere Python, og vise hvordan vi kan jobbe med tekst i Python. Vi skal se på hva et programmeringsspråk

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

INF5110, onsdag 19. februar, Dagens tema: Parsering ovenfra-ned (top-down)

INF5110, onsdag 19. februar, Dagens tema: Parsering ovenfra-ned (top-down) INF5110, onsdag 19. februar, 2014 Dagens tema: Kapittel 4 Parsering ovenfra-ned (top-down) Vi har med alle foilene til kap. 4 her, også de som ble gjennomgått mot slutten av forelesning 7. februar Pensum

Detaljer

Bygg et Hus. Introduksjon. Steg 1: Prøv selv først. Skrevet av: Geir Arne Hjelle

Bygg et Hus. Introduksjon. Steg 1: Prøv selv først. Skrevet av: Geir Arne Hjelle Bygg et Hus Skrevet av: Geir Arne Hjelle Kurs: Computercraft Tema: Tekstbasert, Minecraft Fag: Programmering, Teknologi Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregåe skole Introduksjon I denne leksjonen

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN 110 Algoritmer og datastrukturer Eksamensdag: 14. mai 1996 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.

Detaljer

Uendelig bakke. Introduksjon. Skrevet av: Kine Gjerstad Eide

Uendelig 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

Detaljer

Et forsøk på definisjon. Eksempel 1

Et forsøk på definisjon. Eksempel 1 Et forsøk på definisjon [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michael.preminger@hioa.no) 19/08-15 Engelsklignende språk, med rigid syntaks, som kan brukes til å skrive instruksjoner

Detaljer

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

Matematikk Ø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

Detaljer

Oppgavesett for Python

Oppgavesett for Python Oppgavesett for Python Petter Mæhlum Januar 2019 1 List comprehension Dette er ment som en rask innføring i list comprehension, med tilhørende oppgaver. List comprehension er en spesiell type syntaks i

Detaljer

INF5110 V2012 Kapittel 4: Parsering ovenfra-ned

INF5110 V2012 Kapittel 4: Parsering ovenfra-ned INF5110 V2012 Kapittel 4: Parsering ovenfra-ned (top-down) Tirsdag 7. februar Stein Krogdahl, Ifi, UiO Oppgaver som gjennomgås i morgen, onsdag: -Spørsmålene på de to siste foilene fra onsdag 1/2 (Bl.a.

Detaljer

Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF / Stein Krogdahl Ifi, UiO

Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF / Stein Krogdahl Ifi, UiO Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF5110 8/2-2013 tein Krogdahl Ifi, UiO 1 Bottom up parsering (nedenfra-og-opp) Tokenklasser + ikketerminaler B B Tilstander Tabell for LR-parsering

Detaljer

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Intro til funksjoner TDT4110 IT Grunnkurs Professor Guttorm Sindre Snart referansegruppemøte Viktig mulighet for å gi tilbakemelding på emnet Pensumbøker Forelesninger Øvingsforelesninger Veiledning

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

PGZ - Hangman Ekspert Python Lærerveiledning

PGZ - Hangman Ekspert Python Lærerveiledning PGZ - Hangman Ekspert Python Lærerveiledning Introduksjon I denne oppgaven skal vi lage vårt eget hangman-spill. Vi har laget litt ferdigskrevet kode for å hjelpe deg på vei. Den kan du laste ned her.

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

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2015

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

Detaljer

Syntax/semantics - I INF 3110/ /29/2005 1

Syntax/semantics - I INF 3110/ /29/2005 1 Syntax/semantics - I Program program execution Compiling/interpretation Syntax Classes of langauges Regular langauges Context-free langauges Scanning/Parsing Meta models INF 3/4-25 8/29/25 Program

Detaljer

IN1000 Obligatorisk innlevering 7

IN1000 Obligatorisk innlevering 7 IN1000 Obligatorisk innlevering 7 Frist for innlevering: 23.10. kl 12:00 Introduksjon I denne innleveringen skal du lage et program som simulerer cellers liv og død. Dette skal du gjøre ved hjelp av en

Detaljer

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

Matematikk Ø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

Detaljer

IN1140 Ekstraoppgaver uke 3

IN1140 Ekstraoppgaver uke 3 IN1140 Ekstraoppgaver uke 3 Sist oppdatert 05.09.2019 0 Intro Disse oppgavene er ment som et ekstratilbud for de som vil bli bedre kjent med noe av python-innholdet som brukes i kurset. De er ikke obligatoriske.

Detaljer

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

Detaljer

Oppgave 1 - Linux kommandolinje (%)

Oppgave 1 - Linux kommandolinje (%) Løsningsforslag Eksamen høst 2017 Operativsystemer Oppgave 1 - Linux kommandolinje (%) a) pwd b) ps Oppgave 2 - Bash-scripting (%) a) ping -i 5 www.hin.no b) ping -c 1 www.hin.no ping -c 1 -t 1 www.hin.no

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

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

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

Oversikt. INF5110 Obligatorisk Oppgave 1. Andreas Svendsen SINTEF

Oversikt. INF5110 Obligatorisk Oppgave 1. Andreas Svendsen SINTEF INF5110 Obligatorisk Oppgave 1 Andreas Svendsen SINTEF 19. Februar 2009 1 Oversikt Om meg Praktisk informasjon Oppgaven Språket (D-flat) Terminaler Metasymboler Grammatikken JFlex CUP Oppsummering Neste

Detaljer

Skanning del I. Kapittel 2 INF 3110/ INF

Skanning del I. Kapittel 2 INF 3110/ INF Skanning del I Kapittel 2 18.01.2013 1 Skanning: innhold (begge forelesningene) Hva gjør en skanner? Input: programteksten. Output: Ett og ett token fra programteksten (sekvensielt). Regulære uttrykk/definisjoner.

Detaljer