алг алгоритмнің атауы
20
арг алгоритмнің қолданылу шарты
нәт алгоритмді атқарудағы мақсат
басы
алгоритмнің денесі /командалар тізбегі/
соңы
Алгоритмдік тілде негізгі және қосалқы алгоритм деген ұғымдар енгізілген.
Алгоритмдердің былайша аталуы олардың белгілі бір мезеттегі өзара қатынасын
көрсетеді. Бір алгоритмнің құрамында пайдаланылатын алгоритм қосалқы
алгоритм, ал құрамында қосалқы алгоритм пайдаланылатын алгоритм негізгі
алгоритм деп аталады.
Қосалқы алгоритм пайдалану жаңа алгоритмді құрастыру процесін
жеңілдетеді, әрі негізгі алгоритмнің жазылуы жинақты және түсінікті болады.
Қосалқы алгоритм негізгі алгоритмнің құрамына шақыру командасы ретінде
жазылады. Оны жазу былай жүзеге асырылады: негізгі алгоритмнің тиісті
командасының орнына қосалқы алгоритмнің атауы жазылады. Ал егер
аргументтері бар болса, онда алгоритм атауына тіркелініп дөңгелек жақша ішіне
қосалқы алгоритмнің аргументтеріне қандай мәндер беру, атқарылу нәтижесін
қалай пайдалану керектігі көрсетіледі.
Алгоритмдік тілде нақты сандардың орнына кейбір жағдайда сандық және
алгебралық өрнектерді де пайдалануға болады. Оларды алгоритмдік тілде
арифметикалық өрнектер деп атайды. Оны былай түсінуге болады: алгебралық
өрнек арифметикалық өрнекке айналғаннан кейін ғана ондағы амалдар ЭЕМ-да
орындалады.
Арифметикалық өрнек деп арифметикалық амал белгілері және дөңгелек
жақшалар арқылы байланыстырылған сандар, стандартты функциялар және
айнымалылар тізбегін айтады. Демек, алгоритмдік тілде сан жазудың орнына
арифметикалық өрнек жазуға болады.
Арифметикалық өрнектердің алгоритмдік тілде жазылуының алгебрадағы
жазылудан бірнеше өзгешіліктері бар екендігін бір-бірімен салыстыра отырып
түсіндірген жөн. Ол өзгешіліктер мыналар:
- арифметикалық өрнектер алгоритмдік тілде сызықты түрде, яғни бір
жолдың бойына жазылады.
- арифметикалық амал белгілері: қосу/+/, азайту /-/, көбейту /*/, бөлу /:/,
дәрежелеу амалдары алгоритмдік тілде былай белгіленеді: +, -, *, /, **;
- алгебрада көбейту амалы орнына ешнәрсе жазбауға болады, мысалы, 6 а,
ал алгоритмдік тілде оны былай жазу керек: 6*а;
- қосалқы алгоритмдердің, функциялардың /стандартты, стандартты емес/
аргументтері дөңгелек жақша ішіне алынып жазылады.
Математика курсындағыдай алгоритмдік тілдегі шамаларды тұрақты және
айнымалы шамалар деп бөледі.
21
Алгоритмдік тілде әр шаманың аты, мәні, типі және түрі анықталып
мазмұндалады /математика шаманың мәнінің берілуі, типі мен түрінің анықталып
берілуі мідетті емес/.
Алгоритмдегі пайдалануына сәйкес, атқаратын жұмысына байланысты
шамаларды түрлерге бөледі. Алгоритмдік тілде шамалардың мынадай төрт түрі
бар: арг, нәт, арг, нәт және аралық.
Адам мен ЭЕМ арасындағы ақпарат алмасуды қамтамасыз ету алгоритмдік
тілде арнай енгізу және шығару командалары пайдаланылады. Мысалы, есептің
бағдарламасын, сол сияқты алгоритмнің атқарылуына қажетті бастапқы
мәліметтер мен басқа да ақпараттар ЭЕМ зердесіне пернетақтадан енгізіледі.
Алгоритмді атқару барысында «енгізу і» командасы бойынша ЭЕМ
айнымалысының мәтінің пернетақтадан енгізілуін күтеді. Енгізілген сандық
немесе литерлік мәні і айнымалысына енгізіледі де, алгоритмнің атқарылуы әрі
қарай жалғасады.
«Шығару t» командасындағы шығару қызметші сөзі айнымалысының мәні
экранға шығарылатындығын көрсетеді. Егер экранға мәтіндік ақпаратты шығару
қажет болса, ол ақпарат /символ, сөз немесе сөйлем/ «шығару» қызметші сөзінен
соң тырнақша ішіне жазылады.
Сонымен алгоритмдік тіл жай командалардың жазылу ережесін, құрама
командалардың, алгоритмдердің құрылымын және олардың мағынасын, яғни
қалай орындалатынын дәл және бірмәнді анықтайды.
Алгоритмдік тілді анықтауда келесі ұғымдар:
1. Тілде қолдануға болатын символдардың (белгілердің) жиынтығы, яғни
алфавит.
2. Тілдің конструкцияларының: айнымалының, өрнектердің, командалардың
жазылу және алгоритмдік жазудың жалпы құрылымының ережелері, яғни
синтаксис.
3. Әр түрлі командалардың қызметі мен орындалу жолы, яғни семантика
берілуі керек.
Табиғи тілдерде бірмәнділік болмағандықтан осы тілдерде жазылған
алгоритмдегі нұсқаулардың бірнеше мағынасы болуы мүмкін. Әрине, бұл
орындаушының осындай тілде жазылған алгоритмді орындауын қиындатады, тіпті
ондай алгоритмді орындау мүмкін болмайды. Сондықтан, табиғи тілдердің
байлығына қарамастан, информатикада алгоритмдерді бейнелеу үшін бір мәнді
жасанды тілдерді қолданады. Олар жасанды графикалық тілдер және жасанды
вербальды-сөзді тілдер.
А.Г.Кушниренконың оқулығында алгоритмдік тіл – ЭЕМ –дағы
бағдарламалау тілі ретінде берілген және осы мақсатқа сай мектептегі Ямаха,
Корвет, УКНЦ компьютеріне арнайы оқу бағдарламалау жүйесі ретінде енгізілді.
Ал В.А.Кайниннің оқулығында “алгоритмдік тіл” алгоритмді жазу құралы ретінде
пайдаланылды. Оның байқау оқу құралындағы псевдакод алгоритмді
бағдарламалау тілдеріне аударуды барынша жеңілдету үшін жасалған. Бұл
22
тәсілдің ерекшелігі тілдер ауысқанымен, ЭЕМ-лар ауысқанымен, оқыту
әдістемесінің өзгеріссіз қалатындығында.
Тәжірибеде мұндай тәсілдің негізінен жоғары математиканың дайындығы
бар студенттер мен оқушылар үшін тиімді екені байқалды. Бұл қағида, алгоритм
мен бағдарламадағы қателердің көпшілігі логикалық немесе математикалық
сипатта болатындығымен түсіндіріледі. Дербес ЭЕМ-дер үшін бағдарламалау
бастамасын оқытудағы жүйелік тәсіл төмендегідей кезеңдерді қамтиды:
есеп – сценарий – алгоритм – бағдарлама – ЭЕМ.
Жүйелік тәсілдердің авторлары В.А.Каймин және т.б.
Бұл тәсіл бойынша алгоритм мен бағдарлама құруда дербес ЭЕМ-мен
болатын диалогтың сценариін құру бірінші орындалады. Алгоритм мен
бағдарлама құруда құрылымдық бағдарламалаудың барлық ережесі мен принципі
толық пайдаланылады. Бұл технологиядағы ең маңызды мәселе ЭЕМ-да
орындалатын бағдарламаның көрсетілімін алдын – ала талқылап, жазу болып
табылады. Бұл жүйелік тәсіл машиналық графикасы бар, диалогты ЭЕМ-мен
оқытуға арналған. Осы тәсіл бойынша 10-15 жас аралығында нақты бағдарламалау
элементтерін меңгеруге болады деп есептейді. Бұның себебі, оқушылар
шығармашылықпен жұмыс істеп, ЭЕМ-де өзінің құрған суреттерінің нәтижесін,
бағдарламадағы қателерін өздері түзей отырып, экраннан көруге мүмкіндігі бар.
Бұл әдіс бойынша алгоритмді жазып, құрып қана қоймайды, бағдарламадағы
алгоритмдік қателерді бірден таба алады. Осы құрылған сценарий бойынша
алгоритм мен бағдарлама тексіндегі барлық алгоритмдік қателерді табуға болады.
Алгоритмді жазу үшін қандай да болмасын тілді пайдалану қажет. Жалпы
алғанда тіл белгілі бір ақпаратты өрнектеу және жеткізу құралы. Бұл мағынада
адамдар арасындағы қатынас тілі (адамзат тілі), математика тілі адамдар мен
автоматтар арасындағы қатынас тілі, т.б. тілдер туралы айтуға болады.
Алгоритмдік тіл бірқатар қатаң талаптарға сай болуы керек:
1. Командалар тұжырымдау кезінде атқарушыға белгілі операциялар
орындалуына ғана талап ету;
2. Командалар тек қана белгілі бір ережеге сай қолдану;
3. Ережеден тыс әрекеттерді пайдаланылған жағдайда атқарушы алгоритмді
түсінбейді де, оны атқарудан бас тартады.
Алгоримдік тіл бірқатар қатаң талаптарға сай болуы керек:
1. Командалар тұжырымдау кезінде атқарушыға белгілі операциялар
орындауына ғана талап ету;
2. Командалар тек қана белгілі бір ережеге сай қолдану;
3. Ережеден тыс әрекеттерді пайдаланылған жағдайда атқарушы алгоритмді
түсінбейді де, оны атқарудан бас тартады. Мысалы, а және в екі
айнымалыны көбейту операциясын математика тілінде бірнеше рет
жазуға болады: 1) ав; 2) ахв; 3) а.в. Ал алгоритмдік тілде бұл операция
а*в деп жазылады.
23
Пайдалануға рұқсат етілген символдардың (таңбалардың) жиынтығы
алгоритмдік тілдің алфавиті деп аталады. Ал жоғарыда айтылған формаларды
ережелердің жиынтығы алгоритмдік тілдің синтаксисін құрайды да, ал тілдің өзі
формалды тіл деп аталады. Алгоритмдік тіл формалді тіл санатына қосылады,
олай болса, ол бір мағынада, нақты үлгіде жазылуы тиіс. ЭЕМ осы тілде жазылған
алгоритмді оның мазмұны мен мағынасына талдау жасамастан атқарады, яғни
командаларды формалды түрде орындайды.
Қазіргі кезде әр типті машинаға арналған әр түрлі алгоритмдік тіл бар, олар:
Фортран, Алгол, Паскаль, Бейсик, Ада, Си, Лого, Пролог және т.б.
Ақпаратты өңдеуге байланысты алгоритмдерде шамалар ұғымын енгізу
қажет.
Шама ұғымы информатика курсының іргелі ұғымдарының бірі болып
табылады. Шама дегеніміз типі анықталған, мәні мен атауы бар объект. Шамалар
екіге бөлінеді: тұрақты және айнымалы.
Егер алгоритмнің атқаруы барысында мәні өзгермесе, онда тұрақты шама
деп аталады, ал алгоритмнің атқарылуы барысында мәндері өзгеріп отыратын
шамаларды айнымалы шамаларды айнымалы шамалар дейді. Шамалар типіне
қарай сандық және литерлік болып бөлінеді. Сандық шамалар өз кезегінде бүтін
және нақты болып бөлінеді.
Мектептік алгоритмдік тілді (МАТ) шамалар бүт – бүтін, нақ – нақты, лит –
литерлік қызметші сөздермен белгіденеді.
Алгоритмді жазу үшін пайдаланылатын тілдің сипаты орындаушының
мүмкіндіктеріне байланысты. Орындаушының мүмкіндігі тіл құралдарының
бірнеше деңгейін анықтайды. Енді алгоритмдерді жазу тілдерінің кейбір негізгі
ерекшеліктеріне тоқталайық.
Тілдің деңгейі туралы сөз қозғағанда мен, соның ішінде, алгоритмдік жазу
командаларының нақтылану дәрежесі (яғни, берілген орындаушы үшін элементар
деп есептелетін амалдың шын мәніндегі «элементарлық» дәрежесі) туралы
айтамын. Мысалы, егер есептеу алгоритмдерін орындайтын орындаушы «бір
қадамда» квадрат түбір ала алатын болса, онда оған нұсқауы түсінікті болады. Ал,
егер орындаушының мүмкіндігі арифметикалық негізгі төрт амалмен шектелген
болса, онда квадрат түбірді табу орындаушыға осы төрт амалды ғана
пайдаланылатын командалардың толық бір жүйесін ұсйнуға тура келеді.
Тілдің деңгейі туралы айтқанда, алгоритмдердің машинада орындалуына
тұрғысынан тілдің өте маңызды қаситеі – формальдандырылу дәрежесі де
ескеріледі. Алгоритм орындаушысы адам болған жағдайларды, алгоритмдерді
жазуға арналған тіл құралдары қатаң шектелмеген. Алгоритм құрушының қалауы
бойынша алгоритмдерді жазу барысында баршаға түсінікті кез келген
сөйлемшелер мен сөз құрылымдары пайдалана алады. Егер алгоритмдік жазу ЭЕМ
– ге арналған болса, онда бірқатар міндетті талаптарды орындауға тура келеді:
24
▪ нұсқауларды (командаларды) тұжырымдау барысында машинадан осы
машина үшін қатаң анқыталған операцияларды орындауды ғана талап
етуге болады;
▪ берілген машинаның тілі үшін қабылданған нұсқаулар құру ережелерін
ғана пайдалануға болады;
▪ ережелерді көрсетілмеген нәрселерді ешбір қолдануға болмайды, себебі
бәрібір машина ондай нұсқауларды орындамайды.
Тілді формальдандыру сол тілдің табиғи адам тілімен салыстырғанда
көркемдік мүмкіндіктерін азайтатыны өзінен - өзі түсінікті. Әр уақытта сөйлем
құрудың қатаң ережелерін есте сақтаудың керектігінен бұл тілді қолдану қиындай
түседі. Соған қарамастан мұндай тілдер жасалып жатыр және автоматтардың
жұмысын басқарғысы келген адам осы тілдерді пайдалануға мәжбүр болады.
Сонымен, машинамен қатысу (сөйлесу) тілін пайдаланушылардың бірі адам
болғандықтан, тілдің деңгейі туралы айтқанда тілдің адам үшін түсініктілік
дәрежесін де ескереді. Алғашқы электрондық есептеуіш машиналармен қатынас
цифрлар тілі деңгейінде болды. ЭЕМ – нің әрі қарай жаппай таралуы есепті
тұжырымдайтын адам мен машинаның қатынасуының жаңа түрлерін қажет етеді.
Алайда, түсініктілік талабы формальдандыру талабымен өзара қайшылықта
тұрғандықтан, тілді машинаға түсінікті ете отырып, «табиғиландыру» мәселесі өте
күрделі мәселе. Бұл мәселе машиналардың өзін жетілдірумен қатар жүргізіле
шешіледі. Қазіргі уақытта бұл бағытта елеулі нәтижелер алынған. Кәдімгі табиғи
тіл мен математика тілінің кейбір элементтерін жылдастыра отырып жасалған
тілдерге ғылыми және инженерлік – техникалық есептерді шешуге арналған
белгілі алгоритмдік тілдер.
Енді бір жағынан, кәдімгі табиғи тілге жақын, екінші жағынан «нағыз»
алгоритмдік тілдерін негізгі қасиеттері бар тілдің анықтамасын берейін. Бұл тілді
оқу алгоритмдік тілі деп атаймыз, ал қай тіл туралы сөз болып отырғаны түсінікті
болса, жай алгоритмдік тіл деп те атай береміз.
Бұл тілде жазылған алгоритмдер кәдімгі текст сияқты оқылады және Алгол,
Фортран, Бэйсик және т.б. бағдарламалау тілдерін үйренуге негіз бола алады.
Алгоритмдер жазу үшін уақыт кетіріп ерекше тіл үйренідің қажетті неде?
Алгоритмдерді қазақ тілінде – ақ жаза берсек болмас па екен? – деген сұрақ тууы
мүмкін. – Біздің ана тіліміз соншалықты бай, жан - жақты, тек алгоритмдер ғана
емес, одан басқа да кез келген нәрселерді суреттеп бере алады.
Әрине тілдің жан – жақтылығы, бір нәрсені алуан түрлі сөзбен жеткізе
алатындығы, керісінше, жалғыз ғана сөзбен неше түрлі сезім толқындарын
тудыратындығы адамдардың өзара қатынасы, көркем әдебиет,мәдениет және т.б.
үшін өте құнды.
Алайда, алгоритмдерге келгенде мәселе басқаша. Мәселе алгоритмдерді
орыншылардың басым көпшілігі автоматтар екендігіне болып тұр. Дәлірек
айтқанда, жаңа нұсқауларды автоматтың негізгі командаларына сүйеніп, қатаң
ережелерді сақтай отырып құрастыруға болады.
25
Литерлік шама деп мәндері сөздері немесе текст болып келген шаманы
айтамыз.
Жаңа байқау оқу құралына мектептік алгоритмдік тіл қарастырылған. Бұдан
былай тілді жай ғана алгоритмдік тіл деп атау келісілген. Осы тілде жазылған
алгоритмнің жалпы түрі мынадай:
Достарыңызбен бөлісу: |