Java útgáfa /6/2008

Størrelse: px
Begynne med side:

Download "Java útgáfa /6/2008"

Transkript

1

2 Efnisyfirlit Efnisyfirlit... 2 Tilgangur og uppbygging þessara leiðbeininga... 7 Hvað þarf til að búa til forrit í Java... 8 drjava þróunarumhverfi Grunnatriði form java forrits - skrifað á skjá Sýnidæmi1. Forrit sem skrifar texta Æfingaverkefni Velkomin Breytur og tag breyta Hvað eru breytur Sýnidæmi2. Forrit sem notar breytu Æfingaverkefni sem nota breytur Heiltölubreytur (bok) Character breytur (vefur) Reiknivirkjar, gildistökusetningar og reiknisegðir Sýnidæmi3a. Forrit sem notar eina double breytu og reiknivirkja Sýnidæmi 3b. Forrit sem notar double breytur og virkja Æfingaverkefni sem nota breytur og reiknisegð Rauntölubreytur Rauntölubreytur deiling (bok) Nokkrar segðir Inntak frá lyklaborði Sýnidæmi4. Forrit sem notar breytur og virkja Æfingaverkefni sem nota breytur Gildistökusetningar Æfingaverkefni gildistökusetningar og segðir Litrafjoldi (bok) Tommur í sentimetra Þungaskattur (verkefni) Eldsneytiseyðsla (verkefni) Eldsneytiskostnaður (verkefni) Virðisauki (bok) Verðlækkun (bok) Flatarmál hrings Hitastig Skattur1 (bok) Fastar Sýnidæmi. Forrit reiknar flatarmál hrings með því að nota fasta Æfingaverkefni með fasta Virdisauki (bok) Random tölur (tilviljnarkenndar tölur) Sýnidæmi um forrit sem skrifar út tilviljunarkennda tölu á milli 0 og Sýnidæmi. Forrit sem skrifar út tilviljunarkennda heiltölu á milli 0 og Æfingaverkefni úr tilviljunarkenndum tölum Teningakast (bok) Yatzi kast (bok) If setningar Sýnidæmi um If setningar Nokkrar æfingar í forritun bls. 2 Hallgrímur Arnalds

3 Samanburðarvirkjar Rökvirkjar Æfingaverkefni if setningar Góðan daginn 1 (bok) Góðan daginn 2 (bok) Minnsta tala 1 (verkefni) Minnsta tala 2 (verkefni) Litrar/gallon Tommur/sentimetra Árstíðir Nafn mánaðar (verkefni) Aldur Aldur_ Aldur_ SkatturIf (bok) Vikulaun Hlaupaár (bok) Lögleg dagsetning Lykkjur do.. while lykkjur while lykkjur for lykkjur Break skipunin Continue skipunin Æfingaverkefni - lykkjur Bokstafur Bokstafur2 (bok) Flatarmál ferhyrnings endurtekning Heiltala - lykkja (bok) Talnabil Talnabil Talnabil upp og niður (bok) Talnabil Oddatölur (bok) Talnabil - annað veldi (bok) Summa Litrar/gallon valmynd (bok) Tommur/sentimetra valmynd Talnabil - hropmerkt Skattur lykkja SkatturLykkja2 (bok) Lína í margföldunartöflu > Margföldunartafla Teikna ferning (verkefni) Greiðsluáætlun (verkefni) Spilið 21 (verkefni) Formuð útprentun Static föll Sýnidæmi um einfalt fall Sýnidæmi um fall með færibreytu en engu skilagildi Æfingadæmi um föll með gildisfæribreytum en ekki skilagildi: Nokkrar æfingar í forritun bls. 3 Hallgrímur Arnalds

4 Ummál hrings (bók) (vantar upptöku) Flatarmál ferhyrnings (bók)(vantar upptöku) Lína í margföldunartöflu með falli Margföldunartafla með falli Hitastigstafla (vantar bók)... Error! Bookmark not defined. SkatturLykkja2Fall ( vantar bok) Sýnidæmi um fall með færibreytu og skilagildi Sýnidæmi um fall með tveimur færibreytum og skilagildi Æfingadæmi um föll með gildisfæribreytum og tölulegu skilagildi: Flatarmál ferhyrnings (vantar bok) Flatarmál hrings (bok)... Error! Bookmark not defined. Fallið eldsneytiseydsla (bok) Sýnidæmi um fall sem skilar rökgildi (true eða false) Æfingadæmi um föll með gildisfæribreytum en ekki skilagildi: Talnabil - Fall Teikna ferning fall (verkefni) Æfingadæmi um föll með gildisfæribreytum og skilagildi: Litrar/gallon með falli, valmynd (bok) Tommur/sentimetrar með falli, valmynd Fallið staðgeiðsla SkatturFall (bok) Fallið otthungur Fallið deilanleg (bok) Talnabil - Fall Hlaupaár (bok) Dagafjöldi frá áramótum Veldi Modulus Lán með föllum Fylki Sýnidæmi um notkun fylkis í forriti Æfingadæmi - fylki Manhitastig2 (bok) Birtir hæsta, lægsta og meðalhitastig Nafn Vikulaun Langstökk Einkunnir (verkefni) Lögleg dagsetning Ýmislegt Æfingadæmi Bokstafur1 (bok) Tákn Prímtölur Sjóorusta (bok) Monte Carlo aðferð til að finna pí Klasar Sýnidæmi Klasinn Ferh, dæmi um klasa fyrir ferhyrning Æfingadæmi Nokkrar æfingar í forritun bls. 4 Hallgrímur Arnalds

5 Klasinn hringur Klasinn Land (bok) Klasinn dagsetning Klasinn vinnutimi Klasinn minnisatridi Klasinn spil (verkefni) String klasinn Upphafsstafir (verkefni) Keðja (verkefni) Klasar erfðir Sýnidæmi úr erfðum Æfingardæmi úr erfðum Hus Ibudarhus (bok) Fjall - Eldfjall Villumeðhöndlun try catch throw Viðauki 1. Lausnir nokkurra verkefna Æfingaverkefni breytur og segðir Heiltölubreytur (IntBreyta) Rauntölubreytur deiling Skattur Nafn Litrar Verd Virdisauki Mynteiningar Mynteiningar með falli Mynteiningar með falli og fylki Virdisauki_fasti Æfingaverkefni random tölur Yatzikast Æfingaverkefni if setningar Góðan daginn Góðan daginn SkatturIf Hlaupaár Æfingaverkefni lykkjur Bokstafur Lína í margföldunartöflu - (MargfoldunTafla1) Margföldunartafla - (Margföldunartafla2) Heiltala - lykkja Talnabil upp og niður Oddatala Talnabil - annað veldi SkatturLykkja2 (bok) reyndar með falli... Error! Bookmark not defined. Litrar/gallon valmynd Æfingaverkefni föll Talnabil með falli Flatarmál ferhyrnings (FlatarmalFerhFall) Flatarmál hrings útgáfa Lína í margföldunartöflu með falli - (MargfoldunTafla1Fall) Nokkrar æfingar í forritun bls. 5 Hallgrímur Arnalds

6 Margföldunartafla með falli - (MargfoldunTafla2Fall) Flatarmál hrings útgáfa Fallið eldsneytiseydsla Skattur Fall Fallið deilanleg Litrar/gallon með falli, valmynd Hlaupaár Dagsetningaföll Æfingadæmi - fylki Manhitastig Ýmislegt Bokstafur Sjóorusta Einingar klasi sem inniheldur nokkur föll til að umreikna mismunandi einingar Æfingaverkefni klasar Land Æfingardæmi úr erfðum Hus Ibudarhus (bok) Æfingaverkefni skil (interface) Nokkrar æfingar í forritun bls. 6 Hallgrímur Arnalds

7 Tilgangur og uppbygging þessara leiðbeininga Þessir punktar eru ætlaðir sem safn af æfingaverkefnum fyrir byrjendur í forritun. Vonandi verður raunin að nemendur telji að þessi verkefni nýtist þeim. Þessi verkefni eru hugsuð sem æfingaverkefni sem nota má með kennslubók en ekki sem sjálfstæð kennslubók. Einnig má nota verkefnin án kennslubókar en þá með leiðbeiningum kennara eða með leiðbeiningum á vef. Nota má þessi verkefni til að æfa sig í mismunandi forritunarmálum, en í þessari útgáfu eru tekin dæmi í Java. Til eru tvær aðrar útgáfur þessa heftis þar sem dæmi úr C++ og Pascal eru notuð. Hugmyndir að fleiri verkefnum og ábendingar um hvað megi betur fara eru vel þegnar, t.d. á tölvupóstfang Uppbygging þessara leiðbeininga er miðuð við að nemandi læri með því leysa verkefni, fremur en að lesa um mismunandi lausnaraðferðir. Reynt er að byrja á kynna ákveðið efni með forritunardæmi, slík dæmi kalla ég sýnidæmi. Dæmið er skýrt með stuttum skýringum á undan dæminu og ekki síður með athugasemdum í dæminu sjálfu. Síðan koma æfingadæmi sem nemandi leysir. Nemandi þarf að meta hversu mörg dæmi hann leysir, en auðvitað gildar það að því fleiri dæmi sem leyst eru, því betur festist viðkomandi atriði í huganum. Æfingadæmi eru þrenns konar: Æfingadæmi með lausn aftast í viðauka í þessu hefti. Eindregið er mælt með að nemandi reyni að leysa dæmi áður en dæmi um lausn er skoðað. Nemandi hefur hins vegar þann kost að skoða lausnirnar ef hann lendir í vandræðum með að leysa dæmið og einnig til að fá huganlega aðrar hugmyndir að lausnaraðferð heldur en hans eigin. Slík æfingadæmi eru auðkennd með merkinu (bok) Dæmi með lausn á vef fyrir þá nemendur sem hafa aðgang að heimasvæði námskeiðs. Slík æfingadæmi eru auðkennd með merkinu (vefur) Dæmi sem hafa reynst ágæt æfingarverkefni fyrir nemendur án lausnar. Það eru hins vegar til lausnir við þessum verkefnum sem einungis leiðbeinandi getur fengið send. Slík æfingadæmi eru auðkennd með merkinu (verkefni) Dæmi án lausna. Kveðja Hallgrímur Arnalds Nokkrar æfingar í forritun bls. 7 Hallgrímur Arnalds

8 Hvað þarf til að búa til forrit í Java Til að geta keyrt og búið til java forrit þarf java umhverfið að vera sett upp á viðkomandi tölvu. Java umhverfið má t.d. nálgast og hlaða niður af heimasíðu Sun sem þróaði Java. Til eru nokkrar útgáfur af Java umhverfinu og skiptir máli hvaða útgáfa er valin. Þegar við hlöðum niður Java umhverfinu getum við valið hversu mikið við viljum hlaða niður í tölvuna okkar. Við getum hlaðið niður JRE útgáfum, en slíkar útgáfur innihalda einungis það sem til þarf til að geta keyrt Java forrit. Slíkar útgáfur eru því ekki nægjanlegar til að búa til Java forrit eins og við ætlum að gera. JDK (Java Development Kit) útgáfur innihalda það sem þarf til að þróa hugmúnað. Þær eru til í nokkrum útgáfum (þegar þetta er skrifað er JDK 6 nýjasta útgáfan): Java Standard Edition (J2SE) J2SE má nota til að þróa hugbúnað í java sem nota á venjulegum tölvum. Java Enterprise Edition (J2EE) J2EE má nota til að búa til hugbúnað fyrir tölvur sem eru settar upp sem miðlarar (server side applications) t.d. Java servlets og Java ServerPages. Java Micro Edition (J2ME). J2ME má nota til að þróa hugbúnað fyrir minni tæki t.d. farsíma. Í þessu hefti er miðað við að nota J2SE útgáfuna til að kynna forritun í Java. Til að hlaða niður þessari útgáfu má t.d. fara á slóðina: Þegar þessi slóð er valin birtist skjámynd lík og skjámyndin hér að neðan: Nokkrar æfingar í forritun bls. 8 Hallgrímur Arnalds

9 Þar má velja Download við JDK 6 Þá birtist skjámyndin: Hér er smellt á Accept og valið að hlaða niður Windows Offline Installation, Multilanguage ef þið notist við windows tölvu, en ef ekki þar að velja viðkomandi útgáfu. eftir leiðbeiningum sem þá eru gefnar. Þegar búið er að hlaða þessu á disk tölvunnar þarf að setja upp umhverfið með því t.d. að tvísmella á skráarnafnið og fara Þegar búið er að setja upp umhverfið getum við byrjað að þróa hugbúnað í Java. Oftast er samt hlaðið niður einhverju þróunartóli sem auðveldara er að vinna heldur en hráu Java umhverfi. Ég miða hér við að notað sé umhverfið drjava, en notandi getur auðveldlega valið eitthvert annað umhverfi ef óskað er. Til að hlaða niður drjava umhverfið má t.d. fara á slóðina: Nokkrar æfingar í forritun bls. 9 Hallgrímur Arnalds

10 drjava þróunarumhverfi Ekki þarf að setja dr Java forritið sérstaklega upp heldur er hægt að ræsa það beint. Þegar forritið er ræst byrjar það á að spyrja um hvar finna megi skránna tools.jar. Þið þurfið að vísa á þá skrá, en þessa skrá er að finna á undirmöppunni lib undir möppu sem inniheldur java (sem þið settuð inn hér að framan). Myndin að neðan sýnir skjáinn eftir að drjava hefur verið ræst og fyrsta sýnidæmið slegið inn Nokkrar æfingar í forritun bls. 10 Hallgrímur Arnalds

11 Þá þarf að þýða forritið, er það gert með því að velja Tools og compile current document Ef þýðingin tekst án villna koma skilaboðin Last compilation completed successfully. Ef villur koma í þýðingu koma villuboð í stað þessa texta. Til að keyra forritið þarf síðan að velja Tools og Run Documents main method. Þá birtist það sem forritið skrifar á sama stað. Nokkrar æfingar í forritun bls. 11 Hallgrímur Arnalds

12 Grunnatriði form java forrits skrifað á skjá Sýnidæmi1. Forrit sem skrifar texta. // Fyrsta Java forritið //Þetta er forrit sem skrifar textann Hallo heimur á skjáinn public class Hallo { System.out.println("Hallo heimur"); Sýnidæmi1. Skýringar // Fyrsta Java forritið // Það sem er aftan við þetta tákn í línu er athugasemd sem hefur engin áhrif á virkni forritsins. Hér getur forritarinn sett inn athugasemdir sem gott er að hafa um virkni forritsins o.fl. public class Hallo { Þetta er klasi sem heitir Hallo. Hér byrjar aðalforritið. Hér byrjar framkvæmd forritsins. Forritið er síðan innan slaufusviganna () System.out.println("Hallo heimur"); Sytsem.our.println er notað til að skrifa út á skjá. Æfingaverkefni Velkomin (VelkominJava) Búið til forrit sem skrifar Velkomin að læra Java. Klasinn á að heita VelkominJava og vistast í skránni VelkominJava.java Nokkrar æfingar í forritun bls. 12 Hallgrímur Arnalds

13 Breytur og tag breyta. Hvað eru breytur. Breytur eru í raun nafn á minnishólfi eða minniseiningu í tölvunni. Þannig notum við breytur til að geyma gögn í forriti. Breytur geta verið af mismunandi tagi, þ.e. við getum geymt mismunandi tegundir af gögnum í breytum. Þannig getum við t.d. geymt heiltölur (1, 2, 10, 251 o.s.frv.), kommutölur eða rauntölur ( 0.0, 2.5, 111,77 o.s.frv.) tákn (svo sem a, b, % $ o.s.frv.) svo dæmi sé nefnt. Eins og áður segir hafa breytur nafn sem notað er til að fá aðgang að gildi sem er í breytunni eða minnishólfinu. Eins og áður segir getum við skilgreint breytur af mismunandi tagi til að geyma mismunandi upplýsingar. Dæmi um tög sem nota má í Java í töflu 1. (Þetta er ekki tæmandi listi heldur einungis dæmi um nokkur tög) Tafla 1. Tag (e. Type) Innihald Dæmi int heiltala 1, 251, -71 double rauntala 7., 7.553, char bókstafur, tákn A, a, #, 4 boolean rökgildi true, false String Mörg tákn Jón, Jón Jónsson (ekki grunntag) Sýnidæmi2. Forrit sem notar breytu. // Búinn til klasi sem heitir Breyta2 public class Breyta2 { /** main fall innan klasans skilgreint */ double tala; // búin til breyta sem heitir tala og er // af taginu double. Breytan getur þá geymt rauntölu // (kommutölu) // setja gildið 15.5 inn í breytuna tala tala = 15.5; // Birta innihald breytunnar á skjá System.out.println("Innihald breytunnar tala er: " + tala); // set gildið -7.6 í stað gildising 15.5 inn í breytuna tala tala = -7.6; // Birta innihald breytunnar aftur á skjá System.out.println("Innihald breytunnar tala er nú: " + tala); Nokkrar æfingar í forritun bls. 13 Hallgrímur Arnalds

14 Æfingaverkefni sem nota breytur. Heiltölubreytur (bok) (IntBreyta) Búið til forrit býr til eina heiltölubreytu (int breytu) setur töluna 5 (ekki 5.0 það er rauntalan eða kommutalan 5.0) breytuna og skrifar síðan innihald breytunnar á skjá. Forritið á síðan að bæta við tölunni 8 við það sem er inn í breytunni og birta á skjá hvert innihald breytunnar er. Character breytur (vefur) (CharBreyta) Búið til forrit býr til eina character breytu (char breytu) setur bókstafinn H í breytuna og skrifar síðan innihald breytunnar á skjá. Forritið á síðan að setja táknið í breytuna í stað bókstafsins H og skrifa síðan innihald breytunnar á skjá. Þegar notaðar eru breytur sem eiga að geyma bókstafi eða tákn þarf að afmarka táknið sem setja á í breytuna með einfaldri kommu, t.d. char takn; takn = a ; eða takn = $ ; Nokkrar æfingar í forritun bls. 14 Hallgrímur Arnalds

15 Reiknivirkjar, gildistökusetningar og reiknisegðir Reiknivirkjar (Arithmetic operators) Nafn tákn Dæmi samlagning + int summa = frádráttur - float mismunur = margföldun * float margfeldi = 5 * 7.6 deiling / int nidurstada = 13 / 3 módúlus ("mod") % int afgangur = 11 % 6 samlanging ++ tala++, ++tala frádráttur -- tala--, --tala Sýnidæmi3a. Forrit sem notar eina double breytu og reiknivirkja. // Búinn til klasi sem heitir Breyta1 public class Breyta3 { /** main fall innan klasans skilgreint */ double tala; // búin til breyta sem heitir tala og er // af taginu double. Breytan getur þá geymt rauntölu // (kommutölu) // Hér leggur forritið saman tölurnar 15.5 og 7.6 og setur // niðurstöðuna í breytuna sem heitir tala (þ.e. gildið // 23.1) tala = ; // notum + reiknivirkjann // Birta innihald breytunnar á skjá System.out.println("Innihald breytunnar tala er: " + + tala); // Hér hækkum við gildið í breytunni tala um 5.5 tala = tala ; // Birta innihald breytunnar aftur á skjá System.out.println("Innihald breytunnar tala er nú: " + + tala); Sýnidæmi 3b. Forrit sem notar double breytur og virkja. // Búinn til klasi sem heitir ReiknaFlatarmalHrings public class ReiknaFlatarmalHrings { /** main fall innan klasans skilgreint */ double radius; double flatarmal; // setja gildið 15 inn í breytuna radius Nokkrar æfingar í forritun bls. 15 Hallgrímur Arnalds

16 radius = 15; // Reikna flatarmálið flatarmal = radius * radius * ; // Birta niðurstöður á skjá System.out.println("Flatarmál hrings með radius " + radius + " er " + flatarmal); Æfingaverkefni sem nota breytur og reiknisegð. Rauntölubreytur (doublebreyta) Búið til forrit býr til eina rauntölubreytu (double breytu) setur töluna 2.4 í breytuna og skrifar síðan innihald breytunnar á skjá. Forritið á síðan að bæta við tölunni 1.7 við það sem er inn í breytunni og birta á skjá hvert innihald breytunnar er. Rauntölubreytur deiling (bok) (vantar upptöku) (doublebreyta2) Búið til forrit býr til eina rauntölubreytu (double breytu) setur töluna 2.2 í breytuna og skrifar síðan innihald breytunnar á skjá. Forritið á síðan að deila í innihald breytunnar með 3 og vista niðurstöuna aftur í breytunni og birta á skjá hvert innihald breytunnar er. Nokkrar segðir Hér að neðan má finna dæmi um mismunandi segðir. Til að prófa rétt svör er tilvalið að afrita forrit og prófa. // Búinn til klasi sem heitir ReikniSegdir public class ReikniSegdir1 { /** main fall innan klasans skilgreint */ int nidurstada = 2 + 2; // nidurstada verður 4 System.out.println(nidurstada); nidurstada = nidurstada - 1; // nidurstada verður 3 System.out.println(nidurstada); nidurstada = nidurstada / 2; // nidurstada verður 1 System.out.println(nidurstada); nidurstada = nidurstada * 4; // nidurstada verður 4 System.out.println(nidurstada); nidurstada = nidurstada + 8; // nidurstada verður 12 System.out.println(nidurstada); nidurstada = nidurstada % 7; // nidurstada verður 5 System.out.println(nidurstada); Þegar forritið er keyrt skrifast því út: Nokkrar æfingar í forritun bls. 16 Hallgrímur Arnalds

17 12 5 // Forrit sem sýnir niðurstöðu nokkurra reiknisegða public class ReikniSegdir2 { /** main fall innan klasans skilgreint */ int i; double d; i = * 8; System.out.println(i); i = 8 * 3 + 2; System.out.println(i); i = -9-4 * 2; System.out.println(i); i = 21 / 3 / -2; System.out.println(i); i = 21 / 2 / -2; System.out.println(i); i = ; System.out.println(i); i = 9 / 2; System.out.println(i); d = 9.0 / 2.0; System.out.println(d); d = 9.0 / 2; System.out.println(d); i = 8 % 3; System.out.println(i); i = 1 % 2; System.out.println(i); Þegar forritið að ofan er keyrt skrifast út: // Forrit sem sýnir niðurstöðu nokkurra reiknisegða public class ReikniSegdir3 { int i = 2; i++; System.out.println(i); // 3 ++i; System.out.println(i); // 4 System.out.println(++i); // 5 Nokkrar æfingar í forritun bls. 17 Hallgrímur Arnalds

18 System.out.println(i++); // 5 System.out.println(i); // 6 int val = 2*i++; System.out.println(val); // 12 Nokkrar æfingar í forritun bls. 18 Hallgrímur Arnalds

19 Inntak frá lyklaborði Til að lesa inn gögn af lyklaborði er hentugt að nota Scanner klasann. Í dæminu hér að neðan má sjá hvernig við getum lesið inn mismunandi gögn af lyklaborði (integer, double, streng og boolean gildi) // það þarf að importa Scanner klasanum // til að fá aðgang að honum public class TestScanner { public static void main(string args[]) { // Búum til tilvik af Scanner klasanum Scanner scanner = new Scanner(System.in); // Dæmi um hvernig lesa má inn heiltölu System.out.print("Sláðu inn heiltölu: "); int intvalue = scanner.nextint(); System.out.println("Þú valdir heiltöluna " + intvalue); // Dæmi um hvernig lesa má inn kommutölu (double tölu) System.out.print("Sláðu inn double tölu: "); double doublevalue = scanner.nextdouble(); System.out.println("Þú valdir kommutöluna " + doublevalue); // Dæmi um hvernig lesa má inn texta sem er eitt orð System.out.print("Sláðu inn eitt orð: "); String string = scanner.next(); System.out.println("Þú valdir orðið" + string); // Dæmi um hvernig lesa má inn rökgildi (boolean gildi) System.out.print("Sláðu inn rökgildi: "); boolean booleanvalue = scanner.nextboolean(); System.out.println("Þú valdir rökgildið " + booleanvalue); Sýnidæmi4. Forrit sem notar breytur og virkja. Þetta dæmi er eins og fyrra dæmi nema gildi er lesið í breytur af lyklaborði með því að nota Scanner klasann // það þarf að importa Scanner klasanum // til að fá aðgang að honum // Búinn til klasi sem heitir ReiknaFlatarmalHrings public class ReiknaFlatarmalHrings { /** main fall innan klasans skilgreint */ double radius; double flatarmal; // Búum til tilvik af Scanner klasanum Scanner lesaaflyklabordi = new Scanner(System.in); System.out.print("Sláðu inn radius hrings: "); radius = lesaaflyklabordi.nextdouble(); Nokkrar æfingar í forritun bls. 19 Hallgrímur Arnalds

20 System.out.println("Þú valdir radiusinn " + radius); // Reikna flatarmálið flatarmal = radius * radius * ; // Birta niðurstöður á skjá System.out.println("Flatarmál hrings með radius " + radius + " er " + flatarmal); Æfingaverkefni sem nota breytur. Heiltala (heiltala) Búið til forrit sem biður notanda að slá inn heiltölu. Forritið svarar síðan þú hefur valið töluna: og síðan skrifast réttur tölustafur út. Kommutala (kommutala) Búið til forrit sem biður notanda að slá inn kommutölu. Forritið svarar síðan þú hefur valið töluna: og síðan skrifast rétt tala út. Textastrengur (bok) (Nafn1) Skrifið forrit sem spyr notanda að nafni. Forritið svarar Halló og síðan nafnið. Dæmi Hvað heitir þú: Jónas Halló Jónas eða: Hvað heitir þú: Elísabet Andrea Jónsdóttir Halló Elísabet Andrea Jónsdóttir Gildistökusetningar Æfingaverkefni gildistökusetningar og segðir Litrafjoldi (bok) (Litrar1) Búið til forrit sem spyr um lítrafjölda. Forritið skrifar síðan út lítrafjöldann sem valinn var og hversu mörg gallon sá lítrafjöldi er. Í einu galloni eru um 3,6 lítrar. Nokkrar æfingar í forritun bls. 20 Hallgrímur Arnalds

21 Tommur í sentimetra (Tommur1) Búið til forrit sem spyr um lengd í tommum. Forritið skrifar síðan út tommufjöldann sem valinn var og hversu margir sentimetrar sá tommufjöldi er. Í einni tommu eru 2,53 sentimetrar. Þungaskattur (verkefni) (Thungaskattur1) Búið til forrit sem spyr um upphæð þungaskatts á hvern ekinn kílómeter og aksturslengd í kílómeturm. Forritið skrifar síðan út upphæð þungaskatts miðað við þennan akstur. Eldsneytiseyðsla (verkefni) (Eldsneyti1) Búið til forrit sem spyr um lítrafjölda og aksturslengd í kílómetrum. Forritið skrifar síðan út eldsneytiseyðslu, þ.e. fjölda lítra per 100 km. Eldsneytiskostnaður (verkefni) (Eldsneytiskostn) Búið til forrit sem spyr um lítrafjölda, verð á benssíni, og aksturslengd í kílómeturm. Forritið skrifar síðan út eldsneytiskostnað per 100 ekna kílómetra. Virðisauki (bok) (Virdisauki1) Búið til forrit sem spyr um upphæð án virðisaukaskatts. Forritið skrifar síðan hver sú upphæð er með virðisaukaskatti. Gera má ráð fyrir að viðisaukaskattsprósentan sé 24.5% Verðlækkun (bok) (Verd1) Búið til forrit sem reiknar verð vöru fyrir og eftir verðlækkun. Forritið spyr um verð vöru fyrir verðlækkun og um hversu mörg prósent varan á að lækka. Forritið birtir síðan verð vörunnar eftir verðlækkun. Dæmi: Ef verð vöru eru 110 kr. fyrir verðlækkun og verðlækkunin er 10% þá er verð vörunnar 99 krónur eftir verðlækkun. Ef verð vöru eru 100 kr. fyrir verðlækkun og verðlækkunin er 6,5% þá er verð vörunnar 93,5 krónur eftir verðlækkun Flatarmál hrings (Flartrmal_hr1) Skrifið forrit sem reiknar flatarmál hrings. Forritið spyr um radius hringsins en skrifar hvert flatarmál hringsins er. Flatarmál hrings má reikna sem radius x radius x PI (eða radius x radius x ). Hitastig1 (hitastig1) Búið til forrit sem spyr um hitastig í gráðum á Farenheit skala, en skilar til baka hvert hitastigið er í gráðum á Celsius. Ef Tc er hitastig á Celsius skala og Tf er hitastig á Farenheit skala gildir jafnan: Tc = (5/9)*(Tf-32) Ath. Ef þú færð alltaf 0 út úr þessu dæmi þarft þú að skoða betur hvernær heiltöludeiling er notuð og hvenær ekki! Nokkrar æfingar í forritun bls. 21 Hallgrímur Arnalds

22 Skattur1 (bok) (skattur1) Reikna staðgreiðslu skatts. Látið forritið spyrja um álagningarprósentu, persónuafslátt og laun. Staðgreiðslu má reikna með því að taka álagningarprósentu af launaupphæð og draga síðan persónuafslátt frá. Forritið á að birta hver staðgreiðslan er. Nokkrar segðir með tagbreytingum: Hverju skila eftirfarandi segðir: (int) 7.9 / 2 (double) 9 / 2 Nokkrar segðir með rökvirkjum : Hverju skila eftirfarandi segðir: (5 == 5) (6 <= 4)!(5 == 5)!(6 <= 4)!true!false (5 == 5) && (6 <= 4) (5 == 5) && (6 >= 4) (5 == 5) (6 >= 4) (5 == 5) (6 <= 4) (5!= 5) (6 <= 4) Fastar Stundum getur verið þægilegt að gefa ákveðnum stærðum eða föstum nafn. Nafnið má siðan nota til að kalla fram þessa stærð. Sem dæmi um fasta í stærðfræði mætti t.d. nefna tölurnar PI og e. Þetta er mögulegt í java. Form á skilgreiningu fasta í java er: final datatype CONSTANTNAME = VALUE; t.d. gætum við þá skilgreint fasta á eftirfarandi hátt: final double PI = ; final int SIZE = 3; Sýnidæmi. Forrit reiknar flatarmál hrings með því að nota fasta. // það þarf að importa Scanner klasanum // til að fá aðgang að honum // Búinn til klasi sem heitir ReiknaFlatarmalHrings public class Fasti_ReiknaFlatarmalHrings { /** Þetta forrit reiknar flatarmál hrings með því að Nokkrar æfingar í forritun bls. 22 Hallgrímur Arnalds

23 * nota fasta (e. constant) */ final double PI = ; // Búum til fastann PI, þar sem PI er // fasti er ekki hægt að breyta gildi // á PI síðar í forritinu double radius; double flatarmal; // Búum til tilvik af Scanner klasanum Scanner lesaaflyklabordi = new Scanner(System.in); System.out.print("Sláðu inn radius hrings: "); radius = lesaaflyklabordi.nextdouble(); // Reikna flatarmálið með því að nota fastann PI flatarmal = radius * radius * PI; // Birta niðurstöður á skjá System.out.println("Flatarmál hrings með radius " + radius + " er " + flatarmal); Æfingaverkefni með fasta Virdisauki (bok) (Virdisauki_fasti) Búið til forrit sem spyr um upphæð án virðisaukaskatts. Forritið skrifar síðan hver sú upphæð er með virðisaukaskatti. Í þessu forriti á að nota fasta (constant) til að geyma virðisaukaskattsprósentu. Gera má ráð fyrir að virðisaukaskattur sé 24.5%. Random tölur (tilviljnarkenndar tölur) Oft verða verkefninin sem við erum að forrita skemmtilegri ef við getum kallað fram tilviljunarkenndar tölur. Í þessari grein eru sýnd nokkur dæmi um hverning við getum kallað fram tilviljunarkenndar tölur. Sýnidæmi um forrit sem skrifar út tilviljunarkennda tölu á milli 0 og 1 // Búinn til klasi sem heitir Random1". Klasann þarf að vista // í skrá sem heitir Random1.java public class Random1 { /** main fall innan klasans skilgreint Forritið skrifar út tilviljunarkennda töluu á milli 0 og 1. Prófið að keyra þetta forrit nokkurm sinnum til að sannreyna að það komi tilviljunarkennd tala á þessu bili. */ double tala = Math.random(); System.out.println("Talan sem við fengum er " + tala); Sýnidæmi. Forrit sem skrifar út tilviljunarkennda heiltölu á milli 0 og 9 // Búinn til klasi sem heitir Random2". Klasann þarf að vista í skrá // sem heitir Random2.java public class Random2 { /** main fall innan klasans skilgreint Forritið skrifar út tilviljunarkennda heiltölu á milli 0 og 9 Nokkrar æfingar í forritun bls. 23 Hallgrímur Arnalds

24 Prófið að keyra þetta forrit nokkurm sinnum til að sannreyna að það komi tilviljunarkennd tala á þessu bili. */ int tala = (int) (Math.random()*10); System.out.println("Talan sem við fengum er " + tala); Æfingaverkefni úr tilviljunarkenndum tölum Teningakast (bok) Búið til forrit sem á að líkja eftir teningakasti. Forritið á að birta eina tilviljunarkennda tölu á bilinu frá 1 til 6, líkt og einum teningi hafi verið kastað upp. Yatzi kast (bok) (Yatzikast) Búið til forrit sem á að líkja eftir einu kasti í tengingspilinu yatzi. Í spilinu eru fimm teningum kastað upp í einu. Forritið á að birta fimm tilviljunarkenndar tölur á bilinu frá 1 til 6, líkt og fimm teningum hafi verið kastað upp. If setningar Sýnidæmi um If setningar Almennt lítur if setning út á eftirfarandi hátt. if (skilyrði) { // skipanir sem framkvæma á ef skilyrði er rétt (true) else { // skipanir sem framkvæma á ef skilyrði er ekki rétt (fales) Form if steningar getur verið einfaldara t.d. ef aðeins þar að framkvæma eina skipun inni í if setningu má sleppa slaufusvigum t.d. if (skilyrði) // skipun sem framkvæma á ef skilyrði er rétt (true) else // skipun sem framkvæma á ef skilyrði er ekki rétt (fales) einnig má sleppa else hlutanum ef einungis á að framkvæma eitthvað er skilyrði er rétt t.d. Nokkrar æfingar í forritun bls. 24 Hallgrímur Arnalds

25 if (skilyrði) // skipun sem framkvæma á ef skilyrði er rétt (true) Skoðum nú dæmi um notkun if setnignar: public class IfSetning { /** main fall innan klasans skilgreint */ // skilgreinum tvær integer breytur int x = 3; int y = 4; //Skrifum á skjá hvor breytan inniheldur hærra gildi // > er samanburðarvirki sem athugar hvort það sem er fyrir // framan sé stærra en það sem er fyrir aftan virkjann. Sjá // fleiri samanburðarvirkja í töflunni að neðan if (x > y) { System.out.println("x er staerra en y"); else { System.out.println ("x er minna en y") ; Samanburðarvirkjar Samanburðarvirkjar (Equality operators) Nafn tákn Dæmi niðurstaða minna en < boolean result = (4 < 7) true stærra en > boolean result = (3.1 > 3.1) false jafnt og == boolean result = (11 == 8) false minna en eða jafnt og <= boolean result = (41.1 <= 42) true stærra en eða jafnt og >= boolean result = (41.1 >= 42) false ekki jafnt og!= boolean result = (12!= 12) false Rökvirkjar Rökvirkjar (Boolean operators) Nafn tákn Dæmi niðurstaða og virki && boolean result = (4 < 7) && (3.1 > 3.1) false eða virki boolean result = (4 < 7) (3.1 > 3.1) true ekki! boolean result =!(11 == 8) true Hér mætti koma dæmi um forrit með samsettum rökvirkjum Nokkrar æfingar í forritun bls. 25 Hallgrímur Arnalds

26 Æfingaverkefni if setningar Góðan daginn 1 (bok) (Daginn1) Búið til forrit sem spyr um hvað klukkan er (aðeins klukkustundina). Ef klukkan er 18 eða minna skrifar forritið Góðan daginn en annars skrifar það Gott kvöld. Góðan daginn 2 (bok) (Daginn2) Búið til forrit sem spyr um hvað klukkan er (aðeins klukkustundina). Ef klukkan er 18 eða minna skrifar forritið Góðan daginn en annars skrifar það Gott kvöld. Ef sleginn er inn tala sem er 0 eða minni, eða tala sem er stærri en 24 á forritið að skrifa Rangur innsláttur. Minnsta tala 1 (verkefni) (Minnsta1) Búið til forrit sem spyr um tvær heiltölur. Forritið skrifar síðan hvort talan er minni. Ef tvisvar er slegin inn sama talan á forritið að skrifa Tölurnar eru jafn stórar. Minnsta tala 2 (verkefni) (Minnsta2) Búið til forrit sem spyr um þrjár heiltölur. Forritið skrifar síðan hver talnanna er minnst. Litrar/gallon (LitrarGallon) Búið til forrit umbreytir lítrum í gallon eða öfugt. Forritið spyr um hvort umbreyta eigi lítrum í gallon eða gallonum í lítra. Forritið spyr síðan um aðra stærðina en reiknar hina. Í einu galloni eru um 3,6 lítrar. Tommur/sentimetra (TommurCm) Búið til forrit umbreytir tommum í sentimetra eða öfugt. Forritið spyr um hvort umbreyta eigi tommum í sentimetra eða sentimetrum í tommur. Forritið spyr síðan um aðra stærðina en reiknar hina. Í einni tommu eru 2,53 sentimetrar. Árstíðir 1 (Arstidir1) Búið til forrit sem spyr um númer mánaðar. Forritið skrifar síðan hvort nú sé vetur, sumar, vor eða haust. Ef sleginn er inn talan 1 3 skrifast að það sé vetur, ef sleginn er inn talan 4 5 er vor, 6 8 er sumar, 9 10 er haust og er vetur. Ef sleginn er inn talan sem er 0 eða minni eða 13 og hærri á að skrifa rangur innsláttur. Nafn mánaðar (verkefni) (Manudur1) Búið til forrit sem spyr um númer mánaðar. Forritið skrifar síðan hvað mánuðurinn heitir. Ef sleginn er inn tala sem er 0 eða minni eða 13 og hærri á að skrifa rangur innsláttur. Nokkrar æfingar í forritun bls. 26 Hallgrímur Arnalds

27 Aldur 1 (Aldur1) Búið til forrit sem spyr um aldur. Forritið á að bregðast mismunandi við eftir því hvaða tala er sleginn inn. Ef slegin er inn tala á bilinu: 0 19 þá á að skrifast út Vonandi ætlar þú í Háskólann í Reykjavík annars skrifast aðeins út Það var fróðlegt! Aldur_2 (Aldur2) Búið til forrit sem spyr um aldur. Forritið á að bregðast mismunandi við eftir því hvaða tala er sleginn inn. Ef slegin er inn tala á bilinu: 0 6 þá á að skrifast út Nú, svo þú ferð að byrja í skóla 7 15 Þá spyr forritið hvort viðkomandi ætli í menntaskóla og bregst við á mismunandi hátt eftir því hvort svarað er með J eða N Þá kveður forritið >105 Þá svarar forritið að líklega hafi viðkomandi svarað spurningunni vitlaust. Aldur_3 (Aldur3) Búið til forrit sem virkar á sama hátt og forritið á undan nema spurt er um fæðingarár. Forritið reiknar síðan aldur viðkomandi en er að öðru leyti eins og forrit í næstu æfingu á undan. SkatturIf (bok) (skatturif) Reikna staðgreiðslu skatts. Látið forritið spyrja um álagningarprósentu, persónuafslátt og laun. Staðgreiðslu má reikna með því að taka álagningarprósentu af launaupphæð og draga síðan persónuafslátt frá. Skatturinn má ekki vera neikvæður Forritið á að birta hver staðgreiðslan er. Vikulaun Búið til forrit sem reiknar vikulaun einstaklings. Forritið spyr um laun á klukkustund og fjölda unninna stunda í vikunni. Ef fjöldi unninna stunda er meiri en 40 á forritið að hækka tímakaup unninna stunda fram yfir 40 um 50%. Forritið reiknar síðan og skrifar út vikukaupið. Forritið spyr síðan hvort endurtaka eigi þessa vinnslu. Hlaupaár (bok) (Hlaupaar1) Búið til forrit sem spyr um ártal. Forritið skrifar síðan út hvort viðkomandi ár er hlaupaár eða ekki ( ár er hlaupaár ef 4 gengur upp í ártalinu,undantekning ef 100 gengur upp í en 400 ekki, en til að byrja með má gera ráð fyrir að fjórða hvert ár sé hlaupaár) Lögleg dagsetning. (dagsetning1) Búið til forrit sem spyr um dag, mánuð og ártal (þrjár heiltölur). Forritið skrifar síðan út hvort viðkomandi dagsetning sé lögleg eða ekki. Nokkrar æfingar í forritun bls. 27 Hallgrímur Arnalds

28 Lykkjur Lykkjur eru notaðar þegar endurtaka á sömu vinnslu nokkrum sinnum. Í C++ eru til þrjár gerðir af lykkjum, þ.e. while lykkja, do.. while lykkja og for lykkjur. Skoðum fyrst do while lykkju. do.. while lykkjur Almennt lítur do while lykkja út á eftirfarandi hátt. do { // skipanir endurtaka á while (skilyrði) Form while lykkju getur verið einfaldara t.d. ef aðeins á að endurtaka eina skipun. do // skipun endurtaka á while (skilyrði) Skoðum nú dæmi um notkun do while lykkju: // það þarf að importa Scanner klasanum // til að fá aðgang að honum // Búinn til klasi sem heitir ReiknaFlatarmalHrings public class do_while1 { /** Þetta forrit reiknar flatarmál hrings með því að * nota fasta (e. constant) */ final double PI = ; // Búum til fastann PI, þar sem PI er // fasti er ekki hægt að breyta gildi // á PI síðar í forritinu double radius; double flatarmal; // Búum til tilvik af Scanner klasanum Scanner lesaaflyklabordi = new Scanner(System.in); int svar=1; do { // Hér byrjar lykkjan, það sem er innan // lykkjunnar er endurtekið þar til // skilyrðið í lok lykkjunnar er ekki uppfyllt System.out.print("Sláðu inn radius hrings: "); radius = lesaaflyklabordi.nextdouble(); // Reikna flatarmálið með því að nota fastann PI flatarmal = radius * radius * PI; // Birta niðurstöður á skjá System.out.println("Flatarmál hrings með radius " + radius + " er " + flatarmal); System.out.println("Viltu reikna flatarmál annars hrings?: (1 ef já en 2 en nei) "); svar = lesaaflyklabordi.nextint(); // ef 1 er sett inn í breytuna svar verður // lykkjan endurtekin Nokkrar æfingar í forritun bls. 28 Hallgrímur Arnalds

29 while(svar==1); // Lykkjan er endurtekin á meðan // innihald breytunnar svar er 1 while lykkjur Almennt lítur while lykkja út á eftirfarandi hátt. while (skilyrði) { // skipanir endurtaka á Form while lykkju getur verið einfaldara t.d. ef aðeins á að endurtaka eina skipun. while (skilyrði) // skipun sem á að endurtaka Skoðum nú dæmi um notkun while lykkju: // það þarf að importa Scanner klasanum // til að fá aðgang að honum public class DoWhile1 { /** Main fall */ public static void main(string args[]) { char svar; // breyta sem geymir svar um hvort endurtaka eigi // vinnslu Scanner scanner = new Scanner(System.in); do { System.out.println ("Hallo \n "); System.out.println ("Heilsa aftur? ") ; String strsvar = scanner.next(); // fara þarf þessa leið til að // lesa char gildi þ.e. eitt // takn sem er ekki tala svar = strsvar.charat(0); while (svar == 'j' svar == 'J'); for lykkjur Almennt lítur for lykkja út á eftirfarandi hátt. for (frumstilling;skilyrði;framkvæmd í lok) { Skipanir sem á að endurtaka Skoðum nú dæmi um notkun for lykkju: // Forrit sem inniheldur lykkju sen telur frá einum upp í 10 public class Forlykkja { /** Main fall */ public static void main(string args[]) { Nokkrar æfingar í forritun bls. 29 Hallgrímur Arnalds

30 for (int teljari = 1; teljari <= 10; teljari++) { System.out.print(teljari + " "); Break skipunin public class TestBreak { /** Main method */ int sum = 0; int number = 0; while (number < 20) { number++; sum += number; if (sum >= 100) break; System.out.println("The number is " + number); System.out.println("The sum is " + sum); Continue skipunin public class TestContinue { /** Main method */ int sum = 0; int number = 0; while (number < 20) { number++; if (number == 10 number == 11) continue; sum += number; System.out.println("The sum is " + sum); Nokkrar æfingar í forritun bls. 30 Hallgrímur Arnalds

31 Æfingaverkefni lykkjur Bokstafur1 (bokstafur1) Búið til forrit sem biður notanda að slá inn bókstaf. Forritið svarar síðan þú hefur valið bókstafinn: og síðan skrifast réttur bókstafur út. Bokstafur2 (bok) (bokstafur2) Búið til forrit sem biður notanda að slá inn bókstaf. Forritið svarar síðan þú hefur valið bókstafinn: og síðan skrifast réttur bókstafur út. Forritið spyr síðan hvort endurtaka eigi þetta eða ekki. Flatarmál ferhyrnings endurtekning (Flartrmal_ferh_lykkja) Skrifið forrit sem reiknar flatarmál ferhyrnings. Forritið spyr um lengd og breidd ferhyrningsins en skrifar hvert flatarmál ferhyrningsins er. Forritið spyr síðan hvort endurtaka eigi þetta eða ekki. Heiltala lykkja (bok) (HeiltalaLykkja) Búið til forrit sem biður notanda að slá inn heiltölu. Forritið svarar síðan þú hefur valið töluna: og síðan skrifast réttur tölustafur út. Forritið spyr síðan notanda hvort hann vilji slá inn aðra heiltölu. Ef því er svarað játandi er vinnslan endurtekin þar til að notandi velur að slá ekki inn fleiri tölur. Talnabil1 Búið til forrit sem prentar allar tölur á ákveðnu bili, t.d. frá 10 upp í 100. Notandinn á að ákveða hvaða bil er valið. Talnabil2 Skrifið forrit sem les inn tvær heiltölur frá lyklaborði og prentar út á skjáinn allar tölur á bilinu á milli talnanna. Prentið út á skjáinn villuskilaboð ef engar tölur finnast á bilinu þ.e. tölurnar eru jafn háar eða önnur aðeins einum hærri en hin. Talnabil upp og niður (bok) (Talnabil3) Búið til forrit sem skrifar út allar tölur á ákveðnu bili frá byrjunartölu að lokatölu. T.d. ef bilið er frá 6 upp í 11 eiga að skrifast út tölurnar í þessari röð Ef valin er valið er bilið frá 11 til 6 á að skrifast í þessari röð. Notandinn á að ákveða hvaða bil er valið. Talnabil Oddatölur (bok) (Oddatolur) Búið til forrit sem skrifar út allar oddatölur á ákveðnu bili. T.d. ef bilið er frá 6 upp í 11 eiga að skrifast út tölurnar 7 9 og 11. Sama myndi skrifast út ef valið er bilið frá 7 upp í 12. Notandinn á að ákveða hvaða bil er valið. Nokkrar æfingar í forritun bls. 31 Hallgrímur Arnalds

32 Talnabil annað veldi (bok) Búið til forrit sem prentar allar tölur á ákveðnu bili og hvað talan í öðru veldi er. Notandinn á að ákveða hvaða bil er valið. Summa Búið til forrit sem leggur sama allar tölur á ákveðnu bili. T.d. ef bilið er frá 5 upp í 11 á niðurstaðan að vera = 56. Notandinn á að ákveða hvaða bil er valið. Litrar/gallon valmynd (bok) (LitrarGallonMenu) Búið til forrit umbreytir lítrum í gallon eða öfugt. Forritið býður upp á þrjá valmöguleika sem eru: 1. Umbreyta gallon í litra 2. Umbreyta litrum í gallon 3. Hætta í forritinu Forritið spyr um hvort umbreyta eigi lítrum í gallon eða gallonum í lítra. Forritið endurtekur vinnslu þar til notandi velur að hætta. Forritið spyr síðan um aðra stærðina en reiknar hina. Í einu galloni eru um 3,6 lítrar. Tommur/sentimetra valmynd (TommurCmMenu) Búið til forrit umbreytir tommum í sentimetra eða öfugt. Forritið býður upp á þrjá valmöguleika sem eru: 1. Umreikna tommur í sentimetra 2. Umreikna sentimetra í tommur 3. Hætta í forritinu Forritið spyr um hvort umbreyta eigi tommum í sentimetra eða sentimetrum í tommur. Forritið spyr síðan um aðra stærðina en reiknar hina. Forritið endurtekur vinnslu þar til notandi velur að hætta. Í einni tommu eru 2,53 sentimetrar. Talnabil hropmerkt Búið til forrit sem prentar allar tölur á ákveðnu bili og hvað talan er hrópmerkt (þ.e. talan er margfölduð með öllum heiltölum sem eru lægri en viðkomandi tala). Notandinn á að ákveða hvaða bil er valið. Skattur lykkja (skattur_lykkja) Búið til forrit sem reiknar staðgreiðslu skatts fyrir nokkarar launaupphæðir. Látið forritið spyrja um álagningarprósentu, persónuafslátt og laun. Staðgreiðslu má reikna með því að taka álagningarprósentu af launaupphæð og draga síðan persónuafslátt frá (sjá t.d. lausn við verkefninu Skattur1). Skatturinn má ekki vera neikvæður Forritið á að birta hver staðgreiðslan er. Þegar forritið er búið að reikna staðgreiðslu einu sinni spyr það Nokkrar æfingar í forritun bls. 32 Hallgrímur Arnalds

33 hvort reikna eigi aftur, ef notandi svarar "já" þá spyr forritið aftur um laun og reiknar staðgreiðsluna miðað við sömu álagningarprósendu og persónuafslátt. Þetta er endurtekið þar til notandi svarar að ekki þurfi að endurtaka reikninginn. Dæmi um keyrslu þessa forrits gæti því verið: pesónuafsláttur? skattprósenta? 35 laun? Staðgreiðsla verður þá: 6000 viltu reikna fyrir aðra launatölu? já laun? Staðgreiðsla verður þá: 0 viltu reikna fyrir aðra launatölu? nei takk fyrir í dag. SkatturLykkja2 (bok) Búið til forrit sem birtir töflu yfir skatt miðað við mismunandi laun. Dæmi um slíka töflu má sjá hér að neðan: Álagningarprósenta 38,50% Persónuafsláttur Stikun Laun Skattur Látið forritið spyrja um álagningarprósentu, persónuafslátt og stikun í töflunni. Nokkrar æfingar í forritun bls. 33 Hallgrímur Arnalds

34 Lína í margföldunartöflu (MargfoldunTafla1) Búið til forrit sem skrifar úr eina línu í marföldunartöflu. Forritið spyr um hvaða línu eigi að skrifa. Ef t.d. er beðið um línu 3 ætti að skrifast: Dæmi um virkni forritsins gæti verið: Hvaða línu á að birta? 3 3 sinnum taflan: > Margföldunartafla (MargfoldunTafla2) Búið til hreiðraða lykkju (þ.e. lykkju innan í lykkju) sem skrifar út 1 10 sinnum margföldunartöflurnar. (þ.e. 1 sinnum töfluna, 2 sinnum töfluna o.s.frv. upp í 10 sinnum töfluna) Dæmi um virkni forritsins gæti verið: 10 x 10 margföldunartaflan Teikna ferning (verkefni) Búið til forrit sem teiknar ferning með því að nota bara * til að teikna ferninginn. Forritið spyr hvort ferningurinn á að vera fylltur eða ekki, og stærð ferningsins (þ.e. fjölda stjarna á hverri hlið) Dæmi um virkni forrits: Á ferningurinn að vera fylltur eða ófyllut (f= fylltur, o=ófylltur)? f Fjöldi stjarna á hlið? 5 ***** ***** ***** ***** ***** Á ferningurinn að vera fylltur eða ófyllut (f= fylltur, o=ófylltur)? o Fjöldi stjarna á hlið? 5 ***** * * * * * * Nokkrar æfingar í forritun bls. 34 Hallgrímur Arnalds

35 ***** Nokkrar æfingar í forritun bls. 35 Hallgrímur Arnalds

36 Greiðsluáætlun (verkefni) Búið til forrit til að reikna út greiðslur af láni með föstum afborgunum. Forritið á að skrifa út lista þar sem fram kemur (sjá meðfylgjandi dæmi) númer greiðslu, upphæð eftirstöðva fyrir greiðslu, upphæð afborgunar, upphæð vaxta og greiðsla alls. Eins og fram kom hér að framan er afborgun af höfuðstól alltaf sú sama. En vaxtagreiðslan er mismunandi, fyrst eru borgaðir vextir af öllu láninu og svo lækkar vaxtagreiðslan í hlutfalli við lækkun eftirstöðva. Gert er ráð fyrir að það séu mánaðarlegar greiðslur af láninu. Þegar tekið er lán má gera ráð fyrir að alltaf líði 1 mánuður frá lántökudegi til fyrsta afborgunardags. Notandi þarf að skrá inn upphæð láns, vaxtaprósentu og fjöldi afborgana. Til glöggvunar fylgir hér með hvaða niðurstöðu við eigum að fá ef við setjum inn lánsupphæð , fjöldi afborgana 12 og vexti 12%. Gera má ráð fyrir að mánaðarvextir séu ársvextir/12. Nr. greiðslu Eftirstöðvar Afborgun Vextir Greiðsla alls Eftirfarandi formúlur má nota í þessum reikningum: afborgun af höfuðstól = upphæð / fjölda greiðsla vextir = eftirstöðvar fyrir greiðslu * vaxtaprósenta / 12 / 100 Eftirst.fyrir.gr = upphæð ((nr greidslu - 1) * afborgun) Spilið 21 (verkefni) Búið til forrit sem líkja á eftir því að við séum að spila 21 í tölvunni. Leikurinn fer þannig fram að tölvan byrjar á að láta leikmann spila. Tölvan gefur þá spil frá 1 fyrir ás upp í 13 fyrir kóng. Síðan spyr tölvan hvort leikmaður vilji fá annað spil. Tölvan leggur saman gildin á spilunum sem leikmaður hefur fengið og ef heildarsumman er stærri en 21 hefur leikmaður tapað spilinu en tölvan unnið. Ef leikmaður stoppar án þess að hafa sprungið gefur tölvan sjálfri sér spil. Tölvan Nokkrar æfingar í forritun bls. 36 Hallgrímur Arnalds

37 notar þær reglur að hún stoppar ef heildarstigafjöldi er 16 eða meira en heldur annars áfram. Eftirfarandi reglur eru notaðar til að ákveða hver vinnur spilið: Ef sigafjöldi leikmanns er hærri en 21 þá hefur hann sprungið og tapað spilinu. Þá þarf tölvan ekki að gefa sjálfri sér spil. Ef leikmaður springur ekki en tölvan springur (þ.e. fær meira en 21) hefur leikmaðurinn unnið. Ef hvorki leikmaður né tölva springa, þá vinnur sá sem hefur fleiri stig. Ef tölva og leikmaður hafa jafn mörg stig þá vinnur tölvan. Gera má ráð fyrir að hvert spil gildi frá einum upp í 13. Dæmi um hvernig leikur getur spilast : (Það sem tölva skrifar er í þessum fonti, en það sem notandi slær inn í þessum) Nú hefst leikurinn: þú fékkst 9 og ert kominn með samtals 9, viltu fleiri spil? já þú fékkst 7 og ert kominn með samtals 16, viltu fleiri spil? já þú fékkst 6 og ert kominn með samtals 22, viltu fleiri spil? nei Þú sprakkst, tölvan vann. Heildarfjöldi spila: 1 Tölva hefur unnið 1 spil Þú hefur unnið 0 spil Viltu spila annað spil? já þú fékkst 8 og ert kominn með samtals 8, viltu fleiri spil? já þú fékkst 2 og ert kominn með samtals 10, viltu fleiri spil? já þú fékkst 8 og ert kominn með samtals 18, viltu fleiri spil? nei tölvan fékk 3 tölvan fékk 4 tölvan fékk 10 tölvan fékk samtals 17 þú vannst leikinn Heildarfjöldi spila: 2 Tölva hefur unnið 1 spil Þú hefur unnið 1 spil Viltu spila annað spil? nei Nokkrar æfingar í forritun bls. 37 Hallgrímur Arnalds

38 Formuð útprentun Til að forma útprentun má nota System.out.printf skipun. Dæmi: public class TestPrentunSkjar { double tala= ; for (int i=1 ; i<8 ;i++){ System.out.printf("%18.2f \n",tala); tala *= 10; Út skrifast: 32,00 320, , , , , ,00 Hér sést dæmi um nokkrar tölur (heiltölur og kommutölur) sem skrifaðar út. public class TestPrentunSkjar2 { double tala= ; double tala2 = 3000; for (int i=1 ; i<8 ;i++){ System.out.printf("Nr. %3d %18.2f %10.2f \n",i,tala,tala2); tala *= 10; Út skrifast: Nr. 1 32, ,00 Nr , ,00 Nr , ,00 Nr , ,00 Nr , ,00 Nr , ,00 Nr , ,00 Einnig má nota svipaða aðferð til að forma tölur inn í beytu sem geymir textastreng. (Um texta strengi er fjallað síðar í þessum leiðbeiningum). Til að forma töluna í textastrenginn er notað fallið String.format( ); public class TestPrentun { double tala= ; String output=""; for (int i=1 ; i<8 ;i++){ output += String.format("%18.2f \n",tala); tala *= 10; System.out.println(output); Hér táknar %18.2f að inn í strenginn eigi að koma tala sem er að minnsta kosti 18 stafir og þar af 2 fyrir aftan kommu. f táknar hvers konar tala skrifast út, en f stendur fyrir floating point tölu, þ.e. kommutölu. Ef skrifa á út heiltölu er notað d í stað f, t.d. %5d sem þýðir þá heiltala sem skrifast út með a.m.k. 5 táknum. \n er sértákn, til þess að færa bendil í nýja línu. Hér skrifast út gildi sem er í breytunni tala. Nokkrar æfingar í forritun bls. 38 Hallgrímur Arnalds

39 Út skrifast: 32,00 320, , , , , ,00 Nokkrar æfingar í forritun bls. 39 Hallgrímur Arnalds

40 Static föll Sýnidæmi um einfalt fall Hér að neðan má sjá dæmi um forrit sem kallar á fall. Ekkert gagnaflæði á sér stað á milli forritsins og fallsins. Forritið skrifar alltaf eina línu, fær engar upplýsingar frá forritinu sem kallar á það og skilar engum gögnum til baka. // það þarf að importa Scanner klasanum // til að fá aðgang að honum public class HalloFall{ Scanner lesaaflyklabordi = new Scanner(System.in); System.out.println("Ræsi fall sem skrifar Hallo "); // Hér er fallið skrifahallo ræst skrifahallo(); // Hér heldur forritið áfram vinnslu, þegar keyrslu falls lýkur System.out.println("Fallið hefur lokið vinnslu "); /** * Skilgreining á fallinu skrifahallo(), Í fallinu er skrifuð út * ein líns á skjáinn */ public static void skrifahallo() { System.out.println( "Skrifa Halló í fallinu"); // Hér endar fallið skrifahallo() // Hér endar klasinn Sýnidæmi um fall með færibreytu en engu skilagildi Hér að neðan má sjá forrit sem kallar á fallið skrifagallon. Fallið skrifagallon á að reikna hversu mörg gallon eru í ákveðnum lítrafjölda og skrifa niðurstöðuna á skjá. Fallið fær inn upplýsingar þ.e. lítrafjöldann sem umreikna á í gallon. Fallið er void fall sem skilar engri niðurstöðu til baka til forritsins sem kallaði á fallið (fallið hefur ekki skilagildi). // það þarf að importa Scanner klasanum // til að fá aðgang að honum public class Gallon1{ Scanner lesaaflyklabordi = new Scanner(System.in); System.out.print("Sláðu inn fjölda lítra: "); // Lesnar inn upplýsingar um lítrafjölda sem á að umreikna í gallon double litrar = lesaaflyklabordi.nextdouble(); // Kallað á fallið skrifagallon. Fallið fær inn upplýsingar um // lítarafjöldann sem á að umreikna yfir í gallon skrifagallon(litrar); public static void skrifagallon(double lit) { // Þegar fallið er keyrt upp, er búin til breytan lit, og gildið sem // er í breytunni litrar er afritað yfir í breytuna lit // // búin til breytan gall, og niðurstaða sett inn í breytuna double gall = lit/3.6; // niðurstaða skrifuð á skjá, en engum upplýsingum er skilað til // forrits sem kallar á fallið Nokkrar æfingar í forritun bls. 40 Hallgrímur Arnalds

41 System.out.printf(lit + " lítrar jafngidla: " + gall + " gallonum"); Æfingadæmi um föll með gildisfæribreytum en ekki skilagildi: Hér að neðan eru nokkur æfingardæmi úr efni hér að ofan. Lausnir á þessum dæmum eru aftast í bókinni, en einnig eru upptökur sem skýra lausnir fyrir þá sem hafa aðgang að uppteknu efni. Ummál hrings (bók) (vantar upptöku) (UmmalHringFall1) Skrifið fall sem reiknar ummjál hrings og skrifar hvað það er á skjáinn. Fallið á að fá inn eina rauntölu sem táknar radíus hringsins. Skrifið einnig aðalforrit sem notar þetta fall. Dæmi um virkni forritsins gæti verið: Sláðu inn radius hrings: 22 Hringur með radíus 22.0 hefur ummálið Flatarmál ferhyrnings (bók)(vantar upptöku) (FlatarmalFerhFall) Skrifið fall sem reiknar flatarmáli ferhyrnings og skrifar hvað það er á skjáinn. Fallið á að fá inn tvær rauntölur, önnur sem táknar hæðina en hin breiddina. Skrifið einnig aðalforrit sem notar þetta fall. Dæmi um virkni forritsins gæti verið: Sláðu inn breidd ferhyrnings: 2,3 Sláðu inn lengd ferhyrnings: 3,1 Ferhyrningur með lengd 3.1 og breiddina 2.3 hefur flatarmálið 7.13 Lína í margföldunartöflu með falli (bók) (vantar upptöku) (MargfoldunTafla1Fall) Búið til forrit sem skrifar úr eina línu í marföldunartöflu. Forritið spyr um hvaða línu eigi að skrifa en notið nú fall sem skifar út línuna. Fallið fær sem færibreytu númer línunnar sem skrifa á. Dæmi um virkni forritsins gæti verið: Hvaða línu á að birta? 3 3 sinnum taflan: Margföldunartafla með falli (bók) (vantar upptöku) (MargfoldunTafla2Fall) Búið til forrit sem skrifar út 1 10 sinnum margföldunartöflurnar. (þ.e. 1 sinnum töfluna, 2 sinnum töfluna o.s.frv. upp í 10 sinnum töfluna) Notið tvö föll sem leysa þetta verkefni þ.e. fallið úr næsta verkefni að ofan (e.t.v. með smá breytingum) og fall sem skifar alla töfluna (10 línur) og notar þá fallið sem við eigum til að skrifa eina línu. Dæmi um virkni forritsins gæti verið: Nokkrar æfingar í forritun bls. 41 Hallgrímur Arnalds

42 10 x 10 margföldunartaflan SkatturLykkja2Fall (bok) ( vantar upptöku) Búið til forrit sem birtir töflu yfir skatt miðað við mismunandi laun. Látið forritið spyrja um álagningarprósentu, persónuafslátt og stikun í töflunni. Forritið á að nota fallið birtaskattatoflu, en þrjár færibreytur eru í fallið, þ.e. álagningarprósenta, persónuafsláttur og stikun. Dæmi um virkni forritsins má sjá hér að neðan: Lágmarkslaun? Hámarkslaun? Álagningarprósenta? 38,5 Persónuafsláttur í krónum? Stikun í kr.? Laun Staðgreiðsla Hér að neðan má sjá aðalforrit en þú átt að búa til fallið. public class SkatturLykkja2Fall { Nokkrar æfingar í forritun bls. 42 Hallgrímur Arnalds

43 Scanner in = new Scanner(System.in); System.out.println("Lágmarkslaun? "); int minlaun = in.nextint(); System.out.println("Hámarkslaun? "); int maxlaun = in.nextint(); System.out.println("Álagningarprósenta? "); double alagpros = in.nextdouble(); System.out.println("Persónuafsláttur í krónum? "); int persafsl = in.nextint(); System.out.println("Stikun í kr.? "); int stikun = in.nextint(); birta_skatt(minlaun, maxlaun, alagpros, persafsl, stikun); // Hér þarf að bæta við fallinu Sýnidæmi um fall með færibreytu og skilagildi Hér að neðan má sjá forrit sem kallar á fallið reiknagallon. Fallið reiknagallon á að reikna hversu mörg gallon eru í ákveðnum lítrafjölda og skila þeirri tölu sem skilagildi. Eins og main forritið kallar á fallið má sjá að fallið þarf að skila einhverju skilagildi, í þessu tilfelli double tölu. Fallið gerir ráð fyrir að fá inn eitt gildi þ.e. lítrafjöldann. // það þarf að importa Scanner klasanum // til að fá aðgang að honum public class Gallon2{ Scanner lesaaflyklabordi = new Scanner(System.in); System.out.print("Sláðu inn fjölda lítra: "); double litrar = lesaaflyklabordi.nextdouble(); double gallon = reiknagallon(litrar); // hér færist framvinda // yfir í fallið, en fallið skilar niðurstöðu System.out.printf(litrar + " lítrar jafngidla: " + gallon + " gallonum"); public static double reiknagallon(double lit) { double gall = lit/3.6; return gall; Sýnidæmi um fall með tveimur færibreytum og skilagildi Fall með tveimur færibreytum public class FallFlatarmalFerh { System.out.println("Lengd: "); double lengd; lengd = lesa.nextdouble(); System.out.println("Breidd: "); double breidd; breidd = lesa.nextdouble(); double flatarm = reiknaflatarmal(lengd, breidd); System.out.println("Flartarmálið verður þá " + flatarm); // // hér endar main fallið public static double reiknaflatarmal(double le, double bre) { double flatarmal; flatarmal = le* bre; Nokkrar æfingar í forritun bls. 43 Hallgrímur Arnalds

44 return flatarmal; // hér endar fallið // hér endar klasinn Æfingadæmi um föll með gildisfæribreytum og tölulegu skilagildi: Hér að neðan eru nokkur æfingardæmi úr efni hér að ofan. Lausnir á þessum dæmum eru aftast í bókinni, en einnig eru upptökur sem skýra lausnir fyrir þá sem hafa aðgang að uppteknu efni. Flatarmál hrings (bók) (vantar upptöku) (FlatarmalHringFallSkilagildi) Skrifið fall sem reiknar flatarmál hrings og skilar því sem skilagildi. Fallið á að fá inn eina rauntölu sem táknar radíus hringsins. Skrifið einnig aðalforrit sem notar þetta fall. Dæmi um virkni forritsins gæti verið: Sláðu inn radius hrings: 22 Hringur með radíus 22.0 hefur ummálið Flatarmál ferhyrnings (bok) (vantar upptöku) (FlatarmalFerhFallSkilagildi) Skrifið fall sem skilar flatarmáli ferhyrnings. Fallið á að fá inn tvær rauntölur, önnur sem táknar hæðina en hin breiddina. Skrifið einnig aðalforrit sem notar þetta fall til að skrifa út hvert flatarmálið er. Dæmi um virkni forritsins gæti verið: Sláðu inn breidd ferhyrnings: 2,3 Sláðu inn lengd ferhyrnings: 3,1 Ferhyrningur með lengd 3.1 og breiddina 2.3 hefur flatarmálið 7.13 Fallið eldsneytiseydsla (bok) (vantar upptöku) (FallEldsneyti) Skrifið fallið eldsneytiseydsla. Fallið á að reikna eldsneytiseyðslu bíls per 100 km. akstur og skila sem skilagildi. Fallið hefur tvær færibreytur, sem eru rauntölur sem tákna fjölda ekinna kílómetra og fjölda lítra af eldsneyti sem notaðir voru en fallið skilar eyðslu per 100 km. Sýnidæmi um fall sem skilar rökgildi (true eða false) Skoðum nú dæmi um fall sem skilar rökgildi (true eða false). Við getum notað slíkt fall t.d. í if setningu. Í þessu dæmi búum við til forrit sem spyr um tvær tölur og svarar hvort tölurnar eru eins eða ekki. Við búum til fall sem segir til um hvort tölurnar eru eins. (ekki sérlega nytsamlegt fall þar sem samanburðarvirkinn == gerir sama hlutinn). // það þarf að importa Scanner klasanum // til að fá aðgang að honum public class Rokgildi{ Scanner lesaaflyklabordi = new Scanner(System.in); System.out.println("Sláðu inn fyrri töluna "); Nokkrar æfingar í forritun bls. 44 Hallgrímur Arnalds

45 int tala1 = lesaaflyklabordi.nextint(); System.out.println("Sláðu inn seinni töluna "); int tala2 = lesaaflyklabordi.nextint(); // Hér er fallið somutolur ræst sem skilar annað hvort // true eða false, af því að fallið skilar skilagildi // af taginu boolean if (somutolur(tala1,tala2)) System.out.println("Sömu tölur "); else System.out.println("Ekki sömu tölur "); /** * Dæmi um hvernig fallið somutolur er útfært má sjá hér að neðan: */ public static boolean somutolur(int t1, int t2) { if (t1==t2) return true; else return false; // Hér endar fallið // Hér endar klasinn eða public static boolean somutolur(int t1, int t2) { if (t1==t2) return true; return false; eða public static boolean somutolur(int t1, int t2) { return t1==t2; Sýnidæmi Fall með færibreytum og rökgildi sem skilagildi Fallið deilanleg (bok) Skrifið fallið deilanleg. Fallið tekur einn tvær tölur sem færibreytur en fallið athugar hvort fyrri talan sé deilanleg með seinni tölunni. Fallið skilar með skilagildi gildinu true ef fyrri talan er deilanleg með seinni tölunni, en annars false. Dæmi um forrit sem notar þetta fall má sjá hér að neðan: public class TestDeil { public static void main (String[] args){ System.out.println("Sláið inn tölu: "); int tala = lesa.nextint(); System.out.println("Sláið inn tölu til að deila með: "); Nokkrar æfingar í forritun bls. 45 Hallgrímur Arnalds

46 int deilari = lesa.nextint(); if (deilanleg(tala,deilari)) System.out.println(tala + " er deilanleg með "+ deilari); else System.out.println(tala + " er ekki deilanleg með "+ deilari); Þannig er t.d. 21 deilanleg með 7, en 5 ekki deilanlegt með 2. SkatturFall (bok) (vantar upptöku) Reikna staðgreiðslu skatts. Látið forritið spyrja um álagningarprósentu, persónuafslátt og laun. Staðgreiðslu má reikna með því að taka álagningarprósentu af launaupphæð og draga síðan persónuafslátt frá. Skatturinn má ekki vera neikvæður Forritið á að birta hver staðgreiðslan er. Forritið á að nota fallið: public static double reikna_skatt(double alagpros, double persafsl, double laun) Búið einnig til fallið: public static boolean greida_skatt(double alagpros, double persafsl, double laun) en fallið skilar true ef greiða þarf skatt af þessum launum en false ef ekki þarf að greiða skatt af þessari launaupphæð. Æfingadæmi um föll með færibreytum en ekki skilagildi: Talnabil Fall 2 Skrifið fall sem fær tvær heiltölur sem inntaksfæribreytur og prentar út á skjáinn allar tölur á bilinu á milli talnanna. Fallið stöðvar keyrslu forritsins og prentar út villuboð ef engar tölur finnast á bilinu þ.e. tölurnar eru jafn háar eða önnur aðeins einum hærri en hin. Teikna ferning fall (verkefni) Búið til forrit sem teiknar ferning með því að nota bara * til að teikna ferninginn. Forritið spyr hvort ferningurinn á að vera fylltur eða ekki, og stærð ferningsins (þ.e. fjölda stjarna á hverri hlið) Dæmi um virkni forrits: Á ferningurinn að vera fylltur eða ófyllut (f= fylltur, o=ófylltur)? f Fjöldi stjarna á hlið? 5 ***** ***** ***** ***** ***** Á ferningurinn að vera fylltur eða ófyllut (f= fylltur, o=ófylltur)? o Nokkrar æfingar í forritun bls. 46 Hallgrímur Arnalds

47 Fjöldi stjarna á hlið? 5 ***** * * * * * * ***** Forritið á að nota tvö föll, annað heitir teiknaferning en það fall tekur inn eina færibreytu sem er fjöldi stjarna á hverri hlið ferningsins, en fallið skrifar hola ferning. Hitt fallið heitir teiknafylltanferning teiknar fylltan ferning. (Að sjálfsögðu mega vera fleiri föll í þessu verkefni) Æfingadæmi um föll með gildisfæribreytum og skilagildi: Litrar/gallon með falli, valmynd (bok) (LitrarGallonFallMenu) Búið til forrit umbreytir lítrum í gallon eða öfugt. Forritið býður upp á þrjá valmöguleika sem eru: 1. Umbreyta gallon í litra 2. Umbreyta litrum í gallon 3. Hætta í forritinu Forritið spyr um hvort umbreyta eigi lítrum í gallon eða gallonum í lítra. Forritið endurtekur vinnslu þar til notandi velur að hætta. Forritið spyr síðan um aðra stærðina en reiknar hina. Í einu galloni eru um 3,6 lítrar. Útfærið föllin litrartogallon og gallontolitrar sem sjá um reikna gallon út frá lítrafjölda og til að reikna lítrafjölda út frá gallonum. a) Látið fallið vera í sama klasa (þ.e. klasanum LitrarGallonFallMenu) b) Látið fallið vera í klasanum Safn Tommur/sentimetrar með falli, valmynd (TommurCmFallMenu) Búið til forrit umbreytir tommum í sentimetra eða öfugt. Forritið býður upp á þrjá valmöguleika sem eru: 1. Umreikna tommur í sentimetra 2. Umreikna sentimetra í tommur 3. Hætta í forritinu Forritið spyr um hvort umbreyta eigi tommum í sentimetra eða sentimetrum í tommur. Forritið spyr síðan um aðra stærðina en reiknar hina. Forritið endurtekur vinnslu þar til notandi velur að hætta. Í einni tommu eru 2,53 sentimetrar. Fallið staðgeiðsla Skrifið fallið stadgreidsla. Fallið tekur inn þrjár tölur, þ.e. laun, álagningarprósentu og persónuafslátt fallið skrifar út á skjá hver staðgreiðslan er. Staðgreiðsla reiknast skv. Staðgreiðsla = laun*álagningarprósenta/100 persónuafsláttur. Nokkrar æfingar í forritun bls. 47 Hallgrímur Arnalds

48 En staðgreiðslan má aldrei verða neikvæð tala. Dæmi um forrit sem notar þetta fall má sjá hér að neðan: public class TestStad { public static void main (String[] args){ System.out.println("Sláið inn laun: "); int laun = lesa.nextint(); System.out.println("Sláið inn álagningarprósentu: "); double alag = lesa.nextdouble(); System.out.println("Sláið inn persónuafslátt: "); int persafsl = lesa.nextint(); stadgreidsla(laun,alag,persafsl); Fallið otthungur Skrifið fallið ofthungur. Fallið tekur inn færibreytur sem tákna þyngd einstaklings í kílóum og hæð í sentimetrum. Fallið dregur töluna 100 frá sentimetrafjöldanum og ef þyngdin er stærri en sú tala skilar fallið gildinu true en annars skilar fallið gildinu false. Búið einnig til main fall sem spyr um hæð og þyngd, notar fallið til að ákvarða hvort einstaklingur er yfir kjörþyngd skv. þessari skilgreiningu og birtir á skjánum. Dæmi um keyrslu þessa forrits gæti verið: Dæmi: Sláðu inn þyngd: 89 Sláðu inn hæð: 190 Þú ert ekki of þungur Annað dæmi: Sláðu inn þyngd: 92 Sláðu inn hæð: 190 Þú ert of þungur Talnabil Fall 1 Skrifið fall sem fær tvær heiltölur sem inntaksfæribreytur og prentar út á skjáinn allar tölur á bilinu á milli talnanna. Fallið skilar skilagildinu false ef engar tölur finnast á bilinu þ.e. tölurnar eru jafn háar eða önnur aðeins einum hærri en hin, annars skilar það skilagildinu true. Hlaupaár (bok) Búið til fall sem tekur inn eina heiltölu sem táknar ár en skilar til baka true ef viðkomandi ár er hlaupaár, en annars false. ( ár er hlaupaár ef 4 gengur upp í ártalinu, undantekning ef 100 gengur upp í en 400 ekki) Nokkrar æfingar í forritun bls. 48 Hallgrímur Arnalds

49 Dagafjöldi frá áramótum. Búið til fall sem tekur inn þrjár heiltölur þ.e. dag, mánuð og ár. Fallið á að skila dagafjölda frá áramótum. (Þið ráðið hvort gert er ráð fyrir hlaupaári eða ekki) Veldi Skrifið fallið Veldi sem tekur tekur tvö heiltölu viðföng, tala og veldisvisir. Fallið skilar heiltölu sem er viðfangið tala í veldinu veldisvisir. Skrifið lítið forrit sem prófar fallið. Ekki er leyfilegt að nota innbyggð stærfræðiföll við útfærsluna. Modulus Búið til fallið Modulus sem hefur sömu virkni og modulus virkinn (%) í C++. Fallið tekur tvö heiltölu viðföng og skilar heiltölu niðurstöðu. Ekki er leyfilegt að nota % virkjann við útfærsluna. Búið til forrit sem prófar fallið og les inn tvær heiltölur frá lyklaborðinu og prentar út á skjáinn modulus talnanna. Lán með föllum Þetta verkefni höfum við séð áður, en hér á að nota föll til að leysa verkefnið. Verkefnið er að búa til forrit til að reikna út greiðslur af láni með föstum afborgunum. Forritið á að skrifa út lista þar sem fram kemur (sjá meðfylgjandi dæmi) númer greiðslu, upphæð eftirstöðva fyrir greiðslu, upphæð afborgunar, upphæð vaxta og greiðsla alls. Eins og fram kom hér að framan er afborgun af höfuðstól alltaf sú sama. En vaxtagreiðslan er mismunandi, fyrst eru borgaðir vextir af öllu láninu og svo lækkar vaxtagreiðslan í hlutfalli við lækkun eftirstöðva. Gert er ráð fyrir að það séu mánaðarlegar greiðslur af láninu. Þegar tekið er lán má gera ráð fyrir að alltaf líði 1 mánuður frá lántökudegi til fyrsta afborgunardags. Notandi þarf að skrá inn upphæð láns, vaxtaprósentu og fjöldi afborgana. Til glöggvunar fylgir hér með hvaða niðurstöðu við eigum að fá ef við setjum inn lánsupphæð , fjöldi afborgana 12 og vexti 12%. Gera má ráð fyrir að mánaðarvextir séu ársvextir/12. Nr. greiðslu Eftirstöðvar Afborgun Vextir Greiðsla alls Nokkrar æfingar í forritun bls. 49 Hallgrímur Arnalds

50 Eftirfarandi formúlur má nota í þessum reikningum: afborgun af höfuðstól = upphæð / fjölda greiðsla vextir = eftirstöðvar fyrir greiðslu * vaxtaprósenta / 12 / 100 Eftirst.fyrir.gr = upphæð ((nr greidslu - 1) * afborgun) Nota á föll til að: Reikna eftirstöðvar láns eftir ákveðna greiðslu Reikna afborgun hverrar greiðslu Reikna vexti hverrar greiðslu Reikna heildargreiðslu Fylki Fylki (e. array) er gagnagrind eða gagnaskipan sem gerir okkur mögulegt að gefa mörgum breytum sem allar eru af sama tagi eitt sameiginlegt nafn. Ein ákveðin breyta eða stak í fylkinu fær ákveðið númer til að aðgreina það frá öðrum stökum. (e. index eða subscript). Við getum hugsað okkur fylki sem safn af númeruðum minnishólfum eða kössum þar sem hvert hólf inniheldur eitt gildi. Númer kassans er þá númer staksins í fylkinu. Skilgreining fylkja Skilgreining fylkis er lík skilgreiningu á breytu. Fyrst kemur tag fylkisins, síðan nafn og á eftir nafninu kemur fjöldi staka í fylkinu innan hornklofa. Stærð fylkisins er alltaf heiltala. Sem dæmi gæti fylki innihaldið mánaðarlegt meðalhitastig í Reykjavík á einu ári. Þá mætti skilgreina fylkið á eftirfarandi hátt: double man_hiti[12]; Þessi skilgreining verður til þess að þýðandi forritsins tekur frá pláss fyrir 12 heiltölur þar sem fyrsta heiltalan heitir man_hiti[0], væntanlega meðalhitastig janúarmánaðar. Á sama hátt verður þá hitastig desembermánaðar geymt í man_hiti[11] Nota má fasta til að geyma stærð fylkis t.d. final int MANFJ = 12; double man_hiti[manfj]; Nokkrar æfingar í forritun bls. 50 Hallgrímur Arnalds

51 Sýnidæmi um notkun fylkis í forriti public class Int_fylki{ final int FJOLDI_STAKA = 5; // við ætlum að hafa 5 stök í fylkinu // sem eru númeruð frá 0 til 4 int[] talnafylki = new int[fjoldi_staka]; // Hér búum við til fylki með 5 stökum for(int i = 0; i<fjoldi_staka;i++) { talnafylki[i]=i; // hér erum við að setja 1 í fremsta stakið, 2 í næsta stak // síðan áfram og endað á að setja 5 í síðasta stakið for(int i = 0; i<fjoldi_staka;i++) { System.out.println("Stak nr: "+ i+ " er " + talnafylki[i] ); // hér erum við að skrifa innihald staks í fylkinu Æfingadæmi fylki Manhitastig2 (bok) Skrifa á forrit í Java sem skráir hitastig nokkurra mánaða og setur hitastigin í fylki. Forritið birtir síðan hæsta hitastig, lægsta hitastig og meðalhitastig. Forritið framkvæmir eftirfarandi aðgerðir: Spyr notanda um fjölda hitastiga sem skrá á og skilgreinir fylki (array) til að geyma hitastigin. Lætur notanda slá inn hitastigin. Birtir hæsta, lægsta og meðalhitastig. Nafn Búið til forrit sem biður notanda að slá inn fornafn. Forritið svarar þá Sæll og síðan nafn viðkomandi. Vikulaun (Vikulaun_fylki1) Búið til forrit sem reiknar vikulaun einstaklings. Forritið spyr um laun á klukkustund og fjölda unninna stunda í vikunni. Forritið á einnig að spyrja um nafn einstaklings og númer viku. Forritið reiknar síðan vikukaupið. Vikukaupið er fjöldi unninna stunda margfaldað með tímakaupinu. Að lokum á forritið að skrifa nafn einstaklingsins ásamt vikulaunum og vikunúmeri. Forritið gæti t.d. skrifað út:jon hefur kronur i vikulaun i viku 40 Langstökk Búið til forrit sem spyr um stökklengdir ákveðins einstaklings í langstökkskeppni. Einstaklingurinn fær 5 stökk. Ef stökk er ógilt er sleginn inn talan 1. Setja á þessar lengdir í fylki sem inniheldur 5 stök. Forritið les sig í gegn um fylkið og svarar hvert var lengsta stökk einstaklingsins og hversu mörg stökk voru ógild. Nokkrar æfingar í forritun bls. 51 Hallgrímur Arnalds

52 Dæmi um virkni: Sláið inn lengdir: Stökk 1: 1 Stökk 2: 6.65 Stökk 3: 7.01 Stökk 4: 1 Stökk 5: 5.5 Lengsta stökk 7.01, 2 stökk ógild. Annað dæmi um virkni: Sláið inn lengdir: Stökk 1: 1 Stökk 2: 1 Stökk 3: 1 Stökk 4: 1 Stökk 5: 1 Ekkert stökk gilt, 5 stökk ógild. Einkunnir (verkefni) Skrifa á forrit í Java sem skráir einkunnir nokkura nemenda og setur þær í fylki. Forritið birtir síðan hæstu einkunn, lægstu einkunn og meðaleinkunn nemenda. Forritið framkvæmir eftirfarandi aðgerðir: a) Spyr notanda um fjölda nemenda og skilgreinir fylki (array) til að geyma einkunnir. (ein einkunn fyrir hvern nemanda). b) Lætur notanda slá inn einkunnir fyrir þessa nemendur. c) Birtir hæstu, lægstu og meðaleinkunn nemendanna. Lögleg dagsetning Búið til forrit sem biður notanda að slá inn dagsetningu þ.e. dag, mánuð og ár. Forritið segir til um hvort dagsetning sé lögleg dagsetning eða ekki. Þetta má útfæra með því að búa til int fylki sem inniheldur dagafjölda í mánuði. Ýmislegt Æfingadæmi Bokstafur1 (bok) (bokstafur1) Búið til forrit sem biður notanda að slá inn bókstaf. Forritið svarar síðan þú hefur valið bókstafinn: og síðan skrifast réttur bókstafur út. Tákn Skrifið forrit sem les inn af lyklaborði heiltölur á bilinu 0 til 255 og prentar út skjáinn tákn úr ASCII töflunni í því sæti sem lesið var inn. Þ.e. ef t.d. er slegin er Nokkrar æfingar í forritun bls. 52 Hallgrímur Arnalds

53 inn talan 65 þá prentast út táknið A. Látið forritið hætta keyrslu þegar slegin er inn talan 0. Prímtölur Skrifið forrit sem les inn heiltölu frá lyklaborði og prentar út allar prímtölur (prime numbers) frá 1 upp í töluna sem slegin var inn. Prímtala er jákvæð heiltala stærri en 1 (1 er ekki prímtala, heldur sérskilyrði) sem er eingöngu deilanleg með 1 og einni annarri jákvæðri heiltölu þ.e. sjálfri sér. Sjóorusta (bok) (SjoOrusta) skrifið forrit sem á að líkja eftir leiknum sjóorusta. Hluti af leiknum er að búa til aðferð til að finna reit sem á að skjóta á næst. Það er 10x10 reitir sem við getum skotið á, sem eru nefndir A1 upp í J10. Þú átt að búa til forrit sem spyr um fjölda reita sem á að birta en skrifar síðan út nafn á jafn mörgum tilviljunarkenndum reitum (ath, það er í lagi þó að sami reitur komi oftar en einu sinni) Dæmi um keyrslu forrits: Fjöldi reita? 9 9 tilviljunarkenndir reitir eru: A3, B9, J1, J9, C4, E10, H2, I2, B7 Monte Carlo aðferð til að finna pí Búa á til forrit sem á að reikna pí. Aðferðin gengur út á að finna slembitölur fyrir x og y hnit á bilinu frá 1 til +1. Forritið athugar síðan hvort viðkomandi hnit eru inni í hring með radius 1. Hlutfall punkta sem lenda innan hringsins má síðan nota til að reikna pí. Forritið notar fall sem finnur gildi PI með því að nota "Monte Carlo" nálgunaraðferð. Fallið tekur inn færibreytu sem segir til um hversu oft á að ítra. Fallið á að hafa eftirfarandi yfirlýsingarhluta. public static double pi(int fjoldi_itr); Nokkrar æfingar í forritun bls. 53 Hallgrímur Arnalds

54 Klasar Sýnidæmi Klasinn Ferh, dæmi um klasa fyrir ferhyrning Hér koma nokkur dæmi um klasa. Byrjað er á að skoða einfaldasta tegund klasa, þ.e. klasa með tveimur gagnaliðum eða eiginleikum (e. Properties) og engum föllum. Fyrsta dæmið hefur gagnaliðina opinbera (e. Public) og sýnt hvernig nota má klasann í öðru forriti. Það er hins vegar ekki æskilegt að hafa eiginleika opinbera þannig að hér er eingöngu um sýnidæmi að ræða. /** Klasi Ferh sem innihldur tvo gagnaliði, lengd og breidd */ public class Fern { public double lengd; public double breidd; Her er síðan forrit sem býr til og notar tilvik af þessum klasa Fern F1 = new Fern(); // smíðum nýtt tilvik af ferhyrningi public class TestFern { F1.lengd = 20; // eingöngu mögulegt af því að lengd // er opinber liður F1.breidd = 40; // eingöngu mögulegt af því að breidd // er opinber liður System.out.println("Flatarmal fernings 1 er: " + F1.lengd*F1.breidd); Næst skoðum við smiði (e. constructor) en smiður er fall sem notað er til að frumstilla gagnaliði (eiginleika) um leið og við búum til tilvik af klasanum. public class Fern { public double lengd; public double breidd; // skilgreinum smið fyrir klasann. Þessi smiður setur inn að // lengd ferhyrningsins sé 2 og breidd ferhyrningsins sé 3 public Fern(){ lengd = 2; breidd = 3; Nú skulum við aftur skifa dæmi um hvernig nota má þennan klasa. Nú skrifast væntanlega út að flatarmálið sé 6, þar sem smiðurinn setti lengdina sem 2 og breiddina sem 3. public class TestFern { Fern F1 = new Fern(); // smíðum nýtt tilvik af ferhyrningi Nokkrar æfingar í forritun bls. 54 Hallgrímur Arnalds

55 //F1.lengd = 20; //F1.breidd = 40; System.out.println("Flatarmal fernings 1 er: " + F1.lengd*F1.breidd); Við sögðum áðan að ekki væri æskilegt að hafa gagnaliði public við prófum að gera gagnaliðina private public class Fern { private double lengd; private double breidd; // skilgreinum smið fyrir klasann public Fern(){ lengd = 2; breidd = 3; Ef við prófum núna að þýða aftur TestFern klasann lendum við í vandræðum þar eð nú eru lengd og breidd einkaliðir og forrtið fær ekki aðgang að liðunum. public class TestFern { Fern F1 = new Fern(); // smíðum nýtt tilvik af ferhyrningi //F1.lengd = 20; // ekki mögulegt af því að lengd // er einka liður (e. private) //F1.breidd = 40; // ekki mögulegt af því að breidd // er einka liður System.out.println("Flatarmal fernings 1 er: " + F1.lengd*F1.breidd); // ekki mögulegt af því að // lengd og breidd // eru einka liður Við bætum þá við föllum sem eru opinber til að gefa aftur aðgang að gagnaliðunum. public class Fern { private double lengd; private double breidd; // skilgreinum smið fyrir klasann public Fern(){ lengd = 2; breidd = 3; public double get_breidd(){ return breidd; public double get_lengd(){ return lengd; Síðan má nálgast breiddina og hæðina með því að nota get föllin Nokkrar æfingar í forritun bls. 55 Hallgrímur Arnalds

56 public class TestFern { Fern F1 = new Fern(); // smíðum nýtt tilvik af ferhyrningi //F1.lengd = 20; // ekki mögulegt af því að lengd // er einka liður (e. private) //F1.breidd = 40; // ekki mögulegt af því að breidd // er einka liður System.out.println("Flatarmal fernings 1 er: " + F1.get_lengd()*F1.get_breidd()); Næst viljum við geta sett einhverjar tölur í lengdina og breiddina í TestFerh clasanum. Ef við tökum commentin af línunum sem nota á til þess sjáum við að aftur lendum við í vandræðum þar sem ekki er aðgangur að þessum liðum. public class TestFern { Fern F1 = new Fern(); // smíðum nýtt tilvik af ferhyrningi F1.lengd = 20; // ekki mögulegt af því að lengd // er einka liður (e. private) F1.breidd = 40; // ekki mögulegt af því að breidd // er einka liður System.out.println("Flatarmal fernings 1 er: " + F1.get_lengd()*F1.get_breidd()); Við bregðumst við þessu með því að búa til föll í klasanum sem gera okkur kleyft að gera þetta. public class Fern { private double lengd; private double breidd; // skilgreinum smið fyrir klasann public Fern(){ lengd = 2; breidd = 3; public void set_lengd(double lengd_inn){ lengd=lengd_inn; public void set_breidd(double breidd_inn){ breidd=breidd_inn; public double get_breidd(){ return breidd; public double get_lengd(){ return lengd; Og þá getum við notað set föllin á eftirfarandi hátt. public class TestFern { Nokkrar æfingar í forritun bls. 56 Hallgrímur Arnalds

57 Fern F1 = new Fern(); // smíðum nýtt tilvik af ferhyrningi F1.set_lengd(20); F1.set_breidd(40); System.out.println("Flatarmal fernings 1 er: " + F1.get_lengd()*F1.get_breidd()); Á sama hátt og við getum frumstillt breytur um leið og við skilgreinum þær þá viljum við einnig geta sett ákveðin gildi inn í gagnaliði tilviks um leið og við búum til tilvikið. Til þess notum við smiði með færibreytum. Hér að neðan erum við búin að búa til færibreytusmið í klasanum Fern. // Færibreytusmiður með tveimur færibreytum. public Fern(double lengd_inn, double breidd_inn){ lengd = lengd_inn; breidd = breidd_inn; public Fern(){ lengd = 0; breidd = 0; public void set_lengd(double lengd_inn){ lengd=lengd_inn; public void set_breidd(double breidd_inn){ breidd=breidd_inn; public double get_breidd(){ return breidd; public double get_lengd(){ return lengd; Nú getum við nýtt smið með færibreytum til að búa til nýtt tilvik af klasa. public class TestFern { Fern F1 = new Fern(); // smíðum nýtt tilvik af ferhyrningi // með því að nota færibreytulausan smið Fern F2 = new Fern(5,6); // smíðum nýtt tilvik af // ferhyrningi með því að nota færibreytusmiðinn System.out.println("Flatarmal fernings 1 er: " + F2.get_lengd()*F2.get_breidd()); Að lokum er bætt við föllum til að til að reikna ummál og flatarmál ferhyrnings public class Fern { private double lengd; private double breidd; // skilgreinum smið fyrir klasann public Fern(){ Nokkrar æfingar í forritun bls. 57 Hallgrímur Arnalds

58 lengd = 2; breidd = 3; public Fern(double lengd_inn, double breidd_inn){ lengd = lengd_inn; breidd = breidd_inn; public void set_lengd(double lengd_inn){ lengd=lengd_inn; public void set_breidd(double breidd_inn){ breidd=breidd_inn; public double get_breidd(){ return breidd; public double get_lengd(){ return lengd; public double reikna_flatarmal(){ return lengd*breidd; public double reikna_ummal(){ return 2*lengd + 2*breidd; Síðan má nota þessi föll í TestFern klasanum: public class TestFern { Fern F1 = new Fern(); // smíðum nýtt tilvik af ferhyrningi // með því að nota færibreytulausan smið Fern F2 = new Fern(5,6); // smíðum nýtt tilvik af // ferhyrningi með því að nota færibreytusmiðinn System.out.println("Flatarmal fernings 2 er: " + F2.get_reikna_flatarmal()); System.out.println("Ummál fernings 1 er: " + F1.get_reikna_flatarmal()); Æfingadæmi Klasinn hringur Búið til klasa sem inniheldur einn gagnalið sem táknar radius hrings. Klasinn á einnig að innihalda tvö föll til að reikna flatarmál hringsins og ummál hringsins. Búið síðan til aðalforrit sem spyr um radius hrings, og notar síðan föllin í klasanum til að birta faltarmál hringsins og ummál hringsins. Klasinn Land (bok) Búið til klasa sem hefur þrjá eiginleika (gagnaliði e. Properties) þ.e. nafn landsins, stærð landsins í ferkílometrum og íbúafjölda í landinu. Gagnaliðirnir eru einka liðir (e. Private) Klasinn á að hafa tvo smiði, þ.e. færibreytusmið og Nokkrar æfingar í forritun bls. 58 Hallgrímur Arnalds

59 færibreytulausan smið. Klasinn inniheldur get og set föll. Klasinn á einnig að innihalda fall sem reiknar hversu þéttbúlt landið er. Búið síðan til aðalforrit sem spyr um nafn landsins, íbúafjölda og stærð og notar síðan föllin í klasanum til að birta nafn landsins og hversu þéttbýlt landið er. Klasinn dagsetning Skrifið skilgreiningu á klasanum dagsetning án þess að útfæra föllin. Klasinn hefur einka heiltölubreytur fyrir dag, mánuð og ár (þrjár breytur). Smiðir eru tveir. Færibreytulaus smiður núllstillir allar breytur og smiður með þremur færibreytum stillir dag, mánuð og ár í ákveðin gildi. Í klasanum er eitt fall (sla_inn_dagsetningu) sem gefur notandanum kost á að slá inn dagsetningu (dag, mánuð og ár). Einnig er fall (birta) sem er notað til að birta upplýsingarnar í tilviki á skjá. Í klasanum er einnig eitt fall sem skilar svargildi sem er true ef árið í tilvikinu er hlaupár, en false ef árið er ekki hlaupár. Klasinn vinnutimi Skrifið skilgreiningu á klasanum vinnutimi. Klasinn hefur einka heiltölubreytu fyrir starfsmannanúmer og einka rauntölubreytu fyrir vinnustundir. Smiðir eru tveir. Færibreytulaus smiður nullstillir báðar breytur og smiður með tveimur færibreytum stillir starfsmannnúmer og vinnustundir í ákveðin gildi. Í klasanum er eitt fall (sla_inn_numer) sem gefur notandanum kost á að slá inn starfsmannanúmer og annað fall (sla_inn_stundir) sem gefur notandanum kost á að slá inn vinnustundir. Einnig er fall (birta) sem er notað til að birta upplýsingarnar í tilviki á skjá. Klasinn minnisatridi Skrifið klasa fyrir minnisatriði. Klasinn hefur dagsetningu (dagur, mánuður og ár) og textastreng (mest 40 stafir) sem er minnisatriðið. Færibreytulaus smiður núllstillir dagsetninguna og tæmir textastrenginn. Sitt hvort fallið er notað til að lesa inn dagsetninguna annars vegar og minnisatriðið hins vegar. Svo er fall, birta, sem birtir minnisatriði á skjá ásamt dagsetningu. Aðalforrit býður notandanum upp á að skrá nýtt atriði, skoða öll minnisatriði eða hætta. Alls má geyma 100 minnisatriði en þau geymast að vísu aðeins á meðan forritið er í gangi. Klasinn spil (verkefni) Búið til forrit sem líkja á eftir því að við séum að spila 21 í tölvunni. Leikurinn fer þannig fram að tölvan byrjar á að láta leikmann spila. Tölvan gefur þá spil frá 1 fyrir ás upp í 13 fyrir kóng. Síðan spyr tölvan hvort leikmaður vilji fá annað spil. Tölvan leggur saman gildin á spilunum sem leikmaður hefur fengið og ef heildarsumman er stærri en 21 hefur leikmaður tapað spilinu en tölvan unnið. Ef leikmaður stoppar án þess að hafa sprungið gefur tölvan sjálfri sér spil. Tölvan notar þær reglur að hún stoppar ef heildarstigafjöldi er 16 eða meira en heldur annars áfram. Eftirfarandi reglur eru notaðar til að ákveða hver vinnur spilið: Ef sigafjöldi leikmanns er hærri en 21 þá hefur hann sprungið og tapað spilinu. Þá þarf tölvan ekki að gefa sjálfri sér spil. Nokkrar æfingar í forritun bls. 59 Hallgrímur Arnalds

60 Ef leikmaður springur ekki en tölvan springur (þ.e. fær meira en 21) hefur leikmaðurinn unnið. Ef hvorki leikmaður né tölva springa, þá vinnur sá sem hefur fleiri stig. Ef tölva og leikmaður hafa jafn mörg stig þá vinnur tölvan. Gera má ráð fyrir að hvert spil gildi frá einum upp í 13. Einnig má gera ráð fyrir að í bunkanum séu margir stokkar, þ.a. líkur á að ákveðið spil komi minnka ekki eftir að það hefur komið. T.d. ef kongur kemur úr stokknum minnka ekki líkur á að kongurinn komi aftur. Dæmi um hvernig leikur getur spilast: Nú hefst leikurinn: þú fékkst 9 og ert kominn með samtals 9, viltu fleiri spil? já þú fékkst 7 og ert kominn með samtals 16, viltu fleiri spil? já þú fékkst 6 og ert kominn með samtals 22 Þú sprakkst, tölvan vann. Heildarfjöldi spila: 1 Tölva hefur unnið 1 spil Þú hefur unnið 0 spil Viltu spila annað spil? já þú fékkst 8 og ert kominn með samtals 8, viltu fleiri spil? já þú fékkst 2 og ert kominn með samtals 10, viltu fleiri spil? já þú fékkst 8 og ert kominn með samtals 18, viltu fleiri spil? nei tölvan fékk 3 tölvan fékk 4 tölvan fékk 10 tölvan fékk samtals 17 þú vannst leikinn Heildarfjöldi spila: 2 Tölva hefur unnið 1 spil Þú hefur unnið 1 spil Viltu spila annað spil? nei Lausnaraðferð: Nota á klasa sem heitir Spil21. Klasinn hefur gagnaliðina notandi_unnid og tolva_unnid sem eru integer gagnaliðir sem geyma fjölda spila sem notandi hefur unnið og fjölda spila sem tölva hefur unnið. Í klasanum eiga að vera eftirfarandi föll: private int gefaspil() Þetta fall skilar tilviljunarkenndri tölu frá 1 upp í 13 private int notandispilar() Þetta fall lætur notandann spila eitt spil. Fallið birtir spilin sem notandi færi og spyr notanda hvort hann vilji fleiri spil. Fallið skilar síðan til baka hversu mörg stig notandinn fékk. Nokkrar æfingar í forritun bls. 60 Hallgrímur Arnalds

61 private int tolvaspilar() Þetta fall lætur birtir þau spil sem tölvan færi í sínu spili og skilar síðan til baka hversu mörg stig tölvan fékk. public int spilaspil() Þetta fall spilar eitt spil. Fallið skilar 0 ef tölva vinnur spilið en 1 ef notandinn vinnur spilið. public void fumstillateljara() Þetta fall frumstillir teljarana notandi_unnid og tolva_unnid þ.e. setur fjölda unninna spila sem 0 hjá báðum aðilum. Þú ákveður hvort og þá hvaða smiðir, get og set föll eiga að vera í klasanum. String klasinn /** * Þetta er dæmi um hvernig nota má textastrengi. */ public class Strengur0{ public static void main(string args[]){ Scanner keybord = new Scanner(System.in); System.out.println("Hvað heitir þú? "); // Hér er búinn til nýr strengur sem heitir nafn // String er nafn á klasa, en nafn er þá "klasabreyta" sem // hefur ekki sömu eiginleika og "venjulegar" breytur sem // við högum notað hingað til String nafn = keybord.nextline(); // klasinn String inniheldur meðal annars fallið // length() sem skilar lengd strengsins. Við getum // notað klasafall með því að segja "nafn_klasabreytu.nafn_falls // t.d. nafn.length() int lengd = nafn.length(); System.out.println("sæll " + nafn); System.out.println("síðasti stafurinn í nafninu er " + nafn.charat(lengd-1) ); // charat fallið skilar ákveðnu tákni í strengnum, þannig skilar // charat(5) tákni númer 6 í strengnum því fyrsta táknið í // strengnum er tákn nr. 0 // charat(lengd-1) skilar síðasta tákni í strengnum ef lengd // inniheldur fjölda tákna í strengnum System.out.println("Nú skrifa ég nafnið staf fyrir staf með for lykkju" ); // Í lykkjunni skrifum við textastrenginn tákn fyrir tákn með því // að nota charat fallið for (int i=0 ;i<lengd ; i++){ System.out.print(nafn.charAt(i)); // touppercase fallið skilar öllum bókstöfum í strengnum með hástöfum String stortnafn = nafn.touppercase(); System.out.println("Nafn þitt með eintómum hástöfum " + stortnafn); Upphafsstafir (verkefni) Búið til forrit sem spyr notanda að fullu nafni. Forritið svarar síðan hverjir eru upphafsstafir viðkomandi einstaklings Dæmi: Nokkrar æfingar í forritun bls. 61 Hallgrímur Arnalds

62 Hvað heitir þú? Jón Jónsson Upphafsstafir JJ Annað dæmi: Hvað heitir þú? Sigríður Margrét Jónsdóttir Upphafsstafir SMJ Keðja (verkefni) Skrifið forrit sem les inn tvo textastrengi. Forritið á að athuga hvort síðasta tákn í fyrri textastrengnum sé það sama og fyrsta táknið í síðasta strengnum, en ef svo er á forritið að segja að þessi tveir strengir myndi keðju, annars ekki. (Athugið að ekki er gerður greinarmunur á há og lágstöfum) Dæmi 1: Textastrengur 1: London Textastrengur 2: New York Textastrengir mynda keðju Dæmi 2: Textastrengur 1: Madrid Textastrengur 2: Amsterdam Textastrengir mynda ekki keðju Klasar erfðir Sýnidæmi úr erfðum Gerum ráð fyrir að við höfum skilgreint einhvern klasa sem útfærir ákveðið hugtak, t.d. klasann stafsmann sem á að lýsa eiginleikum allra starfsmanna hjá ákveðnu fyrirtæki. Síðan höfum við eitthvert sértilfelli af starfsmanni t.d. lykilstarfsmann sem hefur alla sömu eiginleika og almennir starfsmenn, en auk þess einhverja sér eiginleika, t.d. bónus. Þá getum við búið til klasann starfsmann sem lýsir eiginleikum allra starfsmanna, og síðan getum við búið til klasann lykilstarfsmann sem erfir starfsmann, en þá færa klasinn lykilstarfsmadur alla eiginleika og föll sem allir starfsmenn hafa en síðan er bætt við sérstökum eiginleikum og föllum sem lykilstarfsmenn hafa. Sýnidæmið hér að neðan lýsið þessu: Fyrirtæki nokkurt hefur ýmsa starfsmenn í vinnu hjá sér. Um alla starfsmenn gildir að þeir hafa ákveðin grunnlaun sem geyma má sem heiltölu. Um suma lykilstarfsmenn gildir að þeir fá bónus í lok ársins sem einnig er heiltala, en slíkir starfsmenn eru kallaðir lykilstarfsmenn. Verkefni þitt er að skilgreina tvo klasa og útfæra föll þar sem annar klasinn erfir hinn en klasarnir eiga að geyma upplýsingar um starfsmenn og lykilstarfsmenn. Skilgreinið klasana þannig að í þeim báðum sé: Nokkrar æfingar í forritun bls. 62 Hallgrímur Arnalds

63 A.m.k. einn smiður með færibreytum sem frumstillir grunnlaun og bónus ef við á Fallið birta sem birtir upplýsingar um alla gagnaliði klasans á skjá. Fallið arslaun sem skilar árslaunum starfsmanns sem er grunnlaun * 12 fyrir venjulegan starfsmann en grunnlaun * 12 + bonus fyrir lykilstarfsmann. Dæmi um klasann Starfsmadur public class Starfsmadur { private int grunnlaun; public Starfsmadur(){ grunnlaun = 0; public Starfsmadur(int grunnlaun_inn){ grunnlaun = grunnlaun_inn; public void birta() { System.out.println("Grunnlaun " + grunnlaun) ; public void setja_grunnlaun(int grunnl_inn) { grunnlaun = grunnl_inn; public int fa_grunnlaun() { return grunnlaun; public int fa_arslaun() { return grunnlaun*12; Dæmi um klasann Lykilstarfsmadur sem erfir klasann Starfsmadur public class LykilStarfsmadur extends Starfsmadur{ private int bonus; public LykilStarfsmadur(){ super(500000); bonus = ; public LykilStarfsmadur(int grunnlaun_inn, int bonus_inn){ super(grunnlaun_inn); bonus = bonus_inn; public void setja_bonus(int bonus_inn) { bonus = bonus_inn; public int fa_bonus() { return bonus; Nokkrar æfingar í forritun bls. 63 Hallgrímur Arnalds

64 public void birta() { super.birta(); System.out.println("Bonus " + bonus) ; public int fa_arslaun() { return super.fa_arslaun() + bonus; Dæmi um main forrit sem býr til tilvik af starfsmanni og lykilstarfsmanni public class TestStarfsmadur { // Starfsmadur jon = new Starfsmadur(400000); System.out.println("Árslaun jóns eru: "+jon.fa_arslaun()); jon.birta(); // LykilStarfsmadur gunna = new LykilStarfsmadur(); System.out.println("Árslaun gunnu eru: "+gunna.fa_arslaun()); gunna.birta(); Æfingardæmi úr erfðum Hus Ibudarhus (bok) Skrifið klasann hus. Klasinn hefur tvo gagnaliði fyrir rúmmetrafjölda hússins (heiltala) og götuheiti (textastrengur), gera má ráð fyrir að götuheiti sé aðeins eitt orð. Klasinn hefur eftirfarndi föll: Færibreytulausan smið og færibreytu smið sem frumstillir gagnaliðina. Fallið lesa sem les upplýsingar um alla gagnaliði klasans af lyklaborði Fallið birta sem birtir upplýsingar um alla gagnaliði klasans á skjá. Föll sem gefa aðgang að því sem er í gagnaliðunum, þ.e. föll sem skila gildum sem er í gagnaliðunum og föll sem gefa kost á að setja gildi í gagnaliðina (stundum kölluð get og set föll). Skrifið síðan klasann ibudarhus sem erfir klasann hus. Í klasann ibudarhus bætist við gagnaliður sem táknar fjölda íbúða í húsinu (heiltala). Klasinn á að hafa sambærileg föll og klasinn hus. Klasinn á að vera skrifaður með það að markmiði að nýta kosti erfða og hlutbundinnar forritunar sem best. Fjall Eldfjall Við eigum að búa til tvo klasa þar sem annar klasinn erfir hinn klasann. Þetta eru klasarnir fjall og eldfjall. Klasinn fjall hefur gagnaliðina nafn sem geymir nafn fjallsins og haed sem geymir hæð fjallsins í metrum. Klasinn eldfjall hefur sömu gagnaliði og klasinn fjall, en auk þess gagnaliðinn sidasta_gos sem geymir ártal þegar eldfjallið gaus síðast. Nokkrar æfingar í forritun bls. 64 Hallgrímur Arnalds

65 Verkefni þitt er að skilgreina þessa tvo klasa og útfæra föll þar sem annar klasinn erfir hinn en klasarnir eiga að geyma upplýsingar um fjöll og eldfjöll. Skilgreinið klasana þannig að í þeim báðum sé: A.m.k. einn smiður með færibreytum sem frumstillir gagnaliði klasans. Fallið birta sem birtir upplýsingar um alla gagnaliði klasans á skjá. Fall sem gefur aðgang að nafni fjallsins og annað fall sem gerir mögulegt að breyta nafni fjallsins. Einnig sambærileg föll sem gefa aðgang að og möguleika á að breyta ártali síðasta goss í eldfjalli. Fallið haed_i_fetum sem skilar hæð fjallsins í fetum. Eitt fet jafngildir 0,3048 metrum. Báðir klasarnir eiga að vera skrifaðir með það að markmiði að nýta kosti erfða og hlutbundinnar forritunar sem best. Villumeðhöndlun try catch throw import javax.swing.joptionpane; // klasi sem notar gluggaumhverfi til að lesa inn streng public class TryCatch_Radius { /** Main fallið */ // Spyrja um textastreng sem á að prófa String strradius = JOptionPane.showInputDialog(null, "Sláðu inn radíus hrings:", "Try Cactch dæmi", JOptionPane.QUESTION_MESSAGE); // Skilgreina textastreng fyrir output double radius=0; try { radius = Double.parseDouble(strRadius); // parseint fallið kasar NumberFormatException // ef ekki er mögulegt að parsa í heiltölu. // Hér má framkalla villu t.d. með því að slá inn bókstafi if (radius < 0)throw new MinneneinnException ("radius þarf að vera pósitívur"); // við köstum sjálf MinneneinnException ef radius minni en 0 double flatarmal = radius * radius * Math.PI; String uttak= "Hringur með radius " + radius + " hefur flatarmálið " + flatarmal; JOptionPane.showMessageDialog(null,uttak, "Try Cactch dæmi", JOptionPane.INFORMATION_MESSAGE); catch (NumberFormatException e) { JOptionPane.showMessageDialog(null, "Passa sig, það verður að slá inn tölu", "Try Cactch dæmi", JOptionPane.INFORMATION_MESSAGE); catch (Exception e) { JOptionPane.showMessageDialog(null, e.getmessage(), "Try Cactch dæmi", JOptionPane.INFORMATION_MESSAGE); Nokkrar æfingar í forritun bls. 65 Hallgrímur Arnalds

66 Viðauki 1. Lausnir nokkurra verkefna Æfingaverkefni breytur og segðir Heiltölubreytur (IntBreyta) /* Búið til forrit býr til eina heiltölubreytu (int breytu) setur töluna 5 * (ekki 5.0 það er rauntalan eða kommutalan 5.0) breytuna og skrifar síðan * innihald breytunnar á skjá. Forritið á síðan að bæta við tölunni 8 við * það sem er inn í breytunni og birta á skjá hvert innihald breytunnar er */ // Búinn til klasi sem heitir IntBreyta public class IntBreyta { /** main fall innan klasans skilgreint */ int tala; // búin til breyta sem heitir tala og er // af taginu int. Breytan getur þá geymt heiltölu // setja gildið inn í breytuna tala tala = 5; // Birta innihald breytunnar á skjá System.out.println("Innihald breytunnar tala er: " + tala); // hækka gildið um 8 tala = tala + 8; // Birta innihald breytunnar aftur á skjá System.out.println("Innihald breytanna er " + tala); Rauntölubreytur deiling // Búinn til klasi sem heitir Breyta2 public class doublebreyta2 { /** main fall innan klasans skilgreint */ double tala; // búin til breyta sem heitir tala og er // af taginu double. Breytan getur þá geymt rauntölu // (kommutölu) // setja gildið 2.2 inn í breytuna tala tala = 2.2; // Birta innihald breytunnar á skjá System.out.println("Innihald breytunnar tala er: " + tala); // tek það sem er í breytunni deilir í það með tölunni 3 og vista // niðurstöðu í breytunni tala tala = tala/3; // Birta innihald breytunnar aftur á skjá System.out.println("Innihald breytunnar tala er nú: " + tala); Skattur1 public class Skattur1 { public static void main (String[] args) { double alagpros; // álagningarprósenta int persafsl; // persónuafsláttur í krónum int laun; // laun í krónum System.out.println("Álagningarprósenta: "); Nokkrar æfingar í forritun bls. 66 Hallgrímur Arnalds

67 alagpros = lesa.nextdouble(); System.out.println("Persónuafsláttur: "); persafsl = lesa.nextint(); System.out.println("Laun: "); laun = lesa.nextint(); double stadgreidsla; // Reiknuð staðgreiðsla i krónum stadgreidsla = alagpros/100*laun - persafsl; System.out.println("Staðgreiðsla verður þá: " + stadgreidsla); /* Búið til forrit býr til eina heiltölubreytu (int breytu) setur töluna 5 * (ekki 5.0 það er rauntalan eða kommutalan 5.0) breytuna og skrifar síðan * innihald breytunnar á skjá. Forritið á síðan að bæta við tölunni 8 við * það sem er inn í breytunni og birta á skjá hvert innihald breytunnar er */ // Búinn til klasi sem heitir IntBreyta public class IntBreyta { /** main fall innan klasans skilgreint */ int tala; // búin til breyta sem heitir tala og er // af taginu int. Breytan getur þá geymt heiltölu // setja gildið inn í breytuna tala tala = 5; // Birta innihald breytunnar á skjá System.out.println("Innihald breytunnar tala er: " + tala); // hækka gildið um 8 tala = tala + 8; // Birta innihald breytunnar aftur á skjá System.out.println("Innihald breytanna er " + tala); Nafn1 public class Nafn1 { public static void main(string args[]) { System.out.println("Hvað heitir þú "); String nafn; nafn = lesa.nextline(); System.out.println("Halló "+ nafn); Litrar1 public class Litrar1 { public static void main(string args[]) { System.out.println("Litrafjöldi: "); double litrar; litrar = lesa.nextdouble(); double gallon; gallon = litrar/3.6; System.out.println(litrar + " litrar jafngilda "+ gallon + " gallonum "); Nokkrar æfingar í forritun bls. 67 Hallgrímur Arnalds

68 Verd1 public class Verd1 { public static void main(string args[]) { System.out.println("Hvað er verð vörunnar fyrir verðlækkun "); double verd = lesa.nextdouble(); System.out.println("Hversu mikið á varan að lækka í prósentum "); double afslattur = lesa.nextdouble(); double nyttverd = verd * (1-afslattur/100); System.out.println("Verð vörunnar með afslætti "+ nyttverd); Virdisauki1 public class Virdisauki1 { public static void main(string args[]) { System.out.println("Hvað er verð vörunnar án virðisaukaskatts "); double verd = lesa.nextdouble(); double nyttverd = verd * (1+24.5/100); System.out.println("Verð vörunnar með virðisaukaskatti "+ nyttverd); Mynteiningar1 public class Mynt { System.out.print("Sláðu inn peningaupphæð "); int kronur = lesa.nextint(); int fjoldi_1000=kronur/1000; kronur = kronur%1000; int fjoldi_500=kronur/500; kronur = kronur%500; int fjoldi_100=kronur/100; kronur = kronur%100; int fjoldi_10=kronur/10; kronur = kronur%10; int fjoldi_1=kronur; System.out.println("Mynteiningar: "); if(fjoldi_1000!=0)system.out.println(fjoldi_1000+" x 1000 "); if(fjoldi_500!=0)system.out.println(fjoldi_500+" x 500 "); if(fjoldi_100!=0)system.out.println(fjoldi_100+" x 100 "); if(fjoldi_10!=0)system.out.println(fjoldi_10+" x 10 "); if(fjoldi_1!=0)system.out.println(fjoldi_1+" x 1 "); Mynteiningar með falli public class FallMynt { Nokkrar æfingar í forritun bls. 68 Hallgrímur Arnalds

69 System.out.print("Sláðu inn peningaupphæð "); int kronur = lesa.nextint(); kronur = skrifamynt(kronur,1000); kronur = skrifamynt(kronur,500); kronur = skrifamynt(kronur,100); kronur = skrifamynt(kronur,50); kronur = skrifamynt(kronur,10); kronur = skrifamynt(kronur,5); kronur = skrifamynt(kronur,1); public static int skrifamynt(int upphaed, int mynt){ int fjoldi=upphaed/mynt; if(fjoldi!=0)system.out.println(fjoldi+" x "+mynt); return upphaed%mynt; Mynteiningar með falli og fylki public class FallMyntFylki { System.out.print("Sláðu inn peningaupphæð "); int[] myntafylki = {1000,500,100,50,10,5,1; int kronur = lesa.nextint(); for (int i=0 ; i<myntafylki.length ; i++) kronur = skrifamynt(kronur,myntafylki[i]); public static int skrifamynt(int upphaed, int mynt){ int fjoldi=upphaed/mynt; if(fjoldi!=0)system.out.println(fjoldi+" x "+mynt); return upphaed%mynt; Virdisauki_fasti public class Virdisauki_fasti { public static void main(string args[]) { System.out.println("Hvað er verð vörunnar án virðisaukaskatts "); double verd = lesa.nextdouble(); final double VSK = 24.5; double nyttverd = verd * (1+VSK/100); System.out.println("Verð vörunnar með virðisaukaskatti "+ nyttverd); Æfingaverkefni random tölur Yatzikast public class Yatzikast { for (int i=1 ; i<=5 ; i++) { int tala = (int)(math.random()*6) +1; System.out.print(tala + " "); Nokkrar æfingar í forritun bls. 69 Hallgrímur Arnalds

70 Æfingaverkefni if setningar Góðan daginn 1 public class Daginn1 { public static void main(string args[]) { System.out.println("Tími dags: (klst): "); int klst = lesa.nextint(); if(klst<=18) System.out.println("Góðan dag"); else System.out.println("Gott kvöld"); Góðan daginn 2 public class Daginn2 { public static void main(string args[]) { System.out.println("Tími dags: (klst): "); int klst = lesa.nextint(); if(klst<0) System.out.println("Rangur innsláttur"); else if(klst<=18) System.out.println("Góðan dag"); else if(klst<=24) System.out.println("Gott kvöld"); else System.out.println("Rangur innsláttur"); Önnur lausn á sama dæmi: public class Daginn2b { public static void main(string args[]) { System.out.println("Tími dags: (klst): "); int klst = lesa.nextint(); if(klst<0 klst>24) System.out.println("Rangur innsláttur"); else if(klst<=18) System.out.println("Góðan dag"); else System.out.println("Gott kvöld"); SkatturIf public class SkatturIf { public static void main (String[] args) { double alagpros; // álagningarprósenta int persafsl; // persónuafsláttur í krónum int laun; // laun í krónum System.out.println("Álagningarprósenta: "); alagpros = lesa.nextdouble(); System.out.println("Persónuafsláttur: "); persafsl = lesa.nextint(); Nokkrar æfingar í forritun bls. 70 Hallgrímur Arnalds

71 System.out.println("Laun: "); laun = lesa.nextint(); double stadgreidsla; // Reiknuð staðgreiðsla i krónum stadgreidsla = alagpros/100*laun - persafsl; if (stadgreidsla < 0) stadgreidsla = 0; System.out.println("Staðgreiðsla verður þá: " + stadgreidsla); Hlaupaár. public class Hlaupaar { public static void main (String[] args) { int artal; // Ár System.out.println("Hvaða ár viltu prófa: "); artal = lesa.nextint(); boolean erhlaupaar=false; // true ef hlaupaar, annars false if (artal % 4 == 0)erHlaupaar = true; if (artal % 100 == 0)erHlaupaar = false; if (artal % 400 == 0)erHlaupaar = true; if (erhlaupaar) System.out.println("Árið "+artal+" er hlaupaar"); else System.out.println("Árið "+artal+" er ekki hlaupaar"); Æfingaverkefni lykkjur Bokstafur2 public class Bokstafur2 { public static void main (String[] args) { String inntak; String svar; do{ System.out.println("Sláðu inn bókstaf "); inntak = lesa.next(); // les inn eitt orð // (einn staf ef aðeins einn stafur sleginn inn char bokstafur = inntak.charat(0); System.out.println("Þú slóst inn bókstafinn: "+bokstafur); System.out.println("Vilt þú slá inn annað tákn? (já eða nei)"); svar = lesa.next(); while(svar.equals("já") svar.equals("já")); Lína í margföldunartöflu (MargfoldunTafla1) public class MargfoldunTafla1 { System.out.print("Hvaða línu á að birta? "); int margfeldi; int linunumer = lesa.nextint(); System.out.println(linunumer + " sinnum taflan: "); for (int tala=1 ; tala<=10 ; tala++){ margfeldi = linunumer*tala; System.out.print(" " + margfeldi); Nokkrar æfingar í forritun bls. 71 Hallgrímur Arnalds

72 System.out.println(); Margföldunartafla (Margföldunartafla2) public class MargfoldunTafla2 { int margfeldi; System.out.println(" 10 x 10 margföldunartaflan"); for (int linunumer=1 ; linunumer<=10 ; linunumer++){ for (int tala=1 ; tala<=10 ; tala++){ margfeldi = linunumer*tala; if (margfeldi < 10) System.out.print(" " + margfeldi ); else if (margfeldi < 100) System.out.print(" " + margfeldi); else System.out.print(" " + margfeldi); System.out.println(); Heiltala lykkja public class HeiltalaLykkja { public static void main (String[] args) { int tala; String svar; do{ System.out.println("Sláðu inn heiltölu "); tala = lesa.nextint(); // les inn eitt orð // (einn staf ef aðeins einn stafur sleginn inn System.out.println("Þú slóst inn heiltöluna: "+tala); System.out.println("Vilt þú slá inn aðra heiltölu? (já eða nei)"); svar = lesa.next(); while(svar.equals("já") svar.equals("já")); Talnabil upp og niður public class Talnabil3 { public static void main (String[] args) { int byrjun; int lok; int annadveldi=0; System.out.println("Byrjunartala? "); byrjun = lesa.nextint(); System.out.println("Lokatala? "); lok = lesa.nextint(); if (byrjun <= lok){ for ( int teljari = byrjun;teljari<=lok;teljari++) System.out.print(teljari + " "); else { for ( int teljari = byrjun;teljari>=lok;teljari--) System.out.print(teljari + " "); Nokkrar æfingar í forritun bls. 72 Hallgrímur Arnalds

73 Oddatala public class Oddatolur { public static void main (String[] args) { int byrjun; int lok; int annadveldi=0; System.out.println("Byrjunartala? "); byrjun = lesa.nextint(); System.out.println("Lokatala? "); lok = lesa.nextint(); if (byrjun % 2 == 0)byrjun++; for ( int teljari = byrjun;teljari<=lok;teljari+=2) { System.out.println(teljari + " "); System.out.println("Hæsta tala í öðruveldi var: "+annadveldi); Talnabil annað veldi public class AnnadV { public static void main (String[] args) { int byrjun; int lok; int annadveldi=0; System.out.println("Byrjunartala? "); byrjun = lesa.nextint(); System.out.println("Lokatala? "); lok = lesa.nextint(); System.out.println("tala tala í öðru veldi"); for ( int teljari = byrjun;teljari<=lok;teljari++) { annadveldi=teljari*teljari; System.out.println(teljari + " " +annadveldi); System.out.println("Hæsta tala í öðruveldi var: "+annadveldi); Litrar/gallon valmynd public class LitrarGallonMenu { public static void main(string[] args){ int val=0; do{ System.out.println("Veldu aðgerð: "); System.out.println("1. Til að breyta gallon í litra "); System.out.println("2. Til að breyta litrum í gallon "); System.out.println("3. Til að hætta "); val = lesa.nextint(); if (val == 1) { System.out.println("Sláðu inn fjölda gallona "); double gallon = lesa.nextdouble(); Nokkrar æfingar í forritun bls. 73 Hallgrímur Arnalds

74 double litrar = gallon*3.6; System.out.println(gallon+" gallon samsvara "+litrar+" litrum"); else if (val == 2) { System.out.println("Sláðu inn fjölda litra "); double litrar = lesa.nextdouble(); double gallon = litrar/3.6; System.out.println(litrar+" litrar samsvara "+gallon+" gallonum"); else if(val!= 3) System.out.println("veldu 1, 2 eða 3"); while (val!= 3); Æfingaverkefni föll Talnabil með falli // það þarf að importa Scanner klasanum // til að fá aðgang að honum public class TeljaFall{ Scanner lesaaflyklabordi = new Scanner(System.in); System.out.println("Fyrri tala: "); int fyrri = lesaaflyklabordi.nextint(); System.out.println("Seinni tala: "); int seinni = lesaaflyklabordi.nextint(); telja(fyrri,seinni); telja(11,17); public static void telja(int byrjun,int lok) { if (lok-byrjun <= 1) { System.out.println("það er engin tala á milli "+byrjun+" og " + lok); return; for (int teljari=byrjun+1 ; teljari<lok ; teljari++) System.out.println(teljari); Flatarmál ferhyrnings (FlatarmalFerhFall) public class FlatarmalFerhFall{ Scanner lesaaflyklabordi = new Scanner(System.in); // Forrit sem reiknar flatarmál ferhyrnings, Forritið notar fall sem sér um að // reikna flatarmálið og að birta það. System.out.print("Sláðu inn breidd ferhyrnings: "); double breidd = lesaaflyklabordi.nextdouble(); System.out.print("Sláðu inn lengd ferhyrnings: "); double lengd = lesaaflyklabordi.nextdouble(); // Kallað á fallið skrifaflatarmalferh. Fallið fær inn upplýsingar um // lengd og breidd, en reiknar flatarmál og birtir á skjá. skrifaflatarmalferh(lengd,breidd); public static void skrifaflatarmalferh(double len,double bre) { // Þegar fallið er keyrt upp, eru búnar til breyturnar len og bre, // og gildin sem eru í breytunum lengd og breidd eru afritaðar yfir í // breyturnar len og bre. // Nokkrar æfingar í forritun bls. 74 Hallgrímur Arnalds

75 // búin til breytan flatarmal, og niðurstaða sett inn í breytuna double flatarmal = len*bre; // niðurstaða skrifuð á skjá, en engum upplýsingum er skilað til // forrits sem kallar á fallið System.out.println("Ferhyrningur með lengd " + len + " og breiddina " + bre + " hefur flatarmálið " + flatarmal); Flatarmál hrings útgáfa 1 // það þarf að importa Scanner klasanum // til að fá aðgang að honum public class HringurUtg1{ Scanner lesaaflyklabordi = new Scanner(System.in); System.out.println("Radius: "); double radius = lesaaflyklabordi.nextdouble(); System.out.println("Flatarmál hringsins er: " + reiknaflatarmalhrings(radius)); System.out.println("Ummál hringsins er: " + reiknaummalhrings(radius)); public static double reiknaflatarmalhrings(double rad) { return rad*rad*3.1415; public static double reiknaummalhrings(double rad) { return 2*rad*3.1415; Lína í margföldunartöflu með falli (MargfoldunTafla1Fall) public class MargfoldunTafla1Fall { System.out.print("Hvaða línu á að birta? "); int lina = lesa.nextint(); skrifalinu(lina); public static void skrifalinu(int linunr) { System.out.println(linunr + " sinnum taflan: "); int margfeldi; for (int tala=1 ; tala<=10 ; tala++){ margfeldi = linunr*tala; System.out.print(" " + margfeldi); System.out.println(); Margföldunartafla með falli (MargfoldunTafla2Fall) public class MargfoldunTafla2Fall { skrifamargfoldurnartoflu(); public static void skrifamargfoldurnartoflu() { int margfeldi; System.out.println(" 10 x 10 margföldunartaflan"); for (int linunumer=1 ; linunumer<=10 ; linunumer++){ Nokkrar æfingar í forritun bls. 75 Hallgrímur Arnalds

76 skrifalinu(linunumer); public static void skrifalinu(int linunr) { int margfeldi; for (int tala=1 ; tala<=10 ; tala++){ margfeldi = linunr*tala; if (margfeldi < 10) System.out.print(" " + margfeldi ); else if (margfeldi < 100) System.out.print(" " + margfeldi); else System.out.print(" " + margfeldi); System.out.println(); Flatarmál ferhyrnings fall með skilagildi (FlatarmalFerhFallSkilagildi) public class FlatarmalFerhFallSkilagildi{ Scanner lesaaflyklabordi = new Scanner(System.in); // Forrit sem reiknar flatarmál ferhyrnings, Forritið notar fall sem sér um að // reikna flatarmálið og að birta það. System.out.print("Sláðu inn breidd ferhyrnings: "); double breidd = lesaaflyklabordi.nextdouble(); System.out.print("Sláðu inn lengd ferhyrnings: "); double lengd = lesaaflyklabordi.nextdouble(); // Kallað á fallið reiknaflatarmalferh. Fallið fær inn upplýsingar um // lengd og breidd, en skilar með skilagildi flatarmáli. double flatarmal=reiknaflatarmalferh(lengd, breidd); System.out.println("Ferhyrningur með lengd " + lengd + " og breiddina " + breidd + " hefur flatarmálið " + flatarmal); // ath. nú er skilagildi fallisins double en ekki void public static double reiknaflatarmalferh(double len,double bre) { // Þegar fallið er keyrt upp, eru búnar til breyturnar len og bre, og gildin sem // eru í breytunum lengd og breidd eru afritaðar yfir í breyturnar len og bre. // // búin til breytan flatarmal, og niðurstaða sett inn í breytuna double flatarmal = len*bre; // það sem er í breytunni flatarmál er skilað til aðalforrits return flatarmal; Flatarmál hrings (FlatarmalHringFallSkilagildi) // það þarf að importa Scanner klasanum // til að fá aðgang að honum public class FlatarmalHringFallSkilagildi Scanner lesaaflyklabordi = new Scanner(System.in); System.out.println("Radius: "); double radius = lesaaflyklabordi.nextdouble(); double flatarmal = reiknaflatarmalhrings(radius); System.out.println("Flatarmál hringsins er: " + flatarmal); public static double reiknaflatarmalhrings(double rad) { double fla = 2*rad*3.1415; Nokkrar æfingar í forritun bls. 76 Hallgrímur Arnalds

77 return fla; Fallið eldsneytiseydsla (FallEldsneyti) public class FallEldsneyti { int km; System.out.println("Sláðu inn ekna kílometra: "); km = lesa.nextint(); double litrar; System.out.println("Sláðu inn eyðslu í lítum: "); litrar = lesa.nextdouble(); double eydsla = eldsneytiseydsla(litrar, km); System.out.printf("Eyðsla per 100 km verur þá %4.2f litrar",eydsla); public static double eldsneytiseydsla(double lit, int kilom){ double eydsla; eydsla = lit / kilom * 100; return eydsla; Skattur Fall public class SkatturFall{ Scanner in = new Scanner(System.in); System.out.println("Álagningarprósenta? "); double alagpros = in.nextdouble(); System.out.println("Persónuafsláttur í krónum? "); int persafsl = in.nextint(); System.out.println("Laun í krónum? "); int laun = in.nextint(); double stadgreidsla = reikna_skatt(alagpros,persafsl,laun); System.out.println("Staðgreiðsla skatts verður þá krónur: "+stadgreidsla); public static double reikna_skatt(double alagpros, double persafsl, double laun){ double stgr = (laun * alagpros/100) - persafsl; if (stgr<0) stgr=0; return stgr; public static boolean greida_skatt(double alagpros, double persafsl, double laun){ if (reikna_skatt(alagpros,persafsl,laun)<=0) return false; else return true; Fallið deilanleg public class TestDeil { public static void main (String[] args){ System.out.println("Sláið inn tölu: "); Nokkrar æfingar í forritun bls. 77 Hallgrímur Arnalds

78 int tala = lesa.nextint(); System.out.println("Sláið inn tölu til að deila með: "); int deilari = lesa.nextint(); if (deilanleg(tala,deilari)) System.out.println(tala + " er deilanleg með "+ deilari); else System.out.println(tala + " er ekki deilanleg með "+ deilari); public static boolean deilanleg(int tala, int deilari) { if (tala % deilari == 0) return true; else return false; // einnig mögulegt public static boolean deilanleg2(int tala, int deilari) { return tala % deilari == 0; Litrar/gallon með falli, valmynd A liður, fallið í sama klasa public class LitrarGallonFallMenua { public static void main(string[] args){ int val=0; do{ System.out.println("Veldu aðgerð: "); System.out.println("1. Til að breyta gallon í litra "); System.out.println("2. Til að breyta litrum í gallon "); System.out.println("3. Til að hætta "); val = lesa.nextint(); if (val == 1) { System.out.println("Sláðu inn fjölda gallona "); double gallon = lesa.nextdouble(); double litrar = gallontolitrar(gallon); System.out.println(gallon+" gallon samsvara "+litrar+" litrum"); else if (val == 2) { System.out.println("Sláðu inn fjölda litra "); double litrar = lesa.nextdouble(); double gallon = litrartogallon(litrar); System.out.println(litrar+" litrar samsvara "+gallon+" gallonum"); else if(val!= 3) System.out.println("veldu 1, 2 eða 3"); while (val!= 3); public static double litrartogallon(double litr) { double gal; gal = litr/3.6; return gal; public static double gallontolitrar(double gal) { double litr; litr = gal * 3.6; return litr; B liður, fallið í klasanum Safn public class LitrarGallonFallMenub { public static void main(string[] args){ Nokkrar æfingar í forritun bls. 78 Hallgrímur Arnalds

79 int val=0; do{ System.out.println("Veldu aðgerð: "); System.out.println("1. Til að breyta gallon í litra "); System.out.println("2. Til að breyta litrum í gallon "); System.out.println("3. Til að hætta "); val = lesa.nextint(); if (val == 1) { System.out.println("Sláðu inn fjölda gallona "); double gallon = lesa.nextdouble(); double litrar = Safn.gallonToLitrar(gallon); System.out.println(gallon+" gallon samsvara "+litrar+" litrum"); else if (val == 2) { System.out.println("Sláðu inn fjölda litra "); double litrar = lesa.nextdouble(); double gallon = Safn.litrarToGallon(litrar); System.out.println(litrar+" litrar samsvara "+gallon+" gallonum"); else if(val!= 3) System.out.println("veldu 1, 2 eða 3"); while (val!= 3); public class Safn { public static double litrartogallon(double litr) { double gal; gal = litr/3.6; return gal; public static double gallontolitrar(double gal) { double litr; litr = gal * 3.6; return litr; Hlaupaár public class FallHlaupaar { System.out.println("Ártal: "); int artal; artal = lesa.nextint(); if ( erhlaupaar2(artal) ) System.out.println("Árið "+artal + " er hláupaár"); else System.out.println("Árið "+artal + " er ekki hláupaár"); // hér endar main fallið public static boolean erhlaupaar(int ar) { if (artal % 4 == 0) && (artal % 100!= 0) (artal%400==0) return true; else return false; // hér endar fallið // önnur útgáfa af fallinu public static boolean erhlaupaar2(int artal) { return (artal % 4 == 0) && (artal % 100!= 0) (artal%400==0); // hér endar fallið // hér endar klasinn Dagsetningaföll Athugið að hér er fallið og forritið sem notar fallið útfært í sitt hvorum klasanum: Nokkrar æfingar í forritun bls. 79 Hallgrímur Arnalds

80 public class PrufaHlaupaar { public static void main (String[] args) { int artal; // Ár System.out.println("Hvaða ár viltu prófa: "); artal = lesa.nextint(); if (DagsetningaFoll.hlaupaar(artal) ) System.out.println("Árið "+artal+" er hlaupaar"); else System.out.println("Árið "+artal+" er ekki hlaupaar"); public class DagsetningaFoll { public static boolean hlaupaar(int artal) { boolean erhlaupaar=false; // true ef hlaupaar, annars false if (artal % 4 == 0)erHlaupaar = true; if (artal % 100 == 0)erHlaupaar = false; if (artal % 400 == 0)erHlaupaar = true; return erhlaupaar; Æfingadæmi fylki Manhitastig2 public class D9_FO_h2007 { public static void main (String[] args) { System.out.println("Fjöldi hitastiga? "); int fjoldi = lesa.nextint(); double [] hitast = new double[fjoldi]; for (int i=0 ; i<hitast.length ; i++){ System.out.println("Hitastig? "); hitast[i] = lesa.nextdouble(); double max = hitast[0]; double min = hitast[0]; double sum = hitast[0]; for (int i=1 ; i<hitast.length ; i++){ if (hitast[i] < min) min = hitast[i]; if (hitast[i] > max) max = hitast[i]; sum += hitast[i]; double medalhitastig = sum/hitast.length; System.out.println("Hæsta hitastigið er: "+max); System.out.println("Lægsta hitastigið er: "+min); System.out.println("Meðalhitastig er: "+medalhitastig); Ýmislegt Bokstafur1 public class Bokstafur1 { public static void main (String[] args) { String inntak; Nokkrar æfingar í forritun bls. 80 Hallgrímur Arnalds

81 System.out.println("Sláðu inn bókstaf "); inntak = lesa.next(); // les inn eitt orð // (einn staf ef aðeins einn stafur sleginn inn char bokstafur = inntak.charat(0); System.out.println("Þú slóst inn bókstafinn: "+bokstafur); Sjóorusta Dæmi um lausn, útgáfa 1 public class Prof_Fo_h2007_d8_utg1 { public static void main(string args[]) { System.out.println("Fjöldi reita: "); int fjoldi = lesa.nextint(); System.out.println(fjoldi + " tilviljunarkenndir reitir eru: "); for (int i=1 ; i<= fjoldi ; i++){ int randtala= (int)(math.random()*10)+1; int randbokstafur= (int)(math.random()*10); randbokstafur = randbokstafur + (int)'a'; char takn = (char)randbokstafur; System.out.print(takn); System.out.print(randtala + " "); Dæmi um lausn, útgáfa 2 public class Prof_Fo_h2007_d8_utg2 { public static void main(string args[]) { System.out.println("Fjöldi reita: "); int fjoldi = lesa.nextint(); System.out.println(fjoldi + " tilviljunarkenndir reitir eru: "); for (int i=1 ; i<= fjoldi ; i++){ int randtala= (int)(math.random()*10)+1; int randbokstafur= (int)(math.random()*10); char takn; if (randbokstafur == 0) takn = 'A'; else if (randbokstafur == 1) takn = 'B'; else if (randbokstafur == 2) takn = 'C'; else if (randbokstafur == 3) takn = 'D'; else if (randbokstafur == 4) takn = 'E'; else if (randbokstafur == 5) takn = 'F'; else if (randbokstafur == 6) takn = 'G'; else if (randbokstafur == 7) takn = 'H'; else if (randbokstafur == 8) takn = 'I'; else takn = 'J'; System.out.print(takn); Nokkrar æfingar í forritun bls. 81 Hallgrímur Arnalds

82 System.out.print(randtala + " "); Dæmi um lausn, útgáfa 3 public class Prof_Fo_h2007_d8_utg3 { public static void main(string args[]) { System.out.println("Fjöldi reita: "); int fjoldi = lesa.nextint(); System.out.println(fjoldi + " tilviljunarkenndir reitir eru: "); String bokstafir = "ABCDEFGHIJ"; for (int i=1 ; i<= fjoldi ; i++){ int randtala= (int)(math.random()*10)+1; int randbokstafur= (int)(math.random()*10); char takn = bokstafir.charat(randbokstafur); System.out.print(takn); System.out.print(randtala + " "); Dæmi um lausn, útgáfa 4 public class Prof_Fo_h2007_d8_utg4 { public static void main(string args[]) { System.out.println("Fjöldi reita: "); int fjoldi = lesa.nextint(); System.out.println(fjoldi + " tilviljunarkenndir reitir eru: "); char[] bokstafir = {'A','B','C','D','E','F','G','H','I','J'; for (int i=1 ; i<= fjoldi ; i++){ int randtala= (int)(math.random()*10)+1; int randbokstafur= (int)(math.random()*10); char takn = bokstafir[randbokstafur]; System.out.print(takn); System.out.print(randtala + " "); Einingar klasi sem inniheldur nokkur föll til að umreikna mismunandi einingar // það þarf að importa Scanner klasanum // til að fá aðgang að honum public class Einingar{ double pund = kgtopund(0.453); System.out.println("Pundafjöldi: " + pund); double kilo = pundtokg(1.0); System.out.println("Kgfjöldi: " + kilo); double tommur = mtotommur(1.0); System.out.println("Tommufjöldi: " + pund); double metrar = tommurtometrar(1.ö); System.out.println("Tommufjöldi: " + pund); public static double kgtopund(double kg); { double pund = kg/0.453; Nokkrar æfingar í forritun bls. 82 Hallgrímur Arnalds

83 return pund; public static double pundtokg(double pund); { double kg = pund * 0.453; return kg; public static double mtotommur(double metrar); { return metrar*100/2.53; public static double tommurtometrar(double tommur); { return tommur*2.53/100; Æfingaverkefni klasar Land public class Land { private int staerd; private int ibuafjoldi; private String nafn; public Land(String nafn_inn, int staerd_inn, int ibuafjoldi_inn){ staerd=staerd_inn; ibuafjoldi=ibuafjoldi_inn; nafn = nafn_inn; public Land(){ staerd=0; ibuafjoldi=1; nafn = "ónefnt"; public void set_staerd(int staerd_inn){ staerd = staerd_inn; public void set_ibuafjoldi(int ibuafjoldi_inn){ ibuafjoldi = ibuafjoldi_inn; public void set_nafn(string nafn_inn){ nafn = nafn_inn; public String get_nafn(){ return nafn; public int get_staerd(){ return staerd; public int get_ibuafjoldi(){ return ibuafjoldi; public double thettbyli(){ double thettb; thettb= (double)ibuafjoldi/staerd; return thettb; public class TestLand { public static void main(string[] args){ Land landid = new Land(); Nokkrar æfingar í forritun bls. 83 Hallgrímur Arnalds

84 System.out.println("Hvað heitir landið? "); landid.set_nafn(lesa.next()); System.out.println("Hver er stærð landsins? "); landid.set_staerd(lesa.nextint()); System.out.println("Hver er íbúafjöldi landsins? "); landid.set_ibuafjoldi(lesa.nextint()); System.out.println("Stærð landsins er: "+landid.get_staerd()); System.out.println("Íbúafjöldi landsins er: "+landid.get_ibuafjoldi()); System.out.println("Nafn landsins er: "+landid.get_nafn()); System.out.println(landid.get_nafn()+" hefur "+landid.thettbyli()+ " ibua á ferkílómeter"); Æfingardæmi úr erfðum Hus Ibudarhus (bok) Dæmium klasann hus public class Hus { private int m3; private String gata; public hus(){ m3 = 0; gata = "nafnlaus"; public hus(int m3_inn, gata_inn){ m3 = m3_inn; gata = gata_inn; public void birta() { System.out.println("rúmmetrafjöldi " + m3 + " gata "+ gata) ; public void lesa() { System.out.println("rúmmetrafjöldi ") ; m3 = lesa.nextint(); System.out.println("gata ") ; gata = lesa.next(); public void setja_m3(int m3_inn) { m3 = m3_inn; public void setja_gata(string gata_inn) { gata = gata_inn; public int fa_m3() { return m3; public int fa_gata() { return gata; Nokkrar æfingar í forritun bls. 84 Hallgrímur Arnalds

85 Dæmium klasann ibudarhus sem erfir klasann hus public class Ibudarhus extends Hus{ private int ibfjoldi; public Ibudarhus(){ super(); ibfjoldi = 0; public Ibudarhus(int ibfjoldi_inn, int m3_inn, String gata_inn){ super(m3_inn,gata_inn); ibfjoldi = ibfjoldi_inn; public void setja_ibfjoldi(int ibfjoldi_inn) { ibfjoldi = ibfjoldi_inn; public int fa_ibfjoldi() { return ib_fjoldi; public void birta() { super.birta(); System.out.println("Fjöldi íbúða " + ibfjoldi) ; public void lesa() { super.lesa(); System.out.println("Fjöldi íbúða ") ; ibfjoldi = lesa.nextint(); Æfingaverkefni skil (interface) public interface TvividdarHlutur { public double ummal(); public double flatarmal(); public void lesastaerd(); public class Ferningur implements TvividdarHlutur{ private double breidd; public double ummal(){ return 4*breidd; public double flatarmal(){ return breidd*breidd; public void lesastaerd(){ System.out.println("Hveð er lengd hliðanna í ferningnum: "); breidd = lesa.nextdouble(); public class Ferhyrningur implements TvividdarHlutur{ private double breidd; private double lengd; public double ummal(){ return 2*breidd+2*lengd; Nokkrar æfingar í forritun bls. 85 Hallgrímur Arnalds

86 public double flatarmal(){ return lengd*breidd; public void lesastaerd(){ System.out.println("Hver er lengd ferhyrningsins: "); lengd = lesa.nextdouble(); System.out.println("Hver er breidd ferhyrningsins: "); breidd = lesa.nextdouble(); public class Hringur implements TvividdarHlutur{ private double radius; public double ummal(){ return 2*radius*Math.PI; public double flatarmal(){ return radius*radius*math.pi; public void lesastaerd(){ System.out.println("Hver er radius hringsins: "); radius = lesa.nextdouble(); public class TestTvividdarHlutur { public static void main(string[] args){ do { Hringur hringur1 = new Hringur(); Ferningur ferningur1 = new Ferningur(); Ferhyrningur ferhyrningur1 = new Ferhyrningur(); System.out.println("Veldu hvers konar tvívíddarhlut þú ætlar að vinna með "); System.out.println(" 1. Hring "); System.out.println(" 2. Ferning "); System.out.println(" 3. Ferhyrng "); System.out.println(" 4. Hætta í forriti "); int val = lesa.nextint(); if (val == 1) vinnatvividdarhlut(hringur1); else if (val == 2) vinnatvividdarhlut(ferningur1); else if (val == 3) vinnatvividdarhlut(ferhyrningur1); else break; while (true); System.out.println("Bless"); public static void vinnatvividdarhlut(tvividdarhlutur form){ form.lesastaerd(); System.out.println("Þá verður ummálið: " + form.ummal()); System.out.println("Þá verður flatarmálið: " + form.flatarmal()); Nokkrar æfingar í forritun bls. 86 Hallgrímur Arnalds

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

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

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

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

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

Þ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

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

t i l l j ó s r i t u n a r

t i l l j ó s r i t u n a r Sproti 3a v e r k e f n a b l ö ð t i l l j ó s r i t u n a r Sproti 3a Verkefnablöð til ljósritunar Gyldendal Norsk Forlag AS 2006 Heiti á frummálinu: Multi Kopiperm 1 4 Hönnun og útlit: Børre Holth Kápuhönnun

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

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

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

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

VERKEFNABÓK með KENNSLUBÓK Í BÓKHALDI FYRIR GRUNNSKÓLA

VERKEFNABÓK með KENNSLUBÓK Í BÓKHALDI FYRIR GRUNNSKÓLA VERKEFNABÓK með KENNSLUBÓK Í BÓKHALDI FYRIR GRUNNSKÓLA Verkefnabók bókhald Sigurjón Gunnarsson Verkefnabók með Kennslubók í bókhaldi netútgáfa Sigurjón Gunnarsson 1991, 2000, 2006 Kápa: Auglýsingastofa

Detaljer

EFNISYFIRLIT. Sproti 1a Verkefnahefti til ljósritunar

EFNISYFIRLIT. Sproti 1a Verkefnahefti til ljósritunar Sproti 1a v e r k e f n a h e f t i t i l l j ó s r i t u n a r EFNISYFIRLIT 1 Húfur og bakpokar 2 Flokkaðu myndirnar 3 Mynstur 1 4 Mynstur 2 5 Mynstur 3 6 Fylgdu mynstrinu 1 7 Fylgdu mynstrinu 2 8 Finndu

Detaljer

majl Eríndi nr. Þ /^ 3 /^ 3 komudagur 2% l 20IÍ

majl Eríndi nr. Þ /^ 3 /^ 3 komudagur 2% l 20IÍ Afskriftir nátnslána - minnisblað majl Eríndi nr. Þ /^ 3 /^ 3 komudagur 2% l 20IÍ 1Norður Noregi hafa námslán íbúa um langt skeið verið færð niður um vissa upphæð árlega. Námslán eru afskrifuð um 10% á

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

Stika 1a Verkefnablöð til ljósritunar. Gyldendal Norsk Forlag AS útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa

Stika 1a Verkefnablöð til ljósritunar. Gyldendal Norsk Forlag AS útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa Stika 1a v e r k e f n a b l ö ð t i l l j ó s r i t u n a r Stika 1a Verkefnablöð til ljósritunar Gyldendal Norsk Forlag AS 2006 1. útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa Ritstjóri norsku

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

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

2. Járnbending. Almenn ákvæði, sjá verklýsingu. 2.1 Gæðakröfur, sjá verklýsingu. 2.2 Tákn: F201

2. Járnbending. Almenn ákvæði, sjá verklýsingu. 2.1 Gæðakröfur, sjá verklýsingu. 2.2 Tákn: F201 ftirfarandi skýringar og leiðbeiningar eiga við þar sem annað er ekki tekið fram á teikningum eða í verklýsingu:. lmennt. Númerakerfi teikninga Teikninganúmer: -V(7)0. Hæðarkerfi og mál Kótar og hnit eru

Detaljer

BÖRN Í FJÖLTYNGDUM FJÖLSKYLDUM. UPPLÝSINGABÆKLINGUR Islandsk

BÖRN Í FJÖLTYNGDUM FJÖLSKYLDUM. UPPLÝSINGABÆKLINGUR Islandsk BÖRN Í FJÖLTYNGDUM FJÖLSKYLDUM UPPLÝSINGABÆKLINGUR Islandsk 1 FORMÁLI Upplýsingabæklingurinn fjallar um 10 spurningar sem foreldrar oft spyrja og sem beinast að fjöltyngdum málþroska barna. Að auki er

Detaljer

t i l l j ó s r i t u n a r

t i l l j ó s r i t u n a r Sproti a v e r k e f n a b l ö ð t i l l j ó s r i t u n a r Sproti a Verkefnablöð til ljósritunar Gyldendal Norsk Forlag AS Heiti á frummálinu: Multi Kopiperm Hönnun og útlit: Børre Holth Kápuhönnun Hanne

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

Stika 2a Verkefnablöð til ljósritunar. Gyldendal Norsk Forlag AS útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa

Stika 2a Verkefnablöð til ljósritunar. Gyldendal Norsk Forlag AS útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa Stika 2a v e r k e f n a b l ö ð t i l l j ó s r i t u n a r Stika 2a Verkefnablöð til ljósritunar Gyldendal Norsk Forlag AS 2006 1. útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa Ritstjóri norsku

Detaljer

Nutricia. næringardrykkir

Nutricia. næringardrykkir 1 Nutricia næringardrykkir Athugið: Nutridrink næringardrykki skal geyma við 5-25 C, geymast í 24 klst. í kæli eftir að flaskan hefur verið opnuð. Flestir kjósa að drekka næringardrykkina kalda en einnig

Detaljer

Eðli skuldajafnaðar BA-ritgerð í lögfræði

Eðli skuldajafnaðar BA-ritgerð í lögfræði Eðli skuldajafnaðar BA-ritgerð í lögfræði Þorsteinn Ingason Lagadeild Félagsvísindasvið Umsjónarkennari: Heiðar Ásberg Atlason Júní 2013 Þorsteinn Ingason Eðli skuldajafnaðar BA-ritgerð í lögfræði Umsjónarkennari:

Detaljer

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen Forkurs INF1010 Dag 1 Andreas Færøvig Olsen ([email protected]) Tuva Kristine Thoresen ([email protected]) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output

Detaljer

UM SJÁVARFALLASPÁR. Náttúiufrœðingurinn 69 (I), bls , 2000.

UM SJÁVARFALLASPÁR. Náttúiufrœðingurinn 69 (I), bls , 2000. ÞORSTEINN SÆMUNDSSON UM SJÁVARFALLASPÁR Sjávarföllin hafa frá fyrstu tíð vakið athygli þeirra sem við strendur búa eða sjómennsku stunda. Að sæfarendur þurfi að taka tillit til flóðs og fjöru er deginum

Detaljer

FYLGISEÐILL: UPPLÝSINGAR FYRIR NOTANDA LYFSINS. Husk psyllium fræskurn, hörð hylki. Plantago ovata Forsk.

FYLGISEÐILL: UPPLÝSINGAR FYRIR NOTANDA LYFSINS. Husk psyllium fræskurn, hörð hylki. Plantago ovata Forsk. FYLGISEÐILL: UPPLÝSINGAR FYRIR NOTANDA LYFSINS Husk psyllium fræskurn, hörð hylki Plantago ovata Forsk. Lesið allan fylgiseðilinn vandlega þar sem hann veitir mikilvægar upplýsingar um notkun lyfsins.

Detaljer

Stika 3b Verkefnablöð til ljósritunar. Gyldendal Norsk Forlag AS útgáfa. Heiti á frummálinu: Del 2 Kopioriginaler til Multi 7

Stika 3b Verkefnablöð til ljósritunar. Gyldendal Norsk Forlag AS útgáfa. Heiti á frummálinu: Del 2 Kopioriginaler til Multi 7 Stika 3b v e r k e f n a b l ö ð t i l l j ó s r i t u n a r Stika 3b Verkefnablöð til ljósritunar Gyldendal Norsk Forlag AS 200. útgáfa Heiti á frummálinu: Del 2 Kopioriginaler til Multi 7 Ritstjóri norsku

Detaljer

Lýsing á skrá og leiðbeiningar

Lýsing á skrá og leiðbeiningar Lýsing á skrá og leiðbeiningar Illustrasjonsfoto: Colourbox Hönnun / umbrot Gøril Nordgård, SKDE Ljósmyndir Colourbox Prentun Prentsmiðja við Háskólasjúkrahúsið Norður-Noregi HF Upplag 100 Útgefið Október

Detaljer

Magn og uppspretta svifryks

Magn og uppspretta svifryks Ylfa Thordarson Nemi í umhverfis- og byggingaverkfræði Magn og uppspretta svifryks Rannsókn á loftmengun í Reykjavík. Október 2000 1. Samantekt Nýlega hefur almenningi orðið ljóst að höfuðborgarsvæðið

Detaljer

Beiting enduröflunarverðs við ákvörðun fjárhæðar eignarnámsbóta

Beiting enduröflunarverðs við ákvörðun fjárhæðar eignarnámsbóta Sigurbjörg Rut Hoffritz Beiting enduröflunarverðs við ákvörðun fjárhæðar eignarnámsbóta - BA-ritgerð í lögfræði - Umsjónarkennari: Arnar Þór Stefánsson Lagadeild Háskóla Íslands Júní 2009 EFNISYFIRLIT

Detaljer

Stika 1a Verkefnablöð til ljósritunar. Gyldendal Norsk Forlag AS útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa

Stika 1a Verkefnablöð til ljósritunar. Gyldendal Norsk Forlag AS útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa Stika 1a v e r k e f n a b l ö ð t i l l j ó s r i t u n a r Stika 1a Verkefnablöð til ljósritunar Gyldendal Norsk Forlag AS 2006 1. útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa Ritstjóri norsku

Detaljer

Leiðbeiningar

Leiðbeiningar . gr. byggingarreglugerðar, nr. 112/2012, sbr. rgl. nr. 1173/2012, 350/2013 og 280/2014 Lög um mannvirki, nr. 160/2010 Bílastæði hreyfihamlaðra Í grein í byggingarreglugerð segir: Bílastæði hreyfihamlaðra

Detaljer

Meginreglur um bótaábyrgð eignarnema

Meginreglur um bótaábyrgð eignarnema Guðlaug Björg Ingólfsdóttir Meginreglur um bótaábyrgð eignarnema -BA ritgerð til BA prófs í lögfræði - Umsjónarkennari: Arnar Þór Stefánsson Lagadeild Háskóla Íslands Apríl 2009 EFNISYFIRLIT 1 Inngangur...2

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

KENNARABÓK. Stærðfræði fyrir unglingastig. Grete Normann Tofteberg Janneke Tangen Ingvill Merete Stedøy-Johansen Bjørnar Alseth. Námsgagnastofnun 7411

KENNARABÓK. Stærðfræði fyrir unglingastig. Grete Normann Tofteberg Janneke Tangen Ingvill Merete Stedøy-Johansen Bjørnar Alseth. Námsgagnastofnun 7411 1A SKALI KENNARABÓK Stærðfræði fyrir unglingastig Grete Normann Tofteberg Janneke Tangen Ingvill Merete Stedøy-Johansen Bjørnar Alseth Námsgagnastofnun 7411 Skali 1A Kennarabók Gyldendal Norsk Forlag AS

Detaljer

Virkjunarkostir til umfjöllunar í 3. áfanga rammaáætlunar Kafli 6.31 R3133A Bláfellsvirkjun

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

Detaljer

Notendastýrð persónuleg aðstoð á Norðurlöndum

Notendastýrð persónuleg aðstoð á Norðurlöndum Notendastýrð persónuleg aðstoð á Norðurlöndum Greinargerð Sambands íslenskra sveitarfélaga til velferðarnefndar Alþingis Janúar 2018 Í þessari greinargerð er fjallað um stærstu megindrætti í skipulagi

Detaljer

Kennsluleiðbeiningar. Geisli 3B Kennsluleiðbeiningar Námsgagnastofnun

Kennsluleiðbeiningar. Geisli 3B Kennsluleiðbeiningar Námsgagnastofnun Kennsluleiðbeiningar 25. febrúar 2013 Efnisyfirlit Yfirlit yfir námsefni 7. bekkjar... 3 Geisli 3B... 4 Skýringar á táknum... 6 Brot... 7 Hlutföll... 8 Talnafræði... 15 Ekki er allt sem sýnist... 19 Mynstur

Detaljer

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

Leiðbeiningar 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 Bílastæði hreyfihamlaðra Í grein í byggingarreglugerð segir: Bílastæði hreyfihamlaðra

Detaljer

Stika 2a Verkefnablöð til ljósritunar. Gyldendal Norsk Forlag AS útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa

Stika 2a Verkefnablöð til ljósritunar. Gyldendal Norsk Forlag AS útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa Stika 2a v e r k e f n a b l ö ð t i l l j ó s r i t u n a r Stika 2a Verkefnablöð til ljósritunar Gyldendal Norsk Forlag AS 2006 1. útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa Ritstjóri norsku

Detaljer

Stika 1b Verkefnablöð til ljósritunar. Gyldendal Norsk Forlag AS útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa

Stika 1b Verkefnablöð til ljósritunar. Gyldendal Norsk Forlag AS útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm 1. útgáfa Stika b v e r k e f n a b l ö ð t i l l j ó s r i t u n a r Stika b Verkefnablöð til ljósritunar Gyldendal Norsk Forlag AS 2006. útgáfa. Heiti á frummálinu: Multi 5 7 Kopiperm. útgáfa Ritstjóri norsku

Detaljer

SKALI LAUSNIR STÆRÐFRÆÐI FYRIR UNGLINGASTIG NEMENDABÓK. Menntamálastofnun 8696

SKALI LAUSNIR STÆRÐFRÆÐI FYRIR UNGLINGASTIG NEMENDABÓK. Menntamálastofnun 8696 2B SKALI NEMENDABÓK STÆRÐFRÆÐI FYRIR UNGLINGASTIG LAUSNIR Menntamálastofnun 8696 Kafli 4 Flatarmál og ummál 4. Allir nema C hafa rétt fyrir sér. 4.2 250 cm (= 2,50 m) langur kantur. 4.3 3 m 4.4 a b 4 c

Detaljer

Nokkur blöð úr Hauksbók

Nokkur blöð úr Hauksbók Hugvísindasvið Nokkur blöð úr Hauksbók nokkur atriði nokkuð endurskoðuð Ritgerð til B.A. prófs Pavel Vondřička maí 2009 Háskóli Íslands Hugvísindasvið Íslenska fyrir erlenda stúdenta Nokkur blöð úr Hauksbók

Detaljer

Leiðbeiningar um samtöl barnaverndarstarfsmanna við börn. Talaðu við mig!

Leiðbeiningar um samtöl barnaverndarstarfsmanna við börn. Talaðu við mig! Leiðbeiningar um samtöl barnaverndarstarfsmanna við börn Talaðu við mig! barnaverndar arstarfsmanna við börn Innihald Formáli... 5 Réttur barna og unglinga til þátttöku... 6 Tilgangurinn með leiðbeiningunum...

Detaljer

Øvingsoppgaver i norrønt

Øvingsoppgaver i norrønt Robert K. Paulsen Øvingsoppgaver i norrønt Del 2 (Leksjon 4) for Fjernord- studentene våren 2014 NOSP103- F Institutt for lingvistiske, litterære og estetiske studier Universitetet i Bergen Versjonshistorie

Detaljer

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm Mer om easyio Mer om forgreninger Løkker 7. september 2004 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 4 1 Tre måter å lese fra terminal Først:

Detaljer

Fylgiseðill: Upplýsingar fyrir notanda lyfsins. Ringer-Acetat Baxter Viaflo, innrennslislyf, lausn

Fylgiseðill: Upplýsingar fyrir notanda lyfsins. Ringer-Acetat Baxter Viaflo, innrennslislyf, lausn Fylgiseðill: Upplýsingar fyrir notanda lyfsins Ringer-Acetat Baxter Viaflo, innrennslislyf, lausn Virk efni: natríumklóríð, kalíumklóríð, kalsíumklóríð tvíhýdrat, magnesíumklóríð hexahýdrat og natríumacetat

Detaljer

Hámarkshraði á tveggja akreina

Hámarkshraði á tveggja akreina Hámarkshraði á tveggja akreina þjóðvegum Athugun á norskri aðferð við ákvörðun hámarkshraða Nóvember 2004 Einar M. Magnússon Þórólfur Nielsen Haraldur Sigþórsson Unnið af: Einari Má Magnússyni og Þórólfi

Detaljer

Islandsk bøyingsskjema

Islandsk bøyingsskjema Islandsk bøyingsskjema Skjemaet er bygd opp som parallell til Odd Einar Haugen: «Norrønt bøyingsskjema» (folk.uib.no/hnooh/materiell/boyingsskjema3-2.pdf), ettersom det på kurset «Språkhistorie og talemål»

Detaljer

Leiðbeiningar Reglur um veðurathuganir, skýrslufærslu og skeytasendingar á skeytastöðvum

Leiðbeiningar Reglur um veðurathuganir, skýrslufærslu og skeytasendingar á skeytastöðvum Leiðbeiningar 08001 Reglur um veðurathuganir, skýrslufærslu og skeytasendingar á skeytastöðvum VÍ-ES01 Reykjavík 2008 EFNISYFIRLIT Formáli... 5 1. Inngangur... 7 2. Hitastig... 10 3. Loftþrýstingur...

Detaljer

33 Dagurinn minn. 1. Dagurinn hjá Lilju. 1.1 Spyrjið og svarið. Orðaröð

33 Dagurinn minn. 1. Dagurinn hjá Lilju. 1.1 Spyrjið og svarið. Orðaröð 33 Dagurinn minn 1. Dagurinn hjá Lilju H2.22 Lilja er sjúkraliði. Hún vinnur oft á næturvöktum. Þegar hún vinnur á nóttunni vaknar hún klukkan þrjú á daginn. Fyrst fer hún í sturtu, borðar hádegismat og

Detaljer

Endurskoðun reglna um greinarmerkjasetningu skýrsla fyrir Íslenska málnefnd

Endurskoðun reglna um greinarmerkjasetningu skýrsla fyrir Íslenska málnefnd Reykjavík 4. desember 2017 Endurskoðun reglna um greinarmerkjasetningu skýrsla fyrir Íslenska málnefnd Jóhannes B. Sigtryggsson 1 Efnisyfirlit 1. Inngangur... 2 2 Yfirlit... 4 2.1 Kaflar í auglýsingunni

Detaljer

Heimildin til nafnleyndar vitna í sakamálum BA ritgerð í lögfræði

Heimildin til nafnleyndar vitna í sakamálum BA ritgerð í lögfræði Heimildin til nafnleyndar vitna í sakamálum BA ritgerð í lögfræði Berglind Hermannsdóttir Lagadeild Félagsvísindasvið Friðrik Ársælsson Október 2013 Berglind Hermannsdóttir Heimildin til nafnleyndar vitna

Detaljer

Merki og Kerfi - Verklegt - Æfing 5. Albert Ingi Haraldsson

Merki og Kerfi - Verklegt - Æfing 5. Albert Ingi Haraldsson Merki og Kerfi - Verklegt - Æfing 5 Albert Ingi Haraldsson 7. nóvember 2011 4.6 Amplitude Modulation and the Continuous-Time Fourier Transform In this exercise we will involve the signal, x(t) = m 1 (t)cos(2π

Detaljer

í öðrum norrænum ríkjum Magnús Karel Hannesson sviðsstjóri Samband íslenskra sveitarfélaga

í öðrum norrænum ríkjum Magnús Karel Hannesson sviðsstjóri Samband íslenskra sveitarfélaga Persónukjör í sveitarstjórnarkosningum tjó i í öðrum norrænum ríkjum Magnús Karel Hannesson sviðsstjóri Samband íslenskra sveitarfélaga FINNLAND Kosningarréttur - kjörgengi Kosningarréttur sambærilegur

Detaljer

Stærðfræðin - skimun Þróunarverkefni Leikskólans Pálmholts unnið í samstarfi við útgefendur skimunartækisins MÍÓ

Stærðfræðin - skimun Þróunarverkefni Leikskólans Pálmholts unnið í samstarfi við útgefendur skimunartækisins MÍÓ Leikskólinn Pálmholt Stærðfræðin - skimun Þróunarverkefni Leikskólans Pálmholts 2016 2017 unnið í samstarfi við útgefendur skimunartækisins MÍÓ 1 Inngangur Námskrá leikskóla leggur línur um inntak, starfshætti

Detaljer

heimilistæki Kaupleiðbeiningar VERÐLÆKKUN! Vegna verðlækkunar er verðið í kaupleiðbeiningunum

heimilistæki Kaupleiðbeiningar VERÐLÆKKUN! Vegna verðlækkunar er verðið í kaupleiðbeiningunum Kaupleiðbeiningar heimilistæki Sumar vörurnar sem sýndar eru hér gætu verið ófáanlegar tímabundið í versluninni. Vinsamlega hafið samband við starfsfólk okkar eða kíkið á www.ikea. is til að fá frekari

Detaljer

t i l l j ó s r i t u n a r

t i l l j ó s r i t u n a r Sproti 3b v e r k e f n a b l ö ð t i l l j ó s r i t u n a r Sproti 3b Verkefnablöð til ljósritunar Gyldendal Norsk Forlag AS 2006 Heiti á frummálinu: Multi Kopiperm 1 4 Hönnun og útlit: Børre Holth Kápuhönnun

Detaljer

LV Heiðagæsaathuganir á Snæfellsöræfum 2012

LV Heiðagæsaathuganir á Snæfellsöræfum 2012 LV-2013-047 Heiðagæsaathuganir á Snæfellsöræfum 2012 LV-2013-047 Heiðagæsaathuganir á Snæfellsöræfum 2012 Apríl 2013 Efnisyfirlit Inngangur... 8 Rannsóknasvæði... 8 Aðferðir... 9 Niðurstöður... 10 Heiðagæsatalning

Detaljer

Alltaf sami Grallarinn?

Alltaf sami Grallarinn? Tónlistardeild Hljóðfæraleikur Alltaf sami Grallarinn? Samantekt á efni allra 19 útgáfna Grallarans Ritgerð til BMus-prófs í hljóðfæraleik Kristín Þóra Pétursdóttir Haustönn 2016 Tónlistardeild Hljóðfæraleikur

Detaljer

Um upplýsingaskyldu seljanda í fasteignakaupum og fleiri reglur laga nr. 40/2002 um fasteignakaup

Um upplýsingaskyldu seljanda í fasteignakaupum og fleiri reglur laga nr. 40/2002 um fasteignakaup Grímur Hergeirsson Um upplýsingaskyldu seljanda í fasteignakaupum og fleiri reglur laga nr. 40/2002 um fasteignakaup - Meistararitgerð í lögfræði - Umsjónarkennari: Viðar Már Matthíasson Lagadeild Háskóla

Detaljer

Dæmi um eldvarnarveggi, hæðaskil og eldvarnarhurðir

Dæmi um eldvarnarveggi, hæðaskil og eldvarnarhurðir Dæmi um eldvarnarveggi, hæðaskil og eldvarnarhurðir Veggir og hæðaskil skv. dæmunum hér á eftir teljast uppfylla kröfur um brunamótstöðu með eftirfarandi takmörkunum: a. Hámarkshæð veggja skal vera 3,0

Detaljer

Kjarnaborun í Tjörnessetlögin til að meta þroska lífrænna efna

Kjarnaborun í Tjörnessetlögin til að meta þroska lífrænna efna Verknr. 8-503100 Bjarni Richter Kjarnaborun í Tjörnessetlögin til að meta þroska lífrænna efna Áfangaskýrsla Unnið fyrir Auðlindadeild Orkustofnunar OS-2001/051 Ágúst 2001 Orkustofnun Rannsóknasvið Reykjavík:

Detaljer

SKALI STÆRÐFRÆÐI FYRIR UNGLINGASTIG VERKEFNAHEFTI. Menntamálastofnun 8670

SKALI STÆRÐFRÆÐI FYRIR UNGLINGASTIG VERKEFNAHEFTI. Menntamálastofnun 8670 2B SKALI VERKEFNAHEFTI STÆRÐFRÆÐI FYRIR UNGLINGASTIG Menntamálastofnun 8670 Efnisyfirlit Verkefnablöð í Skala 2B 4. kafli 2.4.1 Hve marga ferninga finnur þú? 2.4.2 Flatarmálslottó 2.4.3 Flatarmál hrings

Detaljer

Málið er höfðað með ákæru ríkissaksóknara dagsettri 8. mars 2013, á hendur:

Málið er höfðað með ákæru ríkissaksóknara dagsettri 8. mars 2013, á hendur: -Árið 2013, föstudaginn 7. júní, er á dómþingi Héraðsdóms Reykjavíkur, sem háð er í Dómhúsinu við Lækjartorg af héraðsdómurunum Guðjóni St. Marteinssyni, sem dómsformanni, Barböru Björnsdóttur og Halldóri

Detaljer

Innlesning fra tastatur med easyio. INF1000 høst 2010. Vi må først skrive i toppen av programmet: import easyio.*;

Innlesning fra tastatur med easyio. INF1000 høst 2010. Vi må først skrive i toppen av programmet: import easyio.*; Innlesning fra tastatur med easyio INF1000 høst 2010 Forelesning 2: Innlesning fra terminal Boolean-variable if-setninger Løkker Litt mer om heltall: divisjon og modulo Vi må først skrive i toppen av programmet:

Detaljer

Fréttabréf -átak í sparnaði- Kæra samstarfsfólk gjörgæsludeildar og vöknunar

Fréttabréf -átak í sparnaði- Kæra samstarfsfólk gjörgæsludeildar og vöknunar Fréttabréf Fréttabréf -átak í sparnaði- Kæra samstarfsfólk gjörgæsludeildar og vöknunar Eins og öllum er kunnugt fara tímar sparnaðar og aðhalds í hönd. Hagræðingarkrafan á heilbrigðisráðuneytið mun vera

Detaljer

Helstu nýmæli laga nr. 150/2007

Helstu nýmæli laga nr. 150/2007 Svanhildur Anna Magnúsdóttir Helstu nýmæli laga nr. 150/2007 -BA ritgerð í lögfræði - Umsjónarkennari: Heiðar Ásberg Atlason Lagadeild Háskóla Íslands Júní 2009 EFNISYFIRLIT 1. Inngangur... 3 2. Forsaga

Detaljer

INF2100. Oppgaver 26. september til 1. oktober 2007

INF2100. Oppgaver 26. september til 1. oktober 2007 INF2100 Oppgaver 26. september til 1. oktober 2007 1 Språket Denne uken skal vi implementere en utvidelse av språket fra forrige ukes oppgave. Syntaksen er vist i figur 1 på neste side og betydning er

Detaljer

1. Inngangur. 2. Önnur móðurmál en íslenska

1. Inngangur. 2. Önnur móðurmál en íslenska 1 1. Inngangur Ýmsir geta ekki nýtt sér hefðbundna kennslu í íslensku í grunnskóla. Hluti þeirra hefur gengið undir nafninu nýbúar. Í Reglugerð um íslenskukennslu nemenda með annað móðurmál en íslensku

Detaljer

Íslenskar Áfangaskýrsla olíur til vegagerðar

Íslenskar Áfangaskýrsla olíur til vegagerðar Ákvörðun bindiefnismagns í klæðingar Íslenskar Áfangaskýrsla olíur til vegagerðar júlí 2016 Efnisyfirlit 1. INNGANGUR... 1 2. TILRAUNIR MEÐ ÚTLÖGN KLÆÐINGA MEÐ MIS MIKLU MAGNI BINDIEFNIS1 2.1 TILGANGUR

Detaljer

Eksamen FSP6074 Islandsk II PSP5732 Islandsk nivå II. Nynorsk/Bokmål

Eksamen FSP6074 Islandsk II PSP5732 Islandsk nivå II. Nynorsk/Bokmål Eksamen 22.05.2017 FSP6074 Islandsk II PSP5732 Islandsk nivå II Nynorsk/Bokmål Nynorsk Eksamensinformasjon Eksamenstid Hjelpemiddel Eksamen varer i 5 timar. Alle hjelpemiddel er tillatne, bortsett frå

Detaljer

Handbók í hönnun rafkerfa

Handbók í hönnun rafkerfa Handbók í hönnun rafkerfa Útgefandi: Rafstaðlaráð 1. úgáfa, 2003 Handbók í hönnun rafkerfa Útgefandi: Rafstaðlaráð Umsjón: Tækninefnd á vegum RST Gísli Júlíusson formaður, Kjartan Steinbach, Sigurður Geirsson

Detaljer

Programmering Høst 2017

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

Detaljer

Hugtakið gáleysi í skilningi 215. gr. almennra hegningarlaga nr. 19/1940

Hugtakið gáleysi í skilningi 215. gr. almennra hegningarlaga nr. 19/1940 BA-ritgerð í lögfræði Hugtakið gáleysi í skilningi 215. gr. almennra hegningarlaga nr. 19/1940 Rakel Birna Þorsteinsdóttir Leiðbeinandi: Halldór Rósmundur Guðjónsson Apríl 2016 BA-ritgerð í lögfræði Hugtakið

Detaljer

INF1000 : Forelesning 1 (del 2)

INF1000 : Forelesning 1 (del 2) INF1000 : Forelesning 1 (del 2) Java Variable og tilordninger Heltall, desimaltall og sannhetsverdier Utskrift på skjerm Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet

Detaljer

Almennt um bókhald ríkisins

Almennt um bókhald ríkisins Almennt um bókhald ríkisins Bókhald ríkisins er fært í Oracle, (Oracle E-Buisness Suite). Fjárhags- og mannauðskerfi ríkisins, nefnt Orri, er samhæfð heildarlausn í viðskiptahugbúnaði. Kerfið keyrir á

Detaljer

Drög að frumvarpi til laga um breytingar á lögum um þjóðskrá og almannaskráningu, nr. 54/1962, með síðari breytingum.

Drög að frumvarpi til laga um breytingar á lögum um þjóðskrá og almannaskráningu, nr. 54/1962, með síðari breytingum. Drög að frumvarpi til laga um breytingar á lögum um þjóðskrá og almannaskráningu, nr. 54/1962, með síðari breytingum. 1. gr. Eftirfarandi breytingar verða á 2. tölul. 1. mgr. 4. gr. laganna: a. Á brott

Detaljer

1 Inngangur Kristín Helga Gunnarsdóttir Ríólítreglan Þýðingar og þýðingafræði... 5

1 Inngangur Kristín Helga Gunnarsdóttir Ríólítreglan Þýðingar og þýðingafræði... 5 Efnisyfirlit 1 Inngangur... 2 1.1 Kristín Helga Gunnarsdóttir... 3 1.2 Ríólítreglan... 3 2 Þýðingar og þýðingafræði... 5 2.1 Hvað eru þýðingar?... 5 2.2 Hugtakið jafngildi... 6 2.2.1 Hvað er jafngildi?...

Detaljer