Programmeerimise alused I Programmeerimise etapid algoritmimine 11 A

  • Slides: 11
Download presentation
Programmeerimise alused I Programmeerimise etapid, algoritmimine 11 A S 2020

Programmeerimise alused I Programmeerimise etapid, algoritmimine 11 A S 2020

Sissejuhatus • Ülesanne – formaliseerida • Lahendusalgoritm – välja töötada • Programm – koostada

Sissejuhatus • Ülesanne – formaliseerida • Lahendusalgoritm – välja töötada • Programm – koostada algoritmi alusel 1. Formaliseerimine 2. Algoritmimine 3. Programmi kirjutamine

Formaliseerimine • Mis on antud? – lähtetingimused • Mida on tarvis leida? – tulemus

Formaliseerimine • Mis on antud? – lähtetingimused • Mida on tarvis leida? – tulemus • Probleemi lahendamise (matemaatiline) eeskiri välja töötada

Näide: formaliseerimine • Leida ristküliku küljed, kui on teada selle ristküliku pindala ning et

Näide: formaliseerimine • Leida ristküliku küljed, kui on teada selle ristküliku pindala ning et selle ristküliku üks külg on teisest n ühiku võrra lühem. 1. 2. 3. 4. 5. 6. Tähistame ristküliku külgede pikkuse tähtedega a ja b Tähistame ristküliku pindala tähega S Ristküliku üldine pindala leidmise valem on S=a*b Et b=a-n, siis antud juhul S=a*(a-n) => S=a 2 -n*a a leidmiseks tuleb seega lahendada ruutvõrrand a 2 -n*a-S=0 Seejuures b=a-n

Algoritmimine • Algoritm – Samm-sammuline tegevusjuhis, juhend, eeskiri mingi tegevuse sooritamiseks või eesmärgi saavutamiseks

Algoritmimine • Algoritm – Samm-sammuline tegevusjuhis, juhend, eeskiri mingi tegevuse sooritamiseks või eesmärgi saavutamiseks • Lahendusmeetod – Enne algoritmi kirjeldamist tuleb määrata meetod, mida probleemi lahendamisel kasutatakse – Ülesanne võib nõuda oma meetodi väljatöötamist!

Algoritmimine • Koostada algoritm ristküliku külgede pikkuste leidmiseks, kui on teada selle ristküliku pindala

Algoritmimine • Koostada algoritm ristküliku külgede pikkuste leidmiseks, kui on teada selle ristküliku pindala ning et selle ristküliku üks külg on teisest n ühiku võrra lühem. Tuleb lahendada ruutvõrrand a 2 -na-S=0: 1. 2. 3. 4. 5. Sisestada n ja S Leida D=(-n)2+4 S Leida b=a-n Väljastada a ja b

Algoritmimise nõuded • Algoritm peab • Algoritm ei – olema antud ülesande piires universaalne

Algoritmimise nõuded • Algoritm peab • Algoritm ei – olema antud ülesande piires universaalne – olema resultatiivne – olema realiseeritav arvutis kirjeldatavate käskudega – olema võimeline teostama andmete sisestamist ja väljastamist – võimaldama tükeldada keerulisemat ülesannet väiksemateks osadeks – ole mingis programmeerimiskeeles kirjutatud käskude jada – tohi sõltuda kasutatavast programmeerimiskeelest – tohi sisaldada ühegi programmeerimiskeele elemente

Ülesanne 1: Piima joomise algoritm Pane kirja piima joomise algoritm. Eeldused: 1. Piim on

Ülesanne 1: Piima joomise algoritm Pane kirja piima joomise algoritm. Eeldused: 1. Piim on külmkapis olemas 2. Klaas on nõudekapis olemas 3. Külmkapp ja nõudekapp on köögis, ise oled toas. Mõtleme: • Milliseid tegevusi tuleb teha? • Mida tuleb kontrollida? • Kas alati saab piima juua?

Ülesanne 2 • Formaliseeri ülesanne ja pane kirja lahendusalgoritm – Ruutvõrrandi lahendamine. • Realiseeri

Ülesanne 2 • Formaliseeri ülesanne ja pane kirja lahendusalgoritm – Ruutvõrrandi lahendamine. • Realiseeri algandmete kontroll – millal pole tegu ruutvõrrandiga. • Kui palju on erineva väljanägemisega vastuseid? Kas programmi töö käik sõltub sellest?

Ülesanne 3 • Formaliseeri ülesanne ning pane kirja lahendusalgoritm. – Liitmine 1 • Programm

Ülesanne 3 • Formaliseeri ülesanne ning pane kirja lahendusalgoritm. – Liitmine 1 • Programm võimaldab 3 arvu sisestamist. • Sisestuse lõppedes väljastab nende arvude summa. – Liitmine 2 • Programm võimaldab järjest arvude sisestamist. • Nulli sisestamine lõpetab programmi töö. • Programm teatab sisestatud arvude summa.

Ülesanne 4 • Pane kirja kahe piiramatu pikkusega arvu kirjaliku liitmise algoritm (numbrite kaupa

Ülesanne 4 • Pane kirja kahe piiramatu pikkusega arvu kirjaliku liitmise algoritm (numbrite kaupa üksteise all liitmine, nagu algklassides õpiti) – Formaliseerimine • Mis on antud? – Mida saame eeldada? • Mis tuleb leida? • Kuidas see liitmine nüüd ikkagi käis? Meetod! – Algoritmimine • Tegevuste järjekord. • Milline osa kordub? • Kuidas aru saada, et tuleb lõpetada? . . . 4 6 3 1 +. . . 1 9 8 9 ---------