110 likes | 403 Views
Programmeerimise alused I. Programmeerimise etapid, algoritmimine 11A S2014. Sissejuhatus. Ülesanne – formaliseerida Lahendusalgoritm – välja töötada Programm – koostada algoritmi alusel Formaliseerimine Algoritmimine Programmi kirjutamine. Formaliseerimine.
E N D
Programmeerimise alused I Programmeerimise etapid, algoritmimine 11A S2014
Sissejuhatus • Ülesanne – formaliseerida • Lahendusalgoritm – välja töötada • Programm – koostada algoritmi alusel • Formaliseerimine • Algoritmimine • Programmi kirjutamine
Formaliseerimine • Mis on antud? – lähtetingimused • Mida on tarvis leida? – tulemus • Probleemi lahendamise (matemaatiline) eeskiri välja töötada
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. • 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=a2-n*a • a leidmiseks tuleb seega lahendada ruutvõrrand a2-n*a-S=0 • Seejuures b=a-n
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 ning et selle ristküliku üks külg on teisest n ühiku võrra lühem. Tuleb lahendada ruutvõrrand a2-na-S=0: • Sisestada n ja S • Leida D=(-n)2+4S • Leida • Leida b=a-n • Väljastada a ja b
Algoritmimise nõuded • Algoritm peab • 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 • Algoritm ei • 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: • Piim on külmkapis olemas • Klaas on nõudekapis olemas • Külmkapp ja nõudekapp on köögis, ise oled toas. • Milliseid tegevusi tuleb teha? • Mida tuleb kontrollida? • Kas alati saab piima juua?
Ü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?
Ülesanne 3 • Formaliseeri ülesanne ning pane kirja lahendusalgoritm. • Liitmine1 • 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 lõpmata pikkade arvude numbrite kaupa kirjaliku liitmise algoritm • Formaliseerimine • Mis on antud? • Mida saame eeldada? • Mis tuleb leida? • Kuidas see liitmine nüüd ikkagi käis? • Algoritmimine • Tegevuste järjekord. • Milline osa kordub? • Kuidas aru saada, et tuleb lõpetada?