35
Kafli 5 Reiknirit © 2007 Pearson Addison-Wesley. All rights reserved

Kafli 5hh/kennsla/tos/slides05_isl.pdf · 2006. 10. 16. · © 2007 Pearson Addison-Wesley. All rights reserved 0-3 Skilgreininga reiknirita Reiknirit er raðað mengi ótvíðræðra,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • Kafli 5

    Reiknirit

    © 2007 Pearson Addison-Wesley.All rights reserved

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-2

    Kafli 5: Reiknirit

    • 5.1 Hugtakið reiknirit (algorithm)• 5.2 Táknun reiknirita• 5.3 Uppgötvun reiknirita• 5.4 Ítranir• 5.5 Endurkvæmni (recursive structures)• 5.6 Hagkvæmni og réttar niðurstöður

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-3

    Skilgreininga reiknirita

    Reiknirit er raðað mengi ótvíðræðra, framkvæmanlegra skrefa sem skilgreina endanlegt ferli.

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-4

    Táknun reiknirita

    • Krefst vel-skilgreindra grunnaðgerða• Safn grunnaðgerða myndar einskonar

    forritunarmál

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-5

    Mynd 5.2 Búa til fugl úr ferköntuðu blaði

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-6

    Mynd 5.3 Grunnaðgerðir Origami

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-7

    Grunnaðgerðir sauðakóða (pseudocode)

    • Gildisveiting nafn segð• Skilyrt val ef skilyrði þá aðgerð• Endurtekin keyrsla meðan skilyrði gera aðgerð• Stef (procedure) stef nafn (viðfangs nöfn)

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-8

    Mynd 5.4 Stefið Greetings ísauðakóða

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-9

    Þrep Polya við lausn verkefna

    • 1. Skilja verkefnið.• 2. Búa til áætlun til að leysa verkefnið.• 3. Framkvæma áætlunina.• 4. Meta lausnina með tilliti til nákvæmni og

    hvort mögulegt sé að nota hana til að leysa önnur verkefni.

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-10

    Koma fætinum inn fyrir dyrnar

    • Reyna að Vinna verkefnið aftur á bak• Leysa einfaldara skylt verkefni

    – Slaka á sumum skorðum verkefnisins– Leysa hluta verkefnisins fyrst (neðansækin

    aðferðafræði)• Áfangafágun (stepwise refinement): Skipta

    verkefninu upp í smærri verkefni (ofansækin aðferðafræði)

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-11

    Sýnisverkefnið "Aldur barnanna"

    • Einstaklingur A hefur það verkefni að ákvarða aldur hinna þriggja barna B.– B segir A að margfeldi aldurs barnanna sé 36.– A svarar að önnur vísbending sé nauðsynleg.– B segir A summu aldurs barnanna.– A svarar að önnur vísbending sé nauðsynleg.– B segir A að elsta barnið spili á píanó.– A segir B aldur barnanna þriggja.

    • Hve gömul eru börnin þrjú?

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-12

    Mynd 5.5

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-13

    Ítrun

    • Lykkja með skilyrðið á undan:while (condition) do

    (loop body)

    • Lykkja með skilyrðið á eftir:repeat (loop body)

    until(condition)

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-14

    Mynd 5.6 Runuleitarreikniritið ísauðakóða

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-15

    Mynd 5.7 Einstakir hlutar ítrunar

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-16

    Mynd 5.8 Uppbygging whilelykkju

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-17

    Mynd 5.9 Uppbygging repeatlykkju

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-18

    Mynd 5.10 Raða listanum Fred, Alex, Diana, Byron og Carol í stafrófsröð

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-19

    Mynd 5.11 Reikniritið Innsetningarröðun í sauðakóða

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-20

    Endurkvæmni (recursion)

    • Framkvæmd stefs leiðir til annarar framkvæmdar stefsins.

    • Margar uppvakningar (activations) stefsins eru til, en allar nema ein eru að bíða eftir að hinar ljúki keyrslu.

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-21

    Mynd 5.12 Notkun á hugmynd til að leita í lista að stakinu John

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-22

    Mynd 5.13 Fyrsta útgáfa af helmingunarleit (binary search)

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-23

    Mynd 5.14 Reikniritið Helmingunarleit í sauðakóða

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-24

    Mynd 5.15

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-25

    Mynd 5.16

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-26

    Mynd 5.17

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-27

    Hraði hugbúnaðar

    • Metinn sem fjöldi framkvæmdra skipana• Θ táknun: Notað fyrir flækjustigsflokka

    (efficiency classes)– Dæmi: innsetningarrröðun er Θ(n2)

    • Besta, versta og meðaltilfelli

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-28

    Mynd 5.18 Notkun áInnsetningarröðun í versta tilfelli

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-29

    Mynd 5.19 Línurit fyrir versta-tilfellis greiningu á Innsetningarröðun

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-30

    Mynd 5.20 Línurit fyrir versta-tilfellis greiningu á Helmingunarleit

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-31

    Sönnun hugbúnaðar

    • Sönnun á að forrit vinni rétt– Staðhæfingar (assertions)

    • Forskilyrði (preconditions)• Fastayrðing lykkja (loop invariants)

    • Prófun

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-32

    Sýnisverkefni: Uppbrot á keðju

    • Ferðamaður hefur gullkeðju með sjö hlekkjum.• Hann verður að gista á einangruðu hóteli í sjö nætur.• Leigan fyrir nóttina er einn hlekkur úr keðjunni.• Hver er minnsti fjöldi hlekkja sem þarf að skera í

    sundur til að ferðamaðurinn geti borgað hótelinu með einum hlekk á hverjum morgni án þess að borga fyrir gistinguna fyrirfram?

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-33

    Mynd 5.21 Uppbrot á keðjunni með aðeins þremur skurðum

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-34

    Mynd 5.22 Lausn verkefnisins með aðeins einum skurði

  • © 2007 Pearson Addison-Wesley. All rights reserved 0-35

    Mynd 5.23 Rökyrðingarnar sem tengjast dæmigerðri while lykkju