Algoritmid ja programmi struktuur
Algoritm on lõplik ühemõtteline sammude jada, mis lahendab teatud ülesandeklassi; programm on algoritmi üks väljendus mingis keeles ja sama algoritmi saab kirjutada paljudes keeltes.
Practise this conceptAlgoritm on retsept: lõplik ühemõtteliste sammude jada, mis muudab sisendi väljundiks ja peatub kindlasti. Programm on algoritmi üks väljendus, kirjutatud kindlas keeles kindla masina jaoks. Vahetegemine on oluline, sest raske mõtlemine toimub algoritmi tasandil — otsustades, millised sammud ülesande lahendavad — samal ajal kui programm on tõlge. Sama sortimisalgoritm on olemas Pythonis, C-s ja pseudokoodis ning algoritmi õppimine kandub edasi, ühe keele süntaksi õppimine aga suuresti mitte.
Programmid on üles ehitatud vähestest konstruktsioonidest ja see arv on tõesti väike: väärtus, muutuja selle hoidmiseks, viis teede vahel valida, viis korrata ja viis anda sammude plokile nimi, et seda saaks uuesti kasutada. Kõik ülejäänu on mugavus. Just seepärast on esimese programmeerimiskursuse kava avaldised, tingimuslaused, alamprogrammid, tsüklid — see ongi kogu sõnavara.
Konstruktsioon, mis kindlalt segadust tekitab, on muutuja. Matemaatikas on x = x + 1 vastuolu. Programmis on see käsk: arvuta parem pool ja salvesta tulemus kasti, mille nimi on vasakul. Muutuja on nimega salvestuskoht, mille sisu aja jooksul muutub, mitte tundmatu, mis tuleb leida. Teine asi, mis tasub varakult omaks võtta, on see, et töötamine ei ole sama mis õigesti töötamine. Loogikaveaga programm käivitub rõõmsalt ja toodab enesekindlat jama, seega on just teadaolevate vastuste vastu testimine — mitte veateate puudumine — see, mis korrektsuse kinnitab.
Key ideas
Unlocks: Juhtimisvoog, Andmestruktuurid ja algoritmid, Arvutuslikud meetodid programmeerimises
Common misconceptions
- Algoritm ja programm on üks ja seesama.
- Muutuja programmis on sama mis muutuja matemaatikas.
- Kui programm töötab veateateta, on see õige.
Resources
Kuulub nende TÜ ainete hulka
See mõiste on kaardistatud järgmis(t)e Tartu Ülikooli õppekava aine(te) osaliseks kattmiseks.
- Kompuuterfüüsika ILOTI.05.030
- ProgrammeerimineLTAT.03.001
- Programmeerimise alusedMTAT.03.236
- Programmeerimise alused IIMTAT.03.256