Алгоритмдерді сипаттау тілі ұғымы. Алгоритмді сипат- тау мəселесi əрқашанда сипаттауды іске асыратын бір тілдің бо- луын талап етеді. Осы себептен де алгоритм ұғымы алгоритмді өрнектеу (беру) құралы ретіндегі тіл ұғымымен тығыз байланыста болады. Тілді таңдау əр жағдайда алгоритмнің қолдану саласымен, яғни, нақты айтқанда, орындаушы қызметiн атқаратын обьектінің (адамның, автоматтың, компьютердiң) қасиеттерімен анықталады. Сол немесе басқа орындаушымен қарым-қатынас кезінде тіл мүмкiндіктерінің шекарасынан мұқият шықпау талаптарын орындау кейбір жағынан алгоритмдеудің бастапқы негізі болып табылады. Осы жағдайды түсіну жəне пайдаланылатын тілдік құралдардың мүмкіншіліктерін сипаттаманың əрбiр нақты бағытында дəл сақтау алгоритмдік мəдениеттің маңызды құрамды бөлігін құрайды.
Сипаттау формализмінің деңгейі. Сипаттау формализмінің деңгейі ұғымы тіл ұғымымен тығыз байланысты. Егер сипаттама автоматқа құрылған болса, онда пайдаланылатын тіл қатаң шектеу- лерге бағынады, олар, əдетте, тілдің синтаксисін құрайтын фор- мальды ережелер жүйесіне келтірілген болуы мүмкін. Осындай жағдайларда тілдің өзі формальданған тілге келтірілді дейді. Бірақ практикада, алгоритмдерді құру үдерісінде, əсiресе, алдын ала сипат- тауларды құру кезiнде қатаң шектелген болуы міндетті емес тілдік құралдарды пайдалануға болады. Оның үстіне, осындай жағдай тек алдын-ала құру үдерісінде ғана емес болуы мүмкін. Мысалы, ал- горитм адамға арналған болса, онда алгоритмдеудің соңғы нұсқасы формальды емес, “екі ұшты” келтірілуі мүмкін.
Практикада қолданылатын алгоритмдердің көбісі осы формальды емес нұсқада “жұмыс істейді”. Тек алгоритм орындаушыға түсінікті болуы керек, яғни ол оның мүмкіншіліктері шегінен шығатын сипат- тау құралдарын пайдаланбауы керек.
Сонымен, алгоритмдердi келтірудің практикада қолданылатын формальдау деңгейлері мейлiнше кең диапозонда: формальдаудың мүлдем жоқ болу деңгейінен “сондай немесе басқа мөлшерде”
формальдау деңгейіне дейін жəне соңында “абсолютті” формаль- дау деңгейіне дейін өзгеруі мүмкін. Орындаушыға алгоритмнiң түсiнiктiлiгi факторын ескере отырып, формальдау деңгейі əртүрлi тілдермен жұмыс істей білу де алгоритмдік мəдениеттің маңызды құрамды бөлігі болып табылады.
Сипаттаудың дискреттілік (қадамдық) принципі. Алгоритмдi құру қажеттi нəтижеге алып келетін, мүмкiн болатын қарапайым, жай əрекеттердiң дəл мақсатқа бағытталған тізбегін бөліп көрсетудi талап етедi. Осы əрекеттердің ұйымдасқан жиынтығы алгоритмді түсiнiктi жəне нақтылы ететін алгоритмдi сипаттаудың белгілі бір дискреттi құрылымын құрайды. Əр түрлі тілдерде алгоритмнің осындай жеке кезеңдері түрлі құралдармен келтіріледі. Алгоритмнің сөзбен келтірілуінде (табиғи тілде) – бұл жеке сөйлемдер, нұсқаулар, пункттер, схемалар тілінде – бұл жеке блоктар, ЭЕМ-нiң объектілер тiлінде – бұл жеке жарлықтар, жоғарғы деңгейдегі алгоритмдiк тілде
Блоктар принципі. Алгоритмді құру үшiн қолданылатын тілдердің мүмкіндіктері сипаттауларды (алгоритмдiк жазбаларды) тəптіштеудің қандай да бір дəрежесін таңдап алуды қажет етеді. Бірақ бұл жағдай қажетті алгоритмді құру үдерісінде оның алғашқы схемасын сипаттау үшiн сол алгоритм адрестелген орындаушының мүмкіндігімен салыстырғанда iс-əрекет бірлігі мейлiнше ірілеу бо- латын тiлдi пайдалануға кедергі болмайды. Шын мəнінде, берілген жағдайда күрделі есепті қарапайым есептерге жекелеп бөле білу икемдігі туралы сөз болып отыр. Осындай жолды, əрқашан, есеп барынша күрделі болған жағдайда, оның шешу алгоритмін қажеттi тiлде тез жазу үшiн таңдауға тура келеді. Бұл жағдайда есеп əрқайсысына өзінше мəн берілетін ақпаратты тұйық бөліктерге (блоктарға) бөлiнеді де, есептiң бөліктерін байланыстыратын алғашқы схеманы құрып болғаннан кейін жеке блоктарды тəптіштеу жұмыстары жүргiзiледi. Осы блоктардың əрқайсысы осы дəл қазір сипатталған принцип бойынша тəптіштелуі керек.
Блоктар принципі, шын мəнінде, жалпы ойлау тəсiлi бола тұра, үлкен жалпы білімдiк жəне тəрбиелік мəнге ие. Осы принцип схема- сына əр түрлі саладағы зерттеу үдерістері өте жиі келтіріледі.
Сыртқы байланыстарды анықтап, зерттеуші таныс емес облыс- ты жеке дербес бөліктерге бөлуге тырысады, содан кейін барып əр блоктың ішіне кіредi. Немесе керісінше: жалпы байланыстар схе-
масына шолу жасау мақсатында, алдымен, жеке элементтер дер- бес блоктарға топталады, содан кейін олар бір-бірімен байланыс- тырылады. Блоктар принципі, программалау саласынан алынған тəсiлдердің жалпы білім беру күші қаншалықты бола алатындығын айқын көрсетеді.
Блоктардан аяғына дейін алгоритм құруда ымырасыз əртүрлі екі тəсіл болуы мүмкін:
а) блоктың тəптіштелген сипаты алгоритмнің сəйкес жеріне ор- наласады, ал блок өзінің алгоритмді іздеудiң жалпы тəсілі рөлін та- мамдап, оған “сіңіп” кеткендей болады.
ə) блоктар мазмұны алгоритмге кірмейді, ал оның сəйкес орында- рында жеке орналасқан блоктарға сілтемелер орналасады; басты ал- горитм мен оның жеке блоктары (көмекші алгоритмдер) жиынтығы қорытынды алгоритм болып саналады.
Достарыңызбен бөлісу: |