2

Størrelse: px
Begynne med side:

Download "2"

Transkript

1 Forritunarm li Fj lnir Notendahandb k Snorri Agnarsson, P ll Bj rnsson, J n Har arson 25. febr ar 1996

2 2

3 Efnisyrlit I Forritunarm li Fj lnir 7 1 Inngangur 9 2 Einingar 11 3 Seg ir, stef og a ger ir T lur og star T magildi Textastrengir Hlunkar Breytur R kseg ir Ef seg in A ger arseg ir Fylkjaseg ir Valseg in Lykkjuseg ir og tseg in Listaseg ir Stefk ll, stef og skilaseg in Einfalt d mi 27 5 Einingaa ger ir trun Innutningur Samsetning Hli setning trunarhli setning Veitingar 37 7 Notkun Fj lnis 39 8 M lfr i Fj lnis Athugasemdir forritstexta Frumeiningar m lsins M lrit Eftirm li 55 3

4 4 EFNISYFIRLIT 10 Heimildir 57 II Einingin GRUNNUR Einingin AFRITA Einingin DOSDISK Einingin DOSSKRIU Einingin DOSSTIU Einingin DOSYMISL Einingin FLEYF LL Einingin INN Einingin KJARNI Einingin LESALINU Einingin SKRIFALIN Einingin SNUA Einingin STRENGIR Einingin UT 121 III Vi aukar Forriti Fjalla Forriti Hvarer Einingin BROT Einingarnar FELAGRUN og FELAKJAR Einingar fyrir fylki Einingin HFYLKI Einingin SFYLKI Einingin HEXEININ Einingin ISLR D Einingin LYKLAR Einingin QUICKSOR Einingin MARGLID 145

5 EFNISYFIRLIT 5 34 Einingin MENGI Einingin RADA Einingin SKJAR Einingin SLEMBI Einingin STORFJOL Einingin STORHEIL Einingin TAFLA Einingin TAYLOR Einingin VIDBSKJA Einingin VIDF NG Einingar fyrir teiknun Einingin TATAHGA Einingin TATACGA Einingin TATACGA Einingin TATAEGA Einingin TATAMCGA Einingin TATAVGA IV Atri isor askr 181

6 6 EFNISYFIRLIT

7 Hluti I Forritunarm li Fj lnir 7

8

9 Kai 1 Inngangur Handb k essi inniheldur l singu forritunarm linu Fj lni. Fj lnir er fr brug i estum rum forritunarm lum rennan h tt: Fj lnir er slenskt forritunarm l Fj lnir er listavinnslum l Fj lnir er einingaforritunarm l S arnefndu atri in tv eru a sem gerir Fj lni a ugu forritunarm li. Listavinnsla er mikilv gt einkenni forritunarm li. Listavinnslan gerir ll gildi forritunarm linu jafn au veld me f rum og gerir forritara kleift a leysa vandam l au veldan h tt sem eru er e a n rri kleif rum forritunarm lum. Einingaforritunin gerir forritaranum s an kleift a pakka saman s num lausnum einingar sem nota m aftur og aftur. Listavinnslan Fj lni er svipu og rum listavinnslum lum svo sem LISP og LOGO. Einingaforritunin Fj lni er aftur m ti mj g fr brug in einingaforritun rum einingaforritunarm lum svo sem MODULA-2, Ada og C++. Einingaforritunin Fj lni gefur forritaranum kost a gera eira en essum forritunarm lum og einfaldari h tt. 9

10 10 KAFLI 1. INNGANGUR

11 Kai 2 Einingar Forrit Fj lni eru bygg r einingum. Fj lnir gefur m guleika a skilgreina einingar sem eru s fn stefja (undirforrita) og breyta, og tengja einingarnar saman alla hugsanlega vegu. Stef og breytur sem skilgreindar eru me nafni einhverri einingu eru s g vera utt t r eirri einingu e a sagt er a einingin innihaldi essi stef og breytur. stefjum innan einingar m kalla nnur stef e a nota breytur utan einingarinnar og kallast sl k tilv sun innutningur, sagt er a einingin v si sl k stef e a breytur. Einingara ger ir eru nota ar til a tengja essar tilv sanir raunverulegum stefjum og breytum einhverri einingu. Grundvallarhugmyndin a fer Fj lnis vi einingaforritun er s a l ta einingar sem innsetningar, svipa og st r fr inni. Eining sem t.d. inniheldur atri in a, b og c skilgreinir innsetningu sem setur tiltekna skilgreiningu sta nafnanna a, b og c. D mi um forritun einingar: "fibo" = { f -> stef( n) stofn ef n <= 2 skila 1 annars skila f( n-1)+f( n-2) eflok stofnlok } egar skr er dd sem inniheldur textann a ofan ver ur eining skrifu skr na FIBO.EIN. essi eining inniheldur ste f, og v sar sten f, <=, - og +. Vi l tum essa einingu sem innsetningu sem setur ste h gra megin rvarinnar sta nafnsins f vinstra megin rvarinnar. N fnin sem koma fyrir vinstra megin vi r segjum vi vera tutt r einingunni. Stef sem kalla er r einingunni segjum vi vera innutt eininguna. N er e lilegt a tla a ste f eigi h r a vera endurkv mt. Til ess a svo megiver a, tengjum vi tilv sunina f (hi innutta f) vi tutta ste f s mu einingu. Til ess notum vi einingaa ger ina trun. A ger s er t knu me stafnum!. Vi getum mynda n ja einingarskr IFIBO.EIN me eftirfarandi forritstexta: "ifibo" =! "fibo" 11

12 12 KAFLI 2. EININGAR f f <= - + f <= - + Mynd 2.1: Einf ld trun S eining inniheldur endurkv mt stef f, og v sar (ytur inn) tv undarsten <=, - og +. essari a ger er l st mynd 2.1. st an fyrir v a vi notum sl ka a ger Fj lni, sta ess a hafa a sj lfge a stef s u endurkv m, er s a vi viljum gefa allar tengingar undir stj rn forritarans. Me trun og rum einingaa ger um m tengja einingar saman allan hugsanlegan h tt. A rar nau synlegar einingaa ger ir heita hli setning, samsetning og innutningur. Hli setning er notu til a steypa saman tveim einingum n ess a tengja nokku. Samsetning og innutningur tengja eina einingu ofan a ra, eil ti mismunandi h tt. Vi munum s ar sj n kv mlega hvernig essar a ger ir vinna.

13 Kai 3 Seg ir, stef og a ger ir Vi h fum n r tt fengi nasasj n af einingaa ger um eim sem Fj lnir b ur upp. Vi skulum n sj hva a seg ir Fj lnir b ur upp. Seg (e. expression) er form la e a v uml kt sem skilar gildi egar reikna er r henni. m rgum forritunarm lum eru nota ar b i seg ir og setningar (e. statement), ar sem setningar eru skipanir sem ekki skila gildi. Fj lni er ekki ger ur greinarmunur setningu og seg. Allar seg ir skila einhverju gildi. 3.1 T lur og star T lur Fj lni eru mist fj ldat lur, heilt lur e a eytit lur. Star eru t kna ir me einum staf me einf ldum g sal ppum utan um, til d mis 'a'. Reyndar eru star jafngildir t lum. Til d mis er stafurinn 'a' jafngildur t lunni 97 vegna ess a 'a' er stafur 97 ASCII t knr nu. Fj ldat lur hafa gildi fr 0 til Heilt lur hafa gildi fr til Fleytit lur hafa gildi fr 1:11 10 ;308 til 1: , um a bil. N kv mar tilteki er eytitala Fj lnisforriti anna hvort n ll e a hana m skrifa sem (;1) f (1 + n 2 17 ) 2 k, ar sem n er milli 0 og 65535, k er milli og 1023 og f er0e a T magildi Eitt gildi hefur nokkra s rst u Fj lnisforritum. a er kalla t magildi e a satt. Gildi etta er m.a. nota sem sanngildi satt en ll nnur gildi eru l tin standa fyrir sanngildi satt. Sanngildi eru notu msum seg um til a st ra treikningum. forritum er t kni [] l ti standa fyrir t magildi. T magildi er ekki tala. Talan 0 hefur v sanngildi satt. 3.3 Textastrengir Strengir eru t kna ir me runu af st fum me tv f ldum g sal ppum utan um, til d mis "d mi um streng" e a "". Strengir sem felldir eru inn forritstextann, eins og seg inni x := "abc" eru fylki af b tum, og inniheldur fyrsta b ti (b ti s ti n ll) lengd ess texta sem strengurinn inniheldur. Varast ber a breyta sl kum strengjum, heldur taka fyrst afrit af strengnum til ess a breyta ekki strengfastanum. Hafa skal huga a stafur 'd' er ekki a sama og strengur "d". grunneiningunni GRUNNUR sem est forrit nota eru m.a. stef til a me h ndla strengi. Eftirfarandi strengjastef eru grunninum: 13

14 14 KAFLI 3. SEG IR, STEF OG A GER IR strengur Einundarstef sem b r til streng af tiltekinni l gmarksst r. Vi fangi er tala og strengurinn sem skila er, er a.m.k. af eirri st r. H marksst r strengja getur veri mismunandi eftir v hva a grunneining er notu, en er a.m.k b ti (4K). strengsetjab ti Stef til a setja tiltekna t lu tilteki s ti (b ti) tilteknum streng. Ef breytan x inniheldur streng af l gmarksst r 12 veldur seg in strengsetjab ti( x,11,'a') v a stafurinn 'a' er settur s ti 11 strengnum x. strengs kjab ti Tv undarstef til a s kja b ti r tilteknu s ti tilteknum streng. Ef x er strengur af l gmarksst r 30 veldur seg in y := x \strengs kjab ti 29 v a breytan y f r t lugildi sem er b ti s ti 29 strengnum x. strengsetjaor Stef sem setur tilteki or (tv b ti) tiltekinn sta tilteknum streng. Ef x er strengur af l gmarksst r 13 veldur seg in strengsetjaor ( x,11,257) v a talan 257 er sett strenginn x s ti 11 og 12. strengs kjaor Tv undarstef sem s kir or (t lu) r streng. Ef x er strengur af l gmarksst r 10 skilar seg in x \strengs kjaor 8 or i v sem geymt er s tum 8 og 9 x. erstrengur Einundarstef sem segir til um hvort vi fangi er strengur. Til d mis skilar seg in \erstrengur "abc" sanngildinu satt (.e.a.s. ekki t magildinu) en seg in \erstrengur 12 skilar satt (t magildinu). strengst r Einundarstef sem tekur streng sem vi fang og skilar st r hans. St r strengja er reyndar vallt eitthvert veldi af tveimur. Til d mis skilar seg in \strengst r "abcd" t lunni 8 (eitt b ti er nota fyrir lengdina r r, fj gur b ti eru fyrir stana a,b,c og d, og rj b ti eru notu. 3.4 Hlunkar Fj lni eru gildi sem kallast hlunkar. Hlunkar essir eru fylki af rum gildum. Hlunkar eru til af mismunandi st r um, allt fr v a innihalda einungis eitt gildi upp a innihalda 1024 mismunandi gildi. Einingin GRUNNUR inniheldur stef til a b a til n ja hlunka, setja tilteki gildi tilteki s ti tilteknum hlunk, og s kja gildi r tilteknu s ti tilteknum hlunk. Ein tegund hlunka er s rlega mikilv g, en a er hlunkur me tveim s tum. S rst k stef eru grunninum til a me h ndla sl ka hlunka vegna ess hve miki sl kir hlunkar eru nota ir. Sl kir hlunkar eru kalla ir p r.

15 3.4. HLUNKAR 15 Almenn stef grunninum til a me h ndla hlunka. hlunkur Einundarstef sem b r til n jan hlunk. Vi fangi er st r hlunksins, og ll s tin n ja hlunknum hafa t magildi sem upphafsgildi. Seg in x := \hlunkur 10 veldur v a breytan x inniheldur hlunk af l gmarksst r 10. S tin hlunknum eru n meru fr 0 til 9. hlunksetja Stef til a setja gildi tilteki s ti hlunk. Ef x er hlunkur af st r a.m.k. 31 veldur seg in hlunksetja( x,30,[1,2,3]) v a s ti 30 x inniheldur listann [1,2,3]. Ste hlunksetja skilar ekki neinu s rst ku gildi. hlunks kja Tv undarstef til a s kja gildi r tilteknu s ti hlunk. Ef x er hlunkur af l gmarksst r 13 veldur seg in y := x \hlunks kja 12 v a breytan y f r gildi s ti 12 hlunknum x. hlunkst r Einundarstef sem skilar st r hlunks. Ef x er hlunkur af st r 64 veldur seg in y := \hlunkst r x v a breytan y f r gildi 64. Reyndar er st r allra hlunka eitthvert veldi af tveim. egar hlunkur af tiltekinni l gmarksst r er b inn til, er st r in kv r u sem minnsta veldi af tveim sem fulln gir l gmarksskilyr inu. erhlunkur Einundarstef sem segir til um hvort vi fangi er hlunkur. Til d mis skilar seg irnar og \erhlunkur 1 \erhlunkur "me alst r strengur" b ar satt (.e.a.s. t magildinu), en seg in \erhlunkur \hlunkur 10 skilar satt (ekki t magildinu). Stef til a me h ndla p r. haus Einundarstef sem tekur par sem vi fang og skilar gildi v sem geymt er s ti 0 parinu. Gildi s ti 0 tilteknu pari k llum vi haus parsins. hali Einundarstef sem tekur par sem vi fang og skilar gildi v sem geymt er s ti 1 parinu. Gildi s ti 1 tilteknu pari k llum vi hala parsins. : Tv undarstef til a b a til par. Vi f ngin tv ver a haus og hali parsins. Til d mis skilar seg in 1:[2,3] listanum [1,2,3].

16 16 KAFLI 3. SEG IR, STEF OG A GER IR erpar Einundarstef sem segir til um hvort vi fangi er par. Til d mis skila seg irnar og \erpar 1 \erpar "me alst r strengur" b ar satt (.e.a.s. t magildinu), en seg irnar og \erpar [1,2] \erpar \hlunkur 2 skila satt (ekki t magildinu). L sa m innbyr is samhengi stefjanna haus, haus og : me eftirfarandi j fnum: \haus (x:y) = x \hali (x:y) = y Eftirfarandi eining inniheldur ste lengd, sem skilar lengd vi fangsins, sem ver ur a vera eiginlegur listi:!{ lengd -> stef( x) stofn ef x \st kka \lengd \hali x, annars 0, eflok, stofnlok } 3.5 Breytur Stef Fj lni geta innihaldi sta v rar breytur, sem einungis eru til sta ar me an stef a sem inniheldur r er framkv md. hvert skipti sem han er framkv md stefs eru b nar til n jar tg fur af essum sta bundnu breytum, og eim er llum ge t magildi sem upphafsgildi nema anna s teki fram. V sa m breytur til a nota gildi eirra, og breytum m gefa gildi me gildisveitingarseg, til d mis veldur seg in x:=x+1 v a breytan x er st kku um einn (vi gerum r fyrir a tv undarste + s tengd okkar venjulega samlagningarste fj ldat lur). Einnig m breyta gildum breyta me stefk llum, eins og vi munum sj seinna. Einingar geta einnig innihaldi v v rar (e. global e a external) haldgildar (e. static) breytur. Breytur essar halda s nu gildi milli kalla stef einingunni og taka tt llum einingaa ger um. Tilv sun sl ka breytu er a eins l gleg ef breytan hefur veri skilgreind sem innutt haus stefsins. Tilv sunina ver ur a tengja tuttri breytu r einhverri einingu. Einingin

17 3.6. R KSEG IR 17 { x -> breyta } ytur t breytu x. Allar v v rar breytur innihalda t magildi vi upphaf keyrslu forritsins. Me einingaa ger unum m tengja v v rar breytur og sm a einingar sem innihalda faldar breytur, sem notandi einingarinnar hefur ekki a gang a, en halda s nu gildi milli kalla. Eftirfarandi eining inniheldur ste slembi sem skilar n rri slembit lu hverju kalli. Breytan s i er falin innan einingarinnar og notendur einingarinnar hafa ekki a gang a henni. "slembi" = { slembi -> stef( ) innflutt s i stofn ef s i s i:=s i * , annars s i:=12345, eflok, stofnlok } * { s i -> breyta } 3.6 R kseg ir Fj lnir b ur upp r ka ger irnar ekki, og og e a. essar a ger ir eru a tvennu leyti fr brug nar stefjum Fj lni. fyrsta lagi er skilgreining eirra f st, ar e r eru ekki uttar inn r einingar sem nota r, og einingar geta ekki utt essar a ger ir t. ru lagi eru tv undarr ka ger irnar og og e a b nar eim eiginleika a r athuga fyrst gildi vinstra vi fangsins, og gildi h gra vi fangsins er ekki reikna nema nau syn beri til. Seg in ekki S skilar t magildinu og v a eins a S skili ekki t magildinu. A ru leyti er tkoman ekki skilgreind, og skal v einungis nota hana sem r kgildi. Seg in S 1 og S 2 og :::og S n reiknar gildi seg anna S 1 til S n r ar til ein eirra skilar t magildinu. Ef engin eirra skilar t magildinu skilar seg in gildinu sem S n skila i. Ef S i er fyrsta seg in rununni sem skilar t magildinu skilar runan t magildinu og ekki er reikna r seg unum S i+1 til S n. Svipa gildir um seg ina S 1 e a S 2 e a :::e a S n H n reiknar gildi seg anna S 1 til S n r ar til ein eirra skilar ru en t magildinu. Ef allar eirra skila t magildinu skilar seg in t magildinu. Ef S i er fyrsta seg in rununni sem skilar ekki t magildinu skilar runan v gildi og ekki er reikna r seg unum Si +1 til S n.r ka ger irnar hafa l gsta forgang af llum a ger um, og innbyr is forgangur eirra er sl kur a ekki er framkv md fyrst, s an og, og a lokum e a. Sem d mi um notkun essara a ger a m taka seg ina x=0 og villa( "deilt me n lli") e a y/x essari seg er fyrst athuga hvort x=0. Ef svo er erseg in villa( "deilt me n lli") framkv md, sem v ntanlega veldur v a forriti st vast. A rum kosti er seg in y/x reiknu og gildi hennar skila sem gildi allrar seg arinnar.

18 18 KAFLI 3. SEG IR, STEF OG A GER IR 3.7 Ef seg in D mi um ef seg ina g ti liti annig t: ef x<10 1 annarsef x<100 2 annars 3 eflok essi ef seg er framkv md eftirfarandi h tt: Fyrst er n gildi breytunni x. S an er tv undarstenu < beitt a gildi og t luna 10. t r eirri beitingu f um vi eitthvert gildi. Ef a gildi er satt (.e.a.s. ekki t magildi ) skilar ef seg in t lunni 1. Ef gildi er t magildi er n sti m guleiki reikna ur, og gildi breytunnar x er borinn saman vi t luna 100. r eim samanbur i (e a stefbeitingu) f um vi aftur gildi sem anna hvort er satt (ekki t magildi ) e a satt (t magildi ). Ef gildi er satt skilar ef seg in t lunni 2, annars skilar h n t lunni 3. Almennt geta ef seg ir innihaldi takmarka an fj lda af annarsef hlutum, og annars hlutinn m vera til sta ar en arf ekki a vera til sta ar. Ef seg in skilar vallt gildi s ustu reikna rar seg ar. Til d mis skilar seg in ef 1>2 1 eflok t magildinu, og seg in ef 2>1 eflok skilar einnig t magildinu. 3.8 A ger arseg ir Fj lni m beita eim stefjum sem a ger um sem einungis hafa inntaksvi f ng. Einundara ger um er beitt me v a setja r framan vi seg ir r sem beita skal eim. Til d mis eru og - x \ekki x tv r l glegar seg ir me einundarstefjum - og ekki. A ger an fn eru mist t knu me stafnum \ framan vi stafarunu (sj n nar kaanum um m lfr i Fj lnis) e a runu fr tekinna a ger arstafa. L gleg a ger an fn eru til d mis +, -, \haus, +++, <<, \hali, \pl s, \+summa og <=>. l gleg a ger an fn eru til d mis +summa og pl s. Tv undara ger um m beita me v a setja r milli eirra seg a sem beita skal eim. Til d mis eru og x+y x \m d lus y l glegar seg ir me tv undarstefjum + og m d lus. Gildi vi fanga a ger ar eru reiknu fr vinstri til h gri. A ger arn fnum m beita eins og stefn fnum, til d mis er seg in +( 1,2) jafngild seg inni 1+2

19 3.8. A GER ARSEG IR 19 Forgangur Fyrsti stafur a ger arnafns 7 *, / e a % 6 + e a - 5 <, > e a = 4 3 & 2 : 1 allir a rir star Taa 3.1: Forgangur a ger a Tv undara ger ir hafa mismunandi forgang, og er forgangi a ger a thluta eftir v hva a staf nafn eirra hefst, eins og s nt er t u 3.1. Fj lnis andinn mun sj til ess a a ger ir me h rri forgangi s u framkv mdar undan a ger um me l gri, nema svigar st ri r inni n nar. Einundara ger ir hafa h rri forgang en tv undara ger ir. Seg irnar og \m nus x < y & y < z ((\m nus x) < (y & y)) < z eru v jafngildar. Athugi a r ka ger irnar e a, og og ekki hafa minni forgang en allar a rar a ger ir. Seg in ekki x<y og y<z vinnur v eins og vi eigum a venjast, h n er jafngild seg inni (ekki (x<y)) og (y<z) Tv undara ger ir tengjast til vinstri, fyrir utan a ger ir sem hafa n fn sem byrja t kninu :, en r tengjast til h gri. Seg in er v jafngild seg inni (1+2)+3 en seg in 1:2:[] er jafngild seg inni 1:(2:[]) Skilgreina m n jar a ger ir sama h tt og nnur stef eru skilgreind. Til d mis m tti skilgreina veldisupphafningu eftirfarandi h tt: "veldi" =! { ^ -> stef( x,n)

20 20 KAFLI 3. SEG IR, STEF OG A GER IR stofn ef n=0 1, annarsef n%2=1 x*((x*x)^(n/2)), annars ef n%2=0 (x*x)^(n/2), eflok, stofnlok } essa a ger m kalla seg svo sem 2^10, sem v ntanlega skilar gildinu etta er hra virk a fer til veldishafningar fj ldat luveldi. 3.9 Fylkjaseg ir Fj lnir b ur upp seg ir svo sem og f[i] := f[i] + 1, x := f[k] + 2, til a au velda notkun g gnum sem heg a s r eins og fylki. Mikilv gt er a gera s r grein fyrir v a fylki Fj lni eru alls ekki eins fastm tu a merkingu og almennt gerist forritunarm lum. Almennt er gildisveiting Fj lni forminu f[i]:=g n kv mlega jafngild stefkallinu fylkissetja1( f,i,g) og fylkisseg forminu f[i] er n kv mlega jafngild seg inni fylkiss kja1( f,i) a er byrg notandans a essi undirforrit (fylkissetja1 og fylkiss kja1) s u h nnu ann veg a f hagi s r sem fylki e a taa. Almennt kemur v dd fylkjanna fram n fnum eirra stefja og a ger a sem notu eru til a setja gildi fylki og s kja gildi r fylki. Seg in f[i1,...,in] er v jafngild seg inni og seg in fylkiss kjan( f,i1,...,in) f[i1,...,in]:=g er jafngild seg inni

21 3.10. VALSEG IN 21 fylkissetjan( f,i1,...,in,g) Sem d mi um notkun fylkjaseg a m tti tengja grunninn me tengingunum { fylkiss kja1 -> strengs kjab ti fylkissetja1 -> strengsetjab ti } og m tti nota seg ina s[10] til a v sa b ti 10 strengnum s, og s[1]:='a' til a setja stann 'a' b ts ti 1 strengnum. einingunni GRUNNUR eru fylkiss kja1 og fylkissetja1 tengdar stefjum sem vinna eins og strengsetjab ti, hlunksetja, strengs kjab ti og hlunks kja, eftir atvikum. v m nota seg ina h[10] til a v sa gildi 10 hlunknum h, og seg ina s[10] til a s kja b tgildi s ti 10 strengnum s. Einnig eru tilt kar einingar til a me h ndla almennari fylki, til d mis strj l fylki, og notandinn getur a sj lfs g u hanna s n eigin fylki. Fylki sem innihalda fylki m nota sem fj lv fylki. Til d mis er seg in f[i][j]:=10, fullkomlega l gleg seg sem er jafngild seg inni e a fylkissetja1( f[i],j,10) fylkissetja1( fylkiss kja1( f,i),j,10) 3.10 Valseg in Fj lnir b ur upp valseg sem l kist case, select e a switch-setningum rum forritunarm lum. valseg inni er eitt fj ldat lugildi nota til velja einhvern valkost r endanlegum fj lda kosta. D mi um valseg ina er val i%15 r kostur 0 skrifastreng( "talan 15 gengur upp i"), 2, kostur 5,10 skrifastreng( "talan 5 gengur upp i"), 1, kostur 3,6,9,12 skrifastreng( "talan 3 gengur upp i"), 1, annars skrifastreng( "hvorki 5 n 3 ganga upp i"), 0, vallok Eins og allar a rar seg ir Fj lni skilar valseg in gildi. Gildi sem valseg in skilar er gildi s ustu seg ar sem reiknu er innan valseg arinnar. d minu a ofan skilar seg in v fj lda eirra pr mtalna sem gengi hefur veri r skugga um a gangi upp i. Ekki er nau synlegt a hafa annars-hluta valseg inni. S annars-hlutanum sleppt jafngildir a v a annars-hlutinn s annars [] Kostirnir sem taldir eru upp valseg inni mega einungis innihalda fj ldat lufasta og staasta. Setja m kosti forminu a..b sem jafngilda upptalningunni a,a+1,...,b. Til d mis

22 22 KAFLI 3. SEG IR, STEF OG A GER IR val s r kostur '0'..'9' skrifastreng( "t lustafur"), kostur 'a'..'z','a'..'z', skrifastreng( "b kstafur"), vallok 3.11 Lykkjuseg ir og tseg in Fj lnir b ur upp rj r ger ir af lykkjuseg um. D mi um lykkjuseg ir eru: og og me an x>1 lykkja l gari mi:=l gari mi+1, x:=x/2, lykkjulok fyrir( i:=1 i<10 i:=i+1) lykkja skrifat lu( i), skrifastreng( " ru veldi er "), skrifat lu( i*i), n l na( ), lykkjulok lykkja x:=lesat lu( ), ef x=0 t eflok, y:=y+x, lykkjulok Me an lykkjan vinnur annig a byrjun hverrar umfer ar er reikna t r skilyr inu, sem t kna er me seg arunu milli lykilor anna me an og lykkja. Ef tkoman r eim reikningi er s nn (ekki t magildi ) er reikna r seg unum milli lykkja og lykkjulok, einni af annarri, og s an byrja n tt. Fyrir seg in vinnur l kt og for setning C forritunarm linu. Seg in fyrir(a B C) lykkja D, lykkjulok vinnur svipa og seg arunan A, me an B lykkja D, C, lykkjulok fyrir utan a a t-seg ir seg arununum A, B og C eru ekki tengdar essari lykkju, heldur ytri lykkju, ef einhver er. ri ja ger in af lykkjuseg er endanleg lykkja. Til a lj ka framkv md endanlegrar lykkjuseg ar m framkv ma tseg inni henni. egar tseg er framkv md veldur h n v a framkv md lykkjunnar er loki og lykkjan skilar s nu gildi, sem er alltaf hi sama fyrir allar tegundir lykkjuseg ar,.e.a.s. t magildi.

23 3.12. LISTASEG IR 23 Einnig m a sj lfs g u lj ka lykju me v a framkv ma skilaseg e a einfaldlega h tta keyrslu forritsins me v a kalla st riker vi eigandi h tt (t.d. ste h tta einingunni GRUNNUR). Me an lykkju m breyta jafngilda endanlega lykkju. Me an lykkjan me an A lykkja B, lykkjulok er jafngild lykkjunni lykkja ef A [], gerir ekkert annars t, stekkur t r lykkjunni eflok, B, lykkjulok nema a hli st tt gildir um t-seg ir seg arununni A og gilti fyrir-lykkjunni Listaseg ir Seg ir eins og [1,a,x+1] eru kalla ar listaseg ir. Seg essi er jafngild seg inni 1:a:(x+1):[] Almennt er seg in [A,B,...,F] jafngild seg inni A:B:...:F:[] Merking sl kra seg a er v h merkingu a ger arinnar :, nema a seg in [] hefur fasta merkingu, h n skilar alltaf t magildinu Stefk ll, stef og skilaseg in Samkv mt m lfr i Fj lnis (sj m lrit kaanum um m lfr i) l ta stefskilgreiningar svona t: nafn -> stef(runa_af_n fnum runa_af_n fnum) breytuskilgreiningar stofn runa_af_seg um stofnlok Til d mis: st rstisameiginlegideilir -> stef(n x,y) sta v r t stofn

24 24 KAFLI 3. SEG IR, STEF OG A GER IR n:=1, lykkja ef x=0 t, eflok, n:=n+1, t:=y%x, y:=x, x:=t, lykkjulok, skila y, stofnlok Ste st rstisameiginlegideilir a ofan tekur rj vi f ng, n, x og y. Vi fangi n er inn tvi fang. a ir a egar kalla er ste m setja breytu fyrir leppinn n kallseg inni, og s breyta f r ef til vill n tt gildi vi kalli. Hin vi f ngin, x og y, eru gildisvi f ng. kalli m setja gildi fyrir leppana x og y. Ste a ofan m kalla seg, til d mis d:=st rstisameiginlegideilir(k 100,125) Sl k seg veldur v a gildin 100 og 125 eru sett breyturnar x og y stofni stefsins, og breytan n stofni stefsins f r gildi breytunnar k kallseg inni. Ste er s an framkv mt og skilar a lokum s nu gildi sem sett er breytuna d. En breytan k f r einnig gildi a sem breytan n stenu haf i vi lok framkv mdar stefsins. Kalla fer in byggist v v a senda gildi fram og til baka millikallseg ar og stefs sem kalla er. L tum anna d mi. Ef kalla er ste f -> stef(x,y a,b) stofn x:=a, y:=b, stofnlok me kallinu f(z,z 1,2) f r breytan z gildi 2 vegna ess a afritunin af gildunum fer fram fr vinstri til h gri. Ef engin skilaseg er framkv md stenu semkalla er, skilar kalli gildi s ustu seg ar sem reikna er r kallstenu. Seg in skila y fyrra d minu a ofan hef i v eins geta veri einfaldlega y. Ef seg in skila 10 er framkv md veldur h n v a inningu stefs er h tt, og t lunni 10 er skila til kallseg ar sem gildi r kallinu. Almennt veldur skila S ar sem S er einhver seg v a reikna er gildi seg inni S, og gildi v er skila til baka kallseg ina. egar v sa er stef kalli kallast a innutningur vi komandi ste ar e tilv sunina arf einhvern t ma a tengja tuttu ste einhverri einingu. nnur a fer til a kalla stef er s a geyma ste breytu og kalla a seinna. Til a geyma stef f breytu x notum vi gildisveitingu eins og eftirfarandi:

25 3.13. STEFK LL, STEF OG SKILASEG IN 25 x := stef f(1,2) seg in stef f(1 2) v sar ste f, sem ver ur a vera stef me einu inn tvi fangi og tveimur innvi f ngum. Almennt getum vi sm a svokalla stefgildi me seg sni inu stef <stefnafn>(<inn tfj ldi> <innfj ldi>) Seinna m kalla ste me seg sni inu <nafn breytu>(<inn tvi f ng> <innvi f ng>) ar sem breytan inniheldur vi komandi stefgildi.

26 26 KAFLI 3. SEG IR, STEF OG A GER IR

27 Kai 4 Einfalt d mi Eftirfarandi forrit les inn fj ldat lu, beitir Fibonacci fallinu hana, og prentar tkomuna. "forrit" < a alstef { a alstef -> stef( ) sta v r n,m stofn n:=lesa( ), m:=f( n), skrifa( m) stofnlok } *! { f -> stef( n) stofn ef n<=2 1 annars f( n-1)+f( n-2) eflok stofnlok } * "grunnur" essu forriti eru nota ar rj r einingar. Fyrsta einingin inniheldur ste a alstef sem er stef a sem framkv mt er egar forriti er keyrt. N sta eining inniheldur ste f, og einingu er beitt trunara ger inni til ess a tengja endurkv mar tilv sanir f. Innutningsa ger inni er s an beitt til a tengja ste f vi tilv sunina a alstenu. t r eirri a ger f um vi einingu sem inniheldur a alstef, og v sar sten lesa, skrifa, +, - og <=. Mynd 4.1 l sir tengingum essum. Einingin GRUNNUR er loks utt inn, en h n skilgreinir mis grunnstef svo sem lesa, skrifa, +, - og <=. ar me h fum vi einingu sem inniheldur a alstef, og v sar ekki neitt. essa einingu skrifum vi sem forrit 27

28 28 KAFLI 4. EINFALT D MI aal lesa skrifa fibo fibo <= - + fibo lesa skrifa <= GRUNNUR Mynd 4.1: Fibonacci forrit skr na FORRIT.EXE. Keyrsla essa forrits felst v a framkv ma a alstef einu sinni. Forriti a ofan s nir notkun innutningi og trun. trun er eina einingaa ger in sem beitt er staka einingu, og hrif hennar eru a tengja innutt atri i (stef e a breytur) vi tutt atri i af sama nafni. tkoman er v eining sem inniheldur s mu n fn og upphaega einingin, en v sar a eins au n fn sem ekki eru til einingunni. Innutningur tengir tutning r seinni einingunni vi innutning eirri fyrri, og einingin sem t kemur inniheldur s mu n fn og fyrri einingin, og v sar ll n fn sem v sa er r seinni einingunni og au sem v sa er r eirri fyrri og ekki eru til eirri seinni. Vi munum sj n nari skilgreiningu essum a ger um h r eftir.

29 Kai 5 Einingaa ger ir Fj lnir b ur upp mm einingaa ger ir. Ein eirra, trun, er einundara ger. H n er t knu me a ger arstafnum!. Hinar eru tv undara ger ir, kalla ar innutningur, samsetning, hli setning og trunarhli setning. r eru t kna ar me a ger arst funum *, :, + og &. Tv undara ger irnar eru framkv mdar fr vinstri til h gri, t.d. gildir jafnan A * B * C = ( A * B ) * C fyrir allar einingar A, B og C. Forgangur tv undara ger anna er sl kur a fyrst er innutningur (t kna ur me *) framkv mdur, s an samsetning (t knu me :), s an hli setning (t knu me +) og loks trunarhli setning (t knu me &). Einundara ger in trun hefur h sta forgang. eftirfarandi k um er a ger um essum l st. 5.1 trun hugum einingu "A" sem skilgreind er me eftirfarandi forritstexta: "A" = { x -> y y -> stef( a,b) stofn y( 1,2), w(a,b 3), stofnlok z -> stef( a,b) stofn y( 3,1), w(b,a 4), stofnlok } Eining essi inniheldur n fnin x,y og z. H n v sar y og w. Mynd 5.1 l sir tengingum sem ger ar eru vi trun essarar einingar. Einingin!"A" inniheldur v atri in x, y og z, og v sar atri i w. tutningarnir x og y eru reyndar sama ste. L tum n knara d mi. L tum eininguna "B" vera skilgreinda me : "B" = { 29

30 30 KAFLI 5. EININGAA GER IR x y z y w x y z w Mynd 5.1: Einfalt d mi um trun z y x w r y x z y x r w z y x r w z y x r w z y x w r y x Mynd 5.2: tarlegt d mi um trun

31 5.2. INNFLUTNINGUR 31 r -> x x -> y y -> stef(a,b c) stofn w(a 1,2), y(b,a 2), stofnlok z -> stef( a) stofn skila a stofnlok } trun einingarinnar "B" m l sa me mynd 5.2. Einingin!"B" inniheldur sten r,x,y og z, og v sar ste w. tutningarnir r,x og y eru sama stef. 5.2 Innutningur egar einingara ger in innutningur er framkv md tengjast innutningar og tutningar n kv mlega sama h tt og samsetningu. Munurinn essum a ger um er s a n fn au sem einingin A*B inniheldur eru n kv mlega au s mu og einingin A inniheldur. Mynd 5.3 l sir essu. 5.3 Samsetning L tum n einingara ger ina samsetning. Mynd 5.4 l sir tengingum eim sem framkv mdar eru egar unni er r samsetningunni A : B. Einingin A (efsta einingin til vinstri teikningunni) inniheldur x,y og z, og v sar p og w. Einingin B inniheldur q,p,s og w, og v sar r,w og t. Samsetta einingin A:B (ne st myndinni) inniheldur allt a sem anna hvort A e a B innihalda. einingunni A:B er b i a tengja tilv sanir r A vi innihald B. rvarnar milli t-anna, p-anna og w-anna vinstri hluta teikningarinnar s na essar tengingar. 5.4 Hli setning Mynd 5.5 l sir hli setningu tveggja eininga, A og B. Einingin A (lengst til vinstri myndinni) inniheldur x,y og z, og v sar r og w. Einingin B inniheldur p, q, r og s og v sar s, t og w. Einingin A+B f st me v a skella einingunum saman n ess a tengja nokku. 5.5 trunarhli setning S einingara ger sem sennilega er au veldust notkun eim sem forrita hafa rum forritunarm lum sem ekki bj a einingaforritun er trunarhli setning. H n er t knu me a ger arstafnum & og er skilgreind grundvelli trunar og hli setningar eftirfarandi h tt fyrir einingar A og B: A & B =! ( A + B ) egar einingar A og B eru trunarhli settar er v allt tengt sem unnt er a tengja, b i innan hverrar einingar fyrir sig og milli eininganna. Ef einhver skir ess a nota Fj lni svipa an h tt og forritunarm l,

32 32 KAFLI 5. EININGAA GER IR w x y z w x y z t p w x t p w t q p s w t q p s w r w t r w t x w x y z r w x t Mynd 5.3: Innutningur

33 5.5. TRUNARHLI SETNING 33 p t x w x z y w q s p r t w t w q s p t r x w t w z y x t q s p p t x w x z y w q s p r t w t w Mynd 5.4: Samsetning

34 34 KAFLI 5. EININGAA GER IR x y z p q r s r w s t w x p y z q r s s r t w Mynd 5.5: Hli setning

35 5.5. TRUNARHLI SETNING 35 eins og t.d. C, sem ekki gefa kost knum tengingum milli eininga getur hann skrifa s n forrit eftirfarandi sni i: "FORRIT" < a al { a al -> stef( ) stofn... stofnlok... } & "GRUNNUR" egar skr sem inniheldur texta eins og a ofan er dd er sm u ein keyrsluh f skr, FORRIT.EXE. Forriti er sm a me v a tengja saman textaeininguna og eininguna GRUNNUR. essi a fer gengur a sj lfs g u ekki ef einingarnar innihalda stef me sama nafni. ver ur a nota a rar einingaa ger ir til a tengja. Til ess a losna vi a a allt aftur egar breytingar eru ger ar m skipta forritinu a ofan upp einingar. m hafa nokkrar skr r eftirfarandi sni i: "EININGi" = {... } egar skr sem inniheldur texta eins og a ofan er dd er sm u ein einingarskr, EININGi.EIN. Loks m a eina skr eftirfarandi sni i til a tengja allt saman og sm a forriti : "FORRIT" < a al { a al -> stef( ) stofn... stofnlok } & "EINING1" &... & "EININGn" & "GRUNNUR" egar essi skr er dd eru allar einingarnar tengdar saman og keyrsluskr in FORRIT.EXE er skrifu.

36 36 KAFLI 5. EININGAA GER IR

37 Kai 6 Veitingar Forritstexti Fj lni er runa af veitingum. Hver veiting sm ar eina einingu e a eitt forrit. Veitingar eru v tvenns konar, forritsveitingar og einingaveitingar. Forritsveitingar eru eftirfarandi sni i: nafn_keyrsluskr r < nafn_a alstefs eining egar Fj lnis andinn vinnur r forritsveitingu byrjar hann a vinna r einingunni. Einingin ver ur a innihalda stef sem heitir nafn_a alstefs og a stef m ekki taka nein vi f ng. Einingin m ekki v sa nein stef e a breytur. er skrifu skr disk sem heitir nafn_keyrsluskr r.exe. S skr inniheldur keyrsluh ft forrit. Keyrsla essa forrits felst v a keyra ste nafn_a alstefs einu sinni. Einingaveitingar eru af ru hvoru eftirfarandi sni a: nafn_einingarskr r = eining nafn_einingarbreytu = eining fyrra tilfellinu er eining sm u og geymd skr diski. v seinna er eining sm u og geymd svokalla ri einingarbreytu sem b in er til fyrsta skipti sem v sa er hana. Einingarbreyta essi er a eins til sta ar me an ing essi fer fram, a henni lokinni er einingin gl tu. me an essari ingu stendur m v sa essa einingarbreytu me nafni, eins oft og ver a vill, til ess a nota einingu sem sm u var. 37

38 38 KAFLI 6. VEITINGAR

39 Kai 7 Notkun Fj lnis Fj lni eru andi og tengir sama forriti. Til a a forritstexta skr m x1.fjo, x2.fjo, o.s.frv. er notu skipunarunan C:\>FJ LNIR x1 C:\>FJ LNIR x2... e a skipunin C:\>FJ LNIR x1 x2... Skr r sem innihalda forritstexta ttu v a hafa vi urnefni.fjo. Skr r sem innihalda ddar einingar hafa vi urnefni.ein. eim eru geymdar uppl singar sem gerir Fj lni kleyft a villupr fa tengingar r sem ger ar eru og skrifa villubo ef rangar tengingar eru ger ar (til d mis er rangt a tengja kall stef sem taka skal eitt vi fang vi stef sem tekur tv vi f ng). andinn var a llu leyti skrifa ur Fj lni og smalam li. a er v h tt a fullyr a a nota megi Fj lni til a leysa verulega st r verkefni. egar andinn er keyr ur skrifar hann skj inn v sbendingar um framvindu ingarinnar. Ef ekki er ska eftir sl kum tskriftum, e a ska er n nari uppl singa, m gefa andanum fyrirm li um sl kt me rofum. Einnig er ro sem st rir notkun minnis hla a. r r rofar eru tilt kir notendum Fj lnis: E Veldur v a Fj lnir keyrir n ess a skrifa skj. T Veldur v a Fj lnir birtir v sbendingar um tengingar r sem ger ar eru egar einingara ger ir eru framkv mdar. Mx St rir v hversu miki minni er nota hla a EXE skr sem Fj lnir skrifar. Stafurinn x skal vera t lustafur sext ndaker, 0..9 e a A..F. Starnir A..F standa fyrir t lurnar eins og kunnugt er. St r minnissv isins sem nota er undir hla a er kvar a af form lunni 4096*(x+1). Ef enginn M ro er nota ur jafngildir a rofa MF,.e.a.s. notu ver a 64K undir hla a. Yrleitt arf ekki meira en 4K (4096 b ti) hla a, en ef forriti notar dj pa endurkv mni arf meiri hla a. Rofana m mist gefa skipanal nu egar Fj lnir er keyr ur e a setja m rofana umhversbreytu MS-DOS. Til a gera andann hlj l tan er t.d. notu skipun forminu FJ LNIR/E x1 x2... Svipa a a fer m nota til a l ta andann ver a hlj l tan a sta aldri. Til ess n gir a gefa MS-DOS skipunina SET FJROFAR=E 39

40 40 KAFLI 7. NOTKUN FJ LNIS Skilgreina m leitarsl ir fyrir tilv sanir einingaskr r texta eim sem ddur er. Til ess er notu MS-DOS skipun forminu SET FJLEIT=<lei >1... <lei >n Skipun essi veldur v a leita er a einingaskr m sem ekki nnast, efnisskr m (e. directory) <lei >1 til <lei >n. T.d. ef einingar eru vallt geymdar efnisskr nni C:\EIN m gefa skipunina: SET FJLEIT=C:\EIN og m v sa essar einingar n ess a urfa a skeyta C:\\EIN\\ framan n fn eirra.

41 Kai 8 M lfr i Fj lnis 8.1 Athugasemdir forritstexta forritsl nu m setja athugasemd me v a hefja hana. andinn mun hlaupa yr afganginn af eirri l nu, fr til l nuloka. Til d mis er l nan me an x e a y lykkja finnum n sta pr mt lu tt jafngild l nunni me an x e a y lykkja 8.2 Frumeiningar m lsins Forrit Fj lni eru bygg r eftirt ldum frumeiningum: Lykilor og n fn a ger ir og fr tekin t kn Lesfastar Lykilor eru eftirfarandi: annars annarsef breyta e a eok ef ekki fyrir innutt kostur 41

42 42 KAFLI 8. M LFR I FJ LNIS lykkja lykkjulok me an og skila sta v r stef stofn stofnlok r t val vallok Fj lni er ger ur greinarmunur h st fum og l gst fum (st rum og litlum st fum) og lykilor in ver ur a rita me l gst fum. Fr tekin t kn eru: ( ) [ ] { } -> :=,.. milli t kna Fj lnisforriti mega vera eins margir bilstar, d lkstar (e. emphtab) og l nubil og ver a vill. Lesfastar eru af rem ger um: Fj ldat lu- og heilt lufastar Fleytit lufastar Strengfastar Fj ldat lufastar geta haft gildi bilinu 0 til Heilt lufastar geta haft gildi bilinu til Fj ldat lu- og heilt lufastar eru ferns konar: Fj ldat lufastar tugaker Heilt lufastar tugaker Fj ldat lufastar sext ndaker Staastar

43 8.2. FRUMEININGAR M LSINS 43 stafur annar en \ \ hva a stafur sem er nema $ \ $ hexstafur hexstafur staasti ' ' Mynd 8.1: Staasti fj ldatala t lustafur $ hexstafur Mynd 8.2: Fj ldatala heiltala - fj ldatala Mynd 8.3: Heiltala

44 44 KAFLI 8. M LFR I FJ LNIS Allir essir fastar eru a vissu leyti jafngildir ar e keyrslu er ekki unnt a gera greinarmun eim Fj lnisforriti. T.d. er heiltalan -1 sama og fj ldatalan 65535, og staastar eru geymdir sem fj ldatalan sem er s ti vi komandi stafs stafr nu. Myndir 8.1, 8.2 og 8.3 l sa m lfr i frumt kna Fj lnis. M lrit essi hafa ann eiginleika a ll l gleg Fj lnist kn m sm a me v a fylgja l nunum eftir, svipa og j rnbrautateinum. Fari er gegnum tvenns konar kassa, ferhyrninga og vala kassa. v lu kassarnir standa fyrir sta sem koma breyttir vi komandi forrit. Ferhyrningarnir innihalda n fn annara m leininga sem foritinu geta veri, og eru skilgreindir me eigin m lriti. T lustar eru '0' til '9'. Hexstar eru '0' til '9', 'A' til 'F' og 'a' til 'f'. Staastar eru nota ir til a rita einn ASCII staf. Rita m st rista sem staasta. eir eru rita ir svipa an h tt og strengjum eins og l st er annars sta ar essum kaa. D mi um l glega heilt lu-, fj ldat lu- og staasta: $AB12 'a' '\\' ''' '\$07' '\b' '"' D mi um l glega heilt lu-, fj ldat lu- og staasta: $G123 'ab' "a" '''' '""' M lrit eytit lufasta er s nt mynd 8.4. D mi um l glega eytit lufasta: E E123 D mi um l glega eytit lufasta:.0 1.2E M lrit strengfasta er s nt mynd 8.5. egar \ kemur fyrir inni streng er n sti stafur eftir oftast tekinn b kstaega inn strenginn. essa a fer m nota til a skrifa strengi sem innihalda " e a \. er" t kna me \" og \ er t kna me \\. Einnig er \ nota til a gera forritaranum kleift a setja algenga ASCII st rista inn strengi. Taa 8.1 s nir t knun eirra st ristafa sem unnt er a t kna me stafapari ar sem fyrri stafurinn er \:

45 8.2. FRUMEININGAR M LSINS 45 eytitala - t lustafur E e + - t lustafur. t lustafur Mynd 8.4: Fleytitala strengur " stafur annar en " og \ \ hva a stafur sem er nema $ \ $ hexstafur hexstafur " Mynd 8.5: Strengfastar

46 46 KAFLI 8. M LFR I FJ LNIS Stafapar St ristafur \c e a \C ASCII 13, CR \b e a \B ASCII 7, BEL \e e a \E ASCII 27, ESC \f e a \F ASCII 12, FF \n e a \N ASCII 10, LF \t e a \T ASCII 9, HT \0 ASCII 0 \1 ASCII 1 \2 ASCII 2 \3 ASCII 3 \4 ASCII 4 \5 ASCII 5 \6 ASCII 6 \7 ASCII 7 \8 ASCII 8 \9 ASCII 9 Taa 8.1: St ristar Einnig er unnt a rita hva a ASCII staf sem er strenginn me v a skrifa hann sni inu \$xx ar sem xx er tveggja stafa tala sext ndaker. T.d. eru \b og \$07 jafngildir star, sem og 0 og \$30. D mi um l glega strengfasta: "abc" "strengur me \" inni " "\\ heitir bakstrik" " ' " "$" "\$FF" D mi um l glega strengfasta: 'abc' " " " "\" "\$" "\$FG" Hin ri ja ger lesfasta sem t kna m Fj lni er t magildi, sem t kna er me []. T magildi stendur fyrir s rstakt gildi Fj lni, sem er jafnt llum rum gildum. N fn Fj lni eru tvenns konar: Stefn fn og breytun fn A ger an fn M ll sing a ger anafna er mynd 8.6: A ger arstar, sem nota m til a mynda a ger ir, eru eftirfarandi: + -* / %! & =? <> : M ll sing stefnafna og breytunafna er mynd 8.7. Nafnstar eru allir star a rir en eftirfarandi:

47 8.2. FRUMEININGAR M LSINS 47 a ger \ a ger arstafur nafnstafur a ger arstafur t lustafur Mynd 8.6: A ger an fn nafn nafnstafur nafnstafur t lustafur Mynd 8.7: N fn

48 48 KAFLI 8. M LFR I FJ LNIS forrit nafn = eining strengur strengur < nafn eining Mynd 8.8: Forrit bil ( ) [ ] { },. a ger arstafir ASCII stafir me ra n mer fr 0 til 31 Allir slenskir b kstar eru v nafnstar. 8.3 M lrit Myndir 8.8,...,8.21 l sa heildarbyggingu Fj lnisforrita. M lrit essi skal lesa sama h tt og m lritin sem l sa frumt knum Fj lnis. Lesa m gegn um ll l gleg Fj lnisforrit me v a byrja ar sem stendur forrit myndinni h r a ne an og renna me j rnbrautateinunum gegn um myndina og allar r undirmyndir sem rf krefur.

49 8.3. M LRIT 49 eining strengur! nafn ( eining ) { v rpun } * : + & Mynd 8.9: Eining -> a ger nafn v rpun nafn a ger breyta stefskilgreining Mynd 8.10: V rpun

50 50 KAFLI 8. M LFR I FJ LNIS stefskilgreining stef ( nafn, nafn ), innflutt nafn, sta v r nafn :=, seg stofn seg aruna stofnlok Mynd 8.11: Stefskilgreining seg fylkisseg ekki a ger og e a Mynd 8.12: Seg

51 8.3. M LRIT 51 fylkisseg sm seg [ seg aruna ] := seg Mynd 8.13: Fylkisseg seg aruna seg, Mynd 8.14: Seg aruna

52 52 KAFLI 8. M LFR I FJ LNIS sm seg nafnseg a ger sm seg ( seg aruna ) efseg [ seg aruna ] lykkjuseg stofn seg aruna stofnlok valseg t skila seg ( seg ) strengur tala stef nafn ( tala tala ) Mynd 8.15: Sm seg lykkjuseg me an seg fyrir ( seg aruna seg seg aruna ) lykkja seg aruna lykkjulok Mynd 8.16: Lykkuseg ir

53 8.3. M LRIT 53 nafnseg nafn := seg ( seg aruna seg aruna ) Mynd 8.17: Nafnseg ir annarsef annars efseg ef seg seg aruna seg seg aruna eflok seg aruna Mynd 8.18: Efseg

54 54 KAFLI 8. M LFR I FJ LNIS r kostur valfasti.. valfasti annars vallok seg aruna valseg val seg seg aruna Mynd 8.19: Valseg valfasti staasti fj ldatala Mynd 8.20: Valfasti tala staasti fj ldatala heiltala eytitala Mynd 8.21: Tala

55 Kai 9 Eftirm li Forritunarm li Fj lnir er s rstaklega hanna me einingaforritun huga. a er byggt n jum hugmyndum einingaforritun, sem fyrst var l st heimildum [2,3,4]. essar hugmyndir byggjast aftur grundvallarhugmyndum st r fr i endanlegra trj a, sem l st er heimild [1]. Hugmyndir essar voru lei andi lj s h nnun forritunarm lsins, og reyndist vera metanlegt gagn af eim vi a skera r um vafaatri i h nnun m lsins. a er alls ekki nau synlegt fyrir notendur forritunarm lsins a vera kunnugir essum fr um. 55

56 56 KAFLI 9. EFTIRM LI

57 Kai 10 Heimildir 1 Bruno Courcelle, Fundamental Properties of Innite Trees, Theoretical Computer Science 25 (1983) Snorri Agnarsson, Packages as Substitutions, doktorsritger, Rensselaer Polytechnic Institute, j n Snorri Agnarsson og M.S. Krishnamoorthy, Towards a Theory of Packages, Proceedings of the ACM SIGPLAN-85 symposium on language issues in programming environments. SIGPLAN Notices, Vol. 20, No Snorri Agnarsson, M.S. Krishnamoorthy og B. David Saunders, An algebraic theory of packages. Proceedings of EUROCAL-85. Lecture Notes in Computer Science, Springer-Verlag

58 58 KAFLI 10. HEIMILDIR

59 Hluti II Einingin GRUNNUR 59

60

61 Einingin GRUNNUR er samsett r m rgum rum einingum. Hverri essara eininga er l st undirkaa essum kaa. Grunnurinn er ansi st r eining og inniheldur eiri stef en est forrit nota. a er v oft st a til a nota minni grunn en ann sem fylgir Fj lni. Notandi Fj lnis getur sm a sinn eigin grunn ef hann vill, e a nota beint r einingar sem grunnurinn er samsettur r. myndinni h r a ne an er s nt hvernig einingarnar grunninum tengjast saman,.e.a.s. hvernig einingarnar kalla stef rhver annarri. ar m t.d. sj a ef nota arf eininguna INN arf einnig a ytja inn einingarnar UT, SNUA, LESALINU og DOSSKRIU. Auk ess arf n rri alltaf a ytja inn eininguna KJARNI, e a einhverja einingu sem inniheldur einingu, t.d. GRUNNUR, ar e langestar einingar v sa einhver kjarnastef. Vi k llum eininguna KJARNI kjarnann og eininguna GRUNNUR grunninn og stef kjarnanum k llum vi kjarnastef, og stef grunninum grunnstef. 61

62 62

63 Kai 11 Einingin AFRITA Einingin AFRITA inniheldur a ger til a taka afrit af gildi. afrita Notkun: gildi1 := afrita( gildi2) Fyrir: gildi2 er eitthvert gildi, getur veri n nast hva sem er. A eins er ess krast a ekki s u tilv sanir hring gildinu. Sl kar tilv sanir er a eins unnt a sm a me v a nota stef eins og haussetja, halasetja e a hlunksetja og sl k notkun er ekki algeng. Ef um tilv sun hring er a r a mun a valda endanlegri lykkju e a endanlegri endurkv mni. Eftir: gildi1 f r gildi sem er n kv mt afrit af gildi2. gildi1 eru allir hlunkar (.m.t. p r) og strengir n jar tg fur af samsvarandi streng e a hlunk gildi2. 63

64 64 KAFLI 11. EININGIN AFRITA

65 Kai 12 Einingin DOSDISK disklausk Notkun: i := disklausk( drif) Fyrir: drif er heiltala e a fj ldatala sem segir til um hva a diskadrif er a r a. drif=0 er sj lfge diskadrif. drif=1 er diskadrif a:. drif=2 er diskadrif b: o.s.frv. Eftir: i inniheldur fj ldat lu sem segir til um hversu m rg k l b ti eru laus v diskadri sem ge var upp drif. Ef fj ldatalan sem gen er upp drif l sir ekki l glegu diskadri vi komandi t lvu, inniheldur i gildi satt eftir kalli. Eins inniheldur i gildi satt ef einhverjar l glegar e a skemmdar diskeiningar eru vi komandi diskadri. diskst r Notkun: i := diskst r ( drif) Fyrir: drif er heiltala e a fj ldatala sem segir til um hva a diskadrif er a r a. drif= 0 er sj lfge diskadrif. drif=1 er diskadrif a:, drif=2 er diskadrif b: o.s.frv. Eftir: i inniheldur fj ldat lu sem segir til um hversu m rg k l b ti diskadri sem ge var upp drif r mar heild. Ef fj ldatalan sem gen er upp drif l sir ekki l glegu diskadri vi komandi t lvu, inniheldur i gildi satt eftir kalli. Eins inniheldur i gildi satt ef einhverjar l glegar e a skemmdar diskeiningar eru vi komandi diskadri. skiptaumsafn Notkun: ok := skiptaumsafn( safnsemertil) Fyrir: safnsemertil er strengur sem inniheldur l glega efnisskr rlei fyrir DOS. D mi um l glegar lei ir eru "\\pakkar", "a:pakkar", "a:\\pakkar", "a:\\", "\\" o.s.frv. D mi um l glegar lei ir eru "a:pakkar\\", "a:" o.s.frv. Eftir: a safn er sj lfge, sem ge er safnsemertil, sj lfgefnudiskadri. Ef safnsemertil inniheldur nafn diskadri (er t.d. "a:\\pakkar"), er skipt yr uppge safn v diskadri en ekki er skipt um sj lfge diskadrif. Eftir kalli f r ok gildi satt ef uppgen efnisskr rlei er l gleg og er til vi komandi diskadri (og skipt hefur veri yr safnsemertil) en satt ef efnisskr rlei in er l gleg e a ekki til vi komandi diskadri. S lfge safn er a sama vi komandi diskadri og var fyrir. 65

66 66 KAFLI 12. EININGIN DOSDISK sj lfge safn Notkun: safn := sj lfgefi safn( drif) Fyrir: drif er heiltala e a fj ldatala sem segir til um hva a diskadrif er a r a. drif= 0 er sj lfge diskadrif. drif=1 er diskadrif a:. drif=2 er diskadrif b: o.s.frv. Eftir: Ef drif er l glegt diskadrif fyrir vi komandi t lvu, f r safn gildi strengs sem inniheldur efnisskr rlei a v safni sem sj lfge er diskadri drif. S strengur inniheldur ekki nafn diskadrifsins.a. s sj lfge diskadrif "a:"og sj lfge safn v dri " pakkar" g kalli sj lfge safn( 1) ni urst una " pakkar"(en ekki "a: pakkar"). Ef drif er l glegt diskadrif e a ef einhver nnur villa kemur upp, f r safn gildi satt. b atilsafn Notkun: ok := b atilsafn( n ttsafn) Fyrir: n ttsafn er strengur sem inniheldur l glega efnisskr rlei fyrir DOS. D mi um l glegar lei ir v ru " pakkar", "a:pakkar", "a: pakkar"o.s.frv. D mi um l glegar lei ir v ru "a:pakkar ", "a:", "a: ", " "o.s.frv. Eftir: B i er til a safn sem ge er n ttsafn sj lfgefnu diskadri. Ef n ttsafn inniheldur diskadrifsnafn (er t.d. "a: pakkar"), er b i til uppge safn v diskadri. Eftir kalli f r ok gildi satt ef uppgen efnisskr rlei er l gleg og safni er ekki egar til vi komandi diskadri (og b i hefur veri til safni n ttsafn) en satt ef efnisskr rlei in er l gleg e a egar til vi komandi diskadri (og ekkert safn hefur veri b i til). ey asafni Notkun: ok := ey asafni( safnsemertil) Fyrir: n ttsafn er strengur sem inniheldur l glega efnisskr rlei fyrir DOS. D mi um l glegar lei ir v ru " pakkar", "a:pakkar", "a: pakkar"o.s.frv. D mi um l glegar lei ir v ru "a:pakkar ", "a:", "a: ", " "o.s.frv. Eftir: a safn sem ge er safnsemertil er fjarl gt vi komandi diskadri ef safnsemertil inniheldur nafn diskadri, annars sj lfgefnu diskadri. Eftir kalli f r ok gildi satt ef uppgen efnisskr rlei er l gleg og safni er til sta ar vi komandi diskadri (og b i er a ey a safninu n ttsafn) en satt ef efnisskr rlei in er l gleg e a er ekki til vi komandi diskadri (og ekkert hefur veri gert).

67 67 Athuga skal a ef einhver forrit e a s fn eru til sta ar v safni sem veri er a ey a, f r ok gildi satt og ekkert er gert, ar sem ekki er h gt a ey a safni me einhverju. erskr til Notkun: ok := erskr til( nafn) Fyrir: nafn er strengur sem inniheldur l glegt nafn skr r (me efnisskr rlei ef vill). Eftir: Ef nafn er l glegt nafn skr, s skr er til og engin villa kemur upp, f r ok gildi satt. Ef skr in er ekki til e a ef einhver villa kemur upp, f r ok gildi satt. opnaskr Notkun: handfang := opnaskr ( nafn,a gangur) Fyrir: nafn er strengur sem inniheldur l glegt nafn eirrar skr r sem opna (me efnisskr rlei ef vill). a gangur er stafur ('l', 'L', 's', 'S', 'u', 'U', 'v' e a 'V') sem segir til um fyrir hva a a gang skr in er opnu. Eftir: Ef nafn er l glegt nafn skr mi a vi a gangur, er h n opnu fyrir a gang a gangur og handfang f r gildi handfangs (fj ldatala) sem l sir essari n opnu u skr, annars f r handfang gildi satt. Handfangi er s an nota fyrir allar s ari a ger ir skr na. nafn getur hvort sem er veri nafn skr r me efnisskr rlei, er vi komandi skr opnu v safni, e a a nafn er eing ngu nafn skr, er s skr opnu sj lfgefnu safni. Les/skrif bendir er bendir sem fylgir hverri opinni skr og segir til um vi hva a sta skr nni a ger irnar lestur og/e a skrift hefjast. Ni ursta a kallsins opnaskr fer eftir v hva a a gangur er genn og hvort nafn er nafn skr sem er til e a ekki: Ef a gangur = 'l' e a 'L' er skr in nafn opnu me lestrara gangi og allar tilraunir til a skrifa skr na mistakast. Les/skrif bendir er sta settur uppha skr rinnar. Ef skr in er til og allt er lagi, f r handfang gildi handfangs sem v sar skr na. Ef skr in er ekki til, of margar skr r opnar e a einhver nnur villa kemur upp, f r handfang gildi satt og skr in hefur ekki veri opnu. Ef a gangur = 's' e a 'S' er skr in nafn opnu me skriftara gangi og allar tilraunir til a lesa r skr nni geta veri mj g varasamar. Les/skrif bendir er sta settur uppha skr rinnar. Ef skr in nafn er egar til, er henni raun eytt t og h n s an b in til aftur.e. egar skr, sem egar er til, er opnu me skriftara gangi er h n algerlega n llstillt. Ef skr in er ekki til, er h n b in til og opnu sama h tt og ur. Ef allt er lagi, f r handfang gildi handfangs sem l sir skr nni. Ef einhver villa kemur upp f r handfang gildi satt og skr in getur hvort sem er hafa veri b in til e a ekki, en a llum l kindum er ekki h gt a framkv ma neinar a ger ir hana. Kalli opnaskr ( nafn,'s') hefur n kv mlega s mu hrif og kalli b atilskr ( nafn). Ef a gangur = 'u' e a 'U' er skr in nafn opnu me uppf rslua gangi og er hvort sem er h gt a framkv ma lestur e a skrift. Les/skrif bendir er sta settur uppha skr rinnar. Ef skr in nafn er til og allt er lagi, er skr in opnu fyrir uppf rslua gang og handfang f r gildi handfangs sem l sir skr nni. Ef skr in er ekki til e a einhver nnur villa kemur upp, f r handfang gildi satt og engin skr hefur veri opnu. Skr sem ekki er til en reynt er a opna fyrir uppf rslua gang er v ekki b in til. Ef a gangur = 'v' e a 'V' er skr in nafn opnu fyrir vi b tara gang og er einungis h gt a framkv ma skriftara ger hana. Les/skrif bendir er sta settur aftast skr nni (aftan vi hennar s asta b ti). Allar skriftara ger ir aftast skr, sem opin er fyrir vi b tara gang, st kka skr na (b ta vi hana). Ef skr in nafn er ekki til, er ni ursta an n kv mlega s sama og a opna hana me skriftara gangi ('s').e. skr in er b in til og les/skrif bendir sta settur fremst henni. Ef skr in nafn er til, er

68 68 KAFLI 12. EININGIN DOSDISK h n opnu og les/skrif bendir f r ur aftast hana. Ef allt er lagi f r handfang gildi handfangs sem l sir skr nni, annars f r handfang gildi satt. b atilskr Notkun: handfang := b atilskr ( nafn) Fyrir: nafn er strengur sem inniheldur l glegt nafn eirri skr sem b a til. Sj um opnaskr. Eftir: Ef nafn er l glegt nafn skr er h n opnu fyrir skriftara gang og allar tilraunir til a lesa r skr nni geta veri mj g varasamar. Les/skrif bendir er sta settur uppha skr rinnar. Ef skr in nafn er egar til, er henni raun eytt t og h n s an b in til aftur.e. egar skr sem egar er til er opnu me skriftara gangi er h n algerlega n llstillt. Ef skr in er ekki til, er h n b in til og opnu sama h tt og ur. Ef allt er lagi, f r handfang gildi handfangs (heiltala e a fj ldatala) sem l sir skr nni. Ef einhver villa kemur upp f r handfang gildi satt og skr in getur hvort sem er hafa veri b in til e a ekki, en a llum l nindum er ekki h gt a framkv ma neinar a ger ir hana. Kalli opnaskr ( nafn,'s') hefur n kv mlega s mu hrif og kalli b atilskr ( nafn). lokaskr Notkun: ok := lokaskr ( handfang) Fyrir: handfang er fj ldatala e a heiltala sem er gildi handfangs sem ur hefur fengist r kalli opnaskr e a b atilskr. Eftir: Skr nni sem l st er me handfanginu handfang er loka.a. allar les/skrif/loka a ger ir handfang eftir a, gefa villu. Ef allt er lagi og DOS tekst a loka handfang e lilega, f r ok gildi satt en satt ef einhver villa kemur upp. r villur sem algengast er a komi upp eru a handfang er tali l sa einhverju handfangi sem egar er b i a loka e a a a hefur aldrei veri b i til. Varasamt getur veri a loka sl kum handf ngum ar sem DOS hefur 5 fr tekin handf ng (0..4) sem nau synleg eru estum forritum keyrslu. au eru 0=a alinntak (standard input), 1=a al ttak (standard output), 2=A alvillu ttak (standard error), 3=ytra inntak/ ttak (auxilary) og 4=a alprentara ttak (standard printer). Forrit sem t.d. lokar a alinntaki (handfangi 2), f r sennilega villu n st egar a reynir a lesa af a alinntaki (lyklabor i). ey askr Notkun: ok := ey askr ( nafn) Fyrir: nafn er strengur sem inniheldur l glegt nafn (me efnisskr rlei ef vill) skr nni sem ey a. Eftir: Skr nni sem ber heiti nafn er eytt af diski svo framarlega sem h n er ar til sta ar. Ef engin villa kemur upp og skr in er til sta ar vi komandi diskadri, er henni eytt og ok f r gildi satt, annars f r ok gildi satt. Varasamt og raun l glegt er a ey a skr sem enn er opin (hefur handfang sem l sir henni) og treiknanlegt er hver hrif a kann a hafa. v tilfelli kemur f stum tilfellum upp villa vi kall ey askr, en s ari les/skrif/loka a ger ir geta ge skiljanlegar villur. breytanafni Notkun: ok := breytanafni( gamaltnafn, n ttnafn) Fyrir: gamaltnafn og n ttnafn eru hvoru tveggja strengir sem innihalda l gleg n fn skr m. gamaltnafn er nafn skr r sem egar er til og n ttnafn er nafn skr sem ekki er til.

69 69 Eftir: Nafni skr rinnar gamaltnafn er breytt yr n ttnafn og ok f r gildi satt ef gamaltnafn er l glegt nafn skr sem egar er til og n ttnafn er l glegt nafn skr sem ekki er til og allt anna er lagi. Ef eitthva er ekki lagi, f r ok gildi satt. breytanafni er h gt a nota til a f ra skr r milli safna sama diskadri. Ef t.d. tti a f ra skr na "pakki" sj lfgefnu safni (sem ekki er " pakkar"), yr safni " pakkar", v ri h gt a nota skiptaumnafn( "pakki"," pakkar pakki") svo framarlega sem skr me nafni "pakki"er ekki til safni " pakkar". Ekki er h gt a nota essa a ger til a ytja skr r milli diskadrifa.a. seg in skiptaumnafn( "a:pakki","b:pakki") g satt. s kjaskr rdag Notkun: ok := s kjaskr rdag( r,m nu ur,dagur nafn) Fyrir: nafn er strengur sem inniheldur l glegt nafn skr (me efnisskr rlei ef vill). Ekki skiptir m li hva a gildi r, m nu ur og dagur innihalda. Eftir: Ef nafn er l glegt nafn skr og allt anna er lagi, f inn t vi f ngin r, m nu ur og dagur gildi fj ldatalna sem endurspegla eirri dagsetningu sem var gildi egar vi komandi skr var s ast breytt. A auki f r ok gildi satt. Ef einhver villa kemur upp, f r ok gildi satt og engu er a treysta me gildin r, m nu ur og dagur. r er fj ldatala bilinu 1980 til m nu ur er fj ldatala bilinu 1 til 12 ar sem 1=Jan ar, 2=Febr ar... 12=Desember. dagur er fj ldatala bilinu 1 til 31. essi a ger hefur raun svipu hrif og a ger in s kjadaghandfangs en er gilegri notkun, ef vi komandi skr hefur ekki enn veri opnu. s kjaskr rt ma Notkun: ok := s kjaskr rt ma(k,m,s nafn) Fyrir: nafn er strengur sem inniheldur l glegt nafn skr (me efnisskr rlei ef vill). Ekki skiptir m li hva a gildi k, m og s innihalda. Eftir: Ef nafn er l glegt nafn skr og allt anna er lagi, f inn t vi f ngin, k, m og s, gildi fj ldatalna sem endurspegla t masetningu sem var gildi egar vi komandi skr var s ast breytt. A auki f r ok gildi satt. Ef einhver villa kemur upp, f r ok gildi satt og engu er a treysta me gildin k, m og s. k er fj ldatala bilinu 0til23.m er fj ldatala bilinu 0 til 59. s er fj ldatala bilinu 0til59. essi a ger hefur raun svipu hrif og a ger in s kjat mahandfangs en er gilegri notkun, ef vi komandi skr hefur ekki enn veri opnu. s kjadaghandfangs Notkun: ok := s kjadaghandfangs( r,m nu ur,dagur handfang) Fyrir: handfang er opi handfang sem l sir eirri skr sem um er a r a og hefur veri fengi r ur framkv mdu kalli opnaskr e a b atilskr. Ekki skiptir m li hva a gildi r, m nu ur og dagur innihalda.

70 70 KAFLI 12. EININGIN DOSDISK Eftir: Ef handfang er l glegt opi handfang og allt anna er lagi, f inn t vi f ngin r, m nu ur og dagur gildi fj ldatalna sem endurspegla dagsetningu sem var gildi egar vi komandi skr var s ast breytt. A auki f r ok gildi satt. Ef einhver villa kemur upp, f r ok gildi satt og engu er a treysta me gildin r, m nu ur og dagur. r er fj ldatala bilinu 1980 til m nu ur er fj ldatala bilinu 1 til 12 ar sem 1=Jan ar, 2=Febr ar... 12=Desember. dagur er fj ldatala bilinu 1 til 31. s kjat mahandfangs Notkun: ok := s kjat mahandfangs(k,m,s h) Fyrir: h er opi handfang sem l sir eirri skr sem um er a r a og hefur veri fengi r ur framkv mdu kalli opnaskr e a b atilskr. Ekki skiptir m li hva a gildi k, m og s innihalda. Eftir: Ef h er l glegt opi handfang og allt anna er lagi, f inn t vi f ngin, k, m og s, gildi fj ldatalna sem endurspegla t masetningu sem var gildi egar vi komandi skr var s ast breytt. A auki f r ok gildi satt. Ef einhver villa kemur upp, f r ok gildi satt og engu er a treysta me gildin k, m og s. k er fj ldatala bilinu 0 til 23. m er fj ldatala bilinu 0 til 59. s er fj ldatala bilinu 0 til 59. setjadaghandfangs Notkun: ok := setjadaghandfangs( handfang, r,m nu ur,dagur) Fyrir: handfang er opi handfang sem l sir eirri skr sem um er a r a og hefur veri fengi r ur framkv mdu kalli opnaskr e a b atilskr. r, m nu ur og dagur eru heilt lur e a fj ldat lur sem endurspegla eirri dagsetningu sem stimpla skr na me. r er bilinu 1980 til m nu ur er bilinu 1 til 12 ar sem 1=Jan ar, 2=Febr ar... 12=Desember. dagur er bilinu 1 til fj lda daga vi komandi m nu i. Ef um er a r a febr ar, ver ur a taka til greina hvort vi komandi r er hlaup r e a ekki. Eftir: Ef handfang er l glegt opi handfang og allt anna er lagi, er skr in sem l st er me handfang stimplu me eirri dagsetningu sem gen er r, m nu ur og dagur og ok f r gildi satt. Ef einhver villa kemur upp, f r ok gildi satt. a okkast undir a villa ha komi upp ef gildin sem gen eru r, m nu ur og dagur eru ekki innan eirra marka sem l glegt er. ar me tali er a gefa upp 29 daga Febr ar ef uppge r er ekki hlaup r. Sl kt ver ur ekki til ess a ok f i gildi satt, ar sem DOS gerir enga athugasemd, en dagsetning skr rinnar er er ar me or in r ng. setjat mahandfangs Notkun: ok := setjat mahandfangs( h,k,m,s) Fyrir: h er opi handfang sem l sir eirri skr sem um er a r a og hefur veri fengi r ur framkv mdu kalli opnaskr e a b atilskr. k, m og s eru heilt lur e a fj ldat lur sem endurspegla eirri t masetningu sem stimpla skr na me. Klukkustundir er bilinu 0 til 23. M n tur er bilinu 0 til 59. Sek ndur er bilinu 1til59. Eftir: Ef h er l glegt opi handfang og allt anna er lagi, er skr in sem l st er me h stimplu me eirri t masetningu sem gen er k, m og s og ok f r gildi satt. Ef einhver villa kemur upp, f r ok gildi satt.

71 71 a okkast undir a villa ha komi upp ef gildin sem gen eru k, m og s eru ekki innan eirra marka sem l glegt er. Sl kt ver ur ekki til ess a ok f i gildi satt, ar sem DOS gerir enga athugasemd, en t masetning skr rinnar er er ar me or in r ng. br abirg arskr Notkun: nafn := br abirg arskr ( lei ) Fyrir: lei er strengur sem inniheldur l glega efnisskr rlei yr a safn sem innihalda skr na. Efnisskr rlei in arf ekki nau synlega a enda " ". Eftir: B in er til n skr safninu sem efnisskr rlei in lei v sar, sem tryggt er a ekki s egar til sta ar v safni. Ef lei er strengur a lengd 0, er skr in b in til a alsafni sj lfgens diskadrifs (s mu hrif og ef lei hef i veri " "). Ef lei inniheldur diskadrifsnafn, er skr in b in til v diskadri. Ef allt er lagi og engin villa kemur upp, f rnafn gildi strengs, sem inniheldur fullt nafn eirrar skr r.e. efnisskr rlei ina lei a vi b ttu essu einkv ma nafni sem DOS b r til. Ef einhver villa kemur upp (t.d. ef lei er l gleg efnisskr rlei ), f r nafn gildi satt og er ekkert vita um a, hvort einhver skr ha veri b in til e a ekki, n hva h n heitir. essi lei til a f nafn skr uppge fr DOS, er mj g hentug fyrir forrit, sem urfa v a halda a b a til skr me an keyrslu stendur, sem er svo eytt ur en keyrslu l kur. Athuga skal a DOS ey ir ekki sj lfkrafa skr m sem b nar eru til me essum h tti. a ver ur notandinn a gera sj lfur. Varast ber a b a br abirg arskr r til sj lfgefnu safni (h gt me v a hafa lei = "."). st a ess er s a um lei og sj lfge safn breytist, v sar "."til annars safns og ar me er skr in t nd. f raskr rbendi Notkun: ok := f raskr rbendi(k1,v1 h,a fer,k2,v2) Fyrir: h er opi handfang sem ur hefur fengist r kalli b atilskr e a opnaskr. a fer er heiltala e a fj ldatala 0, 1 e a 2. k2 og v2 eru fj ldat lur. Ekki skiptir m li hva a gildi k1 og v1 innihalda. Eftir: F rir les/skrif bendinn til skr nni sem l st er me handfanginu h.a. s ari lestur e a skrift skr, hefst eim sta skr nni. k2 og v2 mynda til samans st ra (32 bita) fj ldat lu og segja til um yr hva a st u a f ra bendinn. a fer segir til um t fr hva a st u tilf rslan mi ast. Ef allt gengur e lilega fyrir sig og engin villa kemur upp, f r ok gildi satt og k1 og v1 mynda til samans st ra (32 bita) fj ldat lu sem segir til um hver sta a les/skrif bendis er eftir tilf rsluna, tali fr uppha skr r. Ef einhver villa kemur upp, f r ok gildi satt og engu er a treysta me uppl singarnar k1 og v1. Ef a fer = 0, mi ast tilf rslan t fr byrjun skr r og bendir er f r ur st u k1:v1 (st r fj ldatala) tali fr byrjun skr r. Ef a fer = 1, mi ast tilf rslan t fr n verandi sta les/skrif bendis skr nni og bendir er f r ur k1:v1 (st r fj ldatala) aftur fyrir ann sta. Ef a fer = 2, mi ast tilf rslan t fr endi skr r og les/skrif bendir er f r ur k1:v2 aftur fyrir endi skr r. Eitt einfalt en gilegt d mi um notkun v ri kalli f raskr rbendi(h tt,l gt handfang,1,0,0)

72 72 KAFLI 12. EININGIN DOSDISK Eftir etta kall innihalda h tt:l gt st ra f ldat lu sem segir til um hver sta a les/skrif bendis er skr nni, n ess a f ra hann nokku til. Anna d mi v ri kalli f raskr rbendi(h tt,l gt handfang,2,0,0) Eftir etta kall, innihalda h tt:l gt st ra fj ldat lu sem segir til um hver st r vi komandi skr r er. Kalli f raskr rbendi(h tt,l gt handfang,2,0,2000) myndi st kka skr na um 2000 b ti, svo framarlega sem h n v ri opin fyrir skrift. Ef skr in v ri ekki opin fyrir skrift, k mi upp villa. skr ra gangur Notkun: a gangur := skr ra gangur( nafn) Fyrir: nafn er strengur sem inniheldur l glegt fullt nafn skr (.e. efnisskr rlei a vi b ttu nafni skr r) sem til sta ar er uppgefnu safni. Eftir: Ef nafn er l glegt fullt nafn skr sem til er uppgefnu safni, f r a gangur gildi fj ldat lu sem segir til um af hva a tagi a gangur a vi komandi skr er. Ef nafn er l glegt, ekki til e a einhver nnur villa kemur upp, f r a gangur gildi satt. DOS er geymd ein fj ldatala fyrir hvert nafn (sem getur veri nafn skr r, safns e a disks) sem l sir v af hva a tagi a gangur a vi komandi nafni er og hva a a ger ir m framkv ma a. essi fj ldatala samanstendur af 16 bitum sem hver um sig segir s na s gu. essir bitar eru eftirfarandi: Biti 0: Ef essi biti er, er eing ngu h gt a nota skr na til lestrar, ekki er h gt a framkv ma skrift (skr in er "read only- a eins til lestrar). Ef bitinn er af, er b i h gt a framkv ma lestur og skrift essari skr. Biti 1: Ef essi biti er, er skr in falin (hidden) og kemur ekki fram vi venjulegar a ger ir vi a lista t n fn diski, t.d. DIR skipun DOS. Biti 2: Ef essi biti er, er skr in kersskr (system le) sem hefur mj g svipu hrif og egar biti 1 er. Venjulega er a annig, a ef biti 2 er, er biti 1 a l ka. Biti 3: Ef essi biti er, er vi komandi nafn nafn disksins sem v sa er. S "skr "geymir engar a rar noth far uppl singar en nafni. hverjum diski getur einungis veri eitt nafn me bita 3 og a nafn getur einungis veri a alefnisskr vi komandi disks. Biti 4: Ef essi biti er er vi komandi nafn nafn safni (directory). Sl k n fn er ekki h gt a skrifa e a lesa r eins og venjulegar skr r ar sem au innihalda uppl singar sem nau synlegar eru DOS til a vita hva er geymt vi komandi safni. Biti 5: essi biti er kalla ur geymslubiti. Hann er nota ur af nokkrum afritunarforritum s.s. BACKUP og RESTORE DOS. Sl k afritunarforrit nota s r a a hvert skipti sem skrifa er skr (og l ka egar h n er b in til) er geymslubiti settur. egar afriturnarforritin taka afrit af sl kri skr, taka au geymslubita af. N st egar au taka afrit, er essi sama skr einungis tekin me ef geymslubiti er sem er l ka til merkis um a skrifa hefur veri skr nna millit inni. essum bitum er svo h gt a blanda saman nokkurn vegin a vild. T.d. v rinafnme bita1og4 en alla a ra af, fali safn. Nafn me bita 1,2 og 4, v ri fali kerssafn o.s.frv. T.d. geymir DOS tv r faldar kersskr r (.e. me bita 1 og 2 ) a alsafni hvers kersdisks.

73 73 breytaskr ra gangi Notkun: ok := breytaskr ra gangi( nafn,n ra gangur) Fyrir: nafn er strengur sem inniheldur l glegt fullt nafn skr (.e. efnisskr rlei a vi b ttu nafni skr r) sem til sta ar er uppgefnu safni. n ra gangur er fj ldatala sem l sir v hver a gangur vi komandi skr r a ver a. Eftir: Breytir a gangi (sj skr ra gangur) a skr nni nafn yr n ra gangur. Ef skr in nafn nnst uppgefnu safni og l glegt er a breyta a gangi hennar yr n ra gangur, er a gert og ok f r gildi satt. Ef skr in er ekki til, n ra gangur er l glegur e a einhver nnur villa kemur upp, f r ok gildi satt. safnlisti Notkun: listi := safnlisti( leitargildi,a gangur) Fyrir: leitargildi er strengur sem inniheldur l glegan leitarstreng fyrir DOS. a gangur er heiltala e a fj ldatala sem l sir v hva a n fn geta veri essum safnlista. Eftir: Ef leitargildi er l glegur leitarstrengur fyrir DOS, f r listi gildi lista af strengjum sem hver um sig inniheldur nafn ( n efnisskr rlei ar) sem passar vi leitargildi og hefur skr ra gang a gangur (sj skr ra gangur). Ef leitargildi er l glegur leitarstrengur fyrir DOS, engin n fn sem passa vi hann hafa skr ra gang a gangur e a einhver nnur villa kemur upp, f r listi gildi satt. Kalli safnlisti( "a:.*",0) myndi skila lista nafna allra venjulegra skr a a alsafni diskadrifs a:. Kalli safnlisti( "*.*",0) myndi skila lista nafna allra venjulegra skr a sj lfgefnu diskadri. Athuga skal a me v setja einhvern kve inn bita skr ra gangi, fylgja me listanum ll au n fn sem hafa ann bita af.a. kalli safnlisti("*.*",1) gefur lista yr allar faldar skr r sj lfgefnu diskadri og safni, auk ess sem me listanum fylgja n fn allra venjulegra skr a. Eins er me kalli safnlisti("*.*",16). a gefur lista yr ll s fn, auk ess sem me fylgja n fn allra venjulegra skr a. Kalli safnlisti("*.*",63) gefur v lista yr allt sem v ri a nna sj lfgefnu safni sj lfgens diskadrifs. efnisskr rsafnlisti Notkun: listi := efnisskr rsafnlisti( leitargildi,a gangur) Fyrir: leitargildi er strengur sem inniheldur l glegan leitarstreng fyrir DOS. a gangur er fj ldatala sem l sir v hva a n fn geta veri essum safnlista. Eftir: a sama og safnlisti a vi b ttu v a hvert nafn listanum listi, hefur skeytt framan sig efnisskr rlei ess safns sem h n fannst og er ar me or i fullt nafn skr. n kv mursafnlisti Notkun: listi := n kv mursafnlisti( leitargildi,a gangur) Fyrir: leitargildi er strengur sem inniheldur l glegan leitarstreng fyrir DOS. a gangur er heiltala e a fj ldatala sem l sir v hva a n fn geta veri essum safnlista. Eftir: a sama og safnlisti a fr t ldu v a hvert stak listanum listi er n listinn [nafn,a gangur] ( sta ess a vera bara strengurinn nafn safnlisti) ar sem nafn er strengur sem inniheldur nafn skr r ( n efnisskr rlei ar) og a gangur er s a gangur sem nafn hefur. etta v ri t.d. h gt a nota til a nna allar faldar skr r sj lfgefnu safni sj lfgens diskadrifs. v ri kalla

74 74 KAFLI 12. EININGIN DOSDISK s fn listi := n kv mursafnlisti( "*.*",2) og svo rennt eftir listanum sem kemur t r kallinu og ll n fn fjarl g sem ekki hafa a gangur = 2. Notkun: listi := s fn( leitargildi) Fyrir: leitargildi er strengur sem inniheldur l glegan leitarstreng fyrir DOS. Eftir: au s mu ogefkalla v ri n kv mursafnlisti( leitargildi, 63), s an rennt eftir listanum sem ar kemur t og skilin einungis eftir au n fn sem hafa bita 4 (sj skr ra gangur)..e. listi f r gildi lista af strengjum sem hvert um sig er nafn safns sem til sta ar er v diskadri og safni sem leitargildi v sar til. Ef engin sl k nnast e a einhver nnur villa kemur upp, f r listi gildi satt. sj lfge drif Notkun: drif := sj lfgefi drif( ) Fyrir: Ekkert.. Eftir: drif f r gildi fj ldat lu sem segir til um hva a diskadrif er sj lfge diskadrif. drif = 0 er "a:", drif=1 er "b:"o.s.frv. veljadrif Notkun: ok := veljadrif( drif) Fyrir: drif er heiltala e a fj ldatala sem l sir l glegu diskadri fyrir vi komandi t lvu. Eftir: Ef drif l sir l glegu diskadri fyrir vi komandi t lvu, f r ok gildi satt og sj lfge diskadrif er or i a diskadrif sem drif l sir. Ef drif er ekki l glegt diskadrif fyrir vi komandi t lvu e a einhver nnur villa kemur upp, f r ok gildi satt. Dri "a:"er l st me 0, dri "b:"me 1 o.s.frv.

75 Kai 13 Einingin DOSSKRIU skr lesab ti Notkun: b ti := skr lesab ti( handfang) Fyrir: handfang er handfang (sem er fj ldatala) sem opi er fyrir lestrara gang og l sir eirri skr sem lesa r. a ver ur a hafa fengist r kalli opnaskr (ekki b atilskr ar sem a handfang v ri einungis opi fyrir skrift) e a a a er eitt af eim handf ngum sem DOS setur upp uppha keyrslu og er h gt a lesa r (sj um lokaskr ). Eftir: Lesi er eitt b ti r skr nni sem l st er me handfang fr eim sta sem les/skrif bendir er og les/skrif bendir er f r ur aftur um 1. b ti f r gildi fj ldat lu sem er a b ti sem lesi var ef allt er lagi og engin villa kemur upp. Ef einhver villa kemur upp (t.d. reynt a lesa aftur fyrir endi skr r, handfang er ekki l glegt o.s.frv) f r b ti gildi satt. skr skrifab ti Notkun: ok:= skr skrifab ti( handfang,b ti) Fyrir: handfang er handfang (sem er fj ldatala) sem opi er fyrir skriftara gang og l sir eirri skr sem skrifa. a ver ur a hafa fengist r kalli opnaskr (fyrir skrift) e a b atilskr e a a a er eitt af eim handf ngum sem DOS setur upp uppha keyrslu og er h gt a skrifa (sj um lokaskr ). b ti er fj ldatala sem er a b ti sem skrifa. Eftir: l gb ti fj ldat lunnar b ti (\l gb ti b ti) er skrifa skr nna sem l st er me handfang fr eim sta sem les/skrif bendir er og les/skrif bendir er f r ur aftur um 1. ok f r gildi satt ef engin villa kemur upp. Ef einhver villa kemur upp (t.d. reynt a skrifa handfang sem ekki er opi fyrir skrift, handfang er ekki l glegt o.s.frv) f r ok gildi satt. skr lesaor Notkun: or := skr lesaor ( handfang) Fyrir: handfang er handfang (sem er fj ldatala) sem opi er fyrir lestrara gang og l sir eirri skr sem lesa r. a ver ur a hafa fengist r kalli opnaskr (ekki b atilskr ar sem a handfang v ri einungis opi fyrir skrift) e a a a er eitt af eim handf ngum sem DOS setur upp uppha keyrslu og er h gt a lesa r (sj um lokaskr ). Eftir: Lesi er eitt or (tv b ti) r skr nni sem l st er me handfang fr eim sta sem les/skrif bendir er og les/skrif bendir er f r ur aftur um 2. or f r gildi fj ldat lu sem er a or sem lesi var ef allt 75

76 76 KAFLI 13. EININGIN DOSSKRIU er lagi og engin villa kemur upp. Ef einhver villa kemur upp (t.d. reynt a lesa aftur fyrir enda skr r, handfang er ekki l glegt o.s.frv.) f r or gildi satt. Eitt or samanstendur af tveimur b tum sem geymd eru me gildisl gra b ti (l gb ti ) undan og a gildish rra (h b ti ) eftir. egar or er lesi r handfangi eru v lesin tv b ti. Fyrst a gildisl gra og a l ti vera gildisl gri hluti tkomunnar. S an er a gildish rra lesi og a l ti vera gildish rri hluti tkomunnar. skr skrifaor Notkun: ok:= skr skrifaor ( handfang,or ) Fyrir: handfang er handfang (sem er fj ldatala) sem opi er fyrir skriftara gang og l sir eirri skr sem skrifa. a ver ur a hafa fengist r kalli opnaskr (fyrir skrift) e a b atilskr e a a a er eitt af eim handf ngum sem DOS setur upp uppha keyrslu og er h gt a skrifa (sj um lokaskr ). or er fj ldatala sem er a or sem skrifa. Eftir: Or i or er skrifa skr nna sem l st er me handfang fr eim sta sem les/skrif bendir er og les/skrif bendir er f r ur aftur um 2. ok f r gildi satt ef engin villa kemur upp. Ef einhver villa kemur upp (t.d. reynt a skrifa handfang sem ekki er opi fyrir skrift, handfang er ekki l glegt o.s.frv) f r ok gildi satt. Eitt or samanstendur af tveimur b tum sem geymd eru me gildisl gra b ti undan og a gildish rra eftir. egar or er skrifa handfang eru v skrifu tv b ti. Fyrst gildisl gri hluti or og s an gildish rri hluti or (sj um skr lesaor ). skr lesastreng Notkun: fj ldi := skr lesastreng( handfang,strengur,lengd) Fyrir: handfang er handfang (sem er fj ldatala) sem opi er fyrir lestrara gang og l sir eirri skr sem lesa r. a ver ur a hafa fengist r kalli opnaskr (ekki b atilskr ar sem a handfang v ri einungis opi fyrir skrift) e a a a er eitt af eim handf ngum sem DOS setur upp uppha keyrslu og er h gt a lesa r (sj um lokaskr ). lengd er fj ldatala og er minni en 256. lengd segir til um hversu m rg b ti mesta lagi a lesa inn. strengur er strengur me strengst r a.m.k. lengd. Eftir: Inn strengur eru lesin allt a lengd b ti r skr nni sem l st er me handfang fr eim sta sem les/skrif bendir er og les/skrif bendir er f r ur aftur um a m rg b ti. Ef engin villa kemur upp, f r fj ldi gildi fj ldat lu sem segir til um hversu m rg b ti voru lesin inn strenginn strengur. Eftir lesturinn inniheldur strengur streng a lengd fj ldi. Ef einhver villa kemur upp, f r fj ldi gildi satt. Ef lengd er st rri en 256 e a ef lengd er st rri en strengst r strengur er ekkert lesi inn og fj ldi f r gildi satt. estum tilfellum ver ur gildi fj ldi a sama og lengd. a er ekki algilt. Ef f rri en lengd b ti eru til sta ar v handfangi sem veri er lesa r, ver ur gildi fj ldi l gra en gildi lengd. Ef handfang l sir a alinntaki, og a alinntak er lyklabor i, er einungis lesin l na og l na einu. ver ur fj ldi estum tilfellum l gri en lengd. a er til merkis um a b i s a lesa aftur enda skr r, ef fj ldi f r gildi 0. skr skrifastreng Notkun: ok := skr skrifastreng( handfang,strengur)

77 77 Fyrir: handfang er handfang (sem er fj ldatala) sem opi er fyrir skriftara gang og l sir eirri skr sem skrifa. a ver ur a hafa fengist r kalli opnaskr (fyrir skrift) e a b atilskr e a a a er eitt af eim handf ngum sem DOS setur upp uppha keyrslu og er h gt a skrifa (sj um lokaskr ). strengur er strengur sem skrifa skr na. Eftir: Tekin er lengd( strengur) (.e. a b ti sem geymt er s ti 0 strengur) og a l ti segja til um ann fj lda b ta sem skrifa. au b ti eru s an skrifu r strengnum strengur t handfangi handfang og les/skrif bendir f r ur aftur um jafnm rg b ti. ok f r gildi satt ef n ist a skrifa umbe inn fj lda b ta og engin villa kemur upp. Ef einhver villa kemur upp, f r ok gildi satt. a er jafnan merki ess a diskur s fullur ef upp kemur s sta a a ok er satt. skr lesa streng Notkun: strengur := skr lesastreng( handfang) Fyrir: handfang er handfang (sem er fj ldatala) sem opi er fyrir lestrara gang og l sir eirri skr sem lesa r. a ver ur a hafa fengist r kalli opnaskr (ekki b atilskr ar sem a handfang v ri einungis opi fyrir skrift) e a a a er eitt af eim handf ngum sem DOS setur upp uppha keyrslu og er h gt a lesa r (sj um lokaskr ). Eftir: Lesi er n sta b ti r handfanginu sem handfang l sir og les/skrif bendir f r ur aftur um 1. a b ti er l ti segja til um hve m rg b ti a lesa inn strenginn. S an er strengur af r ttri lengd b inn til og lesi inn hann urnefndur fj ldi b ta og les/skrif bendir f r ur aftur um ann fj lda b ta. Ef allt er lagi, f r strengur gildi strengs sem inniheldur innlesnu b tin me a b ti sem fyrst var lesi inn s ti 0 (.e. a segir til um lengd strengsins). Ef einhver villa kemur upp, f r strengur gildi satt. a a strengur f r gildi satt, er oftast aei ing ess a reynt er a lesa aftur fyrir endi skr r. a gerist v tilfelli egar a b ti sem lesi er inn fyrst og nota er til a segja til um hversu m rg b ti a lesa inn strenginn, segir ranglega til um ann fj lda..e. s fj ldi er h rri en fj ldi eirra b ta sem eftir eru skr nni. Strengi, sem skrifa ir hafa veri me skr skrifa rstreng, er h gt a lesa aftur inn me essari a ger. skr skrifa rstreng Notkun: ok := skr skrifa rstreng( handfang,strengur) Fyrir: handfang er handfang (sem er fj ldatala) sem opi er fyrir skriftara gang og l sir eirri skr sem skrifa. a ver ur a hafa fengist r kalli opnaskr (fyrir skrift) e a b atilskr e a a a er eitt af eim handf ngum sem DOS setur upp uppha keyrslu og er h gt a skrifa (sj um lokaskr ). strengur er strengur sem skrifa skr na. Eftir: Tekin er lengd( strengur) (.e. a b ti sem geymt er s ti 0 strengur ) og a l ti segja til um ann fj lda b ta sem skrifa. a b ti er skrifa t handfangi handfang og les/skrif bendir f r ur aftur um 1 b ti. ar eftir er s fj ldi b ta r strengnum strengur og les/skrif bendir f r ur aftur um jafn m rg b ti. ok f r gildi satt ef allt gengur e lilega fyrir sig, en satt annars. a er jafnan merki ess a diskur s fullur ef upp kemur s sta a a ok f r gildi satt. skr lesageymslu Notkun: fj ldi := skr lesageymslu( handfang,strengur,lengd)

78 78 KAFLI 13. EININGIN DOSSKRIU Fyrir: handfang er handfang (sem er fj ldatala) sem opi er fyrir lestrara gang og l sir eirri skr sem lesa r. a ver ur a hafa fengist r kalli opnaskr (ekki b atilskr ar sem a handfang v ri einungis opi fyrir skrift) e a a a er eitt af eim handf ngum sem DOS setur upp uppha keyrslu og er h gt a lesa r (sj um lokaskr ). lengd er fj ldatala. lengd segir til um hversu m rg b ti mesta lagi a lesa inn. strengur er strengur me strengst r a.m.k. lengd. Eftir: Inn strengur eru lesin allt a lengd b ti r skr nni sem l st er me handfang fr eim sta sem les/skrif bendir er og les/skrif bendir er f r ur aftur um a m rg b ti. ar sem strengur getur veri lengri en 255 star, er ekki lengur h gt a nota s ti 0 til a t kna lengd hans ( ar sem b ti getur einungis haft gildin 0 til 255). Fyrsta b ti sem lesi er inn, fer v inn s ti 0 strengnum strengur. Ef engin villa kemur upp, f r fj ldi gildi fj ldat lu sem segir til um hversu m rg b ti voru lesin inn strenginn strengur, annars f r fj ldi gildi satt. Ef lengd er st rri en strengst r strengur er ekkert lesi og fj ldi f r gildi satt. estum tilfellum ver ur gildi fj ldi a sama og lengd. a er ekki algilt. Ef f rri en lengd b ti eru til sta ar v handfangi sem veri er lesa r, ver ur gildi fj ldi l gra en gildi lengd. Ef handfang l sir a alinntaki, og a alinntak er lyklabor i, er einungis lesin l na og l na einu. ver ur fj ldi estum tilfellum l gri en lengd. a er til merkis um a b i s a lesa aftur enda skr r, ef fj ldi f r gildi 0. skr skrifageymslu Notkun: ok := skr skrifastreng( handfang,strengur,lengd) Fyrir: handfang er handfang (sem er fj ldatala) sem opi er fyrir skriftara gang og l sir eirri skr sem skrifa. a ver ur a hafa fengist r kalli opnaskr (fyrir skrift) e a b atilskr e a a a er eitt af eim handf ngum sem DOS setur upp uppha keyrslu og er h gt a skrifa (sj um lokaskr ). lengd er fj ldatala sem segir til um hversu m rg b ti a skrifa. strengur er strengur sem skrifa skr na og hefur strengst r a.m.k. lengd. Eftir: lengd fyrstu b tin strengnum strengur ( a fyrsta r s ti 0) eru skrifu t handfangi handfang og les/skrif bendir f r ur aftur um jafn m rg b ti. ok f r gildi satt ef n ist a skrifa umbe inn fj lda b ta og engin villa kemur upp. Ef einhver villa kemur upp, f r ok gildi satt. Ef lengd er st rri en strengst r strengur, er ekkert skrifa og ok f r gildi satt. a er jafnan merki ess a diskur s fullur ef upp kemur s sta a a ok er satt. skr skrifaminni Notkun: ok := skr skrifaminni( handfang,kafli,vistfang,lengd) Fyrir: handfang er handfang (sem er fj ldatala) sem opi er fyrir skriftara gang og l sir eirri skr sem skrifa. a ver ur a hafa fengist r kalli opnaskr (fyrir skrift) e a b atilskr e a a a er eitt af eim handf ngum sem DOS setur upp uppha keyrslu og er h gt a skrifa (sj um lokaskr ). lengd er fj ldatala sem segir til um hversu m rg b ti a skrifa. kai og vistfang mynda til samans bendi t minni t lvunnar ( forminu kai:vistfang) sem segir til um hvar vitja eirra b ta sem skrifa. Eftir: lengd fyrstu b tin, eim sta sem kafli:vistfang v sar, eru skrifu t handfangi handfang. ok f r gildi satt ef n ist a skrifa umbe inn fj lda b ta og engin villa kemur upp. Ef einhver villa kemur upp, f r ok gildi satt. a er jafnan merki ess a diskur s fullur ef upp kemur s sta a a ok er satt.

79 79 Ef eing ngu eru skrifu t Fj lnisgildi (strengir, hlunkar o..h.) er engin rf a nota essa a ger. eru a ger irnar skr skrifastreng og skr skrifa rstreng n gilega ugar. Sem d mi um hvernig nota m essa a ger m tti taka: s := "Hall arna", skr skrifaminni( h,\kafli s,\vistfang s+1,s \strengs kjab ti 0 ) etta er h gt a gera einfaldari h tt me : s := "Hall arna", skr skrifastreng( h,s)

80 80 KAFLI 13. EININGIN DOSSKRIU

81 Kai 14 Einingin DOSSTIU prentastaf Notkun: prentastaf( stafur) Fyrir: stafur er fj ldatala bilinu 0 til 255. Eftir: Stafurinn stafur er skrifa ur t a alprentara. ar sem DOS gefur ekki neinn m guleika v a vita hvort einhver villa hefur komi upp, er a ekki heldur gert h r. Sj um prentastreng um betri a fer. prentastreng Notkun: prentastreng( s) Fyrir: s er strengur sem getur innihaldi hva sem er. Eftir: Innihald strengsins s er skrifa t a alprentara. prentastreng notar prentastaf til a skrifa strenginn staf fyrir staf. Sj v umfj llun um prentastaf. Athuga skal, a ar sem DOS gefur engar uppl singar um hvort villa kemur upp e a ekki ef etta kall er nota, getur oft veri gilegra a nota a rar a ger ir sem a gera. ar er s rstaklega m lt me v a nota handfangak ll. Ef t.d. t lvan er sett annig upp a prentari er tengdur samhli a vi t lvuna (parallel) og vi a alsamhli atengi (PRN) er h gt a nota s r a eftirfarandi h tt: prentari := opnaskr ( "PRN",'s'), ef prentari str := "stafur", ef ekki skr skrifastreng( prentari,str) skrifa( "Villa vi skrift prentara") eflok, ef ekki lokaskr ( prentari) skrifa( "Villa vi fr gang prentara") eflok annars skrifa( "Get ekki nota prentara") eflok 81

82 82 KAFLI 14. EININGIN DOSSTIU n staf nstopps Notkun: stafur := n staf nstopps( ) Fyrir: Engin skilyr i. Eftir: Ef einhver stafur er tilb inn a alinntaki, er s stafur lesinn og stafur f r gildi fj ldat lu sem inniheldur innlesna stann gildisl gra b tinu. Ef enginn stafur er til sta ar a alinntaki, f r stafur gildi satt. Venjulega egar veri er a lesa r a alinntaki, athugar DOS hvort notandi hefur tt Ctrl-Break e a Ctrl-PrtSc og framkv mir vi eigandi r stafandir (st var forriti e a skrifar skj t prentara). a er aftur m ti ekki gert ef essi a ger er notu vi innlestur. egar lesi er inn me essari a ger, notar DOS " tv kku gildi"til a greina milli ess hvort tt hefur veri venjulegan lykil e a a ger arlykil. Ef tt er venjulegan lykil, ver ur tkoman einungis gildi ess stafs sem lykillinn gefur. Ef aftur m ti er tt a ger arlykil, arf tv k ll essa a ger til a f hreint hva a lykil er um a r a. Hvort tt er a ger arlykil e a ekki er h gt a sj t fr v a ef stafur f r gildi 0, hefur veri tt a ger arlykil og anna kall arf til a komast a v hva a lykill a var. Eftirfarandi taa s nir hva a a ger arlykil um er a r a, mi a vi a gildi sem stafur f r r seinna kallinu: Ef stafur er hefur veri tt 3 NUL (.e. alt-0) 15 Shift-Tab Alt-Q, W, E, R, T, Y, U, I, O, P Alt-A, S, D, F, G, H, J, K, L 44-50Alt-Z,X,C,V,B,N,M F1-F10 71 Home 72 r upp 73 PgUp 75 r til vinstri 77 r til h gri 79 End 80 r ni ur 81 PgDn 82 Ins 83 Del F11-F20 (Shift F1-Shift-F10) F21-F30 (Ctrl-F1-Ctrl-F10) F31-F40 (Alt-F1-Alt-F10) 114 Ctrl-PrtSc 115 Ctrl- r til vinstri 116 Ctrl- r til h gri 117 Ctrl-End

83 Ctrl-PgDn 119 Ctrl-Home Alt-1,2,3,4,5,6,7,8,9,0,-,= 132 Ctrl-PgUp skrifastaf nstopps Notkun: skrifastaf nstopps( stafur) Fyrir: stafur er fj ldatala sem inniheldur stann sem skrifa gildisl gra b tinu. Eftir: Stafurinn stafur er skrifa ur beint a al ttak. ar sem DOS gefur ekki til kynna hvort einhver villa hefur komi upp, er a ekki heldur h gt h r. Venjulega egar veri er a skrifa a al ttak, athugar DOS hvort notandi hefur tt Ctrl-Break e a Ctrl-PrtSc og framkv mir vi eigandi r stafandir (st var forriti e a skrifar skj t prentara). a er aftur m ti ekki gert ef essi a ger er notu vi skrift. lesastaf nbergm ls Notkun: stafur := lesastaf nbergm ls( ) Fyrir: Ekkert. Eftir: Lesinn er einn stafur r a alinntaki (be i er eftir a hann s sleginn inn, ef hann er ekki ar til sta ar) og stafur f r gildi fj ldat lu me innlesinn staf gildisl gra b tinu. Venjulega egar star eru lesnir af a alinntaki (ef a alinntak er lyklabor ), eru innlesnir star birtir skj jafn um. a gerist ekki ef essi a ger er notu.e. ekkert birtist skj. Sj einnig um tv kku gildi n staf nstopps. lesastaf nstopps Notkun: stafur := lesastaf nstopps( ) Fyrir: Ekkert. Eftir: Lesinn er einn stafur r a alinntaki (be i er eftir a hann s sleginn inn, ef hann er ekki ar tils ta ar) og stafur f r gildi fj ldat lu me innlesinn staf gildisl gra b tinu. Venjulega egar star eru lesnir af a alinntaki (ef a alinntak er lyklabor ), eru innlesnir star birtir skj jafn um. a gerist ekki ef essi a ger er notu.e. ekkert birtist skj. Venjulega egar veri er a skrifa a al ttak, athugar DOS l kahvort notandi hefur tt Ctrl-Break e a Ctrl-PrtSc og framkv mir vi eigandi r stafandir (st var forriti e a skrifar skj t prentara). a er aftur m ti ekki gert ef essi a ger er notu vi skrift. erinntak Sj einnig um tv kku gildi n staf nstopps. Notkun: sanngildi := erinntak( ) Fyrir: Ekkert. Eftir: sanngildi f r gildi satt ef einhver stafur er tilb inn til innlestrar r a alinntaki, annars f r sanngildi gildi satt.

84 84 KAFLI 14. EININGIN DOSSTIU

85 Kai 15 Einingin DOSYMISL s kjadag Notkun: s kjadag( r,m nu ur,m na ardagur,vikudagur ) Fyrir: Ekkert. Eftir: S kir dagsetningu sem gildi er t lvunnu og stingur fj ldat lum inn inn tvi f ngin r, m nu ur, m na ardagur og vikudagur sem endurspegla eirri dagsetningu. setjadag r ver ur fj ldatala bilinu 1980 til m nu ur ver ur fj ldatala bilinu 1 til 12 ar sem 1=jan ar, 2=febr ar... 12=desember. m na ardagur ver ur fj ldatala bilinu 1 til 31. vikudagur ver ur fj ldatala bilinu 0 til 6 ar sem 0=sunnudagur, 1=m nudagur... 6=laugardagur. Notkun: ok := setjadag( r,m nu ur,m na ardagur) Fyrir: r, m n urur og m na ardagur innihalda fj ldat lur sem til samans mynda l glega dagsetningu. r er fj ldatala bilinu 1980 til m nu ur er fj ldatala bilinu 1 til 12 ar sem 1=jan ar, 2=febr ar... 12=desember. m na ardagur er fj ldatala bilinu 1til31. Eftir: Ef r, m nu ur og m na ardagur mynda til samans l glega dagsetningu, er dagsetning t lvunnar stillt annig og ok f r gildi satt. Ef au mynda aftur m ti l glega dagsetningu, e a einhver nnur villa kemur upp f r ok gildi satt og dagsetningu t lvunnar hefur a llum l kindum ekkert veri breytt. s kjat ma Notkun: s kjat ma(klukkustundir,m n tur,sek ndur ) Fyrir: Ekkert. 85

86 86 KAFLI 15. EININGIN DOSYMISL Eftir: S kir t masetningu sem gildi er t lvunnu og stingur fj ldat lum inn inn tvi f ngin klukkustundir,m nutur og sek ndur sem endurspegla eirri t masetningu. klukkustundir ver ur fj ldatala bilinu 0til23. m n tur ver ur fj ldatala bilinu 0 til 59. sek ndur ver ur fj ldatala bilinu 0til59. setjat ma Notkun: ok := setjat ma( klukkustundir,m n tur,sek ndur) Fyrir: klukkustundir, m n tur og sek ndur innihalda fj ldat lur sem til samans mynda l glega t masetningu. klukkustundir er fj ldatala bilinu 0til23. m n tur er fj ldatala bilinu 0 til 59. sek ndur er fj ldatala bilinu 0til59. Eftir: Ef klukkustundir, m n tur og sek ndur mynda til samans l glega t masetningu, er t masetning t lvunnar stillt annig og ok f r gildi satt. Ef au mynda aftur m ti l glega t masetningu, e a einhver nnur villa kemur upp f r ok gildi satt og t masetningu t lvunnar hefur a llum l kindum ekkert veri breytt. setja ryggi Notkun: setja ryggi ( ) Fyrir: Ekkert. Eftir: Setur DOS skriftar ryggi, hvort sem a var fyrir e a ekki. egar skriftar ryggi er, les DOS aftur hvert einasta b ti sem a skrifar t disk, ber a saman vi a b ti sem tti a skrifa og athugar hvort au eru eins. Ef au eru ekki eins, hefur komi upp villa, annars er allt lagi. egar skriftar ryggi er af (ekki ), fer enginn sl kur samanbur ur fram og DOS einungis skrifar t disk a sem um er be i. a er v heilmiki ryggi v a hafa skriftar ryggi, en um lei dregur a mj g r skriftarhra a (n r tv falt). taka ryggiaf Notkun: taka ryggiaf( ) Fyrir: Ekkert. Eftir: Tekur DOS skriftar ryggi af, hvort sem a var fyrir e a ekki. egar skriftar ryggi er, les DOS aftur hvert einasta b ti sem a skrifar t disk, ber a saman vi a b ti sem tti a skrifa og athugar hvort au eru eins. Ef au eru ekki eins, hefur komi upp villa, annars er allt lagi. egar skriftar ryggi er af (ekki ), fer enginn sl kur samanbur ur fram og DOS einungis skrifar t disk a sem um er be i. a er v heilmiki ryggi v a hafa skriftar ryggi, en um lei dregur a mj g r skriftarhra a (n r tv falt).

87 87 tg fun mer Notkun: tg fun mer(a aln mer,undirn mer ) Fyrir: Ekkert. Eftir: a aln mer og undirn mer f gildi fj ldatalna sem endurspegla eirri tg fu af DOS sem gangi er t lvunni. Ef t.d. tg fa 3.10 er gangi, f r a aln mer gildi 3 og undirn mer gildi 10. essa a ger getur veri mj g gilegt a hafa, egar framkv ma arf einhverjar a ger ir sem ekki voru til (e a voru til annarri mynd) eldri tg fum st rikersins. essi a ger er notu til a segja tilumhvort vi komandi a ger ir ganga e a ekki. gripssta ur Notkun: gripssta ur(kafli,vistfnag grip) Fyrir: grip inniheldur fj ldat lu bilinu 0 til 255 sem segir til um a gripsn mer sem veri er a athuga. Ekki skiptir m li hva a gildi eru kai og vistfang. Eftir: Fyrir sem til ekkja er essi a ger notu til a komast a v, hvar minni s forritsstubbur er sem afgrei ir vi komandi gripi (interrupt) grip. Inn tvi f ngin kai (segment) og vistfang (oset) f gildi fj ldatalna sem til samans mynda bendi t minni vi komandi forritsstubb. sta astopps Notkun: sta a := sta astopps( ) Fyrir: Ekkert. Eftir: sta a f r gildi satt ef stopp er, annars satt. egar stopp er er sumum tilfellum h gt a stoppa forrit keyrslu ( a s n ekki alltaf annig raun) en egar stopp er af ekki a vera h gt a stoppa forrit keyrslu nema au s u a lesa/skrifa r/ a alinntak me a ger um sem bj a upp a athuga s hvort tt ha veri Ctrl-Break. Flestar a ger ir athuga hvort a hefur veri gert. Sj um n staf nstopps, skrifastaf nstopps, lesastaf nbergm ls og lesastaf nstopps. stillastopp Notkun: stillastopp( sta a) Fyrir: sta a inniheldur gildi satt e a satt, eftir v hvort setja stopp e a taka a af. Eftir: Ef sta a inniheldur gildi satt, er stopp sett, annars er stopp teki af. egar stopp er er sumum tilfellum h gt a stoppa forrit keyrslu ( a s n ekki alltaf annig raun) en egar stopp er af ekki a vera h gt a stoppa forrit keyrslu nema au s u a lesa/skrifa r/ a alinntak me a ger um sem bj a upp a athuga s hvort tt ha veri Ctrl-Break. Flestar a ger ir athuga hvort a hefur veri gert. Sj um n staf nstopps, skrifastaf nstopps, lesastaf nbergm ls og lesastaf nstopps.

88 88 KAFLI 15. EININGIN DOSYMISL

89 Kai 16 Einingin FLEYF LL Einingin FLEYF LL inniheldur gagnleg f ll sem vinna me eytit lur. H n v sar einingis falin kjarnastef. abs Notkun: s := \abs x Fyrir: x er eytitala. Eftir: s inniheldur eytit lu sem er x. asin Notkun: s := \asin x Fyrir: x er eytitala milli -1.0 og 1.0 a b um me t ldum. Eftir: s inniheldur eytit lu sem er horn rad num.a. \sin s = x. atan2 Notkun: s := atan2( x,y) Fyrir: x og y eru eytit lur. Eftir: s inniheldur horn vigrans (x,y). T.d. skilar atan2( 1.0,0.0) horninu 0:0 og atan2( 0.0,1.0) skilar horninu =2. cos Notkun: s := \cos x Fyrir: x er eytitala sem er horn rad num. Eftir: s inniheldur eytit lu sem er k s nus hornsins x. 89

90 90 KAFLI 16. EININGIN FLEYF LL exp Notkun: s := \exp x Fyrir: x er eytitala. Eftir: s inniheldur eytit lu sem er e x. ln Notkun: s := \ln x Fyrir: x er j kv eytitala. Eftir: s inniheldur eytit lu sem er log e x. max Notkun: s := max( ) Fyrir: Ekkert. Eftir: s inniheldur st rstu m gulega eytit lu. min Notkun: s := min( ) Fyrir: Ekkert. Eftir: s inniheldur minnstu m gulega j kv a eytit lu. radian Notkun: s := \radian x Fyrir: x er eytitala sem stendur fyrir horn gr um. Eftir: s inniheldur eytit lu sem er sama horn rad num. r t Notkun: s := \r t x Fyrir: x er eytitala sem er ekki neikv. Eftir: s inniheldur kva ratr t x. sin Notkun: s := \sin x Fyrir: x er eytitala sem er horn rad num. Eftir: s inniheldur eytit lu sem er s nus hornsins x.

91 Kai 17 Einingin INN Einingin INN inniheldur stef sem lesa miss konar gildi af a alinntaki. Einingin notar bi minni (e. buer) og er v ekki r legt a nota a rar a fer ir samt mis til a lesa fr a alinntaki. lesa Notkun: s := lesa( ) Fyrir: Ekkert. Eftir: s inniheldur gildi sem lesin var r a alinntaki. L sileg gildi eru eftirfarandi: lesal nu Heilt lur milli og 32767, sama sni i og Fj lni Fleytit lur sama sni i og Fj lni Listar sni inu [g1,...,gn] ar sem g1 til gn eru l sileg gildi. Milli lesinna gilda og einstakra gilda lista geta veri bilstar, d lkstar (tab) og l nulok. Ef villa ver ur lestri ver ur skrifu melding ess efnis og keyrsla forritsins st vu. Notkun: s := lesal nu( ) Fyrir: Ekkert. Eftir: Les eina l nu r a al inntaki, s endir inntaks ekki fundinn, aldrei eiri en 255 sta. s f r gildi strengs sem inniheldur l nu sem lesin var. s ti 0 s er a nna fj lda lesinna stafa (.e. lengd l nunnar). Ef komi er enda inntaks, sem markast af v a lesi hefur veri ASCII gildi 26 (Ctrl-z) e a ASCII gildi 0 (NULL), f r s gildi satt. Endir l nu ervenjulega marka ur af vendistaf (carriage return, ASCII gildi 13) og l nuskipti staf (e. linefeed, ASCII gildi 10). Lesal nu vinnur r tt endir l nu s eing ngu marka ur me l nuskipti staf. essi tv gildi ver a aldrei hluti innihaldsins s. Ef l nan sem veri er a lesa inn, er lengri en 255 star, eru einungis lesnir 255 star, eim skila strengnum s og afgangurinn er l tinn b a n sta kalls lesal nu. 91

92 92 KAFLI 17. EININGIN INN lesastaf Notkun: s := lesastaf( ) Fyrir: Ekkert. Eftir: s inniheldur staf sem lesinn var r l nu r a al inntaki. N st egar kalla er ste skilar a n sta staf r l nunni. Ef fari er t fyrir enda l nunnar f r s gildi 13 (vendistafur). Ef enginn stafur var lesin r a al inntaki skilar ste sanngildinu satt. n stistafur Notkun: s := n stistafur( ) Fyrir: Ekkert. Eftir: s er gildi stafs r l nu a al inntaki. Ef komi er t fyrir enda l nunnar f r s gildi vendistafs (13). Ef engin stafur er til sta ar f r s gildi satt. egar kalla er n st ste skilar a sama staf nema a f r ha veri sta setningin innan l nunnar me v a kalla ste lesastaf.

93 Kai 18 Einingin KJARNI Stef sem eiga vi fj ldat lur! % & * + - / < <= <> = > >= ertala fdeiling fmargfeldi fmismunur fsumma h b ti hhli ra l gb ti minnka st kka vhli ra Stef sem eiga vi eytit lur *** /// 93

94 94 KAFLI 18. EININGIN KJARNI <<< <=<=<= <><><> === >>> >=>=>= brot erfleyt erfleytneikv erfleytn ll fj ltilfleyt fleytm nus fleytitala fleyttilfj l formerki veldi Stef sem eiga vi heilt lur! %% & ** // << <=<= <><> == >> >=>= ertala h b ti hdeiling hhli ra hmargfeldi hmismunur hsumma l gb ti vhli ra Stef sem eiga vi hli innb ti tb ti

95 95 Stef sem eiga vi hlunka erhlunkur hlunksetja hlunkst r hlunks kja hlunkur Stef sem eiga vi p r : erpar halasetja hali haus haussetja Stef sem eiga vi stefgildi erstef innfj ldi inn tfj ldi Stef sem eiga vi strengi erstrengur kafli strengflytja strengfylla strengsetjab ti strengsetjaor strengst r strengs kjab ti strengs kjaor strengur vistfang Stef sem eiga vi t magildi ert m Stef sem eiga vi hlunka og strengi fylkissetja1 fylkiss kja1

96 96 KAFLI 18. EININGIN KJARNI Stef sem vinna beint minni b tfylla flytja fylla k kjab ti k kjaor or fylla Stef til missar notkunar brj ta h tta grip10 laus_k lesastaf msdos RSskilti safna skalsafna skrifastaf Kjarnastef stafr fsr! Notkun: s :=! x Fyrir: x er fj lda- e a heiltala. Eftir: s inniheldur t luna sem kemur t egar bitunum sem t kna x er sn i vi ( 0 -> 1 og 1 -> 0). % Notkun: s := x % y Fyrir: x og y eru fj ldat lur. Eftir: s inniheldur afganginn egar x er deilt me y. %% Notkun: s := x %% y Fyrir: x og y eru heilt lur. Eftir: s inniheldur afganginn egar x er deilt me y. & Notkun: s := x & y Fyrir: x og y eru fj lda- e a heilt lur. Eftir: s inniheldur t luna sem kemur t egar x og y eru "og-u "saman bita fyrir bita.

97 97 * Notkun: s := x * y Fyrir: x og y eru fj ldat lur. Eftir: s inniheldur margfeldi x og y. ** Notkun: s := x ** y Fyrir: x og y eru heilt lur. Eftir: s inniheldur margfeldi x og y. *** Notkun: s := x *** y Fyrir: xogyeruhvorutveggja eytit lur. Eftir: s er eytitala sem er margfeldi x og y. + Notkun: s := x + y Fyrir: x og y eru fj ldat lur. Eftir: s inniheldur summu xogy. ++ Notkun: s := x ++y Fyrir: x og y eru heilt lur. Eftir: s inniheldur summu xogy. +++ Notkun: s := x +++ y Fyrir: xogyeruhvorutveggja eytit lur. Eftir: s er eytitala sem er summa x og y. - Notkun: s := x - y Fyrir: x og y eru fj ldat lur. Eftir: s inniheldur mismun x og y.

98 98 KAFLI 18. EININGIN KJARNI Notkun: s := x -- y Fyrir: x og y eru heilt lur. Eftir: s inniheldur mismun x og y. Notkun: s := x --- y Fyrir: xogyeruhvorutveggja eytit lur. Eftir: s er eytitala sem er mismunur x og y. / Notkun: s := x / y Fyrir: x og y eru fj ldat lur. Eftir: s inniheldur kv taxogy. Ef y er 0 st vast keyrsla forritsins, DOS ker tekur stj rnina og skrifar t villumeldingu. (e. divide overow). // Notkun: s := x // y Fyrir: x og y eru heilt lur, y m ekki vera n ll. Eftir: s inniheldur kv taxogy. Ef y er 0 st vast keyrsla forritsins, DOS ker tekur stj rnina og skrifar t villumeldingu. (e. divide overow). /// Notkun: s := x /// y Fyrir: x og y eru eytit lur. y m ekki vera n ll og ef x er ekki n ll m kv ti x og y ekki vera of st r (st rri en 1.79*10308 a t lugildi) og ekki of l till (minni en 1.11* a t lugildi). Eftir: s er eytitala sem er kv tixogy. : Notkun: s := x : y Fyrir: x og y eru gildi af hva a tagi sem er. Eftir: thluta er n ju pari og x er geymt hausnum og y halanum parinu.sver ur etta par. Ef ekki er h gt a thluta parinu vegna ess a allt minni er upp uri, skrifast villumelding ess efnis skj inn og keyrsla forritsins st vast.

99 99 < Notkun: s := x < y Fyrir: x og y eru fj ldat lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x < y,.e. satt og v a eins a x s minna en y, annars satt. Notkun: s := x << y Fyrir: x og y eru heilt lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x y,.e. satt og v a eins a x s minna en y, annars satt. < Notkun: s := x <<< y Fyrir: xogyeruhvorutveggja eytit lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x < y,.e. satt og v a eins a x s minna en y, annars satt. <= Notkun: s := x <= y Fyrir: x og y eru fj ldat lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x <= y,.e. satt og v a eins a x er minna en e a sama og y, annars satt. <=<= Notkun: s := x <=<= y Fyrir: x og y eru heilt lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x <=<= y,.e. satt og v a eins a x er minna en e a sama og y, annars satt. <=<=<= Notkun: s := x <=<=<= y Fyrir: xogyeruhvorutveggja eytit lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x <=<=<= y,.e. satt og v a eins a x s minna en e a sama og y, annars satt.

100 100 KAFLI 18. EININGIN KJARNI <> Notkun: s := x <> y Fyrir: x og y eru fj ldat lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x <> y,.e. satt og v a eins a x s ekki sama og y, annars satt. <><> Notkun: s := x <><> y Fyrir: x og y eru heilt lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x <><> y,.e. satt og v a eins a x s ekki sama og y, annars satt. <><><> Notkun: s := x <><><> y Fyrir: xogyeruhvorutveggja eytit lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x <><><> y,.e. satt og v a eins a x s jafnt y, annars satt. = Notkun: s := x = y Fyrir: x og y eru fj ldat lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x = y,.e. satt og v a eins a x s sama og y, annars satt. == Notkun: s := x == y Fyrir: x og y eru heilt lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x == y,.e. satt og v a eins a x s sama og y, annars satt. === Notkun: s := x >=>=>= y Fyrir: xogyeruhvorutveggja eytit lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x === y,.e. satt og v a eins a x s sama og y, annars satt.

101 101 > Notkun: s := x > y Fyrir: x og y eru fj ldat lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x > y,.e. satt og v a eins a x s st rra en y, annars satt. Notkun: s := x >> y Fyrir: x og y eru heilt lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x y,.e. satt og v a eins a x s st rra en y, annars satt. > Notkun: s := x >>> y Fyrir: xogyeruhvorutveggja eytit lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x > y,.e. satt og v a eins a x s st rra en y, annars satt. >= Notkun: s := x >= y Fyrir: x og y eru fj ldat lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x >= y,.e. satt og v a eins a x s st rra en e a sama og y, annars satt. >=>= Notkun: s := x >=>= y Fyrir: x og y eru heilt lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x >=>= y,.e. satt og v a eins a x s st rra en e a sama og y, annars satt. >=>=>= Notkun: s := x >=>=>= y Fyrir: xogyeruhvorutveggja eytit lur. Eftir: s inniheldur sanngildi fyrir samanbur inn x >=>=>= y,.e. satt og v a eins a x s st rra en e a sama og y, annars satt.

102 102 KAFLI 18. EININGIN KJARNI Notkun: s := x y Fyrir: x og y eru fj lda- e a heilt lur. Eftir: s inniheldur t luna sem kemur t egar b tin sem t kna x og y eru "e -u "saman bita fyrir bita. Notkun: s := x y Fyrir: x og y eru fj lda- e a heilt lur. Eftir: s inniheldur misgildis-e a af x og y..e.hver einstakur biti s er 1 og v a eins a annar samsvarandi bita x og y ha veri 1. brj ta Notkun: s := \brj ta x Fyrir: xerhva a gildi sem er. Eftir: Ste veldur gripi 3. Gildinu. x er skila s ef notandinn leyr keyrslu a halda fram eftir gripi. Ste er nota egar keyrt er undir DEBUG. brot Notkun: s := \brot x Fyrir: x er eytitala j fn n lli. Eftir: s inniheldur brothluta eytit lunnar x. Sj l singu stefsins eytitala. b tfylla Notkun: b tfylla( g,x,y,l) Fyrir: g,x,y,l eru fj ldat lur. Eftir: x stendur fyrir kaa og y stendur fyrir vistfang. Ste veldur v a b tunum fr og me x:y til og me x:(y+l-1) er ge gildi g. ereyt Notkun: s := \erfleyt x Fyrir: x er eitthvert gildi. Eftir: s f r gildi satt og v a eins a x s eytitala, annars satt. ereytneikv Notkun: s := \erfleytneikv x Fyrir: x er eytitala. Eftir: s inniheldur sanngildi fyrir samanbur inn x < 0,.e. satt og v a eins a x s minna en 0, annars satt.

103 103 ereytn ll Notkun: s := \erfleytn ll x Fyrir: x er eytitala. Eftir: s inniheldur sanngildi fyrir samanbur inn x === 0.0,.e. satt og v a eins a x s eytitalan 0.0, annars satt. erhlunkur Notkun: s := \erhlunkur x Fyrir: x er eitthvert gildi. Eftir: s f r gildi satt og v a eins a x s hlunkur, annars satt. erpar Notkun: s := \erpar x Fyrir: x er eitthvert gildi. Eftir: s f r gildi satt og v a eins a x s par, annars satt. erstef Notkun: s := \erstef x Fyrir: x er eitthvert gildi. Eftir: s f r gildi satt og v a eins a x s stefgildi, annars satt. erstrengur Notkun: s := \erstrengur x Fyrir: x er eitthvert gildi. Eftir: s f r gildi satt og v a eins a x s strengur, annars satt. ertala Notkun: s := \ertala x Fyrir: x er eitthvert gildi. Eftir: s f r gildi satt og v a eins a x s fj lda- e a heiltala, annars satt. ert m Notkun: s := \ert m x Fyrir: x er eitthvert gildi. Eftir: s f r gildi satt og v a eins a x s t magildi, annars satt.

104 104 KAFLI 18. EININGIN KJARNI fdeiling Notkun: fdeiling(a,b x,y,z) Fyrir: x,y og z eru fj ldat lur. Eftir: ab (32 bita tala) er fj ldat lu tkoman egar z er deilt xy. fj ltileyt Notkun: s := \fj ltilfleyt x Fyrir: x er fj ldatala. Eftir: Ste gefur s gildi eytit lu sem samsvarar fj ldat lunni x. eytitala Notkun: s := fleytitala( f,b,v) Fyrir: f er fj ldatala, anna hvort 0 e a 1. b er einhver fj ldatala. v er heiltala milli og 1023 a b um me t ldum. Eftir: s er eytitalan (;1) f (1 + b=65536)2 v. Komast m a formerki, broti og veldi eytit lu (f,b og v) me v a notastenformerki, brot, ogveldi. Eftirfarandi j fnur gilda: eytm nus \formerki fleytitala( f,b,v) = f \brot fleytitala( f,b,v) = b \veldi fleytitala( f,b,v) = v Notkun: s := \fleytm nus x Fyrir: x er eytitala. Eftir: Ste gefur s gildi eytit lunnar x me fugu formerki. eyttilfj l Notkun: s := \fleyttilfj l x Fyrir: x er eytitala. Eftir: Ste gefur s gildi fj ldat lu sem samsvarar eytit lunni x. ytja Notkun: flytja( x,y,p,q,l) Fyrir: x,y,p,q,l eru fj ldat lur. Eftir: x og p standa fyrir kaa, y og q standa fyrir vistf ng. Ste veldur v a l b ti fr og me x:y eru utt til p:q.

105 105 fmargfeldi Notkun: fmargfeldi(a,b x,y) Fyrir: x,y eru fj ldat lur. Eftir: ab (32 bita tala) er margfeldi x og y. fmismunur Notkun: fmismunur(a,b x,y) Fyrir: x,y eru fj ldat lur. Eftir: a er mismunur x og y. b er 0 ef x >=y annars 1. formerki Notkun: s := \formerki( x) Fyrir: x er eytitala j fn n lli. Eftir: Sj l singu stenu eytitala. fsumma Notkun: fsumma(a,b x,y) Fyrir: x og y eru fj ldat lur. Eftir: ab (32 bita tala) er summa x og y. fylkissetja1 Notkun: x := fylkissetja1( f,i,g) e a x:=f[i]:=g Fyrir: f er strengur e a hlunkur, i er s ti f, g er hva a gildi sem er ef f er hlunkur, b tgildi ef f er strengur. Eftir: S ti i f inniheldur g, x inniheldur g. fylkiss kja1 Notkun: x := fylkiss kja1( f,i) e a x:=f[i] Fyrir: f er strengur e a hlunkur, i er s ti f. Eftir: x inniheldur gildi s ti i f. Ef f var strengur er um b ti a r a. fylla Notkun: fylla( g,x,y,l) Fyrir: g,x,y,l eru fj ldat lur. Eftir: x stendur fyrir kaa og y stendur fyrir vistfang. Ste veldur v a b tunum fr og me x:y til og me x:(y+l-1) er ge gildi g.

106 106 KAFLI 18. EININGIN KJARNI halasetja Notkun: halasetja( x,y) Fyrir: x er par, y er eitthva gildi. Eftir: Ste veldur v a gildi y er sett hala parsins x. Ef x er ekki par egar kalla er ste, skrifast villumelding ess efnis skj inn og keyrsla forritsins st vast. hali Notkun: s := \hali x Fyrir: x er par. Eftir: s inniheldur hala parsins x. Ef x er ekki par egar kalla er ste, skrifast villumelding ess efnis skj inn og keyrsla forritsins st vast. haus Notkun: s := \haus x Fyrir: x er par. Eftir: s inniheldur haus parsins x. Ef x er ekki par egar kalla er ste, skrifast villumelding ess efnis skj innogkeyrsla forritsins st vast. haussetja Notkun: haussetja( x,y) Fyrir: x er par, y er eitthva gildi. Eftir: Ste veldur v a gildi y er sett haus parsins x. Ef x er ekki par egar kalla er ste, skrifast villumelding ess efnis skj inn og keyrsla forritsins st vast. h b ti Notkun: s := \h b ti x Fyrir: x er fj lda- e a heiltala. Eftir: s inniheldur h b ti t lunnar x,.e. fyrra b ti sem t knar t luna. hdeiling Notkun: hdeiling(a,b x,y,z) Fyrir: x,y og z eru heilt lur. Eftir: ab (32 bita tala) er heilt lu tkoman egar z er deilt xy (32 bita tala). hhli ra Notkun: s := x \hhli ra y Fyrir: x,y eru fj lda- e a heilt lur. Eftir: s inniheldur tkomuna egar x er hli ra til h gri um y bita.

107 107 hlunksetja Notkun: hlunksetja( x,y,g) Fyrir: x er hlunkur, y er fj ldatala og g er eitthva gildi. Eftir: Ste veldur v a gildi g er sett y-ta s ti hlunknum x. Ef x er ekki hlunkur egar kalla er ste, skrifast villumelding ess efnis skj inn og keyrsla forritsins st vast. hlunkst r Notkun: s := \hlunkst r x Fyrir: x er hlunkur. Eftir: s inniheldur fj lda s ta hlunknum x. hlunks kja Notkun: s := x \hlunks kja y Fyrir: x er hlunkur og y er fj ldatala. Eftir: s inniheldur gildi y-ta s ti hlunknum x. Ef x er ekki hlunkur egar kalla er ste, skrifast villumelding ess efnis skj inn og keyrsla forritsins st vast. hlunkur Notkun: s := \hlunkur x Fyrir: x er fj ldatala. Eftir: s er n r hlunkur me a.m.k. x s tum, me ll s tin t m. Ef ekki er h gt a thluta hlunknum vegna ess a allt minni er upp uri, skrifast villumelding ess efnis skj inn og keyrsla forritsins st vast. hmargfeldi Notkun: hmargfeldi(a,b x,y) Fyrir: x,y eru heilt lur. Eftir: ab (32 bita tala) er margfeldi x og y. hmismunur Notkun: hmismunur(a,b x,y) Fyrir: x,y eru heilt lur. Eftir: a er mismunur x og y. b er 0 ef x>=y, annars 1. hsumma Notkun: hsumma(a,b x,y) Fyrir: x og y eru heilt lur. Eftir: ab (32 bita tala) er summa x og y.

108 108 KAFLI 18. EININGIN KJARNI h tta Notkun: h tta( x) Fyrir: x er heiltala. Eftir: Ste veldur v a keyrsla forritsins st vast og t lunni x er skila sem ni urst ulykli (e. exit code) t st riker. innb ti Notkun: s := \innb ti x Fyrir: x er fj ldatala. Eftir: s inniheldur b ti sem lesi var r hli i (e. port) x. innfj ldi Notkun: s := \innfj ldi x Fyrir: x er stefgildi. Eftir: s inniheldur fj lda inn breyta fyrir stefgildi x. inn tfj ldi Notkun: s := \inn tfj ldi x Fyrir: x er stefgildi. Eftir: s inniheldur fj lda inn t breyta fyrir stefgildi x. grip10 Notkun: grip10(ax,bx,cx,dx ) Fyrir: ax,bx,cx,dx eru t lubreytur. Eftir: Ste veldur v a gildin breytunum eru sett gistur AX, BX, CX, DX, v n st er kalla BIOS ker me gripi (e. interrupt) 10. Gildin gistunum eftir gripi eru s an sett samsvarandi breytur eftir kalli. kai Notkun: s := \kafli x Fyrir: x er strengur e a hlunkur. Eftir: s inniheldur t lu sem stendur fyrir kaa-hluta (e. segment) vistfangsins fyrir x. k kjab ti Notkun: s := x \k kjab ti y Fyrir: x,y eru fj ldat lur. Eftir: x stendur fyrir kaa og y stendur fyrir vistfang. s inniheldur gildi b tisins vistfangi x:y.

109 109 k kjaor Notkun: s := x \k kjaor y Fyrir: x,y eru fj ldat lur. Eftir: x stendur fyrir kaa og y stendur fyrir vistfang. s inniheldur gildi or sins vistfangi x:y. laus_k Notkun: s := laus_k( ) Fyrir: Eftir: s inniheldur st r nota s minnis, m lt K-um (1K = 1024 b ti). l gb ti Notkun: s := \l gb ti x Fyrir: x er fj lda- e a heiltala. Eftir: s inniheldur l gb ti t lunnar x,.e. seinna b ti sem t knar t luna. lesastaf Notkun: s := lesastaf( ) Fyrir: Eftir: s inniheldur t lu sem t knar staf er lesinn var fr lyklabor i. minnka Notkun: s := \minnka x Fyrir: x er fj ldatala. Eftir: s inniheldur gildi x - 1. msdos Notkun: s :=msdos(ax,bx,cx,dx,bp,si,di,ds,es,fl gg ) Fyrir: ax,bx,cx,dx,bp,si,di,ds,es og gg eru breytur. Eftir: Ste veldur v a gildin breytunum eru sett gistur AX, BX, CX, DX, BP, SI, DI, og kaa DS, ES. v n st er kalla DOS ker me gripi (e. interrupt) 21. Gildin gistunum, k unum og ggin eftir gripi eru s an sett samsvarandi breytur eftir kalli. Breyturnar eru vallt af taginu t lur eftir kalli, h v hva a tagi r voru af fyrir kalli ste. or fylla Notkun: or fylla( g,x,y,l) Fyrir: g,x,y og l eru fj ldat lur. Eftir: x stendur fyrir kaa og y stendur fyrir vistfang. ste veldur v a or in fr og me x:y til og me x:(y+2(l-1)) f gildi g.

110 110 KAFLI 18. EININGIN KJARNI RSskilti Notkun: rofi1 := RSskilti( rofi2) Fyrir: ro2 er eitthvert gildi. Eftir: Stef etta st rir hvort gen er v sbending skj egar ruslas fnun s r sta. uppha keyrslu hvers forrits er v annig h tta a me an rusli er safna eru settir starnir RS efra horn skj sins vinstra megin. essari skipan m la m breyta me v a kalla RSskilti me vi fangi sem er satt. mun engin v sbending ver a gen egar safna er. Upphaega skipan m la (.e.a.s. sem gildir byrjun keyrslu) m f aftur me v a kalla RSskilti me s nnu vi fangi. Eftir kalli safna ro1 := RSskilti( ro2) inniheldur ro1 gildi sem segir til um skipan m la fyrir kalli,.a. skipan m la m f aftur me kallinu RSskilti( ro1) Notkun: safna( ) Fyrir: Ekkert. Eftir: Kalli veldur v a ruslas fnun s r sta. skalsafna Notkun: rofi1 := skalsafna( rofi2) Fyrir: ro2 er eitthvert gildi. Eftir: Stef etta st rir ruslas fnunum. uppha keyrslu hvers forrits er ruslas fnunum annig h tta a r eru framkv mdar eftir v sem rf krefur. hvert skipti sem kalla er kjarnastef sem thlutar minni ( au eru strengur, hlunkur og :) er ruslasafna ef rf ykir. essari skipan m la m breyta me v a kalla skalsafna me vi fangi sem er satt. mun aldrei ver a ruslasafna heldur ver ur minni einfaldlega ti upp sm tt og sm tt nema kalla s grunnste safna. Upphaega skipan m la (.e.a.s. sem gildir byrjun keyrslu) m f aftur me v a kalla skalsafna me s nnu vi fangi. Eftir kalli ro1 := skalsafna( ro2) inniheldur ro1 gildi sem segir til um skipan m la fyrir kalli,.a. skipan m la m f aftur me kallinu skalsafna( ro1) skrifastaf Notkun: s := skrifastaf( x) Fyrir: x er 8 bita fj ldatala (0-255) Eftir: Ste veldur v a stafurinn, sem x t knar, er skrifa ur a al ttak (e. standard output).

111 111 strengytja Notkun: strengflytja( s1,p1,s2,p2,n) Fyrir: s1 og s2 eru strengir. p1 og p2 og n eru fj ldat lur.a. p1 ::: p1 + n - 1 eru s ti s1 og p2 ::: p2 + n - 1 eru s ti s2. Eftir: B i er a afrita b tin s tum p1 ::: p1 + n - 1 s1 s tip2 ::: p2 + n - 1 s2. strengfylla Notkun: strengsetjab ti( gildi,strengur,sta ur,fj ldi) Fyrir: strengur er strengur, gildi er fj ldatala, sta ur og fj ldi eru fj ldat lur.a. sta ur...sta ur+fj ldi-1 eru s ti strengur. Eftir: S tin sta ur...sta ur+fj ldi-1 strengur hafa veri fyllt me b tinu l gb ti gildi. strengsetjab ti Notkun: strengsetjab ti( x,y,g) Fyrir: x er strengur,y og g eru fj ldat lur. Eftir: Ste veldur v a g er sett y-ta s ti strengnum x. Ef x er ekki strengur egar, kalla er ste, skrifast villumelding ess efnis skj inn og keyrsla forritsins st vast. strengsetjaor Notkun: strengsetjaor ( x,y,g) Fyrir: x er strengur,y er fj ldatala og g er fj lda- e a heiltala. Eftir: Ste veldur v a g er sett y-ta s ti strengnum x. Ef x er ekki strengur, egar kalla er ste, skrifast villumelding ess efnis skj inn og keyrsla forritsins st vast. strengst r Notkun: s := \strengst r x Fyrir: x er strengur. Eftir: s inniheldur fj lda b ta strengnum x. strengs kjab ti Notkun: s := x \strengs kjab ti y Fyrir: x er strengur, y er fj ldatala. Eftir: s inniheldur b ti y-ta s ti strengsins x. strengs kjaor Notkun: s := x \strengs kjaor y Fyrir: x er strengur, y er fj ldatala. Eftir: s inniheldur or i y-ta s ti strengsins x.

112 112 KAFLI 18. EININGIN KJARNI strengur Notkun: s := \strengur x Fyrir: x er fj ldatala. Eftir: s inniheldur n jan streng af l gmarksst r x b ti. Ef ekki er h gt a thluta strengnum vegna ess a allt minni er upp uri, skrifast villumelding ess efnis skj inn og keyrsla forritsins st vast. st kka Notkun: s := \st kka x Fyrir: x er fj ldatala. Eftir: s inniheldur gildi x + 1. tb ti Notkun: tb ti( x,y) Fyrir: x og y eru fj ldat lur. Eftir: Ste veldur v a b ti y er skrifa hli (e. port) x. veldi Notkun: s := \veldi x Fyrir: x er eytitala j fn n lli. Eftir: Sj l singu stenu eytitala. vhli ra Notkun: s := x \vhli ra y Fyrir: x,y eru fj lda- e a heilt lur. Eftir: s inniheldur tkomuna egar t lunni x er hli ra til vinstri um y bita. vistfang Notkun: s := \vistfang x Fyrir: x er strengur e a hlunkur. Eftir: s inniheldur t lu sem stendur fyrir vistfangs-hluta (e. oset) vistfangsins fyrir x.

113 Kai 19 Einingin LESALINU lesal nu essi eining inniheldur eitt stef sem les l nu af a alinntaki. Notkun: l na := lesal nu( ) Fyrir: Ekkert. ATH! ar sem lesal nu notar bi minni vi lestur af a alinntaki, er ekki r legt a nota a rar a ger ir vi lestur r a alinntaki sama t ma. Eftir: Les eina l nu r a al inntaki, s endir inntaks ekki fundinn, aldrei eiri en 255 sta. l na f r gildi strengs sem inniheldur l nu sem lesin var. s ti 0 l na er a nna fj lda lesinna stafa (.e. lengd l nunnar). Ef komi er enda inntaks, sem markast af v a lesi hefur veri ascii gildi 26 (Ctrl-z) e a ascii gildi 0 (NULL), f r l na gildi satt. Endir l nu er venjulega marka ur af ascii gildunum 13 (carriage return) og 10 (linefeed) en lesal nu virkar endir l nu s eing ngu marka ur me ascii gildinu 10. essi tv gildi ver a aldrei hluti innihaldsins l na. Ef l nan sem veri er a lesa inn, er lengri en 255 star, eru einungis lesnir 255 star, eim skila strengnum l na og afgangurinn l tinn b a n sta kalls lesal nu. 113

114 114 KAFLI 19. EININGIN LESALINU

115 Kai 20 Einingin SKRIFALIN essi eining inniheldur eitt stef sem skrifar streng a al ttak. skrifal nu Notkun: ok := skrifal nu( strengur) Fyrir: strengur er strengur. Eftir: Tekin er lengd( strengur) (.e. b ti s ti 0) og a l ti segja til um ann fj lda b ta sem skrifa. au b ti eru s an skrifu t a al ttak. A lokum er svo bendir f r ur n stu l nu eftir (me v a skrifa ascii gildin 13 og 10). Ef tekst a skrifa etta allt n ess a nokkur villa komi upp, f r ok gildi satt annars f r ok gildi satt. 115

116 116 KAFLI 20. EININGIN SKRIFALIN

117 Kai 21 Einingin SNUA sn a Einingin SNUA inniheldur a ger til a sn a vi lista. Notkun: listi1 := sn a( listi2) Fyrir: listi2 er eiginlegur listi (t mur e a ekki) sem getur innihaldi hva sem er. Listi er eiginlegur ef unnt er a f t magildi sem tkomu me v a taka hala n gilega oft. Eftir: listi1 f r gildi lista sem er annig a b i er a sn a vi r staka listanum listi2.a. fyrsta staki listi2 ver ur a s asta listi1 o.s.frv. Ef listi2 er t mur (.e. []) ver ur listi1 a l ka. Sem d mi m tti taka a sn a( [1,2,3,4]) skilar [4,3,2,1]. 117

118 118 KAFLI 21. EININGIN SNUA

119 Kai 22 Einingin STRENGIR Einingin Strengir inniheldur nokkrar a ger ir sem vinna strengjum. erstafur streng Notkun: sta ur := erstafur streng( strengur,stafur) Fyrir: Strengur er strengur og stafur er stafur (.e. fj ldatala bilinu 0 til 255). Eftir: Leita er strengnum strengur af stafnum stafur, eins langt og lengd strengur (.e. b ti s ti 0) segir til um. Ef stafurinn stafur nnst a.m.k. einu sinni strengur, f r sta ur gildi fj ldat lu sem er s tisn meri ar sem stafur nnst fyrst strengur. Ef stafur nnst ekki strengur, f r sta ur gildi satt. lengd Notkun: lengd := lengd( strengur) Fyrir: Strengur er strengur. Eftir: lengd f r gildi fj ldat lu sem er b ti sem geymt er s ti 0 strengur (.e. lengd hans). strengskeyta Notkun: str3 := strengskeyta( str1,str2) Fyrir: str1 og str2 eru strengir og samanl g lengd eirra er minni e a j fn 255. Eftir: str3 f r gildi strengs sem er tkoman egar strengnum str1 er skeytt framan strenginn str2. Innihaldi str1 og str2 er ekkert breytt. hlutstrengur Notkun: hluti := hlutstrengur( strengur,byrja,fj ldi) Fyrir: Strengur er strengur. byrja og fj ldi eru fj ldat lur. Eftir: Ef byrja er st rri en lengd strengur, f r hluti gildi satt. Ef byrja a vi b ttum fj ldi -1erst rri en lengd strengur, f r hluti l ka gildi satt. A rum kosti f r hluti gildi strengs sem er hlutstrengur r strengur, fr og me s ti byrja til og me s ti byrja+fj ldi-1.e. hluti ver ur strengur me lengd fj ldi. 119

120 120 KAFLI 22. EININGIN STRENGIR strengur streng Notkun: strengur streng( fr strengur,tilstrengur,sta ur) Fyrir: fr strengur og tilstrengur eru strengir. sta ur er fj ldatala. Eftir: Ef sta ur er st rri en lengd tilstrengur er ekkert gert. Ef sta ur a vi b ttri lengd fr strengur - 1er st rri en lengd tilstrengur er ekkert heldur gert. A rum kosti er innihald fr strengur utt yr tilstrengur.a. fyrsta b ti s ti 1 fr strengur fer s ti sta ur tilstrengur, b ti s ti 2 fr strengur fer s ti sta ur + 1 tilstrengur o.s.frv. Innihaldi fr strengur er ekkert breytt.

121 Kai 23 Einingin UT n l na Notkun: n l na( ) Fyrir: Ekkert. Eftir: Ste veldur v a vendistafur (e. carriage return) ogl nuskipti stafur (e. linefeed) eru skrifa ir t a al ttak (e. standard output). annig a a sem skrifa er n st t a al ttak, lendir fremst n stu l nu fyrir ne an. skrifa Notkun: skrifa( x) Fyrir: x er gildi sem er listi, t magildi, heiltala, strengur, eytitala e a hlunkur. Eftir: Ste veldur v a gildi x er skrifu t a al ttak (e. standard output), ef a er einhver af eim gildum sem taldar voru upp h r a framan. Ef x er ekki sl kt gildi skrifast t stafurinn?. Hlunkar eru skrifa ir umluktir slaufusvigum. skrifafj l Notkun: skrifafj l( x) Fyrir: x er fj ldatala. Eftir: Ste veldur v a fj ldatalan x er skrifu t a al ttak (e. standard output). skrifastreng Notkun: skrifastreng( x) Fyrir: x er strengur. B ti 0. s ti strengnum, segir til um hversu langur strengurinn er. Eftir: Ef x er strengur, er hann skrifa ur t a al ttak (e. standard output). Strengurinn er skrifa ur n umlykjandi g salappa. Ef x er ekki strengur er stafurinn? skrifa ur t a al ttak. 121

122 122 KAFLI 23. EININGIN UT

123 Hluti III Vi aukar 123

124

125 Kai 24 Forriti Fjalla Forriti Fjalla er hj lparforrit fyrir sem forrita Fj lni. Forriti les einingar sem b nar hafa veri til me Fj lni og skrifar t msar uppl singar um vi komandi einingar. Forriti er keyrt DOS umhvernu me v a gefa skipanal nu forminu: A>FJALLA[/rofar] ein [/rofar ein]... N nari l sing rofar og ein fer h r eftir. Rofar Fjalla Rofunum er stj rna skipanal nunni eins og Fj lni. uppha eru rofarnir u og i sj lfgefnir. Ro u: Atri i sem einingin ytur t eru skrifu t. Ef einingin ytur t einhverjar faldar grunna ger ir (sj umfj llun um eininguna FELAGRUN) eru r ekki skrifa ar t egar u ronn er, nema a g ronn s einnig. Atri in geta veri hvort heldur sem er, stef e a v v rar breytur. Ro i: Atri i sem einingin ytur inn eru skrifu t. Ef einingin ytur inn einhverjar grunna ger ir eru r ekki skrifa ar t egar u ronn er, nema a g ronn s einnig. Atri in geta veri hvort heldur sem er, stef e a v v rar breytur. Ro g: Ef einingin ytur inn og/e a t einhverjar faldar a ger ir eru r skrifa ar t. Ro t: Minnistilv sanir eru skrifa ar t fyrir ll au atri i sem l st er. Ro r: Uppl singar um fj lda og heildarst r strengja talin b tum eru skrifa ar t. Ro b: Uppl singar um fj lda bundinna v v rra breytna er skrifa ur t. r breytur sem uppnefna a ra breytu teljast sem ein breyta me breytunni sem r uppnefna. Ro s: Uppl singar um st r minnisblokkar einingarinnar talin b tum eru skrifa ar t. Rofarnir eru virkir fr v a eir eru ger ir virkir skipanal nunni allt til enda hennar, ef ekki er sl kkt eim ur. H gt er a sl kkva rofum me v a setja '-' t kni fyrir aftan. D mi: A>Fjalla/si- ein1 /u-i ein2.ein essu d mi skrifast t tutt atri i, uppnefningar og st r minnisblokkar fyrir ein1. Fyrir ein2 skrifast t innutt atri i, uppnefningar og st r minnisblokkar. Einingar fjalla H gt er a tiltaka eina einingu senn, sem forriti a vinna, me e a n eftirnafns. D mi: A>Fjalla ein1 ein2.ein H r skrifast t tutt, innutt atri i og uppnefningar fyrir einingarskr na ein1.ein Fyrir ein2.ein skrifast t a sama. 125

126 126 KAFLI 24. FORRITI FJALLA D mi um ttak r Fjalla Ef kalla er forriti annig: A>FJALLA/gtrbs innut2 m b ast vi ttaki ennan veg: Fj lnir slensk tg fa 1.00 Ra n mer Copyright (c) 1986, 1987, 1988 ll r ttindi skilin Snorri Agnarsson, J n Har arson, P ll Bj rnsson L si einingunni innut2.ein tflutningur: lesa [stef 0 0] [0] lesal nu [stef 0 0] [0] Uppnefningar: sn a -> sn ningur Innflutningur: (+) [stef 0 0] [ ] _eftirm li0 m li [3798] _form li0 m li [3170] *** [stef 0 2] [2710] Breytur: Eru 2 talsins Strengir: Eru 1 og eru 129 b ti alls lengd. St r ulu minni: 3904 Fyrsta l nan segir til um tg fu foritsins og ra n mer ess. N stu tv r l nur eru s an til uppl singar um forriti. v n st kemur l na sem segir til um hva a einingu er veri a l sa. tutningar eru v n st taldir upp stafr fsr. Hver l na upptalningunni er.a. fyrst kemur nafn atri isins, v n st kemur tagi atri inu, ef a er stef segir fyrri talan til um fj lda inn t breytna og seinni talan segir til um fj lda inn breytna. ar eftir kemur tala sem segir til um vistfang stefsins. Upptalning uppnefningum kemur v n st. Hver l na s nir uppnefninguna eins og h n er einingunni. Upptalning innutningum kemur ar eftir, formi upptalningunni er eins og fyrir tutninginn. Uppl singar um fj lda v v rra breytna er ar eftir. ar eftir er upptalning fj lda strengja og samanl g lengd eirra gen upp. A lokum st r minnisblokkarinnar undir au stef sem einingin inniheldur.

127 Kai 25 Forriti Hvarer Forriti Hvarer er hj lparforrit fyrir sem forrita Fj lni. Forriti les einingar sem b nar hafa veri til me Fj lni og leitar a atri um me al tuttra og/e a innuttra atri a eininganna. Forriti skrifar lok keyrslu t skj lista yr einingar sem vi komandi atri i fundust inn- og/e a tutningi. Forriti er keyrt DOS umhvernu me v a gefa skipanal nu forminu: A>HVARER atri i rofar einingar N nari l sing atri i, rofar og einingar fer h r eftir. Atri i Hvarer N fn eirra t- og/e a innutninga sem leita a, eru tilgreind atri i. Eru n fnin slegin inn eins og au koma fyrir einingunum sem leita. Ein undantekning er s, a er sleppt framan af nafninu, ef a er til sta ar. ar sem vi geta atri i tt b i vi n fn stefjum og v v rum breytum. Rofar Hvarer Rofar Hvarer forritinu erutvenns konar: i og u. Ronn u er sj lfgenn. Ro hrif u Leita a atri i/atri um tuttum atri um eininga. i Leita a atri i/atri um innuttum atri um eininga. Einingar Hvarer Einingar sem leita eru tilteknar me n fnum. Ekki arf a gefa upp eftirnafn eininganna. Einnig er h gt a tilgreina kve i safn eininga sem leita. Til d mis v ri h gt a skrifa: \ein\b*.ein. er leita llum einingum me nafni sem byrjar stafnum b og me eftirnafninu.ein m ppunni ein sem liggur t fr r tinni. D mi: A>Hvarer lesa + taka \iu- ein1 ein2 f*.ein H r er leita a lesa, + og taka innuttum atri um eininganna ein1, ein2 og allra eirra einingaskr a sem hafa nafn sem samsvarar f*.ein. D mi um ttak r Hvarer Ef kalla er forriti annig: A>Hvarer \i ein\grunnur ein\inn m b ast vi ttaki ennan veg: Fj lnir slensk tg fa 1.00 Ra n mer Copyright (c) 1986, 1987, 1988 ll r ttindi skilin Snorri Agnarsson, J n Har arson, P ll Bj rnsson Leita a : [ ] : [ein\inn ein\grunnur] 127

128 128 KAFLI 25. FORRITI HVARER Eftirt ld atri i fundust tflutningi: "+" eftirt ldum einingum: [ein\grunnur.ein] "-" eftirt ldum einingum: [ein\grunnur.ein] Eftirt ld atri i fundust innflutningi: "+" eftirt ldum einingum: [ein\inn.ein] Fyrsta l nan segir til um tg fu foritsins og ra n mer ess. N stu tv r l nur eru s an til uppl singar um forriti. fj r u l nunni er s an teki fram hverju er veri a leita a einingunum. mmtu l nu er teki fram hva a einingum skal leita a atri unum. ar eftir koma s an uppl singar um hva a einingum atri in fundust, ef au fundust yrleitt. Ef vi komandi atri i nnst, hvort sem er tutningi e a innutningi, kemur l na sem segir hvert atri i er og ar eftir upptalning einingunum sem atri i fannst.

129 Kai 26 Einingin BROT Einingin BROT inniheldur a ger ir brot. Einingin er fj lnota ar e notandinn getur kve i hvers konar gildi eru notu stu la (teljara og nefnara) me v a tengja vi eigandi stu laa ger ir einingunni. tutningar * Notkun: x := y * z Fyrir: y og z eru brot. Eftir: z er broti sem er margfeldi y og z. + Notkun: x := y + z Fyrir: y og z eru brot. Eftir: z er broti sem er summa y og z. - Notkun: x := y - z Fyrir: y og z eru brot. Eftir: z er broti sem er mismunur y og z. / Notkun: x := y / z Fyrir: y og z eru brot. Eftir: z er broti sem er kv ti y og z. 129

130 130 KAFLI 26. EININGIN BROT < Notkun: x := y < z Fyrir: y og z eru brot. Eftir: z er ni ursta a samanbur arins, satt e a satt. <= Notkun: x := y <= z Fyrir: y og z eru brot. Eftir: z er ni ursta a samanbur arins, satt e a satt. <> Notkun: x := y <> z Fyrir: y og z eru brot. Eftir: z er ni ursta a samanbur arins, satt e a satt. = Notkun: x := y = z Fyrir: y og z eru brot. Eftir: z er ni ursta a samanbur arins, satt e a satt. > Notkun: x := y > z Fyrir: y og z eru brot. Eftir: z er ni ursta a samanbur arins, satt e a satt. >= Notkun: x := y >= z Fyrir: y og z eru brot. Eftir: z er ni ursta a samanbur arins, satt e a satt. brot Notkun: x := y \brot z Fyrir: y og z eru stu lar, y er ekki n ll. Eftir: x er broti y/z. Tryggt er a fyrir alla stu la y og z.a. z er ekki n ll gildir a y/z = (\teljari x) / (\nefnari x) og a \nefnari x > 0 og a stu larnir \teljari x og \nefnari x hafa engan tt sameiginlegan.

131 131 nefnari Notkun: x := \nefnari y Fyrir: y er brot. Eftir: z er nefnari fullstytts brots jafnt y. Sj einnig brot. teljari Notkun: x := \teljari y Fyrir: y er brot. Eftir: z er teljari fullstytts brots jafnt y. Sj einnig brot. Innutningar Auk falinna kjarnastefja er v sa eftirfarandi stef r einingunni BROT. * Notkun: x := y * z Fyrir: y og z eru stu lar. Eftir: x er stu ullinn sem er margfeldi y og z.. + Notkun: x := y + z Fyrir: y og z eru stu lar. Eftir: x er stu ullinn sem er summa y og z.. - Notkun: x := y - z Fyrir: y og z eru stu lar. Eftir: x er stu ullinn sem er mismunur y og z.. / Notkun: x := y / z Fyrir: y og z eru stu lar. Eftir: x er stu ullinn sem er kv tiy og z..

132 132 KAFLI 26. EININGIN BROT < Notkun: x := y < z Fyrir: y og z eru stu lar. Eftir: z er ni ursta a samanbur arins, satt e a satt. <> Notkun: x := y <> z Fyrir: y og z eru stu lar. Eftir: z er ni ursta a samanbur arins, satt e a satt. = Notkun: x := y = z Fyrir: y og z eru stu lar. Eftir: z er ni ursta a samanbur arins, satt e a satt. > Notkun: x := y > z Fyrir: y og z eru stu lar. Eftir: z er ni ursta a samanbur arins, satt e a satt. gcd Notkun: x := y \gcd z Fyrir: y og z eru stu lar. Eftir: z er stu ullinn sem er st rsti sameiginlegi ttur y og z.. n ll Notkun: x := n ll( ) Fyrir: Ekkert. Eftir: x er stu ullinn n ll.

133 Kai 27 Einingarnar FELAGRUN og FELAKJAR Einingarnar FELAGRUN og FELAKJAR hafa nokkra s rst u. r eru nota ar til ess a festa innutt stef sem grunnstef og kjarnastef,.e.a.s. stef r einingunum GRUNNUR og KJARNI. Ef t.d. einingin "A"v sar grunnstef "+"og -" m sm a n ja einingu "B"me einingarveitingunni "B" = "A" * "FELAGRUN" essi n ja eining v sar n ekki lengur "+"og -"heldur "(+)"og "(-)". Einingin "GRUNNUR"inniheldur stef me essum n fnum, og eru a s mu stef og "+"og -". ar e a eins einingarnar GRUNNUR og KJARNI innihalda "(+)"og "(-)"og ekki er m gulegt a uppnefna "(+)"og "(-)"er tryggt a stef essi tengjast grunnstefjunum e a kjarnastefjunum, sem reyndar eru au s mu. Einingin FELAGRUN er reyndar ekkert anna en uppnefning llum grunnstefjum sem gefur eim n fn me svigum,.e.a.s.: "FELAGRUN" = {! -> (!) % -> (%)... vhli ra -> (vhli ra) vistfang -> (vistfang) } Sl ka einingu er ekki h gt a skrifa Fj lni ar e svigar eru ekki leylegir n fnum. Svipa gildir um eininguna FELAKJAR. 133

134 134 KAFLI 27. EININGARNAR FELAGRUN OG FELAKJAR

135 Kai 28 Einingar fyrir fylki Einingarnar HFYLKI og SFYLKI innihalda stef fyrir fylki me talnav sum. Fylki au sem HFYLKI b ur upp eru hra virkari en au sem SFYLKI b ur, en nota meira minni. B ar ger ir fylkja st kka sj lfkrafa egar b tt er au og leyfa v sa fr 0 til Athugi a hver og einn getur hanna s n eigin fylki og arf alls ekki endilega a nota essar einingar. T.d. m oft notast vi hlunka e a strengi sem fylki, og einnig m au veldlega sm a fylkjaeiningu me hj lp einingarinnar TAFLA. Einingar essar v sa a eins kjarnastef Einingin HFYLKI fylki Notkun: f := fylki Fyrir: Ekkert. Eftir: f inniheldur fylki. fylkissetja1 Notkun: s := fylkissetja1( f,i,g) Fyrir: f er fylki, i er tala (heiltala e a fj ldatala), g er eitthvert gildi. Eftir: S ti i fylkinu f inniheldur gildi g. s inniheldur gildi g. fylkiss kja1 Notkun: s := fylkiss kja1( f,i) Fyrir: f er fylki, i er tala (heiltala e a fj ldatala). Eftir: s inniheldur staki r s ti i fylkinuf.efekkert stak hefur veri sett s ti i inniheldur s t magildi, []. 135

136 136 KAFLI 28. EININGAR FYRIR FYLKI 28.2 Einingin SFYLKI fylki Notkun: f := fylki Fyrir: Ekkert. Eftir: f inniheldur fylki. fylkissetja1 Notkun: s := fylkissetja1( f,i,g) Fyrir: f er fylki, i er tala (heiltala e a fj ldatala), g er eitthvert gildi. Eftir: S ti i fylkinu f inniheldur gildi g. s inniheldur gildi g. fylkiss kja1 Notkun: s := fylkiss kja1( f,i) Fyrir: f er fylki, i er tala (heiltala e a fj ldatala). Eftir: s inniheldur staki r s ti i fylkinuf.efekkert stak hefur veri sett s ti i inniheldur s t magildi, []. max Notkun: s := max( f) Fyrir: f er fylki. Eftir: s inniheldur st rsta fj ldat luv si f. S ti s f inniheldur gildi anna en t magildi, en ll s ti ar fyrir ofan eru t m. min Notkun: s := min( f) Fyrir: f er fylki. Eftir: s inniheldur minnsta fj ldat luv si f. S ti s f inniheldur gildi anna en t magildi, en ll s ti ar fyrir ne an eru t m.

137 Kai 29 Einingin HEXEININ essi eining inniheldur stef sem koma a g um notum egar skrifa arf heilt lur og eytit lur t sext ndaker. tutningar hexb ti Notkun: str := hexb ti( tala) Fyrir: tala er fj ldatala. Eftir: str f r gildi strengs sem hefur lengd 3 og inniheldur "$xy" ar sem xy er fj ldatalan tala (e a l gb ti( tala) ef tala er > 255) t knu hex-sni i. T.d. fengi str gildi "$1B" ef kalla v ri hexor str := hexb ti( 27) Notkun: str := hexor ( tala) Fyrir: tala er fj ldatala. Eftir: str f r gildi strengs sem hefur lengd 5 og inniheldur "$wxyz" ar sem wxyz er fj ldatalan tala t knu hex-sni i. T.d. fengi str gildi "$001B" ef kalla v ri hexstafur str := hexb ti( 27) Notkun: stafur := hexstafur( tala) Fyrir: tala er fj ldatala bilinu 0til15. Eftir: stafur f r gildi fj ldat lu sem inniheldur l gb ti s nu stann sem nota ur er til a t kna tala hexformi. T.d. fengi stafur gildi 'A' ef kalla v ri stafur := hexstafur( 10). Innutningar Auk kjarnastefja er v sa eftirfarandi stef r einingunni HEXEININ. 137

138 138 KAFLI 29. EININGIN HEXEININ afrita Notkun: str2 := afrita( str1) Fyrir: str1 er strengur. Eftir: str2 hefur gildi strengs sem er afrit af strengnum str1. Stef sem uppfyllir essa l singu m nna einingunni AFRITA og einingunni GRUNNUR.

139 Kai 30 Einingin ISLR D Eining essi inniheldur stef til a bera saman sta og strengi samkv mt slenskri stafr fsr. r henni er einungis v sa falin kjarnastef. slenskrir Notkun: svar := slenskrir ( stafur1,stafur2) Fyrir: stafur1 og stafur2 eru b i fj ldat lur bilinu 0 til 255. Eftir: etta stef gefur einkv ma r un fyrir slenska stafr. svar f r gildi satt ef stafur1 er undan stafur2 (e a stafur1 = stafur2) slenska stafr nu, annars f r svar gildi satt (.e. ef stafur1 er eftir stafur2 slenska stafr nu). slsamanb Notkun: svar := slsamanb( strengur1,strengur2) Fyrir: strengur1 og strengur2 eru strengir. Eftir: svar f r gildi stafs (.e. fj ldat lu) sem segir til um innbir is r strengur1 og strengur2 slenskri stafr fsr. svar f r gildi '<' ef strengur1 er undan strengur2 r inni. svar f r gildi '=' ef strengur1 og strengur2 eru eins (.e. sama sta r inni). svar f r gildi '>' ef strengur2 er undan strengur1 r inni. 139

140 140 KAFLI 30. EININGIN ISLR D

141 Kai 31 Einingin LYKLAR essi eining inniheldur stef sem koma a g um notum egar rf er n kv mum uppl singum um innsl tt fr lyklabor i. skiptista a Notkun: s := skiptista a( ) Fyrir: Ekkert. Eftir: s er b ti sem t knar st u skiptihnappa lyklabor inu. Bitar s settir (1) gefa uppl singar um skipti stand samkv mt eftirfarandi t u: Biti settur stand 0 tt h gri skiptihnapp (shift) 1 tt vinstri skiptihnapp 2 tt Ctrl hnapp 3 tt Alt hnapp 4 Scroll lock 5 Num lock 6Capslock 7Insert var tt staf Notkun: s := var tt staf( ) Fyrir: Ekkert. Eftir: Ste athugar hvort einhver stafur er bi minni (e. buer) lyklabor sins, ef svo er er s stafur lesinn og s f r fj ldat lugildi. Ef enginn stafur b ur bi minninu f r s gildi satt. Ef stafur var lesinn er hann t kna ur me tveimur b tum sem geymd eru \h b ti s og \l gb ti s. Ef \l gb ti s er ekki 0, hefur veri tt venjulegan staf og hefur \l gb ti s gildi sem er samsvarandi stafnum ASCII t knr nu. Ef \l gb ti s er 0 hefur hinsvegar veri tt a ger artakka lyklabor inu. \h b ti s inniheldur gildi sem segir til um hva a a ger artakka var tt. Taan h r a ne an s nir gildi \h b ti s mi a vi hva a takka var tt. Ef \h b ti s er: hefur veri tt : 141

142 142 KAFLI 31. EININGIN LYKLAR 3 NULL (.e. Alt-0) 15 Shift-Tab Alt-Q,W,E,R,T,Y,U,I,O,P Alt-A,S,D,F,G,H,J,K,L Alt-Z,X,C,V,B,N,M F1-F10 71 Home 72 r upp 73 PgUp 75 r til vinstri 77 r til h gri 79 End 80 r ni ur 81 PgDn 82 Ins 83 Del tt staf F11-F20 (Shift F1-Shift F10) F21-F30 (Ctrl F1-Ctrl F10) F31-F40 (Alt F1-Alt F10) 114 Ctrl-PrtScr 115 Ctrl- r til vinstri 116 Ctrl- r til h gri 117 Ctrl-End 118 Ctrl-PgDn 119 Ctrl-Home Alt-1,2,3,4,5,6,7,8,9,0,-,= 132 Ctrl-PgUp Notkun: s := tt staf( ) Fyrir: Ekkert. Eftir: Ef einhver stafur er bi minni (e. buer) lyklabor sins er s stafur lesinn. Ef enginn stafur er bi minninu er be i eftir v a tt s staf lyklabor inu. A ru leyti gildir l singin h r a framan fyrir ste var tt staf.

143 Kai 32 Einingin QUICKSOR Einingin QUICKSOR inniheldur stef sem ra ar fylkjum. A fer in sem notu er er svok llu Quicksort a fer sem fundin var upp af C.A.R. Hoare. Einingin er fj lnota ar e r henni er v sa samanbur ara ger ir "="og "sem notandi einingarinnar getur tengt vi hva a samanbur ara ger ir sem hann vill. Einnig m tengja hvers konar fylkjaa ger ir sem notandinn vill. tutningar ra a Notkun: ra a( f,min,max) Fyrir: fer fylki, min og max eru fj ldat lur. f inniheldur a.m.k. st kin f[min] til f[max-1]. Eftir: Sv inu f[min] til f[max-1] hefur veri ra a vaxandi r. Innutningar r einingunni QUICKSOR er v sa sten fylkiss kja1 og fylkissetja1 (sj kaann um fylkisseg ir). Auk ess er v sa eftirfarandi stef: < Notkun: s := x < y Fyrir: x og y eru st k af v tagi sem fylki f inniheldur. Eftir: s inniheldur sanngildi samanbur arins. = Notkun: s := x = y Fyrir: x og y eru st k af v tagi sem fylki f inniheldur. Eftir: s inniheldur sanngildi samanbur arins. 143

144 144 KAFLI 32. EININGIN QUICKSOR

145 Kai 33 Einingin MARGLID Einingin MARGLID inniheldur stef til a reikna me margli ur. Einingin er fj lnota ar e notandi hennar getur sj lfur kve i hvers konar stu la hann notar me v a tengja vi eigandi a ger ir stu la. Margli urnar er geymdar sem listar stu la. Margli an a0x0+...+anxn er annig geymd sem listinn [a0,...,an]. a skilyr i er sett a stu ullinn an s ekki n ll. Margli an n ll er v geymd sem t mi listinn []. tutningar * Notkun: s := x * y Fyrir: x og y eru margli ur. Eftir: s inniheldur margli una sem er margfeldi x og y. + Notkun: s := x + y Fyrir: x og y eru margli ur. Eftir: s inniheldur margli una sem er summa x og y. - Notkun: s := x - y Fyrir: x og y eru margli ur. Eftir: s inniheldur margli una sem er mismunur x og y. = Notkun: s := x = y Fyrir: x og y eru margli ur. Eftir: s inniheldur sanngildi samanbur arins, satt e a satt. 145

146 146 KAFLI 33. EININGIN MARGLID skrifamargli u Notkun: skrifamargli u( x) Fyrir: x er margli a. Eftir: Margli an x hefur veri skrifu l silegan h tt a al ttak. Innutningar * Notkun: s := x * y Fyrir: x og y eru stu lar. Eftir: s inniheldur stu ulinn sem er margfeldi x og y. + Notkun: s := x + y Fyrir: x og y eru stu lar. Eftir: s inniheldur stu ulinn sem er summa x og y. - Notkun: s := x - y Fyrir: x og y eru stu lar. Eftir: s inniheldur stu ulinn sem er mismunur x og y. = Notkun: s := x = y Fyrir: x og y eru stu lar. Eftir: s inniheldur sanngildi samanbur arins, satt e a satt. n llstu ull Notkun: s := n llstu ull( ) Fyrir: Ekkert. Eftir: s inniheldur stu ulinn n ll. skrifastu ul Notkun: skrifastu ul( x) Fyrir: x er stu ull. Eftir: Stu ullinn x hefur veri skrifa ur l silegan h tt a al ttak.

147 Kai 34 Einingin MENGI Einingin MENGI inniheldur stef til a vinna me r u mengi. Einingin er fj lnota ar e notandinn getur vali hvers konar st k geta veri mengjunum me v a tengja vi eigandi samanbur ara ger ir. tutningar * Notkun: s := x * y Fyrir: x og y eru mengi. Eftir: s inniheldur sni mengi x og y. + Notkun: s := x + y Fyrir: x og y eru mengi. Eftir: s inniheldur sammengi x og y. ++ Notkun: s := x ++ y Fyrir: x er mengi, y er stak. Eftir: s inniheldur sammengi x og y. - Notkun: s := x - y Fyrir: x og y eru mengi. Eftir: s inniheldur mengjamismun x og y. 147

148 148 KAFLI 34. EININGIN MENGI <= Notkun: s := x <= y Fyrir: x og y eru mengi. Eftir: s inniheldur satt ef x er hlutmengi y, annars satt. = Notkun: s := x = y Fyrir: x og y eru mengi. Eftir: s inniheldur satt ef x er jafnt y, annars satt. min Notkun: s := \min x Fyrir: x er mengi, ekki t mt. Eftir: s inniheldur minnsta stak x. rest Notkun: s := \rest x Fyrir: x er mengi. Eftir: s inniheldur mengi sem inniheldur allt nema minnsta stak x. Ef x er t mt erst mt. t mt Notkun: s := t mt( ) Fyrir: Ekkert Eftir: s inniheldur t mt mengi. Innutningar < Notkun: s := x < y Fyrir: x og y eru st k. Eftir: s inniheldur satt ef x er minna en y, annars satt. = Notkun: s := x = y Fyrir: x og y eru st k. Eftir: s inniheldur satt ef x er jafnt y, annars satt.

149 Kai 35 Einingin RADA Einingin RADA inniheldur stef til a ra a listum. Einingin er fj lnota ar e notandinn getur sj lfur kve i hvers konar r notu er me v a tengja hina innuttu samanbur ara ger vi eigandi ste. tutningar mergja Notkun: s := x \mergja y Fyrir: x og y eru ra a ir listar annig a t.d. ef x = [x 1 :::x n ] gildir fyrir ll i.a. i<na x i r x i+1. Eftir: s inniheldur mergjun listanna x og y,.e.a.s. s inniheldur ll st k r x og y r. ra a Notkun: s := \ra a x Fyrir: x er listi sem inniheldur st k af v tagi sem ste r vinnur. Eftir: s inniheldur lista s mu stakaogx, r. skipta Notkun: skipta(y,z x) Fyrir: x er listi. Eftir: y inniheldur u..b. helming stakanna r x og z inniheldur hinn helminginn. Innutningar r Notkun: s := x \ r y Fyrir: x og y eru einhver gildi af v tagi sem r er tla a vinna. Eftir: s inniheldur satt e a satt eftir v hvort gildin eru vaxandi r. Athugasemdir: r skyldi tengja vi samanbur ara ger sem vinnur svipa og < e a. 149

150 150 KAFLI 35. EININGIN RADA

151 Kai 36 Einingin SKJAR H r eru nokkur stef sem nota grip10 BIOS kernu til a stj rna a ger um skj num. allri me h ndlun skj num er liti hann sem hnitaker.a. stafurinn efst vinstra horninu, hefur hnitin (1,1) (l na 1 og d lkur 1). Skj bla s ur (e. display page) erun mera ar 0 til 7 fyrir 40 d lka l nur en 0 til 3 fyrir 80 d lka l nur. depilger Notkun: depilger (byrjal nu,endal nu bla s a) Fyrir: bla s a er fj ldatala sem segir til um hva a skj bla s u skal nna ger depilsins (e. cursor). Eftir: byrjal nu og endal nu innihalda fj ldat lur sem segja til um ger depilsins bla s unni bla s a (sbr. ste setjadepil h r a ne an). depilsta a Notkun: depilsta a(l na,d lkur bla s a) Fyrir: Eftir: bla s a er fj ldatala sem segir til um hva a skj bla s u skal nna sta setningu depilsins. l na og d lkur innihalda fj ldat lur sem segja til um sta setningu depilsins skj bla s unni bla s a. depilsta setja Notkun: depilsta setja( l na,d lkur,bla s a) Fyrir: Eftir: l na, d lkur og bla s a eru fj ldat lur. Depillinn er sta settur skj bla s unni bla s a eftir sta setningunni sem l na og d lkur gefa. fyllame staf Notkun: fyllame staf( stafur,fj ldi,bla s a) Fyrir: stafur er stafur. fj ldi og bla s a eru fj ldat lur. Eftir: Ste skrifar t fj ldi sta af stafnum stafur t skj bla s una bla s a fr eim sta sem depillinn er sta settur eirri skj bla s u. 151

152 152 KAFLI 36. EININGIN SKJAR hreinsaskj Notkun: hreinsaskj ( ) Fyrir: Skj bla s a s sem hreinsa, er s sem er virk vi kalli. Eftir: Ste hreinsar skj bla s una sem er virk vi kalli ste. Depillinn er sta settur lokin efra vinstra horn skj sins (hnit 1,1). ritastaf Notkun: ritastaf( stafur,bla s a) Fyrir: stafur er stafur. bla s a er fj ldatala. Eftir: Ste skrifar stann stafur t skj bla s una bla s a me eiginleika eim sem settur var me stenu setjaeiginleik sem er l st n nar h r a ne an. Ef ekki hefur veri settur eiginleiki me v ste, er stafurinn skrifa ur me eiginleikanum $07 (.e. hv tum st fum sv rtum eti). Athuga ber, a s stafur skrifa ur me essu ste er depillinn ekki f r ur fram. ritasta Notkun: ritastafi( c,n,bla s a) Fyrir: c er stafur. n og bla s a eru fj ldat lur. Eftir: Ste skrifar n stafa af stafnum c t skj bla s una bla s a me eiginleika eim sem settur var me stenu setjaeiginleik sem er l st n nar h r a ne an. Ef ekki hefur veri settur eiginleiki me v ste, eru starnir skrifa ir me eiginleikanum $07 (.e. hv tum st fum sv rtum eti). Athuga ber a, s u star skrifa ir me essu ste er depillinn ekki f r ur fram. setjabla s u Notkun: setjabla s u( bla s a) Fyrir: bla s a er fj ldatala. Eftir: Eftir a ste er framkv mt er skj bla s an bla s a virk. setjadepil Notkun: setjadepil( afe a,byrjal nu,endal nu) Fyrir: afe a, byrjal nu og endal nu eru fj ldat lur. Eftir: Ste stj rnar ger depilsins (e. cursor). Ef afe a hefur gildi 0 vi kalli kviknar deplinum, ef afe a er eitthva anna gildi sl kknar honum. Venjulega s st depillinn sem ein e a tv r skannl nur (e. scan lines) skj num. H gt er a breyta st r depilsins me v a setja nnur gildi byrjal nu og endal nu (byrjal nu og endal nu segja til um skannl nur fyrir depilinn). Lita/graf k tengildi (e. color graphics adapter, CGA) getur s nt ttaskannl nur, n mera ar efst fr 0 ni ur 7. Einlita tengildi og EGA geta s nt depil me 14 skannl num, n mera ar efst fr 0 ni ur 13. Ef byrjal nu er minni en endal nu, kemur venjulegur heill depill upp. Ef byrjal nu er st rri en endal nu s st depillinn tveimur hlutum. Ef byrjal nu er ge gildi 32 hverfur depillinn.

153 153 setjaeiginleika Notkun: setjaeiginleika( x) Fyrir: x er fj ldatala. Eftir: Ste s r um a geyma eiginleikann x, sem gen var upp kallinu. N st egar sten ritastaf e a ritasta eru keyr er gildi nota sem eiginleiki stafsins/stafanna sem skrifa ir eru. Til ess a nna skilegan eiginleika er eftirfarandi a fer ir nota ar: Einlitur skj r (e. monochrome): 1. Velji eitt af eftirfarandi: Svartir star sv rtum eti (.e. autt): x := 0 Hv tir star sv rtum eti (.e. venjulegt einkenni): x := 7 Svartir star hv tum eti: x := Leggja 1 vi x ef starnir eiga vera undirstrika ir. 3. Leggja 8 vi x ef starnir eiga a vera uppl stir (e. high intensity) 4. Leggja 128 vi x ef starnir eiga a blikka. Litaskj r: 1. Velji einn lit sta og einn lit t r eftirfarandi t u og leggi saman. Ge x a gildi sem kemur t. star tur svart 0 svart 0 gr tt 8 bl tt 16 bl tt 1 gr nt 32 lj sbl tt 9 bl gr nt 48 gr nt 2 rautt 64 lj sgr nt 10 bl rautt 80 bl gr nt 3br nt96 lj scyan 11 hv tt 112 rautt 4 lj srautt 12 bl rautt 5 lj sbl rautt 13 br nt 6 gult 14 hv tt 7 hv tt (uppl st) Leggi 128 vi x, ef starnir eiga a blikka.

154 154 KAFLI 36. EININGIN SKJAR skj sta a Notkun: skj sta a(skj sta a,l nulengd,skj bla s a ) Fyrir: Ekkert. Eftir: Ste skilar eftirfarandi uppl singum um st u skj sins, egar kalla er: skj sta a (e. current display mode), l nulengd (fj ldi stafa hverri l nu skj num) og virk skj bla s a (e. active display page). skrunani ur Notkun: skrunani ur( n,y1,x1,y2,x2) Fyrir: n, y1, x1, y2 og x2 eru fj ldat lur. Eftir: Ste veldur v a r tthyrningur sem afmarkast af efra vinstra horni af (x1,y1) og ne ra h gra horni af (x2,y2) er skruna ur (e. scroll) ni ur um n l nur. Settar eru au ar l nur sta eirra sem skruna ar eru. Ef fjl na hefur gildi 0 vi kall eru allar l nur skruna ar ni ur r tthyrningnum,.e. allt er urrka t honum. skrunaupp Notkun: skrunaupp( n,y1,x1,y2,x2) Fyrir: n, y1, x1, y2 og x2 eru fj ldat lur. Eftir: Ste veldur v a r tthyrningur sem afmarkast af efra vinstra horni af (x1,y1) og ne ra h gra horni af (x2,y2) er skruna ur (e. scroll) upp um n l nur. Settar eru au ar l nur sta eirra sem skruna ar eru. Ef n hefur gildi 0 vi kall eru allar l nur skruna ar upp r tthyrningnum,.e. allt er urrka t honum. urrkaendal nu Notkun: urrkaendal nu( y,x) Fyrir: y og x eru fj ldat lur. Eftir: Ste veldur v a urrka er t r l nunni x fr og me d lknum y allt til enda l nunnar. urrkaendaskj Notkun: urrkaendaskj ( y,x) Fyrir: y og x eru fj ldat lur. Eftir: Ste veldur v a urrka er t af skj num fr og me d lknum x l nunni y allt til ne ra h gra horns skj sins.

155 Kai 37 Einingin SLEMBI Einingin SLEMBI inniheldur tv stef sem sm a slembit lur. Einungis er v sa falin kjarnastef r essari einingu. eytslembi Notkun: s := fleytslembi( ) Fyrir: Ekkert. Eftir: s inniheldur slembit lu sem er eytitala milli 0.0 og 1.0 a eirri fyrri me talinni, en ekki eirri seinni. slembi Notkun: s := slembi( ) Fyrir: Ekkert. Eftir: s inniheldur slembit lu sem er fj ldatala milli 0 og a b um me t ldum. 155

156 156 KAFLI 37. EININGIN SLEMBI

157 Kai 38 Einingin STORFJOL Einingin STORFJOL inniheldur stef sem gera notanda kleift a reikna me st rar fj ldat lur. Venjulegar fj ldat lur milli 0 og eru undirmengi mengi st rra fj ldatalna, geymdar venjulegan h tt. St rri t lur eru geymdar strengjum. Engin fj ldatala er neikv, ef nau synlegt er a vinna me neikv ar t lur tti a nota venjulegar heilt lur sem eru milli og e a nota m tti st rar heilt lur (sj eininguna STORHEIL). r essari einingu er einungis v sa falin kjarnastef. % Notkun: s := x % y Fyrir: x og y eru st rar fj ldat lur. Eftir: s inniheldur st ru fj ldat luna sem er afgangurinn egar y er deilt x. Fyrir allar st rar fj ldat lur x og y er tryggt a 0 x%y <yog y (x=y) +(x%y) =x. * Notkun: s := x * y Fyrir: x og y eru st rar fj ldat lur. Eftir: s inniheldur st ru fj ldat luna sem er margfeldi x og y. - Notkun: s := x - y Fyrir: x og y eru st rar fj ldat lur og x y. Eftir: s inniheldur st ru fj ldat luna sem er mismunur x og y.. / Notkun: s := x / y Fyrir: x og y eru st rar fj ldat lur. Eftir: s inniheldur st ru fj ldat luna sem er kv tinn egar y er deilt x. Fyrir allar st rar fj ldat lur x og yertryggta 0 x 157

158 158 KAFLI 38. EININGIN STORFJOL < Notkun: s := x < y Fyrir: x og y eru st rar fj ldat lur. Eftir: s inniheldur ni urst una r samanbur inum, satt e a satt. <= Notkun: s := x <= y Fyrir: x og y eru st rar fj ldat lur. Eftir: s inniheldur ni urst una r samanbur inum, satt e a satt. <> Notkun: s := x <> y Fyrir: x og y eru st rar fj ldat lur. Eftir: s inniheldur ni urst una r samanbur inum, satt e a satt. = Notkun: s := x = y Fyrir: x og y eru st rar fj ldat lur. Eftir: s inniheldur ni urst una r samanbur inum, satt e a satt. > Notkun: s := x > y Fyrir: x og y eru st rar fj ldat lur. Eftir: s inniheldur ni urst una r samanbur inum, satt e a satt. >= Notkun: s := x >= y Fyrir: x og y eru st rar fj ldat lur. Eftir: s inniheldur ni urst una r samanbur inum, satt e a satt. ^ Notkun: s := x ^ y Fyrir: x og y eru st rar fj ldat lur. Eftir: s inniheldur st ru fj ldat luna sem er x veldinu y.

159 159 fdeiling Notkun: fdeiling(q,r x,y) Fyrir: x og y eru st rar fj ldat lur. Eftir: q inniheldur st ru fj ldat lunax / y og r inniheldur st ru fj ldat luna x fgcd Notkun: s := x \fgcd y Fyrir: x og y eru st rar fj ldat lur. Eftir: s inniheldur st ru fj ldat luna sem er st rsti sameiginlegi deilirx og y. skrifafj l Notkun: skrifafj l( x) Fyrir: x er st r fj ldatala. Eftir: x hefur veri skrifa a al ttak sem tugatala.

160 160 KAFLI 38. EININGIN STORFJOL

161 Kai 39 Einingin STORHEIL Einingin STORHEIL inniheldur stef sem gera notanda kleift a reikna me st rar heilt lur. Venjulegar heilt lur milli og eru undirmengi mengi st rra heiltalna, geymdar venjulegan h tt. St rri t lur eru geymdar strengjum. essi eining v sar stef r einingunni STORFJOL og muna arf a tengja einingu einnig ef essi eining er notu. tutningar %% Notkun: s := x %% y Fyrir: x og y eru st rar heilt lur. Eftir: s inniheldur st ru heilt luna sem er afgangurinn egar y er deilt x. ** Notkun: s := x ** y Fyrir: x og y eru st rar heilt lur. Eftir: s inniheldur st ru heilt luna sem er margfeldi x og y. Notkun: s := x -- y Fyrir: x og y eru st rar heilt lur. Eftir: s inniheldur st ru heilt luna sem er mismunurxogy.. // Notkun: s := x // y Fyrir: x og y eru st rar heilt lur. Eftir: s inniheldur st ru heilt luna sem er kv tinn egar y er deilt x. 161

162 162 KAFLI 39. EININGIN STORHEIL Notkun: s := x << y Fyrir: x og y eru st rar heilt lur. Eftir: s inniheldur ni urst una r samanbur inum, satt e a satt. <=<= Notkun: s := x <=<= y Fyrir: x og y eru st rar heilt lur. Eftir: s inniheldur ni urst una r samanbur inum, satt e a satt. <><> Notkun: s := x <><> y Fyrir: x og y eru st rar heilt lur. Eftir: s inniheldur ni urst una r samanbur inum, satt e a satt. == Notkun: s := x == y Fyrir: x og y eru st rar heilt lur. Eftir: s inniheldur ni urst una r samanbur inum, satt e a satt. >=>= Notkun: s := x >=>= y Fyrir: x og y eru st rar heilt lur. Eftir: s inniheldur ni urst una r samanbur inum, satt e a satt. Notkun: s := x >> y Fyrir: x og y eru st rar heilt lur. Eftir: s inniheldur ni urst una r samanbur inum, satt e a satt. hdeiling Notkun: fdeiling(q,r x,y) Fyrir: x og y eru st rar heilt lur. Eftir: q inniheldur st ru heilt luna x / y og r inniheldur st ru heilt luna x

163 163 hgcd Notkun: s := x \hgcd y Fyrir: x og y eru st rar heilt lur. Eftir: s inniheldur st ru heilt luna sem er st rsti sameiginlegi deilirx og y. skrifaheil Notkun: skrifaheil( x) Fyrir: x er st r heiltala. Eftir: x hefur veri skrifa a al ttak sem tugatala. Innutningar Einingin STORHEIL notar eftirtalin stef r einingunni STORFJOL:

164 164 KAFLI 39. EININGIN STORHEIL

165 Kai 40 Einingin TAFLA Einingin TAFLA inniheldur stef til a vinna me t ur. T urnar eru s fn f rsla ar sem hver f rsla hefur lykil og gildi. A eins ein f rsla hverri t u getur innihaldi tiltekinn lykil. Einingin er fj lnota ar e notandinn getur kve i hvers konar gildi hann notar sem lykla me v a tengja vi eigandi samanbur ara ger lykla. tutningar ey a Notkun: ey a( tafla,lykill) Fyrir: taa er taa. lykill er lykilgildi. Eftir: Ef f rsla me lyklinum lykill nnst t unni taa er henni eytt r t unni. etja Notkun: s := fletja( tafla) Fyrir: taa er taa. Eftir: s inniheldur lista allra f rsla t unni taa. Hvert stak s inniheldur tv st k, lykil og me fylgjandi gildi. T.d. ef taan t inniheldur tvo lykla, a og b, sem hafa me fylgjandi gildi x og y skilar etja( t) listanum [[a,x],[b,y]]. innsetja Notkun: innsetja( tafla,lykill,gildi) Fyrir: taa er taa. lykill er eitthvert lykilgildi. gildi er einhvert gildi. Eftir: Ste veldur v a b tt er t una taa f rslu me lyklinum lykill og me fylgjandi gildi gildi. Ef lykillinn lykill er til fyrir t unni er gildi sett sta gamla gildisins vi komandi f rslu. leita Notkun: s := leita(gildi tafla,lykill) Fyrir: taa er taa. lykill er lykill. 165

166 166 KAFLI 40. EININGIN TAFLA Eftir: Ef lykillinn nnst t unni f r s sanngildi satt og gildinu sem fylgir lyklinum er skila gildi. Ef lykillinn nnst ekki f r s sanngildi satt. lyklamengi Notkun: s := lyklamengi( tafla) Fyrir: taa er taa. Eftir: s er listi allra lykla t unni taa. lyklasni mengi Notkun: s := lyklasni mengi( tafla1,tafla2) Fyrir: taa1 og taa2 eru t ur. Eftir: s er listi allra lykla sem sameiginlegar eru me t unum taa1 og taa2. samsetja Notkun: s := samsetja( tafla1,tafla2) Fyrir: taa1 og taa2 eru t ur. Eftir: s inniheldur n ja t u sem inniheldur f rslur beggja tananna. Ef einhverjir lyklar eru sameiginlegir b um t unum er gildi r f rslunni taa1 r andi n ju t unni. t m Notkun: s := t m( ) Fyrir: Ekkert. Eftir: s inniheldur n ja t ma t u. essi n ja taa inniheldur engar f rslur. Innutningar samanbur ur Notkun: s := samanbur ur( lykill,lykill2) Fyrir: lykill og lykill2 eru lyklar Eftir: s inniheldur stann '<', '=' e a '>' eftir v vernig r lyklanna er. Samanbur ur essi ver ur vallt a skila einu essara riggja stafa, og gilda ver a venjulegar reglur um samanbur ara ger ir, t.d. ef x<y og y<z ver ur a gilda x<z.

167 Kai 41 Einingin TAYLOR Einingin TAYLOR inniheldur stef til a reikna me Taylor ra ir. E a r ttara sagt me MacLaurin ra ir ar e reikna er me a grunnpunkturinn s n ll. Einingin er fj lnota ar e notandinn getur sj lfur kve i hvers konar stu lar eru r unum me v a tengja vi eigandi a ger ir stu la. tutningar * Notkun: s := x * y Fyrir: x og y eru Taylor ra ir. Eftir: s inniheldur Taylor r ina sem er margfeldi x og y. Lengd s er s styttri af lengdum x og y. + Notkun: s := x + y Fyrir: x og y eru Taylor ra ir. Eftir: s inniheldur Taylor r ina sem er summa x og y. Lengd s er s styttri af lengdum x og y. - Notkun: s := x - y Fyrir: x og y eru Taylor ra ir. Eftir: s inniheldur Taylor r ina sem er mismunur x og y. Lengd s er s styttri af lengdum x og y. / Notkun: s := x / y Fyrir: x og y eru Taylor ra ir. Eftir: s inniheldur Taylor r ina sem er kv ti x og y. Lengds er s styttri af lengdum x og y. 167

168 168 KAFLI 41. EININGIN TAYLOR cos Notkun: s := \cos n Fyrir: n er fj ldatala. Eftir: s inniheldur Taylor r ina fyrir k s nus af lengd n. dira Notkun: s := \diffra f Fyrir: f er Taylor r. Eftir: s inniheldur Taylor r ina sem er diurkv tinn af f. exp Notkun: s := \exp n Fyrir: n er fj ldatala. Eftir: s inniheldur Taylor r ina fyrir e x af lengd n. fasti Notkun: s := k \fasti n Fyrir: k er stu ull, n er fj ldatala. Eftir: s inniheldur Taylor r ina fyrir fastann k af lengd n. M..o.: s = kz 0 +0z 1 + :::+0z n;1 + O(z n ). fyrsti Notkun: s := \fyrsti x Fyrir: x er Taylor r, ekki t m,.e.a.s. ekki O(1). Eftir: s inniheldur fyrsta stu ul Taylor r inni. Ef x = a 0 z 0 + ::: + a n z n + O(z n+1 ) inniheldur s stu ulinn a 0. gildi Notkun: s := x \gildi t Fyrir: x er Taylor r, t er stu ull. Eftir: s inniheldur gildi Taylor ra arinnar punktinum t. Efx=a 0 z 0 + :::+ a n z n + O(z n+1 ) inniheldur s stu ulgildi a 0 t 0 + :::+ a n t n. rest Notkun: s := \rest x Fyrir: x er Taylor r, ekki t m,.e.a.s. ekki O(1). Eftir: s inniheldur halann af Taylor r inni. Ef x = a 0 z 0 + :::+ a n z n + O(z n+1 ) inniheldur s Taylor r ina a 1 z 0 + :::+ a n z n;1 + O(z n ).

169 169 samskeyta Notkun: s := x \samskeyta y Fyrir: xogyerutaylor ra ir. Eftir: s inniheldur fallasamskeytingu Taylor ra anna. Ef x = a 0 z 0 + :::+ a n z n + O(z n+1 ) og y = b 0 z 0 + :::+ b m z m + O(z m+1 ) inniheldur s Taylor r ina sem reiknu er t fr form lunni a 1 y 0 + :::+ a n y n;1 + O(z n ). sin Notkun: s := \sin n Fyrir: n er fj ldatala. Eftir: s inniheldur Taylor r ina fyrir s nus af lengd n. skrifataylor Notkun: skrifataylor( x) Fyrir: xertaylor r. Eftir: Taylor r in x hefur veri skrifu l silegan h tt a al ttak. tegra Notkun: s := \tegra x Fyrir: xertaylor r. Eftir: s inniheldur Taylor r ina sem er tegri (heildi ) af x. villuveldi Notkun: s := \villuveldi x Fyrir: xertaylor r. Eftir: s inniheldur veldisv sinn r leifarli Taylor ra arinnar. M..o. ef x = a0z0+...+anzn+o(zn+1) inniheldur s fj ldat luna n+1. Innutningar r einingunni TAYLOR er v sa eftirfarandi stef sem vinna me stu la Taylor ra anna. * Notkun: s := x * y Fyrir: x og y eru stu lar. Eftir: s inniheldur stu ulinn sem er margfeldi x og y.

170 170 KAFLI 41. EININGIN TAYLOR + Notkun: s := x + y Fyrir: x og y eru stu lar. Eftir: s inniheldur stu ulinn sem er summa x og y. - Notkun: s := x - y Fyrir: x og y eru stu lar. Eftir: s inniheldur stu ulinn sem er mismunur x og y. / Notkun: s := x / y Fyrir: x og y eru stu lar. Eftir: s inniheldur stu ulinn sem er kv ti x og y. = Notkun: s := x = y Fyrir: x og y eru stu lar. Eftir: s inniheldur sanngildi samanbur arins, satt e a satt. fj ltilstu ull Notkun: s := \fj ltilstu ull n Fyrir: n er fj ldatala. Eftir: s inniheldur stu ulinn sem samsvarar n. skrifastu ul Notkun: skrifastu ul( x) Fyrir: x er stu ull. Eftir: stu ullinns hefur veri skrifa ur l silegan h tt a al ttak.

171 Kai 42 Einingin VIDBSKJA essari einingu eru mis stef sem tengja m einingunnni SKJAR til a f eiri kosti en henni eru. tutningar depil fram Notkun: depil fram( ) Fyrir: Skj bla s a s sem f ra depilinn, ver ur a vera virk egar kalla er ste. Eftir: Ste veldur v a depillinn (e. cursor) f rist einn d lk fram en helst samt s mul nu. egar enda l nunnar er n f rist depillinn ekki lengra. depilbakka Notkun: depilbakka( ) Fyrir: Skj bla s a s sem f ra depilinn, ver ur a vera virk egar kalla er ste. Eftir: Ste veldur v a depillinn f rist einn d lk aftur en helst samt s mul nu. egar fremst l nuna er komi f rist depillinn ekki lengra. depilni ur Notkun: depilni ur( ) Fyrir: Skj bla s a s sem f ra depilinn, ver ur a vera virk egar kalla er ste. Eftir: Ste veldur v a depillinn f rist eina l nu ni ur en helst samt sama d lk. egar ne st skj inn er komi f rist depillinn ekki ne ar. depiln jal nu Notkun: depiln jal nu( ) Fyrir: Skj bla s a s sem f ra depilinn, ver ur a vera virk egar kalla er ste. Eftir: Ste veldur v a depillinn f rist eina l nu ni ur og fremsta d lk eirrar l nu. egar ne st skj inn er komi f rist depillinn ekki ne ar. 171

172 172 KAFLI 42. EININGIN VIDBSKJA depilupp Notkun: depilupp( ) Fyrir: Skj bla s a s sem f ra depilinn, ver ur a vera virk egar kalla er ste. Eftir: Ste veldur v a depillinn f rist eina l nu upp en helst samt sama d lk. egar efst skj inn er komi f rist depillinn ekki ofar. endursetjadepil Notkun: endursetjadepil( ) Fyrir: Skj bla s a s sem f ra depilinn, ver ur a vera virk egar kalla er ste. Eftir: Depillinn er settur ann sta sem hann var egar s ast var kalla ste geymadepilst u. Eftir a kalla hefur veri etta stef "gleymir"ste hva a st u depillinn var s ast. Forriti geymir st urnar staa (fyrstur inn, s ast t), annig a egar kalla er aftur ste, n ess a kalla ste geymadepilst u, "man"ste st u depilsins sem var geymd fyrir s ustu st u. egar engar st ur eru eftir f rir ste depilinn ekki til. ey al nu Notkun: ey al nu( l na) Fyrir: l na er fj ldatala. Skj bla s a s sem ey a l nunni, ver ur a vera virk egar kalla er ste. Eftir: S r um a ey a l nunni l na skj. L nurnar fyrir ne an hana f rast s an upp um eina l nu (ne sta l nan skj num ver ur au ). geymadepilst u Notkun: geymadepilst u( ) Fyrir: Skj bla s a s sem geyma st u depilsins fyrir, ver ur a vera virk egar kalla er ste. Eftir: Ste geymir st u depilsins skj num, staa (fyrstur inn, fyrstur t), h gt er a geyma eiri en eina st u einu. H gt er a sta setja depilinn s an aftur sama sta me v a kalla ste endursetjadepil. egar ekki hefur veri kalla geymadepilst u e a egar stainn er t mur hefur ste endursetjadepil engin hrif st u depilsins. innsetjal nu Notkun: innsetjal nu( l na) Fyrir: l na er fj ldatala. Skj bla s a s sem setja l nuna, ver ur a vera virk egar kalla er ste. Eftir: Ste setur inn eina au a l nu l nunni l na skj num, allar l nur ar fyrir ne an f rast ni ur um eina l nu,.a. ne sta l nan skj num hverfur.

173 Innutningar Auk falinna kjarnastefja er v sa eftirfarandi stef sem urfa a vinna eins og eim er l st l singunni fyrir eininguna skjar. depilsta a depilsta setja skj sta a skrunani ur skrunaupp 173

174 174 KAFLI 42. EININGIN VIDBSKJA

175 Kai 43 Einingin VIDF NG Einingin vidf ng inniheldur tv r a ger ir til a f uppl singar um skipanal nu sem gen er egar vi komandi forrit er keyrt. egar forrit er sett af sta DOS, er a gert me skipanal nu ar sem fram kemur nafn forritsins, samt eim vi f ngum sem forriti arfnast. DOS s r um a koma vi f ngunum fyrir kve num sta minni t lvunnar, ar sem forriti getur n lgast au. a sv isemdosvelur til geymslu eirra, er samt sem ur alls ekki hult, ar sem DOS notar a undir margt anna. Til ess a notandi s ruggur um a ekki s skrifa yr vi f ngin, er best a l ta kall a ra a ger sem tuttar eru r essari einingu, vera eitt af v fyrsta sem forrit gerir. B ar a ger irnar taka afrit af vi f ngunum yr ruggan sta og geyma au ar, ar til keyrslu forritsins l kur. r einingunni er a eins v sa falin kjarnastef. vi fang Notkun: strengur := vi fang( i) Fyrir: i er fj ldatala. Eftir: Ef i er minni en e a jafnt vi fangafj ldi( ) (sj h r a ofan) og st rri en 0, f r strengur gildi strengs sem inniheldur vi fang n mer i skipanal nunni sem gen var egar vi komandi forrit var sett af sta. Ef i er st rri en vi fangafj ldi( ) e a i er 0, f r strengur gildi satt. D mi: C:\>prufa vidf ng H r g vi f ng( 1) strenginn "vidf ng", vi f ng( 2) gildi satt. C\>prufa vidf ng1 vidf ng2 H r g vi f ng( 1) strenginn "vidf ng1", vi f ng( 2) strenginn "vidf ng2"en vi f ng( 3) gildi satt. vi fangafj ldi Notkun: fj ldi := vi fangafj ldi( ) Fyrir: Ekkert. 175

176 176 KAFLI 43. EININGIN VIDF NG Eftir: fj ldi f r gildi fj ldat lu sem segir til um fj lda vi fanga skipanal nunni sem gen var egar forriti var sett af sta. Ef engin vi f ng voru gen, f r fj ldi gildi 0. Sem d mi um skipanal nu v ri h gt a keyra forriti prufa me skipuninni: C:\>prufa vidf ng Ef forriti prufa framkv mdi skipunina fj ldi := vi fangafj ldi( ), fengi fj ldi gildi 1. C:\>prufa vidf ng1 vidf ng2 H r fengi fj ldi gildi 2. C:\>prufa H r fengi fj ldi gildi 0.

177 Kai 44 Einingar fyrir teiknun Einingarnar TATAHGA, TATACGA, TATACGA3, TATAEGA, TATAMCGA og TATAVGA eru allar svipa ar notkun. r innihalda stef til a teikna skj. Teikna m rennan h tt. Nota m t tuteiknun (e. turtle graphics) svipa og LOGO forritunarm linu, teikna m samkv mt eytit luhnitum sem eru tilt lulega h ger skj sins sem nota ur er, e a teikna m samkv mt fj ldat luhnitum sem eru h ger skj sins. Allar essar ger ir teiknunar m nota samt mis ef ska er. egar notu eru eytit luhnit e a t tuteiknun v sa hnitin (0.0,0.0) punktinn ne st til vinstri skj num. Punkturinn (1.0,1.0) er efst skj num annig a hann er andst ur (0.0,0.0) ferningi. egar notu eru fj ldat luhnit er v sa beint punkta skj num sem teikna m. Hnitin eru mismunandi eftir ger skj sins, en punkturinn ne st til vinstri er vallt (0,0). Unnt er a teikna sta og strengi skj inn, og eru star teikna ir 8x8 punkta kassa. Ef nota ir eru slenskir star einhverju forriti er nau synlegt a keyra forriti GRAFTBIC sem fylgir st rikernu ur en fyrrnefnda forriti er keyrt. Annars ver a slensku starnir ekki teikna ir r tt. egar teiknieiningarnar eru nota ar er nau synlegt a setja vi komandi skj teikniham. hverri teiknieiningu er stef sem heitir hefja. vallt skal kalla etta stef ur en byrja er a teikna skj inn. S an m teikna a vild, og a lokum kalla ste lj ka til a setja skj inn aftur ritham. r essum einingum er a eins v sa falin kjarnastef. tutningar fram Notkun: fram( l) Fyrir: Skj rinn er teikniham, t tan er st dd einhverjum sta (x,y) me stefnu (dx,dy). Eftir: T tan er st dd (x+dx,y+dy). Ef t tan var ni ri hefur veri dregin l na fr (x,y) til (x+dx,y+dy). baugur Notkun: baugur( r) Fyrir: r er eytitala st rri en n ll. Skj rinn er teikniham, t tan er st dd einhverjum sta (x,y), sem er a.m.k. fjarl g r fr ja ri skj sins. Eftir: Teikna ur hefur veri baugur um (x,y) me geisla r. 177

178 178 KAFLI 44. EININGAR FYRIR TEIKNUN fpunktur Notkun: fpunktur( x,y) Fyrir: x og y eru fj ldat lur.a. punkturinn (x,y) er skj num. Eftir: Teikna ur hefur veri punktur (x,y). na Notkun: fl na( x1,y1,x2,y2) Fyrir: x1,y1, x2 og y2 eru fj ldat lur.a. punktarnir (x1,y1) og (x1,y1) eru skj num. Eftir: Teiknu hefur veri l na fr (x1,y1) til (x1,y1). hefja Notkun: hefja( ) Fyrir: Ekkert. Eftir: Skj rinn er au ur teikniham, t tan er sta sett (0.5,0.5) me stefnu (1.0,0.0), n mer litarins er 1 og t tan er ni ri. h gri Notkun: h gri( ) Fyrir: Ekkert. Eftir: T tunni hefur veri sn i um 90 gr ur til h gri. litur Notkun: s := litur( x) Fyrir: x er fj ldatala sem er litarn mer. Eftir: Liturinn er n x og s inniheldur gamla litarn meri. l na Notkun: s := l na( x1,y1,x2,y2) Fyrir: x1, y1, x2 ogy2 eru eytit lur. Eftir: Dregin hefur veri l na fr (x1,y1) til (x2,y2). lj ka Notkun: s := lj ka( ) Fyrir: Skj rinn er teikniham. Eftir: Skj rinn er au ur ritham.

179 179 ni ri Notkun: s := ni ri( x) Fyrir: xereitthvert gildi. Eftir: Ef x er satt er t tan ni ri, annars uppi. s inniheldur satt ef t tan var ur ni ri, annars satt. punktur Notkun: s := punktur( x,y) Fyrir: x og y eru eytit lur. Eftir: Teikna ur hefur veri punktur (x,y). sn a Notkun: sn a( h) Fyrir: h er eytitala. Eftir: T tunni hefur veri sn i um h gr ur til vinstri. sta ur Notkun: sta ur(x,y ) Fyrir: Ekkert. Eftir: x og y innihalda eytit luhnit t tunnar. stefna Notkun: stefna(dx,dy ) Fyrir: Ekkert. Eftir: dx og dy innihalda eytit lur.a. (dx,dy) er stefna t tunnar. strengur Notkun: strengur( s) Fyrir: s er textastrengur. Eftir: Textinn s hefur veri teikna ur fr (x,y) til h gri. vinstri Notkun: vinstri( ) Fyrir: Ekkert. Eftir: T tunni hefur veri sn i um 90 gr ur til vinstri.

180 180 KAFLI 44. EININGAR FYRIR TEIKNUN 44.1 Einingin TATAHGA Einingin TATAHGA inniheldur stef au sem l st er a ofan. Skj rinn er einlitur.a. einu l glegu litirnir eru 0 og 1. Skj rinn hefur 720 punkta hverri l r ttri l nu og hefur 348 l r ttar l nur. Um l gleg fj ldat luhnit (x,y) gildir v 0 x <720 og 0 y<348. Til a keyra forrit sem nota essa einingu arf Hercules teiknispjald t lvuna Einingin TATACGA Einingin TATACGA inniheldur stef au sem l st er a ofan. Skj rinn er einlitur.a. einu l glegu litirnir eru 0 og 1. Skj rinn hefur 640 punkta hverri l r ttri l nu og hefur 200 l r ttar l nur. Um l gleg fj ldat luhnit (x,y) gildir v 0 x <640 og 0 y<200. Til a keyra forrit sem nota essa einingu arf "Color Graphics"spjald t lvuna Einingin TATACGA3 Einingin TATACGA3 inniheldur stef au sem l st er a ofan. Skj rinn er fj rlitur.a. einu l glegu litirnir eru 0, 1, 2 og 3. Skj rinn hefur 320 punkta hverri l r ttri l nu og hefur 200 l r ttar l nur. Um l gleg fj ldat luhnit (x,y) gildir v 0 x <320 og 0 y<200. Til a keyra forrit sem nota essa einingu arf "Color Graphics"spjald t lvuna Einingin TATAEGA Einingin TATAEGA inniheldur stef au sem l st er a ofan. Skj rinn hefur 16 liti.a. l glegir litir eru fr 0 til 15. Skj rinn hefur 640 punkta hverri l r ttri l nu og hefur 400 l r ttar l nur. Um l gleg fj ldat luhnit (x,y) gildir v 0 x <640 og 0 y<400. Til a keyra forrit sem nota essa einingu arf EGA spjald t lvuna Einingin TATAMCGA Einingin TATAMCGA inniheldur stef au sem l st er a ofan. Skj rinn hefur 16 liti.a. l glegir litir eru fr 0 til 15. Skj rinn hefur 320 punkta hverri l r ttri l nu og hefur 200 l r ttar l nur. Um l gleg fj ldat luhnit (x,y) gildir v 0 x <320 og 0 y<200. Til a keyra forrit sem nota essa einingu arf t lvan a gefa kost MCGA teiknun eins og PS/2 v larnar gera Einingin TATAVGA Einingin TATAVGA inniheldur stef au sem l st er a ofan. Skj rinn hefur 16 liti.a. l glegir litir eru fr 0 til 15. Skj rinn hefur 640 punkta hverri l r ttri l nu og hefur 480 l r ttar l nur. Um l gleg fj ldat luhnit (x,y) gildir v 0 x <640 og 0 y<480. Til a keyra forrit sem nota essa einingu arf t lvan a gefa kost VGA teiknun eins og st rri afbrig i PS/2 v lanna gera.

181 Hluti IV Atri isor askr 181

182

183 Atri isor askr *, 97, 129, 131, , 157, 167, 169 **, 97, 161 ***, 97 +, 97, 129, 131, , 167, , 97, , 97 -, 97, 129, 131, , 157, 167, 170, 98, 161, 98 /, 98, 129, 131, 157, 167, 170 //, 98, 161 ///, 98 :, 98 <, 99, 130, 132, 143, 148, 158, 99, 162 <, 99 <=, 99, 130, 148, 158 <=<=, 99, 162 <=<=<=, 99 <>, 100, 130, 132, 158 <><>, 100, 162 <><><>, 100 =, 100, 130, 132, 143, 145, 146, 148, 158, 170 ==, 100, 162 ===, 100 >, 101, 130, 132, 158 >=, 101, 130, 158 >=>=, 101, 162 >=>=>=, 101, 101, 162 >, 101 %, 96, 157 %%, 96, 161 &, 96 E, 158 C, 102 CC, 102 trunarhli setning, 37 fram, 177 slenskrir, 139 grip10, 108 gripssta ur, 87 r, 149 slsamanb, 139 trun, 11, 31 endanleg tr, 55 t, 22 tb ti, 112 tg fun mer, 87 tt staf, 142 urrkaendal nu, 154 urrkaendaskj, 154 a ger arseg ir, 18 a ger ir:forgangur, 19 abs, 89 AFRITA, 63 afrita, 63, 138 asin, 89 atan2, 89 b tfylla, 102 b atilsafn, 66 b atilskr, 68 baugur, 177 br abirg arskr, 71 breytanafni, 68 breytaskr ra gangi, 73 breytur, 16 brj ta, 102 BROT, 129 brot, 102, 130 cos, 89, 168 depil fram, 171 depilbakka, 171 depilger, 151 depiln jal nu, 171 depilni ur, 171 depilsta a, 151 depilsta setja, 151 depilupp, 172 dira, 168 disklausk,

184 184 ATRI ISOR ASKR diskst r, 65 DOSDISK, 65 DOSSKRIU, 75 DOSSTIU, 81 DOSYMISL, 85 e a, 17 ef, 18 efnisskr rsafnlisti, 73 einingara ger ir, 31 ekki, 17 endurkv mni, 11 endursetjadepil, 172 ereyt, 102 ereytn ll, 103 ereytneikv, 102 erhlunkur, 103 erinntak, 83 erpar, 103 erskr til, 67 erstafur streng, 119 erstef, 103 erstrengur, 103 ert m, 103 ertala, 103 exp, 90, 168 ey a, 165 ey al nu, 172 ey asafni, 66 ey askr, 68 f raskr rbendi, 71 fasti, 168 fdeiling, 104, 159 fgcd, 159 Fibonacci, 27 fj ldat lur, 13 fj ltileyt, 104 fj ltilstu ull, 170 na, 178 etja, 165 FLEYF LL, 89 eytit lur, 13 eytitala, 104 eytm nus, 104 eytslembi, 155 eyttilfj l, 104 ytja, 104 fmargfeldi, 105 fmismunur, 105 forgangur a ger a, 19 formerki, 105 fpunktur, 178 fr tekin t kn, 44 fsumma, 105 fylki, 20, 135, 136 fylkiss kja1, 105, 135, 136 fylkissetja1, 105, 135, 136 fylla, 105 fyllame staf, 151 fyrsti, 168 gcd, 132 geymadepilst u, 172 gildi, 168 grunnstef, 61 GRUNNUR, 61 h b ti, 106 h gri, 178 h tta, 108 halasetja, 106 hali, 106 haus, 106 haussetja, 106 hdeiling, 106, 162 hefja, 178 heilt lur, 13 hexb ti, 137 HEXEININ, 137 hexor, 137 hexstafur, 137 HFYLKI, 135 hgcd, 163 hhli ra, 106 hli setning, 37 hlunkar, 14 hlunks kja, 107 hlunksetja, 107 hlunkst r, 107 hlunkur, 107 hlutstrengur, 119 hmargfeldi, 107 hmismunur, 107 hreinsaskj, 152 hsumma, 107 INN, 91 inn tfj ldi, 108 innb ti, 108 innfj ldi, 108 innutningur, 32 innsetja, 165

185 ATRI ISOR ASKR 185 innsetjal nu, 172 ISLR D, 139 k kjab ti, 108 k kjaor, 109 k ll, 23 kai, 108 kjarnastef, 61 KJARNI, 61, 93 l gb ti, 109 l na, 178 laus_k, 109 leita, 165 lengd, 119 lesa, 91 lesal nu, 91, 113 LESALINU, 113 lesastaf, 92, 109 lesastaf nbergm ls, 83 lesastaf nstopps, 83 lesfastar, 44 listar, 23 litur, 178 lj ka, 178 ln, 90 lokaskr, 68 lykilor, 43 lykkjur, 22 lyklamengi, 166 lyklasni mengi, 166 m lfr i, 43 m lrit, 48 MARGLID, 145 max, 90, 136 MENGI, 147 mergja, 149 min, 90, 136, 148 minnka, 109 msdos, 109 n staf nstopps, 82 n kv mursafnlisti, 73 n stistafur, 92 n ll, 132 n llstu ull, 146 n l na, 121 nefnari, 131 ni ri, 179 og, 17 opnaskr, 67 or fylla, 109 p r, 14 prentastaf, 81 prentastreng, 81 punktur, 179 QUICKSOR, 143 r t, 90 r ka ger ir, 17 r kseg ir, 17 ra a, 143, 149 RADA, 149 radian, 90 rest, 148, 168 ritastaf, 152 ritasta, 152 RSskilti, 110 s kjadag, 85 s kjadaghandfangs, 69 s kjaskr rdag, 69 s kjaskr rt ma, 69 s kjat ma, 85 s kjat mahandfangs, 70 s fn, 74 safna, 110 safnlisti, 73 samanbur ur, 166 samsetja, 166 samsetning, 32 samskeyta, 169 setja ryggi, 86 setjabla s u, 152 setjadag, 85 setjadaghandfangs, 70 setjadepil, 152 setjaeiginleika, 153 setjat ma, 86 setjat mahandfangs, 70 SFYLKI, 136 sin, 90, 169 sj lfge drif, 74 sj lfge safn, 66 skalsafna, 110 skipta, 149 skiptaumsafn, 65 skiptista a, 141 skj sta a, 154 SKJAR, 151

186 186 ATRI ISOR ASKR skr lesa streng, 77 skr lesab ti, 75 skr lesageymslu, 77 skr lesaor, 75 skr lesastreng, 76 skr ra gangur, 72 skr skrifa rstreng, 77 skr skrifab ti, 75 skr skrifageymslu, 78 skr skrifaminni, 78 skr skrifaor, 76 skr skrifastreng, 76 skrifa, 121 skrifafj l, 121, 159 skrifaheil, 163 skrifal nu, 115 SKRIFALIN, 115 skrifamargli u, 146 skrifastaf, 110 skrifastaf nstopps, 83 skrifastreng, 121 skrifastu ul, 146, 170 skrifataylor, 169 skrunani ur, 154 skrunaupp, 154 SLEMBI, 155 slembi, 155 sn a, 117, 179 SNUA, 117 st kka, 112 sta astopps, 87 sta ur, 179 star, 13 stef, 23 stefna, 179 stillastopp, 87 STORFJOL, 157 STORHEIL, 161 strengytja, 111 strengfylla, 111 STRENGIR, 119 strengir, 13 strengs kjab ti, 111 strengs kjaor, 111 strengsetjab ti, 111 strengsetjaor, 111 strengskeyta, 119 strengst r, 111 strengur, 112, 179 strengur streng, 120 t m, 166 t magildi, 13 t mt, 148 t lur, 13 TAFLA, 165 taka ryggiaf, 86 TAYLOR, 167 tegra, 169 teiknun, 177 teljari, 131 UT, 121 val, 21 var tt staf, 141 veitingar:einingaveitingar, 39 veitingar:forritsveitingar, 39 veldi, 112 veljadrif, 74 vhli ra, 112 vi fang, 175 vi fangafj ldi, 175 VIDBSKJA, 171 VIDF NG, 175 villuveldi, 169 vinstri, 179 vistfang, 112

ORKUSTOFNUN VATNAM LINGAR Lykilsk rsla OS99067 Verknr. 7-640670 Skj lfandaj t, Go afoss, vhm 50 Rennslislykill nr. 5 OS99067 September 1999 ORKUSTOFNUN: Kennitala 500269-5379 - S mi 569 6000 - Fax 568

Detaljer

Java útgáfa /2/2008

Java útgáfa /2/2008 Efnisyfirlit Efnisyfirlit... 2 Tilgangur og uppbygging þessara leiðbeininga... 6 Hvað þarf til að búa til forrit í Java... 6 drjava þróunarumhverfi... 8 Grunnatriði form java forrits - skrifað á skjá...

Detaljer

Java útgáfa /6/2008

Java útgáfa /6/2008 Efnisyfirlit Efnisyfirlit... 2 Tilgangur og uppbygging þessara leiðbeininga... 7 Hvað þarf til að búa til forrit í Java... 8 drjava þróunarumhverfi... 10 Grunnatriði form java forrits - skrifað á skjá...

Detaljer

2. Å R S B E R E T N I N G O G R E G N S K A P F O R A ) Å r s b e r e t n i n g o g r e g n s k a p f o r

2. Å R S B E R E T N I N G O G R E G N S K A P F O R A ) Å r s b e r e t n i n g o g r e g n s k a p f o r I N N K A L L I N G T I L O R D I N Æ R G E N E R A L F O R S A M L I N G 2 0 1 0 O r d i n æ r g e n e r a l f o r s a m l i n g i, a v h o l d e s m a n d a g 3. m ai 2 0 1 0, k l. 1 8 0 0 p å T r e

Detaljer

P r in s ipp s ø k n a d. R egu l e r i ngsen d r i n g f o r S ands t a d gå r d gn r. 64 b n r. 4 i Å f j o r d ko mm un e

P r in s ipp s ø k n a d. R egu l e r i ngsen d r i n g f o r S ands t a d gå r d gn r. 64 b n r. 4 i Å f j o r d ko mm un e P r in s ipp s ø k n a d R egu l e r i ngsen d r i n g f o r S ands t a d gå r d gn r. 64 b n r. 4 i Å f j o r d ko mm un e O pp d ra g s n r : 2 0 1 50 50 O pp d ra g s n a v n : Sa n d s ta d g å r d

Detaljer

C++ Nokkrar æfingar í forritun. Hallgrímur Arnalds

C++ Nokkrar æfingar í forritun. Hallgrímur Arnalds C++ Nokkrar æfingar í forritun bls. 1 Hallgrímur Arnalds síðast breytt: 15/8/06 Tilgangur þessara leiðbeininga Þessir punktar eru ætlaðir sem safn af æfingaverkefnum fyrir byrjendur í forritun. Vonandi

Detaljer

Þverá, Langadalsströnd vhm 038 Rennslislykill #6

Þverá, Langadalsströnd vhm 038 Rennslislykill #6 ORKUSTOFNUN Grensásvegi 9, 108 Reykjavík Verknr. 540 550 /os/jfj/vmgogn/lyk/038/skyrsla038.t Þverá, Langadalsströnd vhm 038 Rennslislykill #6 Jóna Finndís Jónsdóttir OS-96064/VOD-11 B Nóvember 1996 - 2

Detaljer

Verkefnahefti 3. kafli

Verkefnahefti 3. kafli Verkefnahefti. kafli Skali A Verkefnablöð 0 Námsgagnastofnun. KAFLI .. Cuisinaire-kubbar hvítur appelsínugulur rauður blár ljósgrænn brúnn fjólublár svartur gulur dökkgrænn dökkgrænn svartur gulur fjólublár

Detaljer

Sk ie n ko mm une. R EG UL E R I N GS B ES T E MM E L SER T I L D eta ljr e gu l e ri n g

Sk ie n ko mm une. R EG UL E R I N GS B ES T E MM E L SER T I L D eta ljr e gu l e ri n g R EG UL E R I N GS B ES T E MM E L SER T I L D eta ljr e gu l e ri n g K j ø r b ekk d a l en 12 D 220 / 211 m. fl R e g u l e r i n g s be s te mm e ls e r sist date r t 27.09.17. P l an k a r t sist

Detaljer

FAGKONFERANSE KONTROL L OG TILSYN GARDERMOEN JUNI A RSMØTE I FORU M FO R KONTROLL OG TILSYN 5. JUN I 2013

FAGKONFERANSE KONTROL L OG TILSYN GARDERMOEN JUNI A RSMØTE I FORU M FO R KONTROLL OG TILSYN 5. JUN I 2013 FAGKONFERANSE KONTROL L OG TILSYN GARDERMOEN 5.- 6. JUNI 201 3 A RSMØTE I FORU M FO R KONTROLL OG TILSYN 5. JUN I 2013 09. 0 0 1 0. 0 0 R E G I S TR E R I NG N o e å b i t e i 10. 0 0 1 0. 15 Å p n i ng

Detaljer

30.7.2015 EØS-tillegget til Den europeiske unions tidende. EØS-KOMITEENS BESLUTNING nr. 203/2014. av 30. september 2014

30.7.2015 EØS-tillegget til Den europeiske unions tidende. EØS-KOMITEENS BESLUTNING nr. 203/2014. av 30. september 2014 30.7.2015 EØS-tillegget til Den europeiske unions tidende Nr. 43/57 EØS-KOMITEENS BESLUTNING nr. 203/2014 203-2015n EØS-KOMITEEN HAR av 30. september 2014 om endring av EØS-avtalens vedlegg II (Tekniske

Detaljer

S T Y R E T G J Ø R O P P M E R K S O M P Å A T D Ø R E N E S T E N G E S K L

S T Y R E T G J Ø R O P P M E R K S O M P Å A T D Ø R E N E S T E N G E S K L K j æ r e b e b o e r! D u h o l d e r n å i n nk a l l i n g e n t i l å r e t s g e n e r a l f o r s am l i n g i h å n d e n. D e n i n n e h o l d e r b o r e t t s l a g et s å r s b e r e t n i

Detaljer

I N N K AL L I N G T I L O R D I N Æ R T S A M E I E R M Ø T E

I N N K AL L I N G T I L O R D I N Æ R T S A M E I E R M Ø T E I N N K AL L I N G T I L O R D I N Æ R T S A M E I E R M Ø T E 2 0 0 9 O r d i næ r t s am e i e rm ø t e i S am b o b o l i g s a m ei e fi n n e r s t e d t o r s d ag 3 0. 0 4. 2 0 0 9 K l. 1 8. 3 0

Detaljer

K j æ r e b e b o e r!

K j æ r e b e b o e r! K j æ r e b e b o e r! D u h o l d e r n å i n nk a l l i n g e n t i l å r e t s g e n e r a l f o r s am l i n g i h å n d e n. D e n i n n e h o l d e r b o r e t t s l a g e t s å r s b e r e t n i

Detaljer

K j æ r e b e b o e r!

K j æ r e b e b o e r! 1 K e y s e r l ø k k a Ø s t B o r e t t s l a g K j æ r e b e b o e r! D u h o l d e r n å i n nk a l l i n g e n t i l å r e t s g e n e r a l f o r s am l i n g i h å n d e n. D e n i n n e h o l d

Detaljer

K j æ r e b e b o e r!

K j æ r e b e b o e r! 1 H o v i n B o r e t t s l a g K j æ r e b e b o e r! D u h o l d e r n å i n nk a l l i n g e n t i l å r e t s g e n e r a l f o r s am l i n g i h å n d e n. D e n i n n e h o l d e r b o r e t t s

Detaljer

K j æ r e b e b o e r!

K j æ r e b e b o e r! K j æ r e b e b o e r! D u h o l d e r n å i n n k a l l i n g e n t i l år e t s g e n e r a l f o rs am l i n g i h å n d e n. D e n i n n e h o l d e r b o r e t t s l a g et s å r s b e r e t n i n

Detaljer

K j æ r e b e b o e r!

K j æ r e b e b o e r! K j æ r e b e b o e r! D u h o l d e r n å i n nk a l l i n g e n t i l å r e t s g e n e r a l f o r s am l i n g i h å n d e n. D e n i n n e h o l d e r b o r e t t s l a g et s å r s b e r e t n i

Detaljer

I N N K A L L I N G T I L O R D I N Æ R T S A M E I E R M Ø T E

I N N K A L L I N G T I L O R D I N Æ R T S A M E I E R M Ø T E I N N K A L L I N G T I L O R D I N Æ R T S A M E I E R M Ø T E 2 0 0 9 O r d i n æ r t s am e i e rm øt e i S am e i e t W al d em a rs H a g e, a v h o l d e s t o rs d a g 1 8. j u n i 2 0 0 9, k l.

Detaljer

Våre Vakreste # & Q Q Q A & Q Q Q - & Q Q Q.# arr:panæss 2016 E A A 9 A - - Gla- ned. skjul F Q m. ler. jul. eng- da- jul. ler.

Våre Vakreste # & Q Q Q A & Q Q Q - & Q Q Q.# arr:panæss 2016 E A A 9 A - - Gla- ned. skjul F Q m. ler. jul. eng- da- jul. ler. Vå Vks rr:pnæss 06 Kor L JUL Q Q Q ^\ # Q Q Q ht Q Q Q # 6 Q Q Q # Q Q Q # Ju lg u u Q Q Q # # v blnt # LL: u # mj # # # # d fly p r ds Q Q m # # år lønn Ju v g v g # jul # grønt 6 # # u Lønn gå # hvor

Detaljer

K j æ r e b e b o e r!

K j æ r e b e b o e r! K j æ r e b e b o e r! D u h o l d e r n å i n nk a l l i n g e n t i l å r e t s g e n e r a l f o r s am l i n g i h å n d e n. D e n i n n e h o l d e r b o r e t t s l a g et s å r s b e r e t n i

Detaljer

K j æ r e b e b o e r!

K j æ r e b e b o e r! K j æ r e b e b o e r! D e t t e e r i n n k a l l i n g e n t i l å r e t s g e n er a l f o r s a m l i n g. D e n i n n e h o l d e r b o r e t t s l a g e t s å r s m e l d i n g o g r e g n s k a

Detaljer

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010 INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010 O r d i n æ r t s a m e i e r m ø t e i S / E S o r g e n f r i g a t e n 3 4, a v h o l d e s o ns d a g 1 0. m a rs 2 0 1 0 k l. 1 8. 0 0 i K l u b b r o m m

Detaljer

Innhold. Ka pit tel 1 Inn led ning Barn og sam funn Bo kas opp byg ning... 13

Innhold. Ka pit tel 1 Inn led ning Barn og sam funn Bo kas opp byg ning... 13 Innhold Ka pit tel 1 Inn led ning... 11 Barn og sam funn... 11 Bo kas opp byg ning... 13 Ka pit tel 2 So sia li se rings pro ses sen... 15 For hol det mel lom sam funn, kul tur og so sia li se ring...

Detaljer

Smárabrekka Lyngbrekka Grasabrekka Blómabrekka Fjólusveigur Liljusveigur

Smárabrekka Lyngbrekka Grasabrekka Blómabrekka Fjólusveigur Liljusveigur 9. SÉRÁKVÆÐI 9.1. Yfirlit húsagerða Sérbyli E1a E1b E1c E1d E2a E2b E2c E2d E2e E2f E2g E2h E2k E2i R1 R2 R2a P2 Húsagötur: Einbýlishús á einni hæð Einbýlishús á tveimur hæðum* Raðhús Parhús Samtals %

Detaljer

SKALI STÆRÐFRÆÐI FYRIR UNGLINGASTIG VERKEFNAHEFTI. Námsgagnastofnun 8667

SKALI STÆRÐFRÆÐI FYRIR UNGLINGASTIG VERKEFNAHEFTI. Námsgagnastofnun 8667 1B SKALI VERKEFNAHEFTI STÆRÐFRÆÐI FYRIR UNGLINGASTIG Námsgagnastofnun 8667 Efnisyfirlit Verkefnablöð í Skala 1B Kafli 4 1.4.1 Skífurit 1.4.2 Hve gamlir eru strákarnir? 1.4.3 Hvaða kast var lengst? 1.4.4

Detaljer

K j æ r e b e b o e r!

K j æ r e b e b o e r! K j æ r e b e b o e r! D u h o l d e r n å i n nk a l l i n g e n t i l å r e t s g e n e r a l f o r s am l i n g i h å n d e n. D e n i n n e h o l d e r b o r e t t s l a g et s å r s b e r e t n i

Detaljer

1 Forutsetninger og rammebetingelser for fleksible organisasjonsformer

1 Forutsetninger og rammebetingelser for fleksible organisasjonsformer Innhold Del 1 Forutsetninger og betingelser............................. 15 1 Forutsetninger og rammebetingelser for fleksible organisasjonsformer Rune Assmann og Tore Hil le stad............................

Detaljer

Levanger kommune, Foreløpig registrering, pr. 9. des. 2005

Levanger kommune, Foreløpig registrering, pr. 9. des. 2005 240.001 Levanger og Frosta, PPT Klienter A F ca. 1964 ca. 1984 404.6.6 362 240.002 Levanger og Frosta, PPT Klienter G K ca. 1965 ca. 1985 404.6.6 363 240.003 Levanger og Frosta, PPT Klienter L R ca. 1966

Detaljer

2.febrúar 2015 kl. 08:30-11:00

2.febrúar 2015 kl. 08:30-11:00 Sveinsprófsnefnd sterkstraums Rafmagnsfræði, stýrikerfi og búnaður 2.febrúar 2015 kl. 08:30-11:00 Nafn: Kennitala: Heimilisfang:_ Hjálpargögn: Skriffæri, reglustika, og reiknivél. Nota má bókina Formúlur

Detaljer

Ø K S N E V A D P O R T E N E I E N D O M A S

Ø K S N E V A D P O R T E N E I E N D O M A S Ø K V D T I D M.. I U T J T I D T J G U I G F K V Æ D Æ I G K. V F B V F V a n d b l å st g l a s s F i l n a v n : -. p l n / U t s k r i f t s d a t o :.. / / / / / / / / / / / / / / / / / / / / / T

Detaljer

K j æ r e b e b o e r!

K j æ r e b e b o e r! K j æ r e b e b o e r! D u h o l d e r n å i n n k a l l i n g e n t i l å r e t s g e n e r a l f o r s a m l i n g i h å n d e n. D e n i n n e h o l d e r b o r e t t s l a g et s å r s b e r e t n

Detaljer

E G C F H/B D A D C A G H/B F E. Tekna við ngrinum frá nóta til bókstav til tangent

E G C F H/B D A D C A G H/B F E. Tekna við ngrinum frá nóta til bókstav til tangent !! E G C F H/B D A D C A G H/B F E!! Tekna við ngrinum frá nóta til ókstav til tangent 6 Í reiðri krin øgan lá Í reið - ri k - rin ø - gan lá, í - me - ðan kendur reg - ni 69 F-dur lag dík - ti á Kri,

Detaljer

Ordliste for TRINN 1

Ordliste for TRINN 1 Ordliste for TRINN 1 (utviklende matematikk-oppgavehefter 1A, 1B,2A, 2B, 3A og 3B, - refleksjonsord som kan hjelpe å forstå oppgaver). Bok og side Ord på norsk I oppgavetekstene står ofte verb i imperativ

Detaljer

funktioner der er tilvalg er mærkede med **

funktioner der er tilvalg er mærkede med ** Dokumentet er inddelt som følgende: tavler er placerede bag låger for til- og fraluft generel beskrivelse - kredsskema 0 - tavle layout - grafiske lister reservedelsliste 0 - klemmematrice 0 - kabel plan

Detaljer

ServerClient 15. Zugriff KNX/EIB kerfi Tilgang KNX/EIB-system. Hönnunarger ir Designvarianter. Gira/Pro-face

ServerClient 15. Zugriff KNX/EIB kerfi Tilgang KNX/EIB-system. Hönnunarger ir Designvarianter. Gira/Pro-face Zugriff KNX/EIB kerfi Tilgang KNX/EIB-system Sem jónustutæki fyrir Gira HomeServer 3 e a Gira FacilityServer er t.d. hægt a byggja inn í Gira SmartTerminal e a ServerClient 15. eir virka sem a al st ringar-,

Detaljer

A ft tt * 1 ^ an T ii ft. *< X IP * ft ii l> ff ffl *> (2 # * X fa c, * M L 7 ft tf ;U -h h T T* L /< ft * ft 7 g $ /i & 1 II tz ft ft ip ft M.

A ft tt * 1 ^ an T ii ft. *< X IP * ft ii l> ff ffl *> (2 # * X fa c, * M L 7 ft tf ;U -h h T T* L /< ft * ft 7 g $ /i & 1 II tz ft ft ip ft M. Pal 77»_ a< IP ft A 6 * *' -5 m y, m *J 7 7 t< m X D $ ^ 7 6 X b 7 X X * d 1 X 1 v_ y 1 ** 12 7* y SU % II 7 li % IP X M X * W 7 ft 7r SI & # & A #; * 6 ft ft ft < ft *< m II E & ft 5 t * $ * ft ft 6 T

Detaljer

EMADINE 0,05% øjendråber, opløsning, enkeltdosisbeholder Emedastin

EMADINE 0,05% øjendråber, opløsning, enkeltdosisbeholder Emedastin EMADINE 0,05% øjendråber, opløsning, enkeltdosisbeholder Emedastin Læs hele denne indlægsseddel omhyggeligt, inden du begynder at anvende dette lægemiddel. Dette lægemiddel er ordineret til dig personligt.

Detaljer

s Ss H= ul ss i ges su Es $ ieig *isx E i i i * r $ t s$ F I U E,EsilF'Ea g g EE $ HT E s $ Eg i i d :; il N SR S 8'i R H g i,he$r'qg5e 3

s Ss H= ul ss i ges su Es $ ieig *isx E i i i * r $ t s$ F I U E,EsilF'Ea g g EE $ HT E s $ Eg i i d :; il N SR S 8'i R H g i,he$r'qg5e 3 "t q) )t 9q ) nf;'=i \0.l.j >, @ N c\, l'1 { rrl r) cg K X (), T t'1 s Ss q r' s S i i * r $ t s$ iig *isx i i gs su s $ Ss N SR S f, S = ul ss i? X $ $ g $ T s i :; il \ei V,t. =R U {N ' r 5 >. ct U,sil'

Detaljer

Virkjunarkostir til umfjöllunar í 3. áfanga rammaáætlunar Kafli 6.52 R3154A Blöndudalsvirkjun

Virkjunarkostir til umfjöllunar í 3. áfanga rammaáætlunar Kafli 6.52 R3154A Blöndudalsvirkjun Virkjunarkostir til umfjöllunar í 3. áfanga rammaáætlunar Kafli 6.52 R3154A Blöndudalsvirkjun Erla Björk Þorgeirsdóttir Kristinn Einarsson Linda Georgsdóttir OS-2013/01 978-9979-68-326-1 Orkustofnun Orkugarður

Detaljer

Bjerkreim kyrkje 175 år. Takksemd. Tekster av Trygve Bjerkrheim Musikk av Tim Rishton

Bjerkreim kyrkje 175 år. Takksemd. Tekster av Trygve Bjerkrheim Musikk av Tim Rishton Bjerkreim kyrkje 175 år Takksemd Tekster av Trygve Bjerkrheim Musikk av Tim Rishton Takk for det liv du gav oss, Gud 5 5 Takk for det liv du gav oss, Gud, Hi-mlen som hvel - ver seg 5 5 9 9 o - ver! Takk

Detaljer

Ordliste for TRINN 2 (utviklende matematikk-oppgavehefter 2Aog 2B- refleksjonsord som kan hjelpe å forstå oppgaver)

Ordliste for TRINN 2 (utviklende matematikk-oppgavehefter 2Aog 2B- refleksjonsord som kan hjelpe å forstå oppgaver) Ordliste for TRINN 2 (utviklende matematikk-oppgavehefter 2Aog 2B- refleksjonsord som kan hjelpe å forstå oppgaver) Bok og side Ord på norsk Forklaring på norsk/synonym/illustrasjon På morsmål (islandsk)

Detaljer

s P t r st s s r st st r ür t s s t s st s t3 3 t r r s ä stüt3 ö st t s s tr r t 2 r s t r

s P t r st s s r st st r ür t s s t s st s t3 3 t r r s ä stüt3 ö st t s s tr r t 2 r s t r s P t r st s s r st st r ür t s s t s st s t3 3 t r r s ä stüt3 ö st t s s tr r t 2 r s t r t r r r s ss s ür t r r st ts s q t rt r s rst r s r r t rt s sst r s r 2 r ü t s s 3 t r3 st r s ür r t r t

Detaljer

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010 INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010 O r d i n æ r t s am e i e rm øt e i S am B o B o l i g s am e i e, a v h o l d es o ns d a g 2 8. 04. 2 0 1 0, k l. 1 8. 3 0 i G r ef s e n m e n i g h e t s s

Detaljer

REVISIONSFIRMAET ERIK CHRISTENSEN STATSAUTORISEREDE REVISORER I/S VESTER VOL DG ADE 1 0 6, 1 5 5 2 K Ø B EN H AVN V TL F : 3 3 1 3 2 9 1 2. F AX : 3 3 3 2 0 2 1 2. E-M AIL : EC @ REVEC. DK AN SVARL IG

Detaljer

Innhold. For br u ker k jøps lo vens omr åde. Prin sip pet om yt el se mot yt el se sam ti dig hets prin sip pet. Selgers plikter.

Innhold. For br u ker k jøps lo vens omr åde. Prin sip pet om yt el se mot yt el se sam ti dig hets prin sip pet. Selgers plikter. Innhold Kapittel 1 For br u ker k jøps lo vens omr åde 1.1 Innledning...15 1.2 For bru ker kjøps lo vens vir ke om rå de. Hva lo ven gjel der for el ler re gu le rer...17 1.2.0 Litt om begrepet «kjøp»

Detaljer

Frístundahús. Leiðbeiningar. Leiðbeiningar. Mannvirkjastofnun

Frístundahús. Leiðbeiningar. Leiðbeiningar. Mannvirkjastofnun . gr. byggingarreglugerðar, nr.112/2012, sbr. rgl. nr. 1173/2012, 350/2013 og 280/2014 Lög um mannvirki, nr. 160/2010 Frístundahús Í grein í byggingarreglugerð segir: Almennar hollustuháttakröfur íbúða

Detaljer

K v in n e r p å tv e rs 2 3.0 9.0 7

K v in n e r p å tv e rs 2 3.0 9.0 7 S itu a s jo n e n i p e n s jo n s k a m p e n K v in n e r p å tv e rs 2 3.0 9.0 7 H o v e d p u n k te r N y tt fo rs la g til A F P b y g d p å p e n s jo n s re fo rm e n B e g ru n n e ls e n fo

Detaljer

I n n k a l l i n g t i l o r d i n æ r t s a m e i e r m ø t e

I n n k a l l i n g t i l o r d i n æ r t s a m e i e r m ø t e I n n k a l l i n g t i l o r d i n æ r t s a m e i e r m ø t e 2 0 1 1 O r d i n æ r t s a m e i e r m ø t e i L i s a K r i s t o f f e r s e n s P l a s s S E, a v h o l d e s o ns d a g 9. m a r s

Detaljer

Paa Sangertog. Tempo di marcia q = 110 TENOR 1 TENOR 2 BASS 1 BASS 2. bor - de, ju - bel fra bryst og munn. Frem

Paa Sangertog. Tempo di marcia q = 110 TENOR 1 TENOR 2 BASS 1 BASS 2. bor - de, ju - bel fra bryst og munn. Frem Ibsen TENOR 1 TENOR 2 BASS 1 dag, 9 m m m Temo di marcia q = 110 Frem Frem Frem gjennem hol mer nes rek ker, d li ge, skin nen de gjennem hol mer nes rek ker, d li ge, skin nen de gjennem hol mer nes rek

Detaljer

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010 INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010 O r d i n æ r t s am e i e rm øt e i J o h a n n es B r u n s g at e 1 2 C S am e i e, a v h o l d e s T i r s d a g 2 3. m a r s 2 0 1 0, k l. 1 9 : 0 0 i l ok

Detaljer

3.2 Lausnir af römmum sýrum og bösum

3.2 Lausnir af römmum sýrum og bösum 3. kafli, Efnafræði II (Jóhann Sigurjónon) Efnahvörf ýru og baa við vatn og innbyrði. (Athuga: K = K a ; S = HB ; B = B ; K v = K w ) Upprifjun (8. kafli bók I, Jóhann Sigurjónon) Skilgreiningar: Brønted:

Detaljer

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2009

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2009 INNKALLING TIL ORDINÆRT SAMEIERMØTE 2009 O r d i n æ r t s am e i e rm øt e i R u d s h ø g d a V B / S, a v h o l d e s m a n d a g 1 6. m a r s k l. 1 8 : 0 0 p å L o f s r u d s k o l e, L i l l e a

Detaljer

gr. byggingarreglugerðar, nr. 112/2012, sbr. rgl. nr. 1173/2012, 350/2013, 280/2014 og 360/2016 Lög um mannvirki, nr.

gr. byggingarreglugerðar, nr. 112/2012, sbr. rgl. nr. 1173/2012, 350/2013, 280/2014 og 360/2016 Lög um mannvirki, nr. . gr. byggingarreglugerðar, nr. 112/2012, sbr. rgl. nr. 1173/2012, 350/2013, 280/2014 og 360/2016 Lög um mannvirki, nr. 160/2010 Almennar kröfur til íbúða Í grein í byggingarreglugerð segir: Hver einstök

Detaljer

K j æ r e b e b o e r!

K j æ r e b e b o e r! K j æ r e b e b o e r! D u h o l d e r n å i n n k a l l i n g e n t i l å r e t s g e n e r a l f o r s am l i n g i h å n d e n. D e n i n n e h o l d e r b o r e t t s l a g et s å r s b e r e t n i

Detaljer

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010 INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010 O r d i n æ r t s am e i e rm øt e i S k u l l e r u dh ø g d a I B o l i gs am e i e, a v h o l d e s t i r s d a g 2 7. a p r i l 2 0 1 0, k l. 1 8. 0 0 i S k

Detaljer

Kan du Løveloven...?

Kan du Løveloven...? yvind Skeie Intro # 4 Kan du Løveloven...? 7 7 sbørn rntsen œ œ œ œ œ œ œ œ œ Œ # Kan S du du lø ve lo en som pla œ œ œ œ œ œ œ œ œ œ ven? ges? Jeg et skal 7 være ik ke meg! bra! Œ Og l gi le œ œ œ œ plass

Detaljer

NORSK TEKSTARKIV J o s t e in H. Hauge

NORSK TEKSTARKIV J o s t e in H. Hauge NAVF'S EDB-SENTER FOR HUMANISTISK FORSKNING V IL L A V E I 1 0, POSTBOKS 53 50 1 4 BERG EN-UNIVERSITETET 7 O k to b e r 1979 NORSK TEKSTARKIV J o s t e in H. Hauge 1. FO RHISTORIE D a ta m a s k in e ll

Detaljer

Inf or m asjonshef t e t il vikarer

Inf or m asjonshef t e t il vikarer Inf or m asjonshef t e t il vikarer ved Eidsvåg skole Til deg som er vikar ved Eidsvåg skole Velko m m en so m vikar ved sko len. I d et t e h ef t e vil d u f in n e en ko r t f at t et sam lin g av vikt

Detaljer

Case 1:11-cr RNS Document 781 Entered on FLSD Docket 03/27/2013 Page 1 of M a u u - g u 'a M M M u..a u i < < < < < < < < <.Q? <.t!

Case 1:11-cr RNS Document 781 Entered on FLSD Docket 03/27/2013 Page 1 of M a u u - g u 'a M M M u..a u i < < < < < < < < <.Q? <.t! Cas :2033RNS Dun 78 End n FLSD Dk 03/27/203 Pag f 6 i I jj @ :j j j C I i!, I I! l I : I l!! I ;, ;!, ; 4 k! @ j j ; ;, I I, jji l i I! I j I; l i! l ; : i I I! v z l! l g U U J B g g 6 q; J Y I : 0 ;

Detaljer

Ge i r Berge 47. En d a t a s t r u k t u r f o r o rd b ø k e r f o r n a t u r lig e sp råk. 1. In n le d n in g

Ge i r Berge 47. En d a t a s t r u k t u r f o r o rd b ø k e r f o r n a t u r lig e sp råk. 1. In n le d n in g Ge i r Berge 47 En d a t a s t r u k t u r f o r o rd b ø k e r f o r n a t u r lig e sp råk 1. In n le d n in g Det a r b e id e t som s k a l r e f e r e r e s h e r hadde som m ål å k o n s tru e re

Detaljer

1 Vår onn med nye mu lig he ter. Ver di ska ping på vest lands byg de ne ba sert på res sur ser og opp le vel ser

1 Vår onn med nye mu lig he ter. Ver di ska ping på vest lands byg de ne ba sert på res sur ser og opp le vel ser Innhold 1 Vår onn med nye mu lig he ter. Ver di ska ping på vest lands byg de ne ba sert på res sur ser og opp le vel ser Gre te Rus ten, Leif E. Hem og Nina M. Iver sen 13 Po ten sia let i uli ke mål

Detaljer

N e s s an e k r a f t ve r k

N e s s an e k r a f t ve r k R e v 02 / m a rs 2012 K on s e s j on s s ø k n a d f o r N e s s an e k r a f t ve r k (Bilde 27.04.07, sn ø s m elti n g o g h ø g v a ss føri n g ) Ne ss a n e - Ba l e s t r a nd k o mm u n e 1 NV

Detaljer

úø ø úø ø wø ø ø ø ø ø ø ø ø ú ø ú øî ø ø ú ø ø ú ø Î Î ø wø ø ø ø ø ø ø ø ø ø ú ø nø øl ø J ú úl ø Kom, tro, og kom, glæde

úø ø úø ø wø ø ø ø ø ø ø ø ø ú ø ú øî ø ø ú ø ø ú ø Î Î ø wø ø ø ø ø ø ø ø ø ø ú ø nø øl ø J ú úl ø Kom, tro, og kom, glæde Kom, tro, kom, glæde Engelsk Christmas Carol Korar.: Uffe Most 1998 Dansk tekst: Johannes Johansen 4 4 4 4 4 w 5 w n L j J L J F 1) Kom, 3) Kom, F 1) Kom, 3) Kom, F 1) Kom, 3) Kom, 9 { Kom, tro, kom, glæde

Detaljer

Lausnir Nóvember 2006

Lausnir Nóvember 2006 Lausnir Nóvember 2006 Bls. 1 Reikningur a) 80 d) 27 g) 2400 b) 33 e) 42 h) 410 c) 54 f) 96 i) 640 9 tölur. a) 1 48 b) 1 64 c) 1 90 d) 1 128 2 24 2 32 2 45 2 64 3 16 4 16 3 30 4 32 4 12 8 8 5 18 8 16 6

Detaljer

Kæri Kirby eigandi, Vi vonum a flú njótir Sentria heimilisumsjónarkerfisins til hins ítrasta!

Kæri Kirby eigandi, Vi vonum a flú njótir Sentria heimilisumsjónarkerfisins til hins ítrasta! Til hamingju Kæri Kirby eigandi, Til hamingju me kaup flín. fiú átt núna frábært fullkomi heimilisumsjónarkerfi, hanna til a au velda flér a láta heimili flitt og húsbúna líta betur út og endast lengur.

Detaljer

VISJON FOR SKOLEFRITIDSORDNINGEN I HOBØL KOMMUNE 2013-14

VISJON FOR SKOLEFRITIDSORDNINGEN I HOBØL KOMMUNE 2013-14 VISJON FOR SKOLEFRITIDSORDNINGEN I HOBØL KOMMUNE 2013-14 SFO ET GODT STED Å VÆ RE MED LEK OG UTFORDRINGER I TRYGGE OMGIVELSER S: Sosialiser ing F: Fr ilek O: Om sorg Et go d t m o t t o p å SFO: Gjør mot

Detaljer

dk Viðskiptahugbúnaður Grunn námskeið

dk Viðskiptahugbúnaður Grunn námskeið dk Viðskiptahugbúnaður Grunn námskeið Efnisyfirlit dk grunnur - námskeiðið... 2 Flýtileiðir í dk... 3 Uppflettingar... 6 Skýrslur... 8 Gluggar... 10 Stofnupplýsingar fyrirtækis... 11 Almennar stillingar...

Detaljer

O v e rfø rin g fra s to rt a n le g g til m in d re a n le g g

O v e rfø rin g fra s to rt a n le g g til m in d re a n le g g O v e rfø rin g fra s to rt a n le g g til m in d re a n le g g H v a k a n e n m in d re k o m m u n e ta m e d s e g? Iv a r S o lv i B enc hm a rk ing Wa ter S olutions E t s p ø rs m å l s o m m a

Detaljer

2 He F Ne Cl Ar Br Kr Lv Ts. 118 Og. 69 Tm. 70 Yb. 71 Lu. 102 No. 101 Md. 103 Lr

2 He F Ne Cl Ar Br Kr Lv Ts. 118 Og. 69 Tm. 70 Yb. 71 Lu. 102 No. 101 Md. 103 Lr g Væske Gass e 9 0 0 Ca 9 0 3 4 5 6 7 9 30 3 3 4 4 44 45 46 47 4 49 50 5 5 Nb Mo Tc Ru Rh Pd Ag Cd In Sn 7 73 0 3 f Ta g Tl 53 I 04 05 06 07 0 09 s Mt 0 3 4 5 6 7 *Melk er bygd opp av disse grunnstoffene

Detaljer

Kartoversikt over eksisterende og planlagte idrettsanlegg i Trondheim kommune

Kartoversikt over eksisterende og planlagte idrettsanlegg i Trondheim kommune Rådmannen Kartoversikt over eksisterende og planlagte idrettsanlegg i Trondheim kommune 01.01.2008 Høringsutkast 2008 Denne kartoversikten inneholder alle eksisterende idrettsanlegg og alle planlagte idrettsanlegg

Detaljer

SKALI LAUSNIR STÆRÐFRÆÐI FYRIR UNGLINGASTIG NEMENDABÓK. Námsgagnastofnun 8863

SKALI LAUSNIR STÆRÐFRÆÐI FYRIR UNGLINGASTIG NEMENDABÓK. Námsgagnastofnun 8863 A SKALI NEMENDABÓK STÆRÐFRÆÐI FYRIR UNGLINGASTIG LAUSNIR Námsgagnastofnun 886 Kafli. a 6 e i 04 m 288 b 7 f 42 j 8 n 44 c 9 g 25 k 26 o 2 d 66 h 60 l.2 a c e 52 b 6 d 29 f 68.2 Viðskiptavinurinn fær til

Detaljer

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010 INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010 O r d i n æ r t s am e i e rm øt e i K o l b ot n To r g B s, a v h o l d e s t o rs d a g 1 8. m a r s 2 0 1 0, k l. 1 8 0 0 i K o l b e n. D e t v i l a v h o

Detaljer

Erklæring om ansvarsrett etter plan- og bygningsloven (pbl) 23-3

Erklæring om ansvarsrett etter plan- og bygningsloven (pbl) 23-3 PRO Kommunens saksnr. Vedlegg nr. G Side 1 av Erklæring om ansvarsrett etter plan og bygningsloven (pbl) 233 Erklæringen skal sendes til ansvarlig søker. Alternativt kan erklæringen sendes direkte til

Detaljer

S1 eksamen våren 2016 løysingsforslag

S1 eksamen våren 2016 løysingsforslag S1 eksamen våren 016 løysingsforslag Tid: timar Hjelpemiddel: Vanlege skrivesaker, linjal med centimetermål og vinkelmålar er tillate. Oppgåve 1 (4 poeng) Løys likningane a) x x 0 4 1 x 1 9 8 x 1 x x 1

Detaljer

Sosialantropologisk institutt

Sosialantropologisk institutt Sosialantropologisk institutt Eksamensoppgaver til SOSANT2000: Generell antropologi: grunnlagsproblemer og kjernespørsmål Utsatt eksamen Høsten 2004 Skoleeksamen 16. desember kl. 9-15, Lesesal B, Eilert

Detaljer

REVISIONSFIRMAET ERIK CHRISTENSEN STATSAUTORISEREDE REVISORER I/S VESTER VOL DG ADE 1 0 6, 1 5 5 2 K Ø B EN H AVN V TL F : 3 3 1 3 2 9 1 2. F AX : 3 3 3 2 0 2 1 2. E-M AIL : EC @ REVEC. DK AN SVARL IG

Detaljer

Takksemd fire songar for kor. Tekster av Trygve Bjerkrheim Musikk av Tim Rishton

Takksemd fire songar for kor. Tekster av Trygve Bjerkrheim Musikk av Tim Rishton Takksemd fire songar for kor Tekster av Trygve Berkrheim Musikk av Tim Rishton 2010 Til 175 års uileum i Berkreim kyrke Innhald 1. Takk for det liv du gav oss, Gud 1 2. Fram mot det store 7 3. Våren gav

Detaljer

Hei!arb"lin. Fornar rústir á Sí!uhei!um, V-Skaftafellss"slu Rúst vi! Streitugil. Sk"rsla VI

Hei!arblin. Fornar rústir á Sí!uhei!um, V-Skaftafellssslu Rúst vi! Streitugil. Skrsla VI Hei!arb"lin Fornar rústir á í!uhei!um, Vkaftafellss"slu Rúst vi! treitugil k"rsla VI 2014 2 Forsí!umyndin s"nir rústina vi! treitugil. Er rústin fyrir mi!ri mynd og horft er eftir henni endilangri. Í fjarska

Detaljer

Morfologioppgåva om Kongo-swahili

Morfologioppgåva om Kongo-swahili Morfologioppgåva om Kongo-swahili Aronoff & Fudeman: What is Morphology? Ch. 1, oppgåve 14. Merknader skrivne av Rolf Theil. 1. Subjektsprefiks m.m. Sjå fyrst på dei 6 orda i (1), dvs. alle orda som tyder

Detaljer

Ástin á tímum ömmu og afa

Ástin á tímum ömmu og afa !!! Ástin á tímum ömmu og afa - Bréf og dagbækur aldamótamanns - Anna Hinriksdóttir Lokaverkefni til M.A.-prófs í hagn!tri menningarmi"lun Lei"beinandi: Sigur"ur Gylfi Magnússon Ástin á tímum ömmu og afa

Detaljer

Løsning av utvalgte øvingsoppgaver til Sigma R2 kapittel 5

Løsning av utvalgte øvingsoppgaver til Sigma R2 kapittel 5 Løsning av utvalgte øvingsoppgaver til Sigma R kapittel 5 5.5 Ce kx y = kce kx Vi setter inn i y + ky og ser om vi får 0: 5.5 ax + a y = ax Vi setter inn i y 5.54 kce kx + k Ce kx = 0 x x + y: ax x(ax

Detaljer

10 Leddstilling og kongruens

10 Leddstilling og kongruens 10 Leddstilling og kongruens Bakgrunn 110 Leddstilling. Leddstillinga i norrønt er friare enn i moderne norsk. Mykje av forklaringa ligg i den rike morfologien, som gjer at nominale setningsledd kan plassere

Detaljer

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010

INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010 INNKALLING TIL ORDINÆRT SAMEIERMØTE 2010 O r d i n æ r t s am e i e rm øt e i S am e i e t T o n s e n h a g e n 1 1, a v h o l d e s t o r s d ag 1 5. a p r i l 2 0 1 0, k l. 1 8 : 0 0 p å T o ns e n

Detaljer

œ»u ========================= & # f > > > > l l l l l jœ»j œ»j ˆ« =========================? # ˆ«jœ» J ˆ«j œ J l

œ»u ========================= & # f > > > > l l l l l jœ»j œ»j ˆ« =========================? # ˆ«jœ» J ˆ«j œ J l & # K K K 10 K K K K K K K K K K K K K K K Nei nه smi er han ti a e va re en ter som han m ter og han rem? # J ˆ_ med strand Tra a a a a a ˆ_ J J a a a a a a J J J J J J & # > > > > # 2 4 J J ˆ ˆK J K

Detaljer

Innledning...16 Kapitlene Ano ny mi tet... 18

Innledning...16 Kapitlene Ano ny mi tet... 18 Innhold Innledning...16 Kapitlene... 17 Ano ny mi tet... 18 Del I Innledning til mentoring KapIttel 1 Introduksjon til mentoring...20 Bak grunn...20 Be gre pe ne...22 Sponsorship og ut vik len de mentoring...23

Detaljer

2. Å R S B E R E T N I N G F O R Å R S R E G N S K A P F O R

2. Å R S B E R E T N I N G F O R Å R S R E G N S K A P F O R INNKALLING TIL ORDINÆRT SAMEIERMØTE 2009 O r d i n æ r t s am e i e rm øt e i S a m e i e t S o l h a u g e n, a v h o l d e s o n s d a g 1. a p r i l 2 0 0 9, k l. 1 8. 0 0 i a u d i t o r i um 1, P

Detaljer

) *+! "& "#! " # $ -

) *+! & #!  # $ - !"#$%&'''!!'('"%$'& )*+!"#$%&' 01''01- ****01&'!"#!"" $% & '""!"& "#!'&!1''!! &1!!"#$- '1&!&1 1 &''1$'11'#&'$&1$%&!&!1#1"&1'1 &!$'&' '!"1&2 2&'$. '(&"0!' '1&!&1 $'& 1 '1' # 0& '1&!&1 ' %%' $'&! 1$%(' &'!!2

Detaljer

inf 1510: prosjekt Tone Bratteteig

inf 1510: prosjekt Tone Bratteteig if 1510: pj T Bi if1510: 23 ju 2013 Iiu f Ifi Li &l IDEO hbp://wwwic/w/hppi- c- ccphbp:// i hlv- vi wwwyuubc/wch?v=m66zu2pcicm Li &l 6å pj Kyi, li på i &l S hbp://ifiui/pj/yi/ hbp://vic/43105142 hbp://ifiui

Detaljer

Norska fiskveiðistjórnunarkerfið og markaðssetning norskra afurða. Jóhannes Pálsson, framkvæmdastjóri framleiðslu Norway Seafood AS.

Norska fiskveiðistjórnunarkerfið og markaðssetning norskra afurða. Jóhannes Pálsson, framkvæmdastjóri framleiðslu Norway Seafood AS. Norska fiskveiðistjórnunarkerfið og markaðssetning norskra afurða Jóhannes Pálsson, framkvæmdastjóri framleiðslu Norway Seafood AS. Helstu markaðir fyrir norskar sjávarafurðir Heildarútflutningsverðmæti

Detaljer