1. Programmeerimise alused I

Download Report

Transcript 1. Programmeerimise alused I

Programmeerimise alused I
Programmeerimise etapid,
algoritmimine
11A S2014
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
• 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.
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=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:
1.
2.
3.
4.
5.
Sisestada n ja S
Leida D=(-n)2+4S
n D
Leida a  2
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:
1. Piim on külmkapis olemas
2. Klaas on nõudekapis olemas
3. 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?