1.2. Алгоритм қасиеттері Алгоритм ұғымының мəнін ашатын негізгі қасиеттерінен немесе оған қойылатын талаптардан қысқаша мағлұматтар кел-тірейік. ЭЕМ-де орындалуға тиіс алгоритмдерге мынадай талап-тар қойылады:
ол анық əрі дəл өрнектелуі тиіс–детерминділік(анықтылық, бір мəнділік) қасиеті, яғни алгоритмді басқаша түсінуге жол бермей, тек қана көрсетілген əрекеттерді айқын түрде орындауға арналған нұсқаулар дəлдігі;
алгоритм шектелген уақыттан соң нəтиже беруі тиіс – нəтижелілік қасиеті, мұнда белгілі бір əрекеттер саны атқарылған соң, процестің қажетті нəтижесін алып, оны аяқтау мүмкіндігінің болуы немесе есептеу процесін ары қарай жалғастыруға болмайтындығы жайлы мəлімет алуымыз қажет;
бір тектес есептерге жалпы бір ғана алгоритм қолданылуы тиіс – жалпылық қасиеті, ол алгоритмнің осы сияқты көптеген басқа да есептерге қолданылу мүмкіндігінің болуын көрсетеді;
алгоритмді кішкене бөліктерге бөлу мүмкіндігі болуы қажет – модульдік (дискреттілік, бөліктік) қасиет – есептеу процесін жекеленген қарапайым операцияларға бөлу мүмкін-дігінің болуы, яғни күрделі есепті атқарылуына күдік келтіруге
болмайтын шағын бөліктерге жіктеу орындалуы тиіс. Біріншіден, алгоритм анық, əрі дəл өрнектелуі қажет. Онда
қандай қадамдар көрсетілсе, тек соны ғана орындау керек. Есеп шығару жолына керектің бəрі біржақты анықталуы жəне
орындаушыға түсінікті, əрі нақты болуы тиіс. Екіншіден, алго-ритм нəтижелі болуы керек. Əрекеттердің шектелген санынан
6
кейін белгілі бір уақыт ішінде қорытынды нəтиже алуымыз қажет. Əрбір алгоритм біршама бастапқы мəліметтердің болуын талап етеді жəне іздеген нəтижені алуға жеткізеді. Мысалы, сандарды қосу алгоритмі үшін бастапқы мəліметтерге қосылғыштар мəні жатады, ал нəтижесі қосынды болады. Үшіншіден, алгоритмнің жалпылық қасиетіболады, яғни бастапқы мəліметтер мəнініңбір жиыны бір ғана нəтиже береді. Егер берілген мəліметтер өзгерсе, нəтиже де өзгереді. Басқаша айтқанда, бір алгоритм бір типтес есептердің əр түрлі алғашқы мəліметтері үшін əр түрлі нəтижелер беруі тиіс. Мысалы, квадрат теңдеуді шешу алгоритмі кез келген а, b, с мəндері үшін оның түбірін дұрыс табуы керек. Төртіншіден, алгоритмнің үзік-үзік модульдерге бөліну қасиеті болуы тиіс, яғни үлкен алгоритмді бірнеше кішкене алгоритмдерге жіктеуге əрқашанда мүмкіншілік болуы керек. Сондықтан алгоритмді екі-үш бөлікке бөліп, оларды өзінше құра алатын дəрежеде жұмыс істелуі қажет. Олар тек бірінің қорытындысын келесі жолы керекті мəлімет ретінде қолдануы тиіс.