Алгоритм – берілген есептің шығару жолын реттелген амалдар тізбегі түріне келтіру. Кез келген есепті қарапайым амалдарды тізбектей орындау арқылы шығаруға болады. Алгоритмді ЭЕМ-де орындау үшін оны программа түрінде жазып шығу керек.
Программа – алгоритмді машинаға түсінікті нұсқаулар тізімі ретінде жазу. Программа машинаға түсінікті командалардан тұрады. Осы командалар тізбегі орындалу барысында есептің нәтижесі шығады. Әрбір ЭЕМ алдын ала жазылған программамен істейді. Программа дегеніміз – белгілі бір нәтиже алу үшін орындалатын амалдардың айқындалған тізбегі. Процессор программаның құрамындағы командаларды кезекпен орындап отырады. Командалар тізбегін программа деп қарастыруға болады. Команда бір ғана қарапайым амалды орындау үшін берілген бұйрық ретінде беріледі. Командалар: арифметикалық немесе логикалық амал; ақпаратты тасымалдау командасы; берілген сандарды салыстыру командасы; келесі командаларға көшу тәртібін орындау т.с.с.
ЭЕМ-нің жұмысы программалық принципке негізделген, яғни ол өзінің жадында сақталатын командалар тізбегін автоматты түрде орындау арқылы есеп шығарады.
Кез келген ЭЕМ жадында берілген мәліметтермен қоса оны қандай жолмен, қандай нұсқауларды орындағанда шығатынын көрсететін программаны сақтайды. ЭЕМ берілген тапсырманы орындауға дайын тұрған техникалық аспап болғандықтан әрбір тапсырманы түсінікті түрде қысқаша жаза білу қажет. Тапсырма жоғарыда айтылған жекеленген командалардан тұрады. Машинаға түсінікті түрде жазылған тапсырмаларды немесе командалар жиынын да программа деп атауға болады.
Программа – белгілі бір нәтиже алу үшін орындалатын амалдардың тізбегі. Ол реттелген командалар тізбегінен тұрады. Программа - арнайы текст арқылы ЭЕМ-ге тапсырманың ретті кезегін хабарлайды.
Алгоритмдердің орындалуы
Алгоритм – арнайы іс-әрекеттердің белгілі бір кезекпен орналасқан тәртібі. Ол алгоритмді атқарушы ЭЕМ-ге жұмыс тәртібін түсіндіретін ережелер мен нұсқаулар тізбегінен тұрады. Сонымен, алға қойылған мақсатқа жету үшін немесе берілген есепті шешу барысында орындаушыға біртіндеп қандай әрекеттер жасау керектігін түсінікті, әрі дәл көрсететін нұсқау алгоритм деп аталады. Алгоритмді орындаушының рөлін негізінен адам немесе автоматтандырылған аспап, яғни ЭЕМ, робот т.б. атқарады. Мысалы, y=(ax+b)(cx-d) функциясын есептеу төменгі іс-әрекеттерден тұрады:
1) а-ны х-ке көбейту, оны деп белгілеу;
2) оған b-ны қосу, нәтижесін деп белгілеу;
3) с-ны х-ке көбейту, оны деп белгілеу;
4) одан d-ны алу, оны деп белгілеу;
5) -ні -ке көбейту, оны y деп белгілеу.
Сонымен, әрбір нұсқау – команда. Алгоритмнің командалары кезекпен бірінен кейін бірі орындалады. Алгоритмнің орындалу кезінде оны орындау-шыға келесі жолы қандай нұсқау бойынша орындалатыны белгілі болуы қажет. Ал орындаушының жүзеге асыра алатын командалар жиыны – коман-далар жүйесін құрайды.
Алгоритмді машинаға енгізу үшін оны белгілі бір заңдылықпен текст түрінде жазып, ЭЕМ-нің жадына кіргізу қажет. Ал алгоритмдер мен олардың орындалуын ЭЕМ-де жүргізу үшін қолданылатын бірыңғай және дәл жазуға арналған ережелер жүйесі программа болып табылады.
Алгоритм мен программаға байланысты ЭЕМ-нің мынадай жұмыс ерекшеліктері болады:
1) есепті шығару жолы алгоритм түрінде өрнектелуі қажет;
2) алгоритм программаға айналдырылуы тиіс;
3) программа машина жадына енгізіліп, ретімен орындалуы керек. Сонымен, керекті нәтижені алу жолында ақпаратқа қолданылатын әре-кеттердің орындалу ретін анықтайтын нұсқау – алгоритм болып есептеледі. Алгоритм күнделікті тұрмыста да кеңінен қолданылады, Мысалы, студент болу үшін алгоритмнің мынадай қадамдарын орындау керек.
1. Орта мектепті бітіріп, аттестат алу.
2. Керекті құжаттарды аттестаттың түпнұсқасымен бірге белгілі бір
институтқа өткізу.
3. Қабылдау емтихандарын "2"-ден жоғары бағалармен тапсыру.
4. Конкурстан өту.
Бұл көрсетілген пункттердің орнын ауыстыруға болмайды. Олар көрсетіл-ген ретпен кезектесіп орындалуы тиіс. Сонда ғана керекті нәтижеге (студент болу) қолымыз жетеді.
Алгоритм информатика мен есептеу техникасының іргелі ұғымдарының бірі. Квадрат теңдеудің түбірін табу ережесі, үшбұрыштың ауданын есептеу жолдары алгоритмдердің мысалдары болып табылады. Сонымен, алгоритм есептерді шығару тәсілі, яғни белгілі бір нәтижеге жету үшін қолданылатын амалдардың реттелген жиыны.
Алгоритм қасиеттері
Алгоритм ұғымының мәнін ашатын негізгі қасиеттерінен немесе оған қойылатын талаптардан қысқаша мағлұматтар келтірейік. ЭЕМ-де орындалуға тиіс алгоритмдерге мынадай талаптар қойылады:
1) анық әрі дәл өрнектелуі тиіс;
2) алгоритм шектелген уақыттан соң нәтиже беруі тиіс, яғни алгоритм
қадамдарының саны шексіз болмауы керек;
3) бір тектес есептерге жалпы бір ғана алгоритм қолданылуы тиіс;
4) модулдік (бөлік), яғни алгоритмді кішкене бөліктерге бөлу мүмкін-
дігі болуы қажет.
Біріншіден, алгоритм анық, әрі дәл өрнектелуі қажет. Онда қандай қадамдар көрсетілсе, тек соны ғана орындау керек. Есеп шығару жолына керектің бәрі біржақты анықталуы және орындаушыға түсінікті, әрі нақты болуы тиіс. Екіншіден, алгоритм нәтижелі болуы керек. Әрекеттердің шектелген санынан кейін белгілі бір уақыт ішінде қорытынды нәтиже алуымыз қажет. Әрбір алгоритм біршама бастапқы мәліметтердің болуын талап етеді және іздеген нәтижені алуға жеткізеді. Мысалы, сандарды қосу алгоритмі үшін бастапқы мәліметтерге қосылғыштар мәні жатады, ал нәтижесі қосынды болады. Үшіншіден, алгоритмнің жалпылық қасиеті болады, яғни бастапқы мәліметтер мәнінің бір жиыны бір ғана нәтиже береді. Егер берілген мәліметтер өзгерсе, нәтиже де өзгереді. Басқаша айтқанда, бір алгоритм бір типтес есептердің әр түрлі алғашқы мәліметтері үшін әр түрлі нәтижелер беруі тиіс. Мысалы, квадрат теңдеуді шешу алгоритмі кез келген а, b, с мәндері үшін оның түбірін дұрыс табуы керек. Төртіншіден, алгоритмнің үздік модулдерге бөліну қасиеті болуы тиіс, яғни үлкен алгоритмді бірнеше кішкене алгоритмдерге жіктеуге әрқашанда мүмкіншілік болуы керек. Сондықтан алгоритмді екі-үш бөлікке бөліп, оларды өзінше құра алатын дәрежеде жұмыс істелуі қажет. Олар тек бірінің қорытындысын келесі жолы керекті мәлімет ретінде қолдануы тиіс.
Алгоритмдерді ЭЕМ-де орындау үшін оларды алдын ала жазып алу керек, яғни ол белгілі бір заңдылықпен өрнектелуі тиіс. Жалпы алгоритмді өрнектеу түрлеріне:
1) табиғи тіл арқылы жазу;
2) белгілі бір терминдер – псевдокодтар арқылы жазу;
3) графика жолымен жазу;
4) алгоритмдік тілдермен жазу жолдарын жатқызуға болады.
Бірақ алгоритмді табиғи тілде өрнектеу ЭЕМ-дерде қолданылмайды, өйткені онда дәлдік, нақтылық болмайды. Ал алгоритмді екінші көрсетілген жолмен өрнектеу ағылшын тілінде сөйлейтін елдерде кеңінен қолданылып жүр. Мұны олардың ағылшын тіліне негізделіп жасалған программалау тілдеріне жақындығымен түсіндіруге болады. Қазіргі ТМД елдерінде бұл тәсіл кең қолданыс таба алмады.
Алгоритмдерді графика жолымен жазу, онан кейін оны программаға айналдыру істері мемлекеттік стандартпен бекітіліп ақпарат өңдеу жұмысында кеңінен қолданылып келеді. Сонымен, алгоритм есептерді шығару жолын баяндау-өрнектеу үлгісі, белгілі бір проблеманы шешу негізінде орындалатын әрекеттерге басшылық, ой еңбегін үнемдеуге мүмкіндік беретін әдіс, есеп шешімін табуды автоматтандыруға қажетті іс-әрекет, жаңа проблеманы шешу кезінде қолданылатын тәсілдер, күрделі процестерді өрнектеу және математикалық дәлдікпен анық етіп жазу құралы бола алады.
ЭЕМ-де есеп шығару кезеңдері
ЭЕМ-де есеп шығару күрделі процесс болып есептеледі, ол төмендегі кезеңдерден тұрады:
1. Берілген есепті математикалық түрде өрнектеу, яғни есепті мәселе ретінде қоя білу.
2. Есепті шығарудың ЭЕМ-ге ыңғайлы сандық тәсілдерін анықтау.
3. Есепті шығару жолын алгоритм түрінде бейнелеу.
4. Есепті ЭЕМ-де шығару программасын жасау және оның қателерін
түзету.
5. Есепке керекті мәліметтер дайындау.
6. ЭЕМ-де есепті шығару және шыққан нәтижені іс жүзінде қолдану.
Берілген есепті математикалық түрде өрнектеу дегеніміз – есептің берілген мәндерін математикалық таңбаларды қолданып жаза білу және керекті математикалық формулаларды, өрнектерді анықтау болып саналады.
Күрделі формулаларды, теңдеулерді арифметикалық амалдар тізбегіне айналдыру есепті шығарудың сандық тәсілдерін табу не анықтау жолы болып есептеледі. Қазіргі кезде барлық есептердің шығару жолының сандық тәсілдері белгілі десе де болады, тек солардың ішінен өзімізге тиімді жолын таңдап алуымыз керек. Бұл мақсатта есепті шығару дәлдігін, нәтижені жылдам табу мүмкіндігін, мәліметтерді дайындау мен есепті шығарудың бағасын салыстыра отырып қарастыру қажет.
Есептің алгоритмін жасағанда, оның шығару жолын тізбектелген іс-әрекеттер ретінде схема түрінде өрнектеледі.
Программа жасағанда қазірде кеңінен тараған программалау тілінің бірінде алгоритм нақты түрде жазылады. Бізде кең тараған тілдерге - Бейсик, Фортран, Паскаль жатады. Жасалған программаның қатесін түзету ЭЕМ-нің көмегімен шешіледі, өйткені жіберілген қателерді тек ЭЕМ ғана жылдам аңғарып, түзету мүмкіндігін береді.
Есепті шығаруға керекті деректерді сұрыпталған күйінде алдын ала қағазға, әйтпесе магниттік дискіге жазып, ЭЕМ-нің жадына реттей отырып енгіземіз. Есептің нәтижесін алған соң шешім қабылдау және оны іс жүзінде қолдану – мамандардың жұмысы. Тек солар ғана белгілі бір шешім қабылдай алады. Бірақ оқып-үйрену барысында кездесетін, яғни оқушылар мен студенттерге арналған есептерде жоғарыда көрсетілген сатылардың бірсыпырасы болмайды, өйткені олар бірден формула күйінде беріледі, шығарудың сандық тәсілі формулада айқын көрініп тұрады (интеграл, туындылар болмаса), нәтижені алған соң оны мұғалімге көрсету жеткілікті. Мәселені шешудің немесе есеп шығарудың көрсетілген бес сатысы күрделі өндірістік есептерде, дипломдық немесе курстық жұмыстарда жиі кездеседі.
Алгоритмдерді график түрінде жазу
Алгоритмдерді өрнектеудің көп тараған түрі – оны график арқылы бейнелеу. Ал бұл – түсінікті, анық, көрнекті түр болып есептеледі. Тек оларды сызу көбірек еңбекті талап етеді. Графикалық жолмен алгоритмдерді жазу үшін мемлекеттік стандарт белгіленген, онда кез келген амал белгілі бір геометриялық фигурамен өрнектеледі. Ол фигуралар немесе блоктар амалдар символы деп те аталады. Блоктар бағытталған сызықтармен байланысып, бірінен соң бірі орналасады. Жиі қолданылатын амалдар, яғни мәліметтерді ЭЕМ-ге енгізу, формуламен есептеу, шарттардың орындалуын тексеру, нәтижені қағазға басу символдары 4.1-суретте көрсетілген. Осы суреттегі көрсетілген блоктардан (символдардан) алгоритм схемалары құрастырылады. Алгоритмдер схемасымен ақпаратты өңдеудің әрбір сатысы немесе орындалатын операциялар реті анықталады. Кейде алгоритмдер схемасын оның блок-схемасы деп те атайды.
4.1. сурет. Алгоритмдерді бейнелеу блоктары
Сонымен алгоритм блоктармен немесе геометриялық көпбұрыштармен өрнектеледі. Әр блоктың ішіне орындалатын іс-әрекеттің (амалдың) мазмұны
1
жазылады. Символдардың (блоктардың) бір кіру және шығу сызықтары болу-
ға тиіс. Мысалы, y = a+b формуласы бойынша есептеу тіктөртбұрыш арқылы кескінделетін есептеу блогы (3-блок) арқылы өрнектеледі. Ал нәтижені қағазға басу үшін көпбұрышты құжат алу блогын (4-блок) пайдаланып, оның ішіне нәтиженің атауларын жазамыз. Жоғарыда көрсетілген y=a+b формуласымен есептеу үшін a және b-ның сандық мәндерін ЭЕМ-ге енгізіп (2-блок), содан кейін қосу амалын орындап, ақырында y-ті қағазға басып шығарып, жұмысты тоқтатамыз. Осы алгоритмнің схемасы 4.2-суретте көрсетілген.
4.2-сурет. Алгоритм
схемасы
Алгоритмдер блоктардың өзара байланысуына қарай үш түрлі бірыңғай құрылымға – сызықтық, тар-мақтық және циклдік болып үш топқа бөлінеді. Енді соларды қарастырайық.
4.6. Алгоритмдердің бірыңғай құрылымы
Күрделі алгоритмдерді құру үшін қарапайым бірыңғайланған алгоритмдік элементтер қолданылады. Олар сызықтық, тармақталу және цикл құрылымдарынан тұрады.
1. Сызықтық құрылымды алгоритм немесе қарапайым сызықтық алгоритм іс-әрекеттердің орындалу ретіне қарай тізбектеле орналасқан блоктардан тұрады.
Амалдардың бұлай бірінен соң бірі реттеліп орындалу тәртібін табиғи атқарылу дейді. Мыса-лы, төменде көрсетілген Z функциясының сандық мәнін есептеп шығару алгоритмін жасау керек болсын
.
Бұл функцияның мәнін табу үшін алдымен жақшада тұрған көпмүшелігін жеке есептеп алу қажет, себебі ол тізбек үш рет есептеліп оған машина уақытты көп кетіреді. Есептеліп болған Z функциясының мәні қағазға не экранға басылып шығуы тиіс. Жалпы ЭЕМ жадына мәндері алдын ала енгізілуі керек. Сонымен қарастырылған алгоритм қарапайым сызықтық алгоритмнің (4.3-сурет) мысалы болып табылады. Мұндағы 2-блок – мәндерін пер-нелерден программаға енгізу блогы, 3-блок t-ның, ал 4-блок Z функциясының мәндерін есептейді. 5-блок x айнымалысының және Z функциясының нәтижесін қағазға басып шығарады.
2. Тармақталу алгоритмдері. Тұрмыста кездесетін алгоритмдер әр түрлі бо-лып келеді. Олардың жиі кездесетін түріне алгоритмнің белгілі бір шарттың орындалуына не орындалмауына байланысты тармақталып бірнеше жолдарға бөлінуі жатады. Тармақталу алгоритмінің құрылымы қарапайым болып келеді. Мұнда арифметикалық теңсіздік (теңдік) түрінде берілген логикалық шарт тексеріледі. Егер ол орындалса, онда алгоритм бір жолмен, ал орындалмаса екінші жолмен жүзеге асырылады, яғни есепті шығару жолы тармақталып екіге бөлініп кетеді. Тармақталу алгоритмдеріне шартты тексеру блогы міндетті түрде кіреді. Ол ромб түрінде кескінделіп, басқа блоктармен 1 кіру және 2 шығу сызықтары арқылы байланысады. Көбінесе тармақталу алгоритмдері екі түрде кездеседі, олар "таңдау" және "аттап өту" мүмкіндіктерін іске асыруға көмектеседі.
"Таңдау" жолымен тармақталуда берілген шарт тексеріледі (4.4-сурет), егер ол шарт орындалса (орындалуы анық, ақиқат болса), онда 2-амал жүзеге асырылып, содан кейін келесі 3-амалға көшеміз. Ал, егерде шарт орындалмаса, яғни оның орындалу мүмкіндігі жалған болса, онда 1-амал атқарылып, содан кейін 3-амал атқарылады. Сонымен, шарттың ақиқат немесе жалған болуына байланысты 1-амал немесе 2-амал орындалады.
"Аттап өту" (4.5-сурет) алгоритмінде шарт орындалса, онда 1-амалды аттап өтіп, бірден 2-амалды, содан кейін 3-амалды орындаймыз. Ал шарт жалған болса, онда 1-амал міндетті түрде орындалып, одан кейін 2- және 3-амалдар жүзеге асырылады. Тармақталу кезеңінде шартты тексеру блогы
орындалуы барысында, алгоритмнің екі мүмкіндігінің тек біреуі ғана таңдап алынып жүзеге асырылады да, ал екінші таңдап алынбаған тармақ біріктіру нүктесіне дейін орындалмай қалады. Енді осыған нақты мысалдар келтірейік (4.6-сурет).
...
...
4.4 -сурет. "Таңдау" 4.5 -сурет. "Аттап өту"
тармақталу алгоритмі тармақталу алгоритмі
Достарыңызбен бөлісу: |