Reguljära uttryck. Kapitel Reguljära uttryck. 8.2 Metatecken Ett tecken:. []

Storlek: px
Starta visningen från sidan:

Download "Reguljära uttryck. Kapitel Reguljära uttryck. 8.2 Metatecken Ett tecken:. []"

Transkript

1 Kapitel 8 Reguljära uttryck I kapitel 6 togs reguljära uttryck upp som argument till grep. I detta kapitel lär vi oss mer om sådana och om några andra sammanhang där de används. 8.1 Reguljära uttryck På engelska heter det regular expression vilket ibland kortas till bara regexp eller regex. Även på svenska talar man ofta om regexpar. Ett reguljärt uttryck är ett mönster som beskriver en mängd strängar. T. ex. kan det reguljära uttrycket [Dd]at(a or)lingvistik beskriva strängarna»datalingvistik«,»datorlingvistik«,»datalingvistik«och»datorlingvistik«, men inga andra strängar. Detta reguljära uttryck matchar dessa fyra strängar (och dessa fyra strängar matchar detta reguljära uttryck). I detta exempel har tydligen inte bara hakparenteser speciell betydelse som ni sett tidigare, utan även lodstreck och vanliga parenteser. 8.2 Metatecken De tecken som har speciell betydelse i reguljära tecken kallas för metatecken. Det finns olika varianter av reguljära uttryck med lite olika uppsättningar metatecken. I kapitel 6 togs några upp. Med Errata: I uppgift 6.35, punkt c (s. 79) står cat fil.txt tr. Det skulle vara cat fil.txt tr \t. (Jag skrev felaktigt cat fil.txt tr '\t' ' ' i LaTeX och använde därmed LaTeX-kommandot \t på ett oönskat sätt.) så kallade utökade reguljära uttryck (extended regular expressions) finns det fler allt som allt följande fjorton:. * +? ^ $ ( ) [ ] { } \ och det är reguljära uttryck med dessa som beskrivs nedan Ett tecken:. []. = ett godtyckligt tecken [abc] = något av tecknen a, b eller c [^abc] = ett tecken som inte är a, b eller c Inom hakparenteser kan - användas för intervall. De flesta tecken som är speciella annars i regexpar är inte speciella inom []. T. ex. matchar [9*+] en nia, en asterisk eller ett plustecken. Dessutom kan man inom [] stoppa in en beteckning för en hel klass tecken, som betyder t. ex.»en bokstav«eller»ett skiljetecken«. Dessa teckenklasser har namn som börjar med [: och slutar med :], t. ex. [:lower:] för en gemen bokstav. Tabell 8.1 visar några av dessa. Traditionellt har man skrivit t. ex. [A-Z] för att få en versal, och detta (och [a-z] och [A-Za-z]) kan man se på många håll i exempel på reguljära uttryck. Det är dock säkrare att använda namngivna klasser. Då ska man få man med alla bokstäver, även t. ex. åäö. Vilka tecken som ingår i dessa olika klasser beror på vad ens locale säger om teckenkodning. Så länge filer stämmer med ens normala locale så fungerar det bra. Om man använder en teckenkodning med grekiska tecken så omfattar [:alpha:] t. ex. förstås dessa också. Även [:digit:] kan omfatta fler tecken än bara [0-9]. 83

2 8. REGULJÄRA UTTRYCK Tabell 8.1: Några namngivna teckenklasser. Betydelserna är inte helt strikta här, utan kan variera med olika locale. Namn [:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:upper:] Betydelse Alfanumeriska: [:alpha:] + [:digit:] Bokstäver: [:lower:] + [:upper:] Blanka tecken (mellanrum och TAB) Kontrolltecken Siffror Grafiska: [:alnum:] + [:punct:] Gemena (små) bokstäver Skrivbara: [:graph:] + mellanrum Interpunktion Versala (STORA) bokstäver Observera att hakparenteserna ingår i namnet på dessa teckenklasser! Det gör att det blir dubbla hakparenteser i de reguljära uttrycken. Om man byter ut A-Z mot [:upper:] så betyder det att ett reguljärt uttryck som [A-Z] istället blir [[:upper:]], medan [^A-Z] blir [^[:upper:]], och uttrycket [z[:punct:] ] betyder ett z eller ett interpunktionstecken eller ett mellanslag Repetitioner: + *? {} Med + efter något kan man säga att detta något ska förekomma en eller flera gånger. Det reguljära uttrycket bä+ matchar därmed strängarna»bä«,»bää«,»bäää«,»bääää«, osv., hur långt som helst. Observera att det bara är ä som repeteras. Detta reguljära uttryck matchar t. ex. inte»bäbäbä«. Asterisken * fungerar ungefär likadant, men tilllåter även att den»repeterade«delen inte är med någon gång alls. Så bä* matchar samma texter som bä+, men dessutom»b«. Med? efter något anger man ett det är frivilligt, dvs. det kan vara med (en gång) eller inte. Så bä? matchar»b«och»bä«och inget annat. Med {n} efter något kan man säga att detta något ska förekomma n gånger. Så [sz]{3} matchar samma som [sz][sz][sz], dvs.»sss«,»ssz«,»szs«,»szz«,»zss«,»zsz«,»zzs«och»zzz«. Med {n,m} ska det vara minst n och högst m förekomster, så br{2,5} matchar»brr«,»brrr«,»brrrr«och»brrrrr«, och inget annat. Maxantalet m kan utelämnas, och 8{3,} betyder minst tre åttor, dvs.»888«eller»8888«eller»88888«eller... (Hur många som helst.) Om inte det som står före det som visar repetition är något inom [] eller () (som vi kommer till snart!) så är det ett ensamt tecken som repeteras. Så hej?hopp matchar»hejhopp«eller»hej hopp« Alternativ: Med lodstreck ( ) visar man alternativ. Så vit svart grå matchar»vit«eller»svart«eller»grå«och foo bar? matchar»foo«eller»bar«eller»ba«(eftersom alternativet efter lodstrecket hade två varianter, med eller utan r). Glöm inte att hakparenteser kan användas om alla alternativ består av ett tecken, så istället för a e i o u är det enklare att skriva [aeiou] Parenteser: ( ) Med parenteser kan man föra samman ett större uttryck. Så med en (grå liten stor) katt matchar man»en grå liten katt«eller»en stor katt«. Utan parenteser skulle det bli allt före eller efter lodstrecket. Parenteser är också användbara för att hålla ihop något som ska repeteras. Det gör t. ex. att (br){2,5} matchar»brbr«,»brbrbr«,»brbrbrbr«och»brbrbrbrbr«. Fler exempel: en (grön blå)+ kavaj matchar t. ex.»en grön kavaj«eller»en blågrön kavaj«eller»en gröngrön kavaj«eller»en blåblågrönblågrön kavaj«. mo(no)+ton matchar»monoton«,»mononoton«,»monononoton«, osv. ([ptkbdg][aeiou]){3} matchar trestaviga ord där varje stavelse består av en klusil + någon av de angivna vokalerna, t. ex. bikupa, pitebo eller tekaka. (Eller för den delen icke-ord som pubogi.) Ankring: ^ $ Metatecknen ^ och $ betyder början av raden respektive slutet av raden. Så med t. ex. ^xyz hittar man rader som börjar med xyz (radbörjan följt av»xyz«) och med [[:blank:]]$ hittar man rader som slutar med något blankt tecken. Dessa båda tecken matchar alltså inget tecken alls på egen hand, utan ställer bara krav på var det övriga i uttrycket ska befinna sig. Man säger att dessa ankrar ett reguljärt uttryck. 84

3 8.5. Girighet och hunger Bakstreck: \ Bakstrecket betyder nånting tillsammans med det tecken som följer direkt efter det. I synnerhet kan man sätta ett metatecken efter bakstreck när man verkligen vill söka efter det tecknet. Så för att söka efter t. ex. en siffra inom parenteser, som t. ex.»(3)«kan man använda det reguljära uttrycket \([0-9]\) med bakstreck för att visa att det verkligen ska vara med parenteser i texten. I övrigt används bakstreck följt av annat tecken för lite olika funktioner. En användbar är \w där»w«står för»word«. Det är synonymt med [[:alnum:]], dvs. ett alfanumeriskt tecken, men kortare att skriva. Så a\wa matchar t. ex.»axa«och»a7a«, men inte»a!a«. Med \< respektive \> matchar man en ordbörjan respektive ett ordslut. Liksom ^ och $ så matchar detta inte någon text i sig självt, men ger ett krav på var det som står runtomkring ska finnas. Så med \<anti hittar man»anti«som står i början av ett ord (t. ex.»anti«i»antites«eller»antilop«men inte i»fantisera«) och med \<\w\w\> hittar man ett ord med exakt två bokstäver. 8.3 Exempel Här är några ytterligare exempel på reguljära uttryck. [a-h][1-8] en ruta på ett schackbräde, som»e2«eller»b4«. [0-9]*[02468] en sekvens med siffror som slutar med en jämn siffra (fjor fem sex sjut ar nit)ton tjugo något av orden fr. o. m.»fjorton«t. o. m.»tjugo«(..)* ett jämnt antal tecken, vilka som helst \<pre\w*ing\> ett ord som börjar med»pre«och slutar med»ing«. ^[^ ].* $ en rad som inte börjar med mellanslag men som slutar med mellanslag. uttryck, där tecknen +? ( ) { } inte har någon särskild betydelse, utan betyder sig själva. (En del program som använder reguljära uttryck har dessutom sina egna utökningar av dem. Det har t. ex. Emacs och programspråket Perl. Flera utökningar som har gjorts för Perl har plockats över till andra sammanhang också, t. ex. programspråken Java och Python.) Reguljära uttryck i Emacs Det finns flera kommandon i Emacs som använder reguljära uttryck. Vid sidan av C-s och C-r som söker framåt respektive bakåt efter en textsträng så finns även C-M-s och C-M-r som söker framåt respektive bakåt efter ett reguljärt uttryck. (Här ska alltså både Control och Meta användas tillsammans.) M-x list-matching-lines är ett kommando som listar alla rader i aktuell buffert som innehåller något som matchar ett reguljärt uttryck. Det är alltså lite som en grep inne i Emacs. Man kan också köra riktiga grep från Emacs med M-x grep för att få resultatet i en Emacsbuffert. Reguljära uttryck används även i olika hjälpsystem. När man använder C-h a för att ta fram hjälp apropå något i Emacs så lyder t. ex. ledtexten»apropos command (word list or regexp)«. De reguljära uttrycken i Emacs är ungefär som enkla reguljära uttryck, men även plustecknet är ett metatecken. 8.5 Girighet och hunger Ett sådant uttryck som [1-9]0+ matchar ju en siffra 1 9 följt av en eller flera nollor, t. ex.»10«eller»30000«. $ echo 'Timmy 2000' grep -Eo '[1-9]0+' Olika sorters reguljära uttryck Reguljära uttryck används inte bara av grep utan dyker upp i flera sammanhang. Av historiska skäl används dock tyvärr flera olika varianter av reguljära uttryck. För att få grep att använda utökade reguljära uttryck använder man väljaren -E (som i Extended). Annars används enkla (basic) reguljära I exemplet ovan ser vi hur uttrycket matchade»2000«. Men det skulle ju också kunna ha matchat bara»200«eller»20«. Ändå är det just matchningen»2000«som vi fick fram. Vid matchningen väljs nämligen den längsta av flera möjligheter som börjar på samma plats. Man säger att operatorn + här 85

4 8. REGULJÄRA UTTRYCK är girig eller hungrig (greedy på engelska) vilket innebär att den»vill«matcha så mycket som möjligt. Samma gäller de andra repetitionsoperatorerna vi har tagit upp. Detta behöver man tänka på ibland, i synnerhet med.* eller.+ som lätt kan matcha mer än man egentligen hade tänkt sig. Om man t. ex. vill söka efter citat inom citattecken kan det ligga nära till hands att använda ett reguljärt uttryck ".*" för att visa att det ska börja och sluta med " och däremellan får innehålla vad som helst. Men»vad som helst«kan bli mer än man tänkt sig: $ cat testfil Hej hopp! Ska det stå "i dag" eller "idag"? $ grep -o '".*"' testfil "i dag" eller "idag" Kommandot sed är lite som en schweizisk armékniv som kan utföra en mängd olika saker, bland annat sådant som ni har använt andra kommandon till, som head, tail och tr. Här kommer vi dock att bara använda detta kraftfulla verktyg till en specifik sak, nämligen att byta ut text Att ersätta text med sed Tidigare har vi använt tr för att byta ut text, men det är begränsat genom att det bara är enstaka tecken som hanteras. Det duger inte om vi t. ex. vill byta ut alla förekomster av foo mot bar. Dessutom har det begränsningar vid hantering av flerbytestecken. Eftersom ni nu bara kommer att använda sed till en sak så kommer alla era anrop av sed att likna varandra. De kommer alla att se ut ungefär som Detta svar börjar ju och slutar med citattecken, men är längre än bara "i dag" som man kanske snarare var ute efter. (Observera hur jag fick lov att sätta extra citattecken runt argumentet. Om jag hade skrivit bara grep -o ".*testfil så hade det reguljära uttrycket varit bara.*.) I detta fall är ett sätt att lösa problemet att kräva att tecknen mellan de båda citattecknen inte själva får vara citattecken, dvs. att använda [^"] istället för. för varje tecken mellan citattecknen. $ grep -o '"[^"]*"' testfil "i dag" "idag" sed -r 's/regexp/replacement/g' Väljaren -r till sed gör att utökade reguljära uttryck ska användas. Annars använder den enkla reguljära uttryck, precis som grep. Argumentet till sed talar om vilken editering som ska utföras. Det s som argumentet börjar med här är ett kommando i sed för substitute. Det söker upp förekomster av text som matchar det reguljära uttrycket regexp och byter ut dessa mot texten replacement. Så t. ex. kan man skriva sed -r 's/color/colour/g' 8.6 sed Med kommandot sed kan man göra en mängd olika omvandlingar av text. Namnet står för stream editor. Det kan göra mycket som en editor kan göra, men gör det inte interaktivt utan genom att bearbeta text som kommer in i en inputström. Detta kan läggas in som ett avancerat filter som läser text från standard input och skriver ut en editerad version av texten på standard output. ed och sed: Den ursprungliga editorn på Unix, som användes redan i forntiden före bildskärmarnas tid, hette ed och var skriven av Ken Thompson. Det var Thompson som först introducerade reguljära uttryck i editorer. När kommandot sed kom några år senare som en variant att använda för icke-interaktiv editering av en inputström så byggde därför dess kommandon på motsvarande kommandon i ed. Det enda sed-kommando vi tar upp här, s, finns t. ex. även i ed. 86

5 8.6. sed för att byta ut alla»color«mot»colour«1 eller sed -r 's/s\>/z/g' för att byta ut varje s som står i slutet av ett ord mot z. Man brukar normalt använda snedstreck (/) som här för att avdela argumentet, men det kan vara något annat tecken istället, bara det är samma tecken på alla tre ställen. Så om man behöver snedstreck i sitt reguljära uttryck eller i ersättningen får man lov att välja nåt annat, t. ex. sed -r 's!1/2!½!g' för att byta alla förekomster av de tre tecknen»1/2«mot det enda tecknet»½«. Efter det sista snedstrecket står väljare till s- kommandot. I exemplen ovan är det g som gör att alla förekomster byts ut (global). Annars byts bara den första förekomsten på varje rad ut. En annan väljare är i som ignorerar skillnader mellan versaler och gemener. Jämför följande fyra exempel som bara skiljer sig i vilka av dessa väljare som har använts. $ cat jaha.txt Procent procent procent PROCENT $ sed -r 's/procent/%/' <jaha.txt Procent % procent PROCENT $ sed -r 's/procent/%/g' <jaha.txt Procent % % PROCENT Varför heter det grep?: I editorn ed användes reguljära uttryck inte bara med kommandot s, utan även med bl. a. ett kommando g med vilket man sökte upp rader som matchade ett visst reguljärt uttryck och gjorde nåt med dessa rader. För att ta bort alla rader som innehåller»foo«kunde man t. ex. göra g/foo/d där d är ett kommando som tar bort en rad. För att skriva ut alla rader som matchade ett reguljärt uttryck använde man istället p (= print). Ibland förkortas regular expression med re, så en sådan operation kunde beskrivas g/re/p vilket är skälet till att det senare skrivna program som utförde just den operationen fick namnet grep. $ sed -r 's/procent/%/i' <jaha.txt % procent procent PROCENT $ sed -r 's/procent/%/gi' <jaha.txt % % % % Att använda den gamla texten I sed -r 's/regexp/replacement/g' är det bara regexp som är ett reguljärt uttryck. I ersättningsdelen har inte asterisker, parenteser osv. någon särskild betydelse, utan blir sig själva. $ echo "byt allt" sed -r 's/././g'... $ echo "foo bar" sed -r 's/[aou]/[äöü]/g' f[äöü][äöü] b[äöü]r $ echo "hej hopp" sed -r 's/e.*o/***/g' h***pp Ett tecken som ändå är speciellt i ersättningstexten är & (ampersand) som betyder hela den text som matchade det reguljära uttrycket. Om man vill bryta raden efter varje interpunktionstecken kan man därför göra sed -r 's/[[:punct:]]/&\n/g' där ersättningsdelen betyder det som [[:punct:]] matchade följt av ett nyradstecken (vilket skrivs \n här precis som t. ex. i tr). Följande exempel dubblerar vokaler genom att använda ampersand två gånger. sed -r 's/[aeiouyåäö]/&&/gi' 1 I detta exempel och en del kommande exempel behövdes inte väljaren -r egentligen, men jag har använt den genomgående ändå. I detta fall behövdes förresten inte några citattecken runt argumentet till sed heller, men oftast behövs det, så det kan vara säkrast att alltid ha med det. 87

6 Laboration 8: Reguljära uttryck Redovisning Skicka svar på frågorna till Per senast fredag 7/11. Frågorna är samlade i olika teman snarare än att vara sorterade från lätta till svåra, så hoppa gärna runt bland uppgifterna medan du löser dem istället för att fastna på någon klurig uppgift som du kan behöva tänka mer på. När frågan är i stil med»vilka ord finns det som...?«så ge dels svar på frågan och tala dels om vilket kommando eller vilka kommandon du använt för att få fram svaret. På slutet följer en del överkursuppgifter som är frivilliga. Om du bara kan lösa en uppgift till hälften så ge din lösning ändå, men påpeka vad som saknas i den. Uppror! (igen) Dessa uppgifter använder sig av den uppror.txt som du har sedan tidigare. Uppgift 8.1 Vilka rader innehåller en liten bokstav som följs direkt av en stor? Uppgift 8.2 Hur många rader innehåller minst tre interpunktionstecken i rad? Uppgift 8.3 Vilka rader innehåller en labial konsonant (någon av p, b, m, f eller v) följt av el följt av antingen ett h eller interpunktion? Uppgift 8.4 Vilka rader har minst sex konsonanter i rad? Uppgift 8.5 Vilka rader innehåller ordet ägg? Uppgift 8.6 Vilka rader innehåller något av orden mitt, ditt, sitt, hans, hennes följt av ett mellanslag och sedan ordet liv? Uppgift 8.7 Vilka rader börjar med bokstaven y? Uppgift 8.8 Vilka rader börjar med ordet kan? Uppgift 8.9 Vilka rader både börjar och slutar med bokstaven m? Uppgift 8.10 Vilka rader både börjar och slutar med bokstaven m, men har inga ytterligare m i sig? Uppgift 8.11 Vilka rader både börjar och slutar med bokstaven m, men har inga ytterligare m i sig? Uppgift 8.12 Vilka rader innehåller exakt ett w? Uppgift 8.13 Vilka rader har med ord som börjar med»flä«? Uppgift 8.14 Hur många rader är minst femtio tecken långa? Diverse Uppgift 8.15 Ge ett kort utökat reguljärt uttryck som matchar både»arton«och»aderton«(men inget annat). Uppgift 8.16 Ge ett utökat reguljärt uttryck som matchar orden»mormor«,»morfar«,»farmor«och»farfar«. Här är mormor morfar farmor farfar förstås en möjlighet, men försök att skriva något kortare! Uppgift 8.17 Här ges ett antal utökade reguljära uttryck som alla går att skriva kortare så att ändå exakt samma texter matchas. Hur? a) foo* b) bar{1,} 88

7 Väljaren -o c) Anderson Andersson d) [[:alnum:]]{0,1} e) (f){1}[o]{2} f) ((kan)(a e y)l) g) (måndag tisdag) kväll h) [aouå] [eiyäö] i) [abc][abc][abc][abc][abc][abc]? j) ( ) k) (ha he hi ho) l) x.*.*y Uppgift 8.18 De tre metatecknen *, + och? som kan sättas efter en del av ett utökat reguljärt uttryck kan alla uttryckas med {}-konstruktionen istället. Hur, i de tre olika fallen? Svenska ord I /local/dict/dsso-list.txt finns en stor samling svenska ordformer tagna från Den stora svenska ordlistan. Använd den för frågorna i detta avsnitt. Eftersom filen bara innehåller ord med ett ord per rad kan du använda ^ och $ för ankring till ordbörjan och ordslut och. för ett godtyckligt tecken inne i ordet. Uppgift 8.19 Hur många ord finns det som slutar på bokstaven f? Uppgift 8.20 Hur många ord finns det som innehåller»stp«i sig (som t. ex.»hästpolo«) och hur långt är det längsta av dessa ord? Uppgift 8.21 Vilka ord har f som näst första tecken och p som näst sista tecken? Uppgift 8.22 Vilka ord med minst nio bokstäver går att skriva enbart med tecknen på översta bokstavsraden på tangentbordet? (qwertyuiopå) Uppgift 8.23 Vad finns det för ord på sju bokstäver som innehåller de sju bokstäverna»endator«i någon annan ordning? Uppgift 8.24 (Monoton) Vad finns det för ord som är minst 12 tecken långa vars enda vokal är o? Uppgift 8.25 (korsord) Du söker ett elvabokstavsord som börjar på h, l eller s och slutar på a eller e. Den fjärde bokstaven är säkert m och den sjunde är säkert f. Vad finns det för möjligheter (om ordet står med i denna ordlista)? Uppgift 8.26 Vilka ord med minst sex tecken har inte med någon av bokstäverna eantrsildogm? (De vanligaste tecknen på svenska enligt någon källa.) Uppgift 8.27 En del ord i den filen innehåller tecken som inte räknas som ingående i teckenklassen [:alpha:]. Hur många ord? Väljaren -o I dessa uppgifter ska du använda väljaren -o för att bara få ut det som matchade ett uttryck från en fil. Uppgift 8.28 Vilka tecken var det som fanns med men inte ingick i [:alpha:] i förra uppgiften? Uppgift 8.29 Vad finns det för ord med exakt 22 tecken i uppror.txt? Använd \w för att beteckna ett tecken inne i ett ord. Uppgift 8.30 Vilka ord i uppror.txt börjar med»flä«? Uppgift 8.31 Ange vilka sifferuttryck som finns i filen /local/kurs/ids/the-gnu-project. Sortera dem i nummerordning. Uppgift 8.32 Vilka tecken är vanligast som förstatecken i orden i uppror.txt? Gör en tjugo-i-topplista! Uppgift 8.33 Vad finns det för ord med minst tre vokaler i rad i uppror.txt? I uppgift 6.32 delade du upp en text i ord (med ett ord på varje rad) på ett enkelt sätt med en hel del brister. Det finns flera sätt att göra sådant. Ett är att använda grep -o med ett reguljärt uttryck som matchar ett ord. Uppgift 8.34 Hur ser ett kommando ut som använder denna metod för att ta fram motsvarande frekvenslista som gjordes i uppgift 6.32? Vad ger det för resultat? Uppgift 8.35 Vad finns det för ord på minst fyra tecken som förekommer bara en gång i /local/ kurs/ids/wonderland.txt och som inte innehåller något av tecknen aeioaeio? 89

8 LABORATION 8: REGULJÄRA UTTRYCK Uppgift 8.36 Ta med grep -o (eller grep -Eo) fram telefonnummer med riktnummer från tidningstexterna i /local/kurs/ids/ivt2-svenska. txt. Din lösning kan vara mer eller mindre bra. Ju fler korrekta nummer du får ut desto bättre, men undvik att få falska träffar med sifferuttryck som inte är telefonnummer. Ta sed dit man kommer Uppgift 8.37 (Stavningsreform) Skriv ett kommando som byter ut alla»ck«mot»kk«. Uppgift 8.38 Om Strindberg hade behövt skriva Roeda rummet på en engelsk skrivmaskin och fått lov att skriva aa ae oe istället för å ä ö, hur hade då början av den lydit? Uppgift 8.39 Byt ut alla ord»ej«och»icke«mot»inte«i en text. Se till att du bara byter ut hela ord så att du inte råkar byta t. ex.»mejl«mot»mintel«eller»kicken«mot»kinten«. Uppgift 8.40 Skapa en fil GNU2 i din kurskatalog som är som filen GNU där, men med alla tecken i teckenklassen [:blank:] som står i början av en rad bortrensade. Uppgift 8.41 Skapa även en fil GNU3 som är som GNU, men där du lagt till»<abbr>«före och»</abbr>«efter varje ord som är minst två bokstäver långt och som bara består av versaler. Så t. ex. ska varje förekomst av ordet»mit«ha bytts mot»<abbr>mit</abbr>«. Rorövovarore (igen!) Uppgift 8.42 Skriv ett sed-kommando som omvandlar sin input till rövarspråket! Så med echo ett exempel sed... (slutet av kommandot utelämnat här) ska du få ut»etottot exoxemompopelol«. Du ska alltså omvandla t. ex.»t«till»tot«. Versaler ställer till med en komplikation. Allra helst vill man att»per«ska bli»poperor«, men gör istället en lösning som ger»poperor«vilket är helt OK! Bonusuppgift (överkurs): Läs på i Info om sed för att se hur du med s-kommandot kan lösa detta versalproblem och gör så. I Emacs Öppna i Emacs filen /local/kurs/ids/ wonderland.txt och använd där Emacskommandot list-matching-lines för att lista rader som innehåller något som matchar ness\> (dvs. ord som slutar på»ness«). (Detta kommando finns inte i menyerna, så du får använda M-x i Emacs för att köra det.) Uppgift 8.43 Hur många matchingar blev det och hur visas dessa? Sökträffarna visas i en buffert som är i en särskild mode där man kan gå direkt till en träff genom att klicka på den, eller genom att trycka på RET. Uppgift 8.44 Vad heter den bufferten och vad heter det Emacs-kommando som utförs när man trycker på RET där? Använd nu Tools Search Files (Grep) i samma Emacs. I minibufferten får du ett påbörjat grepkommando. Lägg till gren *.txt till det för att leta efter»gren«i alla filer *.txt i den katalogen (/path/local/kurs/ids). Här kan du på ett liknande sätt använda musen eller RET för att gå till sökträffarna. Uppgift 8.45 Vad heter bufferten som dessa resultat visas i? Mer mer mer Uppgift 8.46 Gör en version av din saga.txt utan vokaler. (Svaret ska alltså börja»dt vr n gng«.) Uppgift 8.47 Gör en version av din saga.txt med alla bokstäver dubblerade. (Svaret ska alltså börja»ddeett vvaarr eenn ggåånngg«. Bara bokstäverna är dubblerade.) Uppgift 8.48 Med grep -v a kan man ta fram alla rader som inte har något a. Hur kan man lösa samma uppgift med grep utan någon väljare? 90

9 Bakåtreferenser Uppgift 8.49 Några av följande utökade reguljära uttryck betyder samma sak, dvs. matchar precis samma strängar. Vilka? a) spexx* b) spex*x c) spex+ d) spex e) spex? f) (spe)x Uppgift 8.50 Ge ett reguljärt uttryck som matchar något av»1«,»2«,»3«,»4«,»5«,»6«,»7«,»8«,»9«,»10«,»11«,»12«,»13«osv. till hur höga tal som helst, men inget annat. (Första siffran är speciell!) Uppgift 8.51 Det utökade reguljära uttrycket ab?c[de] beskriver strängarna»acd«,»ace«,»abcd«och»abce«. Vilka strängar beskriver följande utökade reguljära uttryck? (Ange samtliga strängar!) I nedanstående textsträngar skrivs mellanrum som för att det ska bli tydligare. a) foo?-bar b) rök?fritt c) a b? c d) fo{4,6}l? e) ([abc]-)?foo f) foo(bar?)? Bakåtreferenser Hela detta avsnitt är frivillig överkurs. Läs om bakåtreferenser (back-references) i reguljära uttryck och använt sådant för att lösa följande. Tabell 8.2: Några smeknamn på svenska pojknamn Original Frans Hans Karl Leif Nils Olof Stefan Urban Smeknamn Frasse Hasse Kalle Leffe Nisse Olle Steffe Ubbe Uppgift 8.56 Tänk dig att en text har använt decimalpunkt istället för decimalkomma, dvs. där står t. ex.»3.14«istället för»3,14«, men det ska ändras till decimalkomma. Skriv ett sed-kommando som byter ut sådana punkter som står mellan två siffror till komman (men inte byter ut andra punkter!). Uppgift 8.57 Använd sed för att lösa om uppgift En del smeknamn på pojknamn följer mönstret i tabell 8.2. Vi kan för enkelhets skull anta att den dubblerade konsonanten alltid är den sista konsonanten i konsonantgruppen som följer efter den första vokalen. (Dvs. att»ludvig«skulle bli»luvve«istället för det egentligen bättre»ludde«.) Uppgift 8.58 Skriv ett sed-kommando som gör omvandlingar enligt denna princip om det får ett pojknamn som input. Uppgift 8.52 Vilka ord i /local/dict/ dsso-list.txt består av två likadana halvor (som t. ex. orden»kaka«och»mormor«)? Uppgift 8.53 Vad finns det för sjubokstavsord i samma fil som är palindrom? (Palindrom är sådana texter som lyder likadant framlänges som baklänges, t. ex. kajak.) Uppgift 8.54 Vilka ord i samma fil har högst åtta bokstäver och har två dubbeltecknade bokstäver i rad, så som t. ex.»rättssal«. Uppgift 8.55 Hur lyder raderna i din uppror.txt där något ord om minst åtta bokstäver förekommer två gånger. 91

Kapitel 8. Reguljära uttryck. 8.1 Ett tecken:. [ ] [^ ] 8.2 Ankring: ^ $ \< \>

Kapitel 8. Reguljära uttryck. 8.1 Ett tecken:. [ ] [^ ] 8.2 Ankring: ^ $ \< \> Kapitel 8 Reguljära uttryck I kapitel 5 togs reguljära uttryck upp som argument till grep. I detta kapitel lär vi oss mer om sådana och om några andra sammanhang där de används. 8.1 Ett tecken:. [ ] [^

Läs mer

Reguljära uttryck. Kapitel Reguljära uttryck Ett godtyckligt tecken: Ett speciellt tecken: [ ] 8.1.

Reguljära uttryck. Kapitel Reguljära uttryck Ett godtyckligt tecken: Ett speciellt tecken: [ ] 8.1. Kapitel 8 Reguljära uttryck I kapitel 6 togs flera kommandon för texthantering upp. I detta tillkommer ett viktigt begrepp för texthantering reguljära uttryck. 8.1 Reguljära uttryck Vi har tidigare använt

Läs mer

Kapitel 9. Reguljära uttryck. 9.1 Ett tecken:. [ ] [^ ] 9.2 Ankring: ^ $ \< \> 9.3 Bakstreck: \

Kapitel 9. Reguljära uttryck. 9.1 Ett tecken:. [ ] [^ ] 9.2 Ankring: ^ $ \< \> 9.3 Bakstreck: \ Kapitel 9 Reguljära uttryck I kapitel 5 togs reguljära uttryck upp som argument till grep. I detta kapitel lär vi oss mer om sådana och om några andra sammanhang där de används. 9.1 Ett tecken:. [ ] [^

Läs mer

Program. Kapitel make Program Interpreterande och kompilerande program

Program. Kapitel make Program Interpreterande och kompilerande program Kapitel 11 Program Detta kapitel är som synes mycket kort och nämner inte allt från föreläsningen. 11.1 Program Ett datorprogram är en samling instruktioner som beskriver något som en dator ska utföra.

Läs mer

Textbearbetning i skalet och man-sidor

Textbearbetning i skalet och man-sidor Kapitel 5 Textbearbetning i skalet och man-sidor Vi har redan använt skalkommandon för att göra saker textfiler. Här kommer gomgång av sådana kommandon som vi redan använt, några nya varianter, samt ett

Läs mer

Kapitel 12. Mer om program. 12.1 Att rapportera buggar och problem. 12.2 make

Kapitel 12. Mer om program. 12.1 Att rapportera buggar och problem. 12.2 make Kapitel 12 Mer om program 12.1 Att rapportera buggar och problem När man rapporterar buggar eller andra problem i program så är det några saker att tänka på för att ens rapport ska vara användbar för den

Läs mer

Reguljära uttryck och textbehandling II

Reguljära uttryck och textbehandling II Kapitel 10 Reguljära uttryck och textbehandling II Detta är en fortsättning från kapitel 8 där reguljära uttryck och kommandot egrep introducerades. 10.1 Olika sorters reguljära uttryck Reguljära uttryck

Läs mer

TDDD02 Föreläsning 2 HT-2013. Reguljära uttryck och reguljära språk Lars Ahrenberg

TDDD02 Föreläsning 2 HT-2013. Reguljära uttryck och reguljära språk Lars Ahrenberg TDDD02 Föreläsning 2 HT-2013 Reguljära uttryck och reguljära språk Lars Ahrenberg Översikt Reguljära uttryck sökproblem i texter definitioner och exempel UNIX-funktionen grep Reguljära transformationer

Läs mer

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar STRÄNGAR En av de mest avancerade av de normala datatyperna är. Här skall vi grundläggande gå igenom hur den datatypen fungerar och vidare flertalet funktioner som hör till datatypen. Låt oss kasta oss

Läs mer

Reguljära uttryck och textbehandling

Reguljära uttryck och textbehandling Kapitel 7 Reguljära uttryck och textbehandling Redan i kapitel 4 togs flera kommandon för textbehandling upp, som echo, head, fmt, sort, tail, tr. uniq och wc. Här kommer mer om sådant, i synnerhet reguljära

Läs mer

Sed och Awk. Linuxadministration II 1DV421. Monday, August 8, 11

Sed och Awk. Linuxadministration II 1DV421. Monday, August 8, 11 Sed och Awk Linuxadministration II 1DV421 Onlinematerial http://www.gnu.org/software/sed/manual/sed.html Manual för GNU sed http://www.gnu.org/software/gawk/gawk.html Manual för GNU awk Historia för sed

Läs mer

729G09 Språkvetenskaplig databehandling

729G09 Språkvetenskaplig databehandling 729G09 Språkvetenskaplig databehandling Föreläsning 2, 729G09, VT15 Reguljära uttryck Lars Ahrenberg 150409 Plan för föreläsningen Användning av reguljära uttryck Formella språk Reguljära språk Reguljära

Läs mer

Labb 1 - Textbearbetning med reguljära uttryck. Formella språk. Definitioner. Chomskyhierarkin. Formella språk. Formella språk

Labb 1 - Textbearbetning med reguljära uttryck. Formella språk. Definitioner. Chomskyhierarkin. Formella språk. Formella språk Labb 1 - Textbearbetning med reguljära uttryck Textbearbetning: Dela upp en text i meningar Hitta alla namn i en text Hitta adjektiv i superlativ Lektion reguljära uttryck re modulen i Python Formella

Läs mer

729G09 Språkvetenskaplig databehandling

729G09 Språkvetenskaplig databehandling 729G09 Språkvetenskaplig databehandling Lektion inför Laboration 1 vt15 Lars Ahrenberg Plan för lektionen Grupperingar Substitutioner Strängfunktioner i Python (kort repetition) Reguljära uttryck i Python

Läs mer

awk, sed och grep awk döpt efter Aho Weinberger Kernighan (1977) sed en stream editor grep sed g/re/p bygger i viss mån på ed line editor

awk, sed och grep awk döpt efter Aho Weinberger Kernighan (1977) sed en stream editor grep sed g/re/p bygger i viss mån på ed line editor C&UNIX awk, sed och grep 1 awk, sed och grep awk döpt efter Aho Weinberger Kernighan (1977) sed en stream editor grep sed g/re/p bygger i viss mån på ed line editor C&UNIX ed 2 ed Standard unix editor

Läs mer

Ersätta text, specialtecken och formatering

Ersätta text, specialtecken och formatering 11 Ersätta text, specialtecken och formatering Möjligheten att söka igenom dokumentet och byta ut tecken, ord, textstycken, formatering, specialtecken (t.ex. sidbrytning) och annat är faktiskt mycket mer

Läs mer

Uttryck, satser och strömhantering

Uttryck, satser och strömhantering Linköpings Universitet Institutionen för datavetenskap (IDA) UPP-gruppen 2018-09-06 Mål Uttryck, satser och strömhantering I denna laboration ska du lära dig Formaterad inläsning och utskrift Vanliga repetitions-

Läs mer

Egna genvägar. Subhashish Pradhan T.C. Hollingsworth Översättare: Stefan Asserhäll

Egna genvägar. Subhashish Pradhan T.C. Hollingsworth Översättare: Stefan Asserhäll Subhashish Pradhan T.C. Hollingsworth Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 4 2 Hantera genvägar och grupper 4 2.1 Lägga till grupper...................................... 4 2.2 Lägga till

Läs mer

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe In- och utmatning i Unix Program i Unix skriver och läser till och från filer. En fil betyder här en vanlig fil med text eller binära data, ett tangentbord, en skärm, ett annat program etc. Innan ett program

Läs mer

Programmering för språkteknologer II. OH-serie: Ändliga automater. reguljära uttryck i Java. Deterministiska ändliga automater

Programmering för språkteknologer II. OH-serie: Ändliga automater. reguljära uttryck i Java. Deterministiska ändliga automater Programmering för språkteknologer II OH-serie: ändliga automater reguljära uttryck i Java Mats Dahllöf Ändliga automater Abstrakt maskin, tillståndsmaskin, transitionssystem. (Den enklaste typ man brukar

Läs mer

Uppgift 1 (grundläggande konstruktioner)

Uppgift 1 (grundläggande konstruktioner) Uppgift 1 (grundläggande konstruktioner) a) Skriv ett program som låter användaren mata in 7 heltal och som gör utskrifter enligt nedanstående körexempel. Mata in 7 heltal: 1 0 0 3 1 1 1 Tal nr 2 var en

Läs mer

awk, sed och grep ed kommandon grep Standard unix editor tidig 70-tal program < 8Kbyte awk döpt efter Aho Weinberger Kernighan (1977)

awk, sed och grep ed kommandon grep Standard unix editor tidig 70-tal program < 8Kbyte awk döpt efter Aho Weinberger Kernighan (1977) C&UNIX awk, sed och grep 1 C&UNIX ed 2 ed Standard unix editor awk, sed och grep tidig 70-tal program < 8Kbyte awk döpt efter Aho Weinberger Kernighan (1977) terminal 10 tecken s 1 sed en stream editor

Läs mer

Filers innehåll. Grundläggande databehandling. Representation av text. pffb = påhittat filformat för bilder

Filers innehåll. Grundläggande databehandling. Representation av text. pffb = påhittat filformat för bilder Filers innehåll Data av olika slag lagras i filer. file = pärm, mapp, arkiv, akt,... Grundläggande databehandling Filer och skal Per Starbäck 2005-09-12 / Föreläsning 2 texter ljud bilder databaser program...

Läs mer

Laboration 10: LaTeX. Redovisning. Omgivningen document. Början. Instruktionerna nedan. Repetitionsuppgifter

Laboration 10: LaTeX. Redovisning. Omgivningen document. Början. Instruktionerna nedan. Repetitionsuppgifter Laboration 10: LaTeX Redovisning Instruktionerna nedan Dessa labbinstruktioner är av den pratiga sorten. Du får ganska detaljerade instruktioner som du får följa steg för steg och där de fåtaliga frågorna

Läs mer

Övning 5 - Tillämpad datalogi 2013

Övning 5 - Tillämpad datalogi 2013 /afs/nada.kth.se/home/w/u1yxbcfw/teaching/13dd1320/exercise5/exercise5.py October 1, 2013 1 0 # coding : latin Övning 5 - Tillämpad datalogi 2013 Automater, reguljära uttryck, syntax Sammanfattning Idag

Läs mer

Lab 7, 48 steg till ett bättre liv i Unix-labbet

Lab 7, 48 steg till ett bättre liv i Unix-labbet Lab 7, 48 steg till ett bättre liv i Unix-labbet Urban Liljedahl 13 december 2002 Instruktioner Mål Krav Utveckla förmågan att söka kunskap med hjälp litteratur och andra källor. Utveckla förmågan att

Läs mer

Konstruktion av datorspråk

Konstruktion av datorspråk Konstruktion av datorspråk Fö2: Funderingar kring hur man kan bedöma programspråk samt några fler detaljer i Ruby Peter Dalenius peter.dalenius@liu.se Institutionen för datavetenskap Linköpings universitet

Läs mer

Handbok KFind. Dirk Doerflinger Översättare: Stefan Asserhäll

Handbok KFind. Dirk Doerflinger Översättare: Stefan Asserhäll Dirk Doerflinger Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 1.1 Starta KFind......................................... 5 2 Hitta filer 6 2.1 Fliken Namn och plats...................................

Läs mer

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin DD36 Programmeringsparadigm Formella Språk & Syntaxanalys Föreläsning Per Austrin 26--3 Kursavsnittet syntax/formella språk Teori om formella språk verktygslåda för strängmatchning: Ändliga automater och

Läs mer

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner

Läs mer

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och

Läs mer

Användarmanualen. Visma Enterprise Content Search. Standard Version 2.0 for Platina. Version 1.1

Användarmanualen. Visma Enterprise Content Search. Standard Version 2.0 for Platina. Version 1.1 Användarmanualen Visma Enterprise Content Search Standard Version 2.0 for Platina Version 1.1 Innehållsförteckning 1 Ändringshistorik... 4 2 Introduktion... 5 2.1 Ikoner... 5 2.1.1 Allmänt... 5 2.1.2 Sökresultat...

Läs mer

Använda Python Laboration 1 GruDat, DD1344

Använda Python Laboration 1 GruDat, DD1344 Använda Python Laboration 1 GruDat, DD1344 Örjan Ekeberg 14 oktober 2008 Målsättning Målet med denna laboration är att du ska prova på att använda Python, framförallt interativt. Du ska också lära dig

Läs mer

TDP Uppgift 1

TDP Uppgift 1 Uppgift 1 Ett (svenskt) registreringsnummer består av tre bokstäver mellan A och Z (förutom bokstäverna I,Q och V) samt tre siffror. I denna uppgift ska du skapa ett program som ber användaren mata in

Läs mer

Om e-post. Introduktion till Emacs. Att skicka e-post. ÅÄÖåäö i pine. Varför Emacs? Vad är Emacs? Emacs en editor/textbehandlare

Om e-post. Introduktion till Emacs. Att skicka e-post. ÅÄÖåäö i pine. Varför Emacs? Vad är Emacs? Emacs en editor/textbehandlare Att skicka e-post Om e-post To, CC, BCC, FCC (File Carbon Copy, eller markera på annat sätt att skickade brev ska sparas) Subject: Ska tala om innehållet, problem med åäö, Skicka inte epost med HTML kod

Läs mer

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x Mathematica Första kapitlet kommer att handla om Mathematica det matematiska verktyg, som vi ska lära oss hantera under denna kurs. Indata När du arbetar med Mathematica ger du indata i form av kommandon

Läs mer

Användarhandledning PW Excel Manager

Användarhandledning PW Excel Manager Sida 1 av 12 Dokumenthistorik: Version: Datum: Ändrat av: Orsak till ändring: 0.1 2017-11-16 Skapar dokument, utkast. 1.0 2017-12-01 Gällande dokument Detta dokument beskriver, är ett hjälpmedel för att

Läs mer

UPPGIFT 1 LAMELLER. Minsta antalet hål: 1. Första lamellen? Andra lamellen? Minsta antalet hål: 3

UPPGIFT 1 LAMELLER. Minsta antalet hål: 1. Första lamellen? Andra lamellen? Minsta antalet hål: 3 UPPGIFT 1 LAMELLER FIGUR 1. Överst de två lamellerna som de ges till programmet. Underst samma två lameller när den ena förskjutits så att bästa läge uppkommit. I figur 1, övre delen, ser du två lameller,

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ ETT Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. Ett av dem är Python, som du ska få

Läs mer

[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:upper:] 8.2 Ankring: ^ $ \< \>

[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:upper:] 8.2 Ankring: ^ $ \< \> Kapitel 8 Reguljära uttryck I kapitel 6 togs reguljära uttryck upp som argument till grep. I detta kapitel lär vi oss mer om sådana och om några andra sammanhang där de används. På engelska heter det regular

Läs mer

Laboration: Grunderna i Matlab

Laboration: Grunderna i Matlab Laboration: Grunderna i Matlab Att arbeta i kommandofönstret och enkel grafik Den här delen av laborationen handlar om hur man arbetar med kommandon direkt i Matlabs kommandofönster. Det kan liknas vid

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

Läs mer

Grundläggande datorkunskap. Kom igång med dator

Grundläggande datorkunskap. Kom igång med dator Grundläggande datorkunskap Kom igång med dator Korta fakta om datorn: DATORNS OLIKA DELAR BILDSKÄRM SYSTEMENHET TANGENTBORD MUS Använd bara musens vänsterknapp till att börja med. I många fall klarar du

Läs mer

Filbindningar. Mike McBride Översättare: Stefan Asserhäll

Filbindningar. Mike McBride Översättare: Stefan Asserhäll Mike McBride Översättare: Stefan Asserhäll 2 Innehåll 1 Filbindningar 4 1.1 Inledning........................................... 4 1.2 Hur det här modulen används.............................. 4 1.2.1

Läs mer

Emacs. Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016

Emacs. Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016 Emacs Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016 Historia 2/21 Utvecklas konstant, från 70-talet Är en generellt texteditor (INTE ordbehandlare) som fokuserar på texten, inte utseendet

Läs mer

Innehåll. Inledning. Inställningar. Inledning Inställningar Kortkommandon Övriga inställningar Kommandofönstret Övrigt

Innehåll. Inledning. Inställningar. Inledning Inställningar Kortkommandon Övriga inställningar Kommandofönstret Övrigt Innehåll Inledning Inställningar Kortkommandon Övriga inställningar Kommandofönstret Övrigt Inledning Sammanfattning Kortkommando är en ersättning, eller iallafall ett komplement, till Windows inbyggda

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

Läs mer

Mer om språk och Ruby

Mer om språk och Ruby Mer om språk och Ruby TDP007 Konstruktion av datorspråk Föreläsning 2 Peter Dalenius Institutionen för datavetenskap 2014-01-21 Översikt över dagens föreläsning 1. Hur kan man bedöma ett språk? 2. Enhetstestning

Läs mer

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra

Läs mer

Föreläsning 3. Programmering, C och programmeringsmiljö

Föreläsning 3. Programmering, C och programmeringsmiljö Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator

Läs mer

Vanliga frågor för VoiceXpress

Vanliga frågor för VoiceXpress Vanliga frågor för VoiceXpress 1) Hur stort ordförråd (vokabulär) innehåller VoiceXpress? VoiceXpress innehåller ett mycket omfattande ordförråd, och svaret på frågan varierar en aning beroende på hur

Läs mer

Editering, Kompilering och Exekvering av Javaprogram

Editering, Kompilering och Exekvering av Javaprogram UMEÅ UNIVERSITET Institutionen för informatik B.1, Programmeringens grunder, 5 poäng Editering, Kompilering och Exekvering av Javaprogram Introduktion Syftet med kursmomentet Programmeringens grunder (B.1)

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 + / \ + + + + \ / + Exempel 3: Mata in storlek

Läs mer

Det virtuella tangentbordet

Det virtuella tangentbordet Kapitel tre Det virtuella tangentbordet I det här kapitlet ska vi titta närmare på tangentbordet i ipad och hur det används i olika sammanhang. Som du kanske har märkt öppnas tangentbordet automatiskt

Läs mer

Introduktion till programmering, hösten 2011

Introduktion till programmering, hösten 2011 Föreläsning 1 Programmering är ett hantverk. Det betyder att man inte kan läsa sig till den förmågan, man måste träna och man tränar genom att skriva mer och mer avancerade program. Programmering förutsätter

Läs mer

Välkommen 2 Navigering 3 Bokstäverna 3 Övningar kopplade till boken 6 Ord 10

Välkommen 2 Navigering 3 Bokstäverna 3 Övningar kopplade till boken 6 Ord 10 Interaktiv skrivtavla (IST) IST-kort Tutti Frutti3.indd 1 08-06-18 15.27.19 Manual digitalt lärarstöd för Tutti Frutti Välkommen 2 Navigering 3 Bokstäverna 3 Övningar kopplade till boken 6 Ord 10 Välkommen!

Läs mer

DATORÖVNING 5: SANNOLIKHETSFÖRDELNINGAR FÖR

DATORÖVNING 5: SANNOLIKHETSFÖRDELNINGAR FÖR DATORÖVNING 5: SANNOLIKHETSFÖRDELNINGAR FÖR STICKPROVSMEDELVÄRDEN I denna datorövning ska du använda Minitab för att slumpmässigt dra ett mindre antal observationer från ett större antal, och studera hur

Läs mer

Handbok för Klipper. Philip Rodrigues Carsten Pfeiffer Översättare: Stefan Asserhäll

Handbok för Klipper. Philip Rodrigues Carsten Pfeiffer Översättare: Stefan Asserhäll Philip Rodrigues Carsten Pfeiffer Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Att använda Klipper 6 2.1 Grundläggande användning................................ 6 2.1.1 Klippers grafiska komponent...........................

Läs mer

Handbok Artikulate. Andreas Cord-Landwehr Ondrila Gupta Översättare: Stefan Asserhäll

Handbok Artikulate. Andreas Cord-Landwehr Ondrila Gupta Översättare: Stefan Asserhäll Andreas Cord-Landwehr Ondrila Gupta Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 1.1 Inlärningsmetodiken.................................... 5 1.2 De första stegen i Artikulate................................

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

Läs mer

F2 Datarepresentation talbaser, dataformat och teckenkodning

F2 Datarepresentation talbaser, dataformat och teckenkodning F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Jonas Wisbrant Datarepresentation I en dator lagras och behandlas all information i form av binära tal ettor och nollor.

Läs mer

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon). Laboration 0 Laborationen är till för dig som inte är familjär med att navigera i filträd på en dator. Om du är van vid detta (vilket är det vanliga nu för tiden) så kan du bara snabbt titta igenom laborationen.

Läs mer

TENTA: TDDD11 & TDDC68. Tillåtna hjälpmedel. Starta Emacs, terminal och tentakommunikationsfönster. Skicka in frågor och uppgifter

TENTA: TDDD11 & TDDC68. Tillåtna hjälpmedel. Starta Emacs, terminal och tentakommunikationsfönster. Skicka in frågor och uppgifter TENTA: TDDD11 & TDDC68 Tillåtna hjälpmedel Det är tillåtet att ha böcker (t.ex. Ada-bok, formelsamlingar, lexikon,...) med sig samt utdelade lathundar (finns på kurshemsidan) för Ada, Unix och Emacs. Utdraget

Läs mer

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson! F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Von Neumann-arkitekturen Gemensamt minne för programinstruktioner och data. Sekventiell exekvering av instruktionerna.

Läs mer

Laboration: Grunderna i MATLAB

Laboration: Grunderna i MATLAB Laboration: Grunderna i MATLAB 25 augusti 2005 Grunderna i MATLAB Vad är MATLAB? MATLAB är ett interaktivt program för vetenskapliga beräkningar. Som användare ger du enkla kommandon och MATLAB levererar

Läs mer

Gränssnitt för FakeGranska. Lars Mattsson

Gränssnitt för FakeGranska. Lars Mattsson Gränssnitt för FakeGranska av Lars Mattsson (larsmatt@kth.se) Innehållsförteckning 1 Introduktion...3 2 Genomförande:...3 3 Användning...5 4 Kända buggar:...6 5 Källförteckning...6 2 1 Introduktion Taken

Läs mer

MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP

MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP MÄLARDALENS HÖGSKOLA CD5560 Formella språk, automater och beräkningsteori Användarmanual för simulatorn JFLAP Innehållsförteckning Att komma igång med JFLAP... 3 Att köra en sträng... 5 Att köra flera

Läs mer

TDP Regler

TDP Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

UNIX. Laborations-PM Anders Egneus, Henrik Lindgren, 2004, 2006. Raphael Corsoski, 2005. Erik Eliasson, 2007. Christian von Schultz, 2008.

UNIX. Laborations-PM Anders Egneus, Henrik Lindgren, 2004, 2006. Raphael Corsoski, 2005. Erik Eliasson, 2007. Christian von Schultz, 2008. 1 Introduktion UNIX Laborations-PM Anders Egneus, Henrik Lindgren, 2004, 2006. Raphael Corsoski, 2005. Erik Eliasson, 2007. Christian von Schultz, 2008. Det övergripande syftet med dessa laborationer är

Läs mer

Datalogi för E Övning 3

Datalogi för E Övning 3 Datalogi för E Övning 3 Mikael Huss hussm@nada.kth.se AlbaNova, Roslagstullsbacken 35 08-790 62 26 Kurshemsida: http://www.csc.kth.se/utbildning/kth/kurser/2d1343/datae06 Dagens program Att skapa egna

Läs mer

Programmering II (ID1019) :00-11:00

Programmering II (ID1019) :00-11:00 ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren

Läs mer

Introduktion till användning av linux-servern sledge och några övningsuppgifter

Introduktion till användning av linux-servern sledge och några övningsuppgifter Uppsala universitet Institutionen för utbildning, kultur och medier Monica Langerth Zetterman och Richard Walls IT-stöd i undervisningen, HT10 Introduktion till användning av linux-servern sledge och några

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

Läs mer

BASH. Bourne-Again SHell. Eric Elfving Institutionen för datavetenskap (IDA)

BASH. Bourne-Again SHell. Eric Elfving Institutionen för datavetenskap (IDA) BASH Bourne-Again SHell Eric Elfving Institutionen för datavetenskap (IDA) BASH sh-compatible command language interpreter Kan startas på två sätt: Login shell Kör init-filer i följande ordning: /etc/profile,

Läs mer

Föreläsning 18 Filer och avbildningar

Föreläsning 18 Filer och avbildningar Föreläsning 18 Filer och avbildningar Grundkurs i programmering Jan Lönnberg Institutionen för datateknik -universitetets högskola för teknikvetenskaper 15.11.2011 Avbildningar Hur skulle du göra en: Ordlista

Läs mer

Guide: Programmera Ryze Tello

Guide: Programmera Ryze Tello Guide: Programmera Ryze Tello Tello går att flyga med en dator (Windows och Mac OS). Via datorn går det att programmera drönaren så den flyger i ett förprogrammerat mönster. Programmeringen sker med Scratch.

Läs mer

Föreläsning 7: Syntaxanalys

Föreläsning 7: Syntaxanalys DD2458, Problemlösning och programmering under press Föreläsning 7: Syntaxanalys Datum: 2007-10-30 Skribent(er): Erik Hammar, Jesper Särnesjö Föreläsare: Mikael Goldmann Denna föreläsning behandlade syntaxanalys.

Läs mer

Programkonstruktion med datorintroduktion, 2D1339

Programkonstruktion med datorintroduktion, 2D1339 Programkonstruktion med datorintroduktion, 2D1339 Välkomna Kursen Datorintroduktionsdelen Unix Historik och bakgrund Logga in och ut Regler för datoranvändning Lösenord, byte Filer och kataloger Emacs

Läs mer

Elias Castegren. (Version 1, 2012)

Elias Castegren. (Version 1, 2012) Liten Emacs-referens Elias Castegren (Version 1, 2012) Det här är en kort genomgång av några väldigt grundläggande kommandon i Emacs. Dokumentet är inte utförligt eller ens särskilt pedagogiskt, utan jag

Läs mer

Switch Driver 5. Programvara för Radio Switch, JoyBox och JoyCable. Sensory Software

Switch Driver 5. Programvara för Radio Switch, JoyBox och JoyCable. Sensory Software Switch Driver 5 Programvara för Radio Switch, JoyBox och JoyCable. Sensory Software Innehållsförteckning Att använda programvaran Switch Driver... 3 Installera programvaran Switch Driver... 4 Kontaktanslutning...

Läs mer

Introduktion till datateknik för språkvetare

Introduktion till datateknik för språkvetare Introduktion till datateknik för språkvetare ht 2009 Per Starbäck Kapitel 1 Inledning 1.1 Om kursen Schema och annat finns på http://stp.lingfil. uu.se/kurs/ids/. Där kommer det även finnas länkar till

Läs mer

Emacs. Eric Elfving Institutionen för Datavetenskap (IDA)

Emacs. Eric Elfving Institutionen för Datavetenskap (IDA) Emacs Eric Elfving Institutionen för Datavetenskap (IDA) Emacs Utveckas konstant, från 70-talet Är en texteditor (inte ordbehandlare) och fokuserar på texten, inte utseendet. Ingår i GNU-projektet Har

Läs mer

Introduktion till Matlab

Introduktion till Matlab Introduktion till Matlab Inledande matematik, I1, ht10 1 Inledning Detta är en koncis beskrivning av de viktigaste delarna av Matlab. Till en början är det enkla beräkningar och grafik som intresserar

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Introduktion till datormiljön och Python

Introduktion till datormiljön och Python Introduktion till datormiljön och Python Nyckelord: katalog, katalogträd, rot, fil, källkod, program, exekvering, tilldelning, inmatning, utmatning. Mål: Att du efter laborationen ska klara dig på egen

Läs mer

Programmering i C++ Kompilering från kommandoraden

Programmering i C++ Kompilering från kommandoraden Programmering i C++ Kompilering från kommandoraden Sven Gestegård Robertz Datavetenskap, LTH 9 november 2015 Sammanfattning Ibland vill man, av olika anledningar, inte använda en stor integrerad utvecklingsmiljö

Läs mer

LÄSLANDET - BOKSTÄVER OCH ORD

LÄSLANDET - BOKSTÄVER OCH ORD LÄSLANDET - BOKSTÄVER OCH ORD Programmet består av 21 övningar som övar förmågan att känna igen bokstäver och ord. Här tränas såväl läsning som stavning och bokstavsordning. Du får hela tiden stöd av inspelat

Läs mer

HI1024 Programmering, grundkurs TEN2 2015-10-30

HI1024 Programmering, grundkurs TEN2 2015-10-30 HI1024 Programmering, grundkurs TEN2 2015-10-30 KTH STH Haninge 8.15-13.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King

Läs mer

Reguljära uttryck. Reguljära uttryck. Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89)

Reguljära uttryck. Reguljära uttryck. Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89) Reguljära uttryck Ett sätt att söka och manipulera text Reguljära uttryck Konstruerar mönster som försöker hitta nåt i text Viktigt, användbart, många resurser http://regex.info/ http://etext.lib.virginia.edu/services/helpsheets/unix/regex.html

Läs mer

TDDI16: Datastrukturer och algoritmer

TDDI16: Datastrukturer och algoritmer TDDI16: Datastrukturer och algoritmer Lab 3: Ordkedjor Höstterminen 2018 2018-05-14 1 Upplägg Första delen av instruktionen, avsnitt 2 till 6, innehåller en fullständig beskrivning av problemet utan några

Läs mer

First Class uppgift 2

First Class uppgift 2 First Class uppgift 2 Hur du lägger till en signering i mail. När du loggat in på First Class ser det ut som på bilden nedan, det så kallade skrivbordet. Här ska du klicka på knappen inställningar uppe

Läs mer

Att söka i W3D3. Det nya fönster du då får upp ser ut så här.

Att söka i W3D3. Det nya fönster du då får upp ser ut så här. Att söka i W3D3 En av de viktigaste funktionerna i W3D3 är återsökning av ärenden och dokument. Den här lathunden ska försöka beskriva hur man gör detta. Om du behöver en utförligare eller mer detaljerad

Läs mer

Instruktion för laboration 1

Instruktion för laboration 1 STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik MD, ANL, TB (rev. JM, OE) SANNOLIKHETSTEORI I Instruktion för laboration 1 De skriftliga laborationsrapporterna skall vara

Läs mer

! "# # # $ # " % & # # '(") " " )## (")"#*+*(, ( - " ' # (") #. % % /

! # # # $ #  % & # # '()   )## ()#*+*(, ( -  ' # () #. % % / ! "# # # $ # " % & # # '(") " " )## (")"#*+*(, ( - " ' # (") #. % % / Hageltal Problem ID: hageltal Tänk dig att du skriver upp alla positiva heltal på ett oändligt stort papper. Från varje tal n>1 ritar

Läs mer

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS http://www.cwdata.se Konsolfönstret

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS http://www.cwdata.se Konsolfönstret Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS http://www.cwdata.se Konsolfönstret Med ett kommandobaserat gränssnitt menas ett helt textbaserat gränssnitt. Istället för att klicka

Läs mer

Uppgift 1 (Sorterade heltal som är OK)

Uppgift 1 (Sorterade heltal som är OK) 2013-03-12.kl.14-19 Uppgift 1 (Sorterade heltal som är OK) Ibland råkar man ut för att man måste se till att man inte får dubletter i sina inmatningar. Denna uppgift baserar sig på detta, men dessutom

Läs mer

Tio vanliga Excel-problem

Tio vanliga Excel-problem Tio vanliga Excel-problem Aris Velizelos Linda Larsson Kakuli SVT Nyheter Problem: Tomma rader Du har laddat ner en färdig Excel-fil från t ex SCB men det saknas uppgifter på varannan rad. Du vill ha uppgift

Läs mer

Till flera av ovanstående finns det dessutom varianter, vilka kommer att presenteras i de olika avsnitten.

Till flera av ovanstående finns det dessutom varianter, vilka kommer att presenteras i de olika avsnitten. LINGUS32 Handledning Anne Börjesson Introduktion Lingus32 är ett program som främst är avsett att användas för att göra multimedia-baserade språkövningar. Programmet är skrivet för PC. Det finns möjlighet

Läs mer

Arduinokurs. Kurstillfälle 4

Arduinokurs. Kurstillfälle 4 Kurstillfälle 4 CW-generering Det här kan ses som överkurs men kan ändå vara roligt för att kunna generera CW på ett enkelt sätt. Det blir en hel del nytt men vi tar det steg för steg Som alla vet gäller

Läs mer

Handbok KFind. Dirk Doerflinger Översättare: Stefan Asserhäll

Handbok KFind. Dirk Doerflinger Översättare: Stefan Asserhäll Dirk Doerflinger Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 1.1 Starta KFind......................................... 5 2 Hitta filer 6 2.1 Fliken Namn och plats...................................

Läs mer