Алгоритм және оның қасиеттері



Егер сіз берілген есепті шешу үшін қандай да бір программалау тілінде программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз керек. Алгоритм . математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып оны шеше білуге үйреткен ұлы математик Әл. Хорезмидің атының латынша жазылуы algorithmi сөзінен алынған. Осылайша алгоритм ұғымы математикада ертеден қолданыла бастағанымен, математикалық теорианың объектісі ретінде кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30.шы жылдарында зерттеле бастады.
Алгоритм деп берілген есепті шешудегі жасалатын әректтерді дәл және қарапайым етіп жазуды айтамыз. Басқаша айтқанда алға қойылған мақсатқа жетуде немесе берілген есепті шешуде орындаушыға біртіндеп қандай әректтер жасау керектігін дәл көрсететін нұсқауларды немесе іздеп отырған нәтижені алу мақсатында деректермен атқарылатын әрекеттерін орындалу реттілігін анықтайтын жарлықты алгоритм дейміз. Алгоритм белгілі бір реттіліепен бірінен соң бірі орындалатын бірнеше қадамдардан тұрады. Алгоритмнің әрбір қадамы бір немесе бірнеше қарапайым операцияларды қамтиды. Алгоритм ұғымның мәнін аша түсетін оның мынадай қасиеттері бар:
1. Алгоритм дискретті информациялармен жасалатын әрекеттерді тағайындайды және өрнектейді. Алгоритмге қатысты әрекеттердің бәрі дискретті болады. Алгоритмнің жұмысына қажетті материалдар ретінде символдық мәтіндер және сандар пайдаланылады.
2. Алгоритм біздің қалауымызға қарай өзгертуге болмайтын нақты нұсқау алгоритмде не істеу керектігі алдын.ала айқын береді. Мысалы, бір есепті шешудің алгоритмі берілсе онда ойланбай.ақ алгоритмде қандай нұсқаулар берілсе, сол нұсқауларды берілу ретімен орындасақ, есеп шығады. Алгоритмнің осы қасиетін оның анықталғандық қасиеті дейміз. Бұл жағдай адам сияқты емес ойлау қабілеті жоқ құрылғылардың мысалы, компьютердің көмегімен есептерді шешу мүмкіндігіне кепілдік берді. Мұндай құрылғылар алгоритмнің жарлықтарын ойланбастан формальды орындайды. Сондықтан алгоритмді есепті шығаруға қажеттінің бәрі бір мәнді анықталу және атқарушыға түсінікті әрі нақты болуы тиіс.
3. Бір алгоритмнің өзін бірнеше есептің шешімін табу үшін пайдалану мүмкіндігі, яғни бастапқы деректер мәндерінің жиынына пайдаланылу мүмкіндігі бар.
Алгоритмнің мұндай қасиетін көпшілікке бірдейлік, басқаша айтқанда, жалпылық қасиеті деп атайды.
4. Әрбір алгоритм белгілі бір бастапқы деректердің болуын талап етеді және іздеген нәтижені алуға жеткізеді. Мысалы, екі санды қосу алгоритмнде қосылғыштар бастапқы деректерге, ал қосынды нәтижеге жатады. Осылайша, алгоритмдегі әрекеттердің белгілі бір санның орындалуынан кейін қажетті нәтиже алу мүмкіндігі алгоритімнің нәтижелілігі деп аталады.
Осы айтылғандардан алгоритім бастапқы деректерді пайдаланып іздеген нәтижеге қол жеткізетін реттелген әрекеттер тізбегі деген қлрытынды жасруға болады. Мұндай әректтер тізбегінің орындалуы алгоритмдік

Пән: Математика, Геометрия
Жұмыс түрі:  Дипломдық жұмыс
Тегін:  Антиплагиат
Көлемі: 110 бет
Таңдаулыға:   
Алгоритм және оның қасиеттері

Егер сіз берілген есепті шешу үшін қандай да бір программалау тілінде
программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз
керек. Алгоритм – математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм
сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып
оны шеше білуге үйреткен ұлы математик Әл- Хорезмидің атының латынша
жазылуы algorithmi сөзінен алынған. Осылайша алгоритм ұғымы математикада
ертеден қолданыла бастағанымен, математикалық теорианың объектісі ретінде
кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30-шы жылдарында
зерттеле бастады.
Алгоритм деп берілген есепті шешудегі жасалатын әректтерді дәл және
қарапайым етіп жазуды айтамыз. Басқаша айтқанда алға қойылған мақсатқа
жетуде немесе берілген есепті шешуде орындаушыға біртіндеп қандай әректтер
жасау керектігін дәл көрсететін нұсқауларды немесе іздеп отырған нәтижені
алу мақсатында деректермен атқарылатын әрекеттерін орындалу реттілігін
анықтайтын жарлықты алгоритм дейміз. Алгоритм белгілі бір реттіліепен
бірінен соң бірі орындалатын бірнеше қадамдардан тұрады. Алгоритмнің әрбір
қадамы бір немесе бірнеше қарапайым операцияларды қамтиды. Алгоритм ұғымның
мәнін аша түсетін оның мынадай қасиеттері бар:
1. Алгоритм дискретті информациялармен жасалатын әрекеттерді
тағайындайды және өрнектейді. Алгоритмге қатысты әрекеттердің бәрі
дискретті болады. Алгоритмнің жұмысына қажетті материалдар ретінде
символдық мәтіндер және сандар пайдаланылады.
2. Алгоритм біздің қалауымызға қарай өзгертуге болмайтын нақты нұсқау
алгоритмде не істеу керектігі алдын-ала айқын береді. Мысалы, бір есепті
шешудің алгоритмі берілсе онда ойланбай-ақ алгоритмде қандай нұсқаулар
берілсе, сол нұсқауларды берілу ретімен орындасақ, есеп шығады. Алгоритмнің
осы қасиетін оның анықталғандық қасиеті дейміз. Бұл жағдай адам сияқты емес
ойлау қабілеті жоқ құрылғылардың мысалы, компьютердің көмегімен есептерді
шешу мүмкіндігіне кепілдік берді. Мұндай құрылғылар алгоритмнің жарлықтарын
ойланбастан формальды орындайды. Сондықтан алгоритмді есепті шығаруға
қажеттінің бәрі бір мәнді анықталу және атқарушыға түсінікті әрі нақты
болуы тиіс.
3. Бір алгоритмнің өзін бірнеше есептің шешімін табу үшін пайдалану
мүмкіндігі, яғни бастапқы деректер мәндерінің жиынына пайдаланылу
мүмкіндігі бар.
Алгоритмнің мұндай қасиетін көпшілікке бірдейлік, басқаша айтқанда,
жалпылық қасиеті деп атайды.
4. Әрбір алгоритм белгілі бір бастапқы деректердің болуын талап етеді
және іздеген нәтижені алуға жеткізеді. Мысалы, екі санды қосу алгоритмнде
қосылғыштар бастапқы деректерге, ал қосынды нәтижеге жатады. Осылайша,
алгоритмдегі әрекеттердің белгілі бір санның орындалуынан кейін қажетті
нәтиже алу мүмкіндігі алгоритімнің нәтижелілігі деп аталады.
Осы айтылғандардан алгоритім бастапқы деректерді пайдаланып іздеген
нәтижеге қол жеткізетін реттелген әрекеттер тізбегі деген қлрытынды жасруға
болады. Мұндай әректтер тізбегінің орындалуы алгоритмдік процесс, ал әрбір
әрекет оның қадамы, әрбір нұсқау алгоритмнің қалыптасуы болып табылады.
Алгоритмнің ең маңызды қасиеті жоғарыда анықталғандық қасиетінде
айтылғандай оның орындалу нәтижесінің атқарушыға тәуелсіздігі.
Сонымен алгоритм туралы мына төмендегідей тұжырымдар жасауға болады:
• алгоритмдер әртүрлі есептерді шешу үшін пайдаланылады;
• алгоритмді атқарушыдан аз білім талап етілетіндіктен есеп
шығаруды айтарлықтай оңайлатады;
• әрбір алгоритм толық аяқталған әрекеттерді орындайтын атқарушыға
арналған командалардан тұрады;
• атқарушы орындайтын командалардың жиынын атқарушының командалар
жүйесі д.а.
• алгоритмдегі командалар атқарушының командалар жүйесінен алынады;
• алгоритмдегі командалар тізбегінің орындалуы алгоритмдік процесс
д.а;
• алгоритмдегі әрбір команда оның қадамы д.а;
• санаулы әрекеттен кейін ғана алгоритмде іздеген нәтижеге қол
жетеді;
• алгоритмдегі әрбір әрекет атқарушыға түсінікті және нақты болуы
керек;
• бірнеше есептің шешімін табу үшін бір ғана алгоритмді пайдалануға
болады;
• құрылған алгоритмді атқару есептің мазмұнына ой жүгіртіп оны
талдауды қажет етпейді, тек командаларды формальді орындай береді;
• алгоритм әрбір атқарушыға арналып құрылады;
• алгоритмнің командалары атқарушыға түсінікті және орындалатын
болуы тиіс;
• алгоритмді атқаруды тек адамға емес компьютерге де жүктеуге
болатындығы есептеу процесін автоматтандыруға мүмкүндік береді;
Алгоритмнің құрамы дараланып және оның әрекеттері анықталғаннан кейін
алгоритмді жазып көрсету тәсілін және тілін білу керек
Алгоритмдік тілді падалану оны құрушының өзіне ғана түсінікті
командаларды көпшілік қауымның пайдалануына мүмкіндік береді.
Алгоритмді жазудың бірнеше тәсілдері бар.Төменде алгоритмді бейнелеу
әдістерінің логикалық құрылымы көрсетілген.

Алгоритмді бейнелеу әдістерінің ішінен біз блок – схема мен мектептік
алгоритмдік тілді пайдаланамыз.

Блок-схема

Блок схема компьютерге программалар жасау практикасында кеңінен
қолданылатын алгоритмдерді жазудың графикалық тәсілі, басқаша айтқанда,
алгоритмнің логикалық құрылымын график түрінде бейнелейтін тіл десек
болады. Есепті шешу алгоритімінің блок схемасын құрған кезде есепті шығару
процесі кезең дерге бөлініді. Әрбір кезең есептелетін операцияның сипатына
байланысты белгілі конфигурациясы бар бір геометриялық фигурамен (блокпен)
белгіленеді. Мысалы, жұмыр (сопақ), параллелограмм, тіктөртбұрыш, ромб
т.с.с.
Блок деп аталатын мұндай фигуралардың ішіне кезеңдердің мазмұны
жазылады. Есептелу процесінің бағыты блоктарды қосатын стрелкалармен
көрсетіледі. Осы аталғандардың бәрі блок – схема тілінің алфавитін құрайды
және олардың мағынасы алдын ала келісілген келісім бойынша беріледі.
Төмендегі 1-кестеде стандартты блок – схема тілінің алфавиті берілген.
Әрбір блок схеманың басы және соңы деп аталатын блоктары болады.
Басы, соңы блоктарынан басқа әрбір блоктың бір ену және бір – екі шығу
сызықтары болады.
Атқаратын қызметі жағынан блоктар негізгі және қосымша болып бөлінеді.
Негізгі блоктар енгізіу мен баспаға шығару және информацияларды өңдеу
әрекеттерін білдіреді, ал қосымша блоктар блок – схеманы түсіндіру және
байланыстарды таңбалау үшін пайдаланылады.
Блоктардың анықтайтын әрекеттері, яғни түсініктер блокты бейнелейтін
геометриялық фигураның ішіне жазылады.
Деректерді енгізу блогы есептеу есептерін шешуде айнымалылардың сандық
мәндерін компьютердің жадына енгізу үшін қолданылады.
Деректерді өңдеу блогы қандай да бір формула бойынша айнымалының мәнін
есептеу процесін білдіреді. Мұнда есептелген шамалар оларға сәйкес
айнымалылар жаңа мәндер қабылдағанша сақталады.
Бұл блокта формуланың сол жағында тұрған айнымалылар оның жағына да
қатыса алады, бұл дегеніміз айнымалының жаңа мәнін бұрын есептелген ескі
мәнінен шығарып алудың қажеттігін көрсетеді.
Шартты тексеру блогы есептелу процесінің барысы тікелей кейбір шартқа
тәуелді болатын есептелу процесінде анықталатын тармақталу алгоритмін
бейнелейді.
Аталуы Бейнеленуі Мазмұны

Жұмыр Алгоритмнің
басы.

Деректерді енгізу немесе
Параллеограм шығару.

Тіктөртбұрыш Меншіктеу амалы
немесе
кез
келген әрекет.
Жоғары жағы Массивті
хабарлаушы
жиектелген процедура.
тіктөртбұрыш

Екі шеті Бағыныңқы
программа
жиектелген
тіктөртбұрыш

Магниттік диск Информацияны
ИСТ – на

ендіру және одан оқу

Ия Жоқ

Шартты тармақталу
Ромб

Жұмыр
Алгоритмнің соңы

Түйін Бірнеше
сызықтарды
біріктіру.

Байланыссыз Сызықтардың
екі сызықтың қиылысуы
қиылысуы

Блоктарды қосатын
Сызықтар ағыны сызықтар және
олардың

бағыттары
Сызықтар
ағынының бағытын
Сызықтардың
өзгерту
бағыты

Түсініктеме --------
Ендіру немесе есептеу

блоктарын түсіндіру.

Сызықтық алгоритм

Егер алгоритмнің N қадамы болса және олардың барлығы басынан аяғына
дейін бірінен соң бірі тізбектеле орындалатын болса, онда ондай алгоритмді
сызықтық алгоритм деп атаймыз. Сызықтық алгоритмнің блок – схемасы мына
суретте бейнеленген.

Алгоритмнің басы

Мәліметтерді енгізу

Осы алгритмнің барлық N қадамы жоғары-
дан төмен қарай тізбектеле орындалады.

Нәтижелерді шығару

Алгоритмнің соңы

Мысалы, табаны В, биіктігі Н үшбұрышьң ауданын табатын алгоритмді
келтірейік.

Тармақталушы алгоритм

Егер алгоритм қадамдарының тізбектеле орындалуы қандай да бір шартқа
тәуелді өзгеретін болса, онда ондай алгоритмді тармақталушы алгоритм
дейміз.
Алгоритм орындалғанда "иә" немесе " жоқ " деген мәндердің бірі
қабылждай алатын логикалық өрнекті шарт деп атаймыз.
Кез келген шарт мынадай үш бөлімнен тұрады:
- сол жақ бөлігі;
- салыстыру таңбасы;
- оң жақ бөлігі.
Мысалдар келтірейік: А 0, Х А+С, К = 6
Мына төменде алгоритмнің тармақталушының бөлігінің жалпы түрі
келтірілген.
егер шарт
онда "иә" тармағы
әйтпесе " жоқ " тармағы
бітті

Мұнда егер, онда, әйтпесе, бітті – қызметші сөздер, егер команданың
басын, ал бітті команданың аяқталуын білдіреді.



иә жоқ



Тармақталу командасы мына тшөмендегідей қысқаша түрде пайдаланылады:

егер шарт
онда
"иә" тармағы
бітті


жоқ иә



Шартты тексеру блогын сіздер блок – схемада ромбымен таңбалаймыз. Егер
шарт дұрыс болса, онда есепті шешу үшін "иә" тармағы пайдаланылады, ал оған
кері жағдайда - "жоқ" тармағы пайдаланылады.
Мысал үшін ах + вх + с = 0 квадрат теңдеуінің нақты түбірлерін табуға
және нақты түбірлері болмаған жағдайда оған сәйкес хабарды баспаға
шығаратын тармақталу алгоритмнің блок – схемасын келтірейік.









иә жоқ





Қайталанушы алгоритм

Егер берілген шамаға тәуелді алгоритмнің белгілі бір тізбектелген
қадамдарды бірнеше рет орындалатын болса, онда ондай алгоритмді қайталанушы
(циклдік) алгоритм дейміз. Бұл берілген шама цикл параметрі деп аталады.
Кез келген қайталанушы алгогритмде ол аяқталу үшін параметр болуы
тиіс. Параметр белгілі бір мәнге ие болған кезде цикл аяқталатын болады.
Мына төменде циклдің басында параметр үшін қойылған шартты тесеруге
арналған қайталаушы алгоритмнің алгоритмдік тілде жазылуы және блок –
схемасмының жалпы түрі берілген.

Әзір шарт
ЦБ
команадалар тізбегі
ЦС

Мұнда әзір, ЦБ (циклдің басы), ЦС (циклдің соңы) – қызметші сөздер,
ЦБ және ЦС әзірше шарт орындалғанға дейін орындалатын командалар тізбегін
таңбалайды.





жоқ





Ал мына суретте циклдің соңында параметр үшін қойылған шартты
тексеруге арналған қайталанушы алгоритмнің блок – схемасының жалпы түрі
бейнеленген.









жоқ





Осы соңғы циклге мысал келтірейік.

S = К К- қосындысын есептейік және оның нәтижесін баспаға
шығаратын қайталанушы алгоритмнің блок – схемасы мына суреттегідей болады.















Алгоритмдерді құрылымын негізге
ала отырып құрастыру

Компьютер есеп шығару үшін алгоритм құру арнайы дағдыны талап ететін
жұмыс. Бұл жағдайда әсіресе бөтен алгоритмдерді оқуда алгоритм мынандай
талаптарды қанағаттандыруы тиіс:
• Түсінікті әрі өте жеңіл қабылданатын болуы;
• Алгоритмнің жеңіл тексерлетін болуы;
• Құрылымын түгел өзгерпей-ақ өзін модификациялауға мүмкіндік
беруі.

Осы аталғандарға қол жеткізу үшін алгоритмдерді құруда оның құрылымы
жағынан келу деп аталатын ерекше тәсілді башылыққа алу керек. Алгоритмдерді
құрастыруға құрылымы жағынан келгенде оның жоғарыда қарастырылған үш
базалық құрылымы:
Ілесу, тармақталу және қайталану негізге алынады, яғни кез келген күрделі
алгоритм осы құрылымдардан құрастырылады. Мысал ретінде үш санның ішінен
үлкенін іздеу алгоритмін қарастырайық.

Блок-схемадан көрініп тұрғанындай бұл алгоритм екі тармақталудың ілесуі
болып табылады. Бірінші ілесуде (тармақталу командасының толық үлгіде
жазылуы) а және в сандарының үлкені ізделінеді және олардың үлкені у-ке
меншіктеледі.
Екінші ілесуде (тармақталу командасының қысқаша түрде жазылуы) у-тің мәні
үшінші сан с-мен салыстырылады. Егер ус болса, онда у-ке с меншіктеледі,
ал керісінше болса, онда у өзгерісіз қалады. Осылайша алгоритм орындалғанда
айнымалы у өзінің мәні етіп а,в және с сандарының ең үлкенін қабылдайды.

Программаларды жасақтау технологиясы
Программалауға кіріспе

Компьютер жұмыс істеу үшін оған керекті програмаларды програмалаушы
адам жасайды.
Пргораммалаушы мамандығы дүние жүзіндегі ең бір тапшы мамандықтардың
бірі.
Программалау мамандығын таңдаған адам өмір бойы үйренеді.
Оқып шығып бірден программалаушы бола салатын ешқандай оқу құралы жоқ.
Прграммалаушының дайындығы негізгі ұғымдарды оқып үйренуден және
қарапайым прграммалау тәсілдерін меңгеруден басталады.
Компьютер командаларға бағынып жұмыс істейді. Біздер бұл командаларды
пернетақтаның көмегімен жазу машинкасында жазу жазғандай теріп ендіреміз.
Бірінші команданы ендірдік, компьютер оны қалай орындайды, қарап
шықтық, екінші команданы ендірдік, нәтижесін бағаладық,үшінші команданы
ендірдік. Осылайша, ендірілетін командалар көп әрі біртектес болған сайын
оларды ендіру адамның шыдамын тауысып жалықтырып жібереді. Төрт-бес
команданы есте сақтай отырып ендіруге, ал он команданы ендіру үшін қағазға
жазып алуға болады.Жүзден астам командаларды ендіру үшін өте жоғары
шыдамдалық қажет.
Ал егер жиі қайталанатын командалар тізбегін компьютерде файл түрінде
қатаң немесе иілгіш магниттік дискіге жазып сақтап қойып, командаларды
біздің пернетақтадан ендіруімізді күтпей-ақ сол дискідегі файлдан енгізуді
компьютердің өзіне жүктесек, қалай болған болар еді? Әрине, қолмен қайта-
қайта теріп отырғаннан горі ыңғайлы болар еді. Программаларды жасау
осылайша басталады, жоғарыда айтылғандай дискіге жазылған командалардан
тұратын файл нағыз прграмманың өзі болып табылады. Сонымен, прграмма
дегеніміз командалардың реттелген тізімі. Программа үшін оған қандай
командалардың кіретіндігі ғана емес, сонымен бірге олардың қандай ретпен
берілетіндігі де маңызды.
Прграмманы арнайы дайындықпен өткен адамдар жасайды. Оларды
программалаушылар деп атайды. Программаны қалай жасайды? – деген сұраққа
жауап беру қиын. Программалаушыллардың шеберлігінің көптеген құпиялары бар,
бірақ олардың бәрі мына төмендегідей екі нәрсені пайдаланады:
• программалау саймандары
• программалар кітапханасы
Программалау саймандары
Программалау саймандары дегеніміз не?-деген сұраққа жауап беру үшін
мынадай қарапайым ұқсастыру мысалын, яғни ауылда жер жыртып жүрген
троктлрды алайық. Трактор қандай саймандардың көмегімен жасалған? Ол
зауытта станоктың және жабдықтардың көмегімен жасалған. Бұл аталғандар
тракторды жасаушы саймандар блып табылады.
Ал станоктар мен жабдықтардың өздері қандай саймандардың көмегімен
жасалған? Олар басқа зауытта басқа станоктар мен жабдықтардың көмегімен
жасалған. Ал бұл станоктар мен жабдықтар қалай жасалған?
Осылайша, сұрақты қоя берсек әрбір станоктың өзінің алдында оны
жасаушы, алдыңғысынан қарапайым басқа станоктың бар екендігі келіп шығады.
Егер әрбір станоктың пайда болу тарихын қозғай берсек, онда біздер орта
ғасырдағы балға, егеу және төсті пайдаланатын ұстаханаға келіп тірелеміз.
Осы күнге дейін кейде трактор бұзылып қалғанда әлгі аталған балға және
егеуді пайдаланамыз.
Енді программа жасаудың жоғарыда келтірілген мысалға қандай қатысы бар
соған келейік.
Программалаушы пайдаланатын сайманнның өзі прграмма болып табылады.
Басқаша айтқанда, жаңа программаның өзін сайманның ролін атқаратын басқа
программаның көмегімен жасайды. Ал осы сайман программалар қалай жасалған?
Жоғарыда келтірілген ұқсастыру мысалымыздағы сияқты алдыңғысына қарағанда
қарапайым басқа сайман программалардың көмегімен жасалған. Осылайша, басқа
программалардың көмегімен жасалған жаңа программалардың жасалу ретін тізе
берсек, онда біздер жоғарыда айтқанымыздай программа жасаудағы балға мен
төске келеміз, яғни басқа сөзбен айтқанда программалаушылардың қолында
ешқандай программа болмайды, тек оның орнына белгілі сандық кодтарды ғана
түсінетін процессор болады. Мұндай кодтарды машиналық кодтар деп атайды.
Процессордың түсінетін және орындайтын кодтарының жиынын оның
комндалар жүйесі деп атайды.
INTEL фирмасының үйлесімді процессорларының командалар жүйесінде
бірнеше жүз түрлі командалар бар. Компьютердің программалары осы
командалардан жасалады.
Программалау саймандары – бұл шын мәнінде программалаушының өзіне
ыңғайлы түрде жазғандарын оқитын және оны процессорға қажетті машиналық
кодқа аударып беретін арнайы программа.
Программалар кітапханасы
Зауытта жұмысшы тракторды құрастырғанда оған қажетті болтты өз қолымен
қалыпқа құйып, содан соң оған ойық бұранды шығарып дасап алу ойына да
келмейді. Оның орнынына ол жанында тұрған сореден қолын созып керекті
болтты таңдап алады. Егер басқа болт керек болса , онда ол оны басқа
сөреден алады. Алдын ала даярланған стандартты бөлшектер жатқан мұндай
сөрелер бұл кітапхана іспеттес.
Программалаушы адам да программа құрғанда осы жоғарыда айтылғанға
ұқсас әрекет етеді. Үлкен программалардың 95 пайызы шағын ғана бұрын
жасалып қойылған дайын стандартты бағыныңқы программалардан құрастырылады.
Бүкіл дүние жүзі бойынша жазылған көптеген мың программалардың ішінен
деректерді пернетақтадан ендіруді немесе информацияны экранға шығаруды
басқаратын бағыныңқы стандартты программаны пайдаланбайтын жағдай өте сирек
кездеседі. Бір кодты бірнеще рет қайта-қайта жазудың керегі не? Ішінен
стандартты блоктарды алып, ешқандай өзгерістер ендірмей-ақ пайдалануға
болатын программалар кітапханасында файлдар бар.
Мұндай кітапханалар жылдан жылға сұранысқа ие, әрі ірілене түсуде.
Сондықтан да әр жыл сайын программалаушылардың еңбек өнімділігі арта
түсуде.
Он бес жылдан астам уақыт бұрын компьютерлік программаның орташа өлшемі
40-50 Кбайтқа жететін. Ал он жыл бұрын ол 100 Кбайтқа жетті.
Программалаушылар қазіргі кезде бірнеше Мбайт орын алатын программалар
жасауда. Егер олар программалар кітапханасын пайдаланбайтын болса, онда
мұндай программаларды даярлауға жиырма жылдай уақыт жұмсалған болар еді.
Қазіргі кезде стандартты, коммерциялық және фирмалық бағыныңқы
программалар бар. Стандартты программалар кітапхана-лары кеңінен таралған.
Әрбір программалаушы адам оларды басқа компаниялар арнайы коммерциялық
прграммалар кітапханаларын жасаумен айналысып оларды басқа компаниялар мен
жеке программалаушыларға сатумен айналасуда. Көптеген компанияларда ж ұмыс
істеген жылдары жиналған өздерінің фирмалық программалар кітапханасы бар.
Әрбір фирма безендірілуі, стилі және басқарылуы әр түрлі өздерінің жеке
программалар кітапханаысн пайдалануда. Фирмалық программалар кітапханалары
таратылмайды және сатылмайды. Оларды бәсекелестерінен өте мұқият қорғайды.
Программаны жасаушы фирмалар үшін бұл өте бағалы дүние болып есептеледі.

Программаның көрінісі

Хат жазғанда да адамдар оларды әр түрлі тілдерде жазады. Мысалы, қазақ
тілінде , ағылшын тілінде т.с.с. Ағылшын мен қазақ тілінде жазылған
хаттардың сыртқы көрінісі тіптен бөлек болады.
Программаларды да программалаушылар арнай тілдердің көмегімен жазады,
оларды программалау тілдері деп те атайды. Әр түрлі тілдерде жазылған
бірдей программалардың көрінісінің өзі де түрліше болатындығы табиғи нәрсе.
Жүздеген программалау тілдері және олардың әрқайсының бірнеше нұсқасы
бар. Программалаушы адам программаны өзіне ыңғайлы тілде жазады. Барлық
жағдайда жарамды әмбебап программалау тілі жоқ.
Бірақ барлық программалау тілдерінің бір ортақ қасиеті бар. Олар
програмалаушыларға түсінікті, бірақ процессорға түсініксіз. Процессор тек
сандармен ғана жұмыс істей алады, сондықтан тек машиналық кодта жазылған
программаларды ғана түсінеді, сондықтан кез-келген тілде жазылған программа
алдымен процессор тіліне аударылады, яғни машиналық кодқа айналады. Бұл
аудару жұмысын арнайы аудармашы программа орындайды. Оның жұмысын мына
схемадан көруге болады.

Бейсик тілі
Ассемблер тілі

Машина тілі

Схемадан көрініп тұрғанындай программаны қандай тілде жазсақ та, ол
аудармашы программаның жұмысының нәтижесінде ең соңында машина тіліне
(машиналық кодқа) аударылады.
Аудару ағылшынша трансляция ( translation ) деп аталады, сондықтан
программаларды машина кодына аудару жұмысын орындаушы программаларды
трансляторлар деп атайды.
Сондықтан біздер қандай программалау тілі туралы сөз болып отырғандығын
білмей тұрып программаның көрінісінің қандай болатындығын айта алмаймыз.
Оның есесіне кез-келген програма трансляциялаудан кейін машина кодына
айналатынын білеміз. Компьютерге орнатылған барлық программалар машина
кодына жазылған. Егер біз осы кодты көру тәсілін тапсақ, онда процессордың
неменр жұмыс істеп жатқандығын көретін боламыз.

Есепті компьютерде шығаруға даярлау технологиясы

Есепті компьютерде шығарудың
негізгі кезеңдері
Есепті компьютерде шығару біраз бөлігі компьютерсіз жүзеге асырылатын
мынадай негізгі кезеңдерден тұрады:
1. Есептің қойылуы:
• есеп туралыақпараттарды жинау;
• есептің шартын тұжырымдау;
• есепті шығарудың ақтық мақсатын анықтау;
• деректерді сипаттау ( олардың түрін, шамалардың ауқымын, құрлымын
т.с.с. )
2. Есепті, моделдерді талдау және зерттеу:
• есептің бар ұқсастарын талдау;
• техникалық және программалық құралдарды талдау;
• математикалық модельді жасақтау;
• деректер құрлымын жасақтау.
3. Алгаритмді жасақтау:
• алгоритмді жобалау тәсілдерін таңдау;
• алгоритмді жазу пішінін ( блок-схема, мектептік алгоритмдік тіл .
т.б. ) таңдау;
• тестерді және тестілеу тәсілдерін таңдау;
• алгоритмді жобалау.
4. Программалау:
• программалау тілін таңдау;
• деректерді ұйымдастыру тәсілдерін айқындау;
• алгоритмді таңдалынып алынған программалау тілінде жазу.
5. Тестілеу және жөндеу:
• синтаксистік жөндеу;
• семантикалық және логикалық құрлымын жөндеу;
• тестілік есептеулер және тестілеу нәтижелерін талдау;
• программаны жетілдіру.
6. Есептің шешілу нәтижесін талдпу:
Қажет болатын болса 2-5 кезеңдерді қайтадан орындай отырып
математикалық модельді айқындай түсу.
7. Программаны даярлау:
• нақтылы есепті шығару үшін программаны жетілдіру;
• есепті шешуге, математикалық модельге, алгоритмге, программаға,
тестер жиынына, программаны пайдалану үшін құжаттар жасау.

Математикалық модельдер

Зерттелетін объект немесе процесс олардың сандық параметрлерін
байланыстыратын формула түрінде берілетін жағдайлар жиі кездеседі. Бұған
мына төмендегі формулаларды жатқызуға болады:
• дененің геометриялық параметрлерін сипаттайтын формулалар;
• физикалық процестерді сипаттайтын формулалар;
• химиялық формулалар;
• тауардың бағасын есептеп шығаруға арналған тұрмыстық формулалар
т.с.с.
Математикалық модель деп- объектіні немесе процесті олардың сандық
параметрлерімен байланыстыратын математикалық формуламен ипаттауды
айтамыз.
Математикалық модельдерді жазуда әр түрлі ғылымдарда қабылданған
түрлі таңбалау жүйелері пайдаланылады.
Математикалық модельді жасақтау көптеген есептерді компьютерде
шығаруда маңызды рөл атқарады.
Математикалық модель адамның шығармашылық жұмысының өнімі болып
табылады. Компьютер ойша жасалған модельді жаңа сапалық деңгейде таңбалық
пішінге аударады.
Математикалық модельдің мысалы ретінде дененің түзу сызықты орын
алмастыру формуласын алуға болады:

Vxt+
мұнда, х- ағымдағы координата, х0- бастапқы координата, vx- бастапқы
жылдамдықтың х осіне проекциясы, aх- үдеудің х осіне проекциясы, t- уақыт.
Құбылысты сипаттау үшін оның ең маңызды қасиеттерін, заңдылықтарын,
ішкі байланыстарын оның кейбір жеке сипаттамаларын бөліп көрсетіп, маңызды
еместерін ескермеуге болады. Құбылыстың метематикалық моделін жасақтауда
осы айтылғандарды ескеру қажет.
Метематикалық модельді ең ұтымды түрде есептеу эксперименті деп
аталатын алгориттмдік модель түрінде компьютерде жүзеге асыруға болады.
Әрине есептеу экспериментінің нәтижесі егер модельде шындықтың маңызды
жақтары ескерілмеген болса шындыққа сәйкес келмеуі мүмкін.
Сонымен, есепті шешу үшін метематикалық моделін жасақтауда модель құра
отырып, мыналарды ескеруіміз керек:
• метематикалық модель құруда негізге алынатын болжамды бөліп
көрсету;
• алғашқы деректер және нәтижелер деп неніесептеу керектігін
анықтау;
• нәтижелерді алғашқы деректермен байланыстыратын метематикалық
қатысты жазу.
Математикалық модельді құруда алғашқы деректер арқылы іздеп отырған
шаманы өрнектейтін формуланы табу барлық уақытта мүмкін бола бермейді.
Мұндай жағдайда белгілі бір немесе басқа дәрежелі дәлдікпен жауап беруге
мүмкіндік беретін математикалық әдістер пайдаланады.
Ғылыми есептерді шығарғанда мүмкіндігінше шындыққа жақын келетін
математикалық модель құру керек болады. Мұндай модель бойынша дәл
есептеулер емес жуықтап есептеулер жасалады, бірақ осының арқасында басқа
жолдармен алуға болмайтын деректерді алуға болады. Есеп математикалық
модельге келтірілгеннен кейін оны шығарудың алгоритмін құруға болады.
Алгоритмнің дайын болуының белгілі бір кезеңінде программалау басталады.
Есепті компьютерде шығаруға даярлауды мынадай схемамен беруге болады.

Өмірде күрделі есептерді шығаруда үлкен ұжымдар жұмыс істейді.
Есептің бірінші формальды түсінігін сол есеп пайда болған саланың
маманы даярлайды. Математикалық модельді басқа адамдар жасай алады, ал
ондағы пайдаланылатын алгоритмдерді үшінші бір адамдар жасайды.
Ең соңында программалауды тағы бір мамандар тобы іс жүзіне асыра алады.
Осылайша, есеп үлкен ұжымның бірлескен еңбегінің арқасында шығарылатын
жағдайлар жиі кездеседі.

Программаны жасақтаудың негізгі кезеңдері
Программаны жасақтаудың процесін мынадай формуламен өрнектеуге болады:
Программаны жасақтау→даярлау+тексеру және жөндеу.
Жаңадан ғана жасалған программа қателіктің болуы-бұл қалыпты және заңды
құбылыс. Іс-жүзінде нақты және жеткілікті дәрежеде күрделі програманы
қателіксіз құру мүмкін емес.
Программаны компьютердің қабылдауына және оның нәтижесін беруіне қарап
оны дұрыс құрылған деген қорытынды жасауға болмайды. Өйткені берілген
жағдайда дұрыс болмаса да қандай да бір нәтиже алуға қолымыз жетті. Осының
өзінде программада көптеген логикалық қателіктердің болуы мүмкін. Кеткен
қателіктерді анықтау үшін программаны компьютерге ендіріп, іске қосқанға
дейін былай тексереміз.
Программа мәтінін қолмен қарап шығу, тексеру және айналдыру арқылы
тексеруге болады.
Программа мәтінін қарап шығу. Программа мәтінін жазуда кеткен
қателіктерді және программаның алгоритмнен алшақтығын анықтау үшін қарап
шығады. Атап айтқанда итерация санын беуші операторлардың дұрыстығына көз
жеткізу үшін барлық циклдердің ұйымдастырылуын қарап шығу өте маңызды.
Шартты операторлардағы шарттарды, бағыныңқы программаларға қатынас
жасаудағы аргументтерді тексеріп шығу пайдалы.
Программаны тексеру. Программалаушы программаны тексергенде оның
мәтіні бойынша программа анықтайтын есептелу процесін ойша қалпына
келтіруге тырысады, осыдан кейін оны талап етілетін процеспен салыстырады.
Тексеру кезінде программаның не істейтіндігін ұмыту және ол туралы
тексерру барысында білу керек. Тек программаны тексеру аяқталғаннан кейін
ғана оның не істейтіндігін еске түсіруге және программаның нақты әрекетін
талап етілетін әрекеттермен салыстыруға болады.
Программаны айналдыру. Айналдырудың мәні программаның компьютерде
орындалуын программалаушының ойша орындауы болып табылады.
Айналдыруды орындау үшін кейбір алғашқы деректерді беріп және олармен
қажетті есептеулерді жүргізу қажет.
Айналдыру- бұл еңбекті көп талап ететін қиын процесс, сондықтан оны
тек программаның логикалық күрделі бөліктеріне қолданған жөн.
Алғашқы деректерді программаны айналдыру кезінде программа-ның
зерттелетін көптеген тармақтары қамтылатындай етіп таңдап алу керек.
Программаны жөндеу және тестілеу

Программаны жөндеу (debugging- жөндеу ағылшын сөзі сөзбе- сөз аударғанда
қоңыздарды аулау деген мағына береді.) дегеніміз программаны компьютерден
өткізудің нәтижесі бойынша ондағы қателіктерді іздну және жою процесі.
Тестілеу (test ағылшын сөзі сынау деген мағына береді) дегеніміз
программаның немесе оның жеке бөліктерінің дұрыс жұмыс істейтіндігін сынау,
тексеру.
Жөндеу және тестілеу бұлар бірінен бірі айқын ажыратылған және біріне-
бірі ұқсамайтын екі кезең:
• жөндеу кезінде синтаксистік қателіктердің және кодтаудың айқын
қателіктерін төңіректеу және жою орындалады.
• тестілеу процесі кезінде айқын қателіктері жоқ программаның жұмыс
істеу қабілеттілігі тексеріледі.
Тестілеу қателіктің бар екендігін тағайындайды, ал жөндеу программаның
дұрыс жұмыс істемеу себептерін анықтайды.
Қазіргі заманғы программалау жөндеу жұмысы жөндеуші деп аталатын арнай
программалық құралды пайдалану жолыменр жүзеге асырылады. Бұл құралдар
программаның ішкі жұмысын знрттеуге мүмкіндік береді.
Жөндеу программасы әдетте мына төмендегідей мүмкіндіктер береді:
• әрбір командадан соң, тоқтай отырып, программаны қадамдап орындау;
• кез-келген айнымалының ағымдағы мәнәі қарау немесе кез-келген
өрнектің, оның ішінде стандартты функцияларды пайдаланып мәнін табу
қажеттілігіне қарай айнымалының жаңа мәнін пайдаланып орындау;
• программада тексеру нұктелерін орнату, яғни аралық нәтижелерді
бағалау үшін программа уақытша өз жұмысын тоқтататын нүктелерді
тағайындау т.б.
Программаны жөндеуде мыналарды есте сақтау маңызды;
• жөндеу процесінің басында қарапайым тестілік деректерді пайдалану;
• пайда болатын қиындықтарды айқын ажыратып және қатаң түрде кезегімен
жою;
• қателіктің есебі компьютерде деп есептемеу керек.
Тест дегеніміз-алғашқы деректердің кейбір жиыны және осы деректерге сәйкес
келетін программа жұмысы кезінде алынуға тиісіті барлық нәтижелерінің дәл
сипаттамасы.
Программа қаншалықты өте мұқият жөнделсе де оның жұмысқа жарамдылығын
тағайындаудың шешуші кезеңі программаның тестер жүйесінде тікелей
орындалуын тексеру болып табылады.
Егер программа таңдалынып алынған тестілік деректер жүйесінен өткенде
барлық жағдайда дұрыс нәтижелер беретін болса, онда программаны шартты
түрде дұрыс деп есептеуге болады.
Тестілеу тәсілін жүзеге асыру үшін тестердің эталондық нәтижелері алдын-
ала даярланған немесе белгілі болуы тиіс.
Эталондық нәтижелерді прогрмманың компьютерде орындалу нәтижесін
алғаннан кейін емес, керісінше алғанға дейін есептеп шығарып қою керек.
Тестілік деректер қателіктердің пайда болуының барлық мүмкін болатын
шарттарын тексеруді қамтамасыз ететін болуы тиіс, атап айтқанда:
• алгоритмнің әрбір тармағының сыннан өтуі;
• кезектегі тестіден өткізу алдыңғы өткізудегі тексерілмегендердің
тексерілуі;
• программаның жалпы жұмыс істейтіндігін тексеру үшін бірінші тестің
мүмкіндігінше қарапайым болуы;
• есептеу көлемін қысқарту үшін тестідегі арифметикалық операциялардың
шегіне дейін ықшамдалуы;
• тізбектер элементі санының, итерациялық есептеулер үшін алынған
дәлдіктің, тестілік мысалдар цикліндегі интерация санының есептеулер
көлемін қысқарту тұрғысынан берілуі;
• есептеулерді азайтудың тексеру сенімділігін төмендетпеуі;
• тестілік деректер жиынын кездейсоқ таңдау күткен нәтижелерді қолмен
орындау тәсілімен анықтауда қиындықтарға алып келетіндіктен және
көптеген жағдайлар тексерілмей қалатындықтан тестілеудің белгілі
мақсатқа бағытталған және жүйеленген болуы;
• тестілік деректерді күрделендіруде түсідің біртіндеп жүргізілуі.

Тестілеу процесінің кезеңдері

Тестілеу процесін үш кезеңге бөлуге болады.
1.Қалыпты жағдайда тексеру. Программалардың жұмыс істеуінің нақты жағдайына
тән алғашқы деректер негізінде тестілеу болжанады.
2.Экстремальды жағдайда тексеру. Бұл жерде тестілік деректер дегеніміз
алғашқы деректер жиынының шекаралық мәндері. Бұл жиын программа дұрыс жұмыс
істеуге тиісті алғашқы деректерден тұрады. Өте кіші немесе өте үлкен
сандар және деректердің болмауы мұндай деректердің типтік мысалдары болып
табылады.
Барлық программалар қандайда бір шектеулі алғашқы деректер жиынын
өңдеуде есептеліп жасақталатындығы белгілі. Сондықтан мына төмендегі
сұрақтарға жауап алу маңызды:
1. Айнымалының теріс және нолдік мәндерін өңдеуге арналмаған
программаға қандай да бір кеткен қателіктің себептерінен дәл сол
мәндерді өңдеуге тура келсе не болар еді?
2. Егер массив элементтері оны хабарлауда көрсетілген саннан асып
кетсе, онда массивтермен жұмыс істеп жатқан программа өзін қалай
ұстар еді?
3. Егер өңделіп жатқан сан өте кіші немесе өте үлкен болса, онда не
болар еді?
Программа дұрыс емес деректерді дұрыс деректер ретінде қабылдап, дұрыс
нәтижеге ұқсас, бірақ дұрыс емес нәтиже беретін жағдайлар ең жаман
жағдайлар болып есептеледі.
Программа өзі дұрыс өңдей алмайтын кез келген деректерді теріске
шығаратын болу тиіс.

Программалауда кездесетін қателіктер

Компьютерде есеп шығарудың барлық кезеңдерінде, атап айтқанда, есептің
қойылуына бастап, оның құжаттарын даярлағанға дейін қателіктің кетуі
мүмкін.
Мысалы есенптің дұрыс қойылмауы, есепті шығару үшін құрылған алгоритмнің
дұрыс болмауы, лолгикалық қателіктер кететін жағдайларды дұрыс есенпке
алмау, семантикалық және синтаксистік қателер, операцияларды орындау
кезінде кететін қателіктер, деректерді беруде жіберілетін қателіктер,
ендіру-шығару кезінде кететін қателіктер.
Әдетте синтаксистік қателіктер трансляциялау кезінде байқалады.
Көптеген басқа да қателіктерді программалаушының не ойлағандығын
білмегендіктен транслятор таба алмайды.
Сондықтан компьютердің синткасистік қателіктер туралы хабарының жоқ
болуы программаның дұрыстығының жеткілікті щарты болып табылмайды.
Синтаксистік қателіктердің мысалдары:
• тыныс белгілерінің қалып кетуі;
• жақшалардың сәйкес келмеуі;
• оператордың дұрыс жазылмауы;
• қызметші сөздің дұрыс жазылмауы;
• айнымалы атының дұрыс жазылмауы;
• цуиклдің аяқталу шартының жоқ болуы;
• массив сипаттамасының жоқ болуы т.с.с.

Транслятор таба алмайтын қателіктер

Программада пайдаланылатын операторлар дұрыс жазылғанымен транслятор
таба алмайтын көптеген қателіктер болады.
Осындай қателіктердің мысалдарын келтірейік.
Логикалық қателіктер:
• кейбір шартты тексергенмен кейін алгоритмнің қай тармағын орындауға
өтуді дұрыс көрсетпеу;
• мүмкін болатын шарттарды толық есептемеу;
• программада алгоритм блоктарын орындау үшін қажет болатын бір немесе
бірнеше щамаларды қалдырып кету.
Циклдерде кездесетін қателіктер:
• циклдің басын дұрыс көрсетпеу;
• циклдің аяқталу шарттарын дұрыс көрсетпеу;
• итерация санын дұрыс көрсетпеу;
• шексіз цикл.
Ендіру-шығару қателіктері; деректермен жұмыс істеудегі қателіктер:
• деректердің түрін дұрыс бермеу;
• талап етілген аз немесе көп деректерді оқуды ұйымдастыру;
• деректерді дұрыс түзетпеу;
Айнымалыларды пайдалануда кететін қателіктер:
• айнымалыларды олардың бастапқы мәндерін көрсетпей пайдалану;
• бір айнымалыны басқа айнымалының орнына қате көрсету.
Массивтермен жұмыс істеуде кететін қателіктер:
• алдын ала нолге келтірілмеген массивтер;
• дұрыс сипатталмаған массивтер;
• индекстерінің берілу реттілігі дұрыс емес массивтер.
Арифметикалық операцияларды орындауда кететін қателіктер:
• айнымалының түрінр дұрыс көрсетпеу (мысалы, нақты айнымалының орнына
бүтін айнымалыны көрсету);
• әрекеттер ретін дұрыс анықтамау;
• нөлге бөлу;
• теріс санның квадрат түбірін табу;
• санның мәнді разрядын жоғалту.

Осы қателіктердің бәрін тестілеудің көмегімен табуға болады.

Программалау жүйесі

Программалау жүйесі компьютердің программалық қамсыздандыруының
құрамына жатады және ол программаларды жасау және оларды жөндеу жұмыстарын
автоматтандыруды қамтамасыз ететін құралдардың жиыны болып табылады.
Программалау жүйесінің құрамы мына төмендегі схемада бейнеленген:

Программалау процесі үш кезеңге бөлінеді:
• есепті шешудің алгоритмін құру;
• программа құру;
• жасалған программаны тексеру.
Екінші кезеңдегі, яғни программа қрудағы қиындық адамның тек машина
тілінде ғана программа жасауына байланысты болады. Компьютерді пайдаланудың
алғашқы жылдарында әрқайсының әр түрлі компьютерлердің пайда болуы бұл
қиындықты тереңдетіп жібереді. Сондықтан нәтижесінде бір компьютерге арнап
жасаған программаны басқа компьютерге пайдалануға болмайтын болды. Бұл бір
алгоритмнің өзін әр түрлі компьютерлерде орындау үшін әрқайсына жеке-жеке
программа құруға мәжбүр етіпижұмысты қиындатып жіберді.
Әрбір компьютер үшін жасалған программаның дұрыс және ұтымды
жасалғандығын тексеру қажет. Қателік кеткендігі және басқа да кемістіктері
бар екендігі анықталса, онда ол программаға түзетулер мен өзгерістер
ендіріледі. Программалаудың осы аталған кезеңдерінің арнайы ерекшеліктері
және қиыншылықтары бар.
Барлық осы аталған қиыншылықтар программалар жасаудағы атқарылатын
жұмыстарды мейлінше ықшамдап қысқарту мәселесін күн тәртібіне қояды. Бұл
мәселені шешу программалау процесін автоматттандыруды, яғни компьютердің
өзін программалар жасауға немесе программалауға байланысты таза техникалық
жұмыстар атқаруға пайдалануды талап етеді. Автоматтандыру программа жасаушы
мамандардың жұмысын жеңілдетуді, оны жасауда кететін қателіктердің санын
азайтуды, ең соңында есептің қойылуынан бастап нәтиже алғанға дейін кететін
уақытты қысқартуды көздейді. Программалауды автоматттандырудың ең көп
тараған негізгі тәсілдеріне мыналар жатады:
• қолмен программалауды жеке жұмыстарын автоматтандыру тәсілдері;
• бағыныңқы программалар кітапханасын құру;
• программалаудың әр түрлі тілдерін пайдалану.
Қолмен программалаудың жеке жұмыстарын автоматтандыру тәсілдері. Қолмен
программалаудағы жұмыстарды автоматтандыруда жұмыс программаларын түзетуді
негізгі назарда ұстау керек.
Қазіргі кезде программаның дұрыстығын тексеру үшін жоғарыда айтқандай
тест тәсілі кеңінен қолданылады. Тест тәсілі бойынша жауаптарды алдын ала
белгілі есептердің бірнеше нұсқасы компьютерде құрылған программаны
пайдаланып шығарылады. Алынған нәтижелер алдын ала белгілі жауаптармен
салыстырылады. Ол жауаптар біріне – бірі сәйкес келмесе, онда программада
қателіка кеткен болып шығады.
Программаны жөндеу процесі бірнеше әмбебеп жөндеуші программаларды
жасау және компьютердің өзін пайдалану арқылы автоматтандырылады. Бұл
программалар командалардың қалай орындалып жатқандығы туралы информацияны
баспаға бере отырып жөнделіп жатқан программаның кез келген бөлігінің
жұмысын қадағалап бақылауға мүмкіндік береді. Программаны автоматты түрде
жөндеуде программалаушыны қызықтыратын барлық информация құжатқа жазылады,
соның арқасында ол компьютерді пайдаланбай-ақ есептің компьютерде шншілу
процесінің дұрыстығын бақылай алады.

Программалау тілдері

Программаларды жасауда қазіргі заманғы компьютерлерде әр түрлі
деңгейдегі программалау тілдері пайдаланылады.
Жалпы жағдайда тіл деп информацияның жазылыуын және оның түрленуін
белгілі ережелер бойынша формальдыетіп беруші құралдарды түсінеміз.
Тілдің құрамында информацияның негізгі элементтерін құрудың құралдары
және осы элементтерден әр түрлі мазмұнды құрылымдар құруға арналған
ережелер жүйесі бар.
Программалау тілі деп деректерді жазуға және оларды белгілі ережелер
бойынша өңдеуге арналған адам мен компьютерді байланыстыратын формальды
тілді айтамыз.
Програмалаудың әр түрлі тілдерін пайдалану.
Әр түрлі белгілер бойынша жіктеуге болатын бірнеше жүздеген
программалау тілдері бар. Ең жалпысы тілдің машинаға жақындық дәрежесі
бойынша жіктеу болып табылады. Осы белгісі бойынша программалау тілдері екі
үлкен топқа бөлінеді:
• машинаға тәуелді тілдер;
• машинаға тәуелсіз тілдер;
Машинаға тәуелді тілдер өз кезегінде былай бөлінеді:
• машина тілі;
• машинаға бағдарланған тілдер;
Машинаға бағдарланған тілдер кейде автокодтар деп те аталады. Машинаға
бағдарланған тілдердің екі деңгейі бар:
• символдық кодтау тілдері, басқаша айтқанда мнемокодтар;
• макротілдер.
Макротілдер машина тілінің командаларына тікелей ұқсастығы жоқ
макрокомандаларды пайдалануға рұхсат етеді. Макрокомандаларды пайдалану
программаны қысқартады әрі тілді жасау құралдарының жиынын кеңейте отырып
программалаушының еңбегінің өнімділігін арттырады.
Машинаға тәуелсіз тілдер программаларды бөлшектеу дәрежесіне қарай
екі топқа бөлінеді:
• процедулалы- бағдарланған тілдер;
• проблемалы – бағдарланған тілдер.
Процедулалы – бағдарланған тілдер есепті шешу алгоритмін сипаттауға
арналған, сондықтан да оларды кейде алгоритмдік тілдер деп те атайды.
Алгоритмдік тіл деген ұғым программалау тілі деген ұғыммен сәйкес елмейді.
Егер алгоритмдік тілде жазылған алгоритмдік жазу компьютерге ендіруге
тікелей жарамды және дайын жұмысшы программаға түрленетін болса, онда
мұндай алгоритмдік тіл программалау тілі де бола алады. Кейбір алгоритмдік
тілдер тек оларға кейбір құралдарды қосқаннан кейін ғана программалау тілі
болады.
Проблемалы – бағдарланған тілдер есептерді сипаттау үшін қызмет
атқарады.
Бірақ алгоритмдік тілдер өздігінен барлық проблеманы, тіптен
программаны да шеше алмайды. Мұндай тілде жазылған программа компьютерде
тікелей орындалмайды, ол орындалу үшін алдын ала сол компьютердің машина
тіліне аудару жеткілікті қиын мәселе болып табылады.
Алгоритмдік тілден программаны машина тіліне аудару жұмысын
компьютердің әмбебаптығын пайдаланып, оның өзіне жүктеуге болады. Бұл үшін
әрбір алгоритмдік тілден машина тіліне формальды аударуға яғни аударудың
ережесін алгоритм түрінде тұжырымдауға мүмкіндік беретіндей болуы керек.
Егер, осы алгоритмді бір рет машиналық программа түріне келтіріп алсақ,
онда одан кейін осы программаның көмегімен компьютердің өзі берілген
алгоритмдік тілде жазылған кез келген программаны нақтылы компьютердің
машина тіліне аударып бере алады. Мұндай арнайы аудармашы-программа
жоғарыда айтқанымыздай транслятор деп аталады.

Машина тілі

Компьютердің ақпараттық бөлігі тікелей түсінетін жалғыз тіл: ол –
машина тілі.
Машина тілі деп копьютердің құрамындағы процессор командаларының
кодын айтамыз.
Архитектурасы әртүрлі процессорлардың машина тілдері де түрліше болады.
Тек өзара үйлестірілген процессорларда ғана машина тілдері бірдей болады.
Мұндай процессорлардың командалар жүйесі төменнен жоғары қарай
үйлесімділікте болады деп айтылады.
Сонымен әрбір компьютердің өзінің машина тілі болады және ол тек осы
тілде жазылған программаларды ғана тікелей орындай алады.
Машина тілінде программалау деп программаға енетін командалардың
реальды кодтарын тікелей жазуды айтамыз.
Командалардың кодтары әр түрлі санақ жүйелерінде берілуі мүмкін:
• екілік;
• сегіздік;
• он алтылық;
Мысалы, процессордың А аккумляторының ішіндегісін В регистіріне жөнелту
дегенді білдіретін МОV В,А командасының кодын әр түрлі санақ жүйелерінде
былай жазып көрсетуге болады:

Санақ жүйелері Коды
Екілік 010001111
Сегіздік 107
Он алтылық 47

Келтірілген мысалдан көрініп тұрғандай команда он алтылық санақ
жүйесінде ең ықшамды түрде жазылған.
Машина кодтарын пайдаланып программалау үшін қарапайым жағдайда қағаз,
қалам және информацияны тасымалдаушыға машина кодындағы программаны жазуға
арналған перфоратор болса жеткілікті. Командалардың он алтылық кодтары
пернетақтадан компьютердің жадына ендіріледі, монитор программаны түзету
процесін басқарады, ал экран командалардың коды мен деректерді он
алтылық кодта бейнелеп көрсетеді. Машина кодын пайдаланып программалауда
еңбек өнімділігін артыру үшін командалардың мнемоникасын және коды берілген
анықтамалық кестелерді пайдалануға болады.
Бірақ қазіргі кезде машина тілінде программалау тек қысқа
программаларға шамалы өзгерістер өндіру қажет болған жағдайларда ғана
қолданылады, өйткені бұл программа жасаушылар кездесетін мынадай
қиыншылықтарға байланысты:
• процессор командаларының көптеген кодтарын есте сақтауға тура келеді;
• жадтың абсолюттік адрестері, әсіресе шартты өтулердің саны көп,
сондықтан ұзын программалар жасауда қадағалау өте қиын;
• жазылған программаны қайта жетілдіріп, өзгертіп жасау өте күрделі
жұмыс болады;
• машина кодтарында жазылған программалар өте қиын оқылады;
• тек қана сандардан тұратын программаны жасау программана жасаушыны
жалықтырып жібереді және программаларда қателіктердің келуіне алып
келеді.
Осылауша машина тілі цифрлар тілі бола отырып, программа жасаушы
адамнан программаны жазуға және оны жөндеуге көп уақыт жұмсауды талап
етендіктен, программалау үшін жарамдылығы шамалы болады.

Ассемблер және макроассемблер тілдері

Ассамблер таңбалар (символдар)тілі бола отырып,белгілі бір дәрежеде
машина тілінде программа жасаудағы кемшіліктерді жоюға мүмкіндік береді.
Ассамблер тілінде программаның барлық элементтері таңбалармен
берілетіндігі оның басты артықшылығы болып табылады.Басқаша айтқанда
ассамблер тілінің машина командаларының цифрлық кодтарын әріптермен немесе
әріп-цифрлармен таңбалауға және деректердің таңбалық аттарын пайдалануға
мүмкіндік беретіндігі оның машина тілінен айырмашылығы болып табылады.
Ассамблер тілінің командаларын машина тіліне аударғанда машина командасын
білдіретін әрбір оператор осы команданың цифрлық кодтарымен алмастырылады.
Командалардың таңбалық аттарын олардың екілік кодтарына түрлендіру жұмысы
программа жасаушы адамды өте қиын әрі күрделі машақаты көп жұмыстан
босататын және бұл жағдайда құтиылоуға болмайтын қателіктерден құтқаратын
арнайы программа-ассамблерге жүктеледі.
Ассамблер тілінде программалауда пайдаланылатын таңбалық аттар
программаның семантикасын, ал команданың қысқартылып берілген атаулары
оның негізгі функциясын білдіреді.Мысалы, ADD-қосу, SUB-азайту, PARAM-
параметр т.с.с.Мұндай аттарды программа жасаушылар оңай есінде сақтайтын
болады.
Ассамблер тілінде программа жасау үшін машина тілінде программа
жасағандағыдан көп күрделі құралдар қажет болады:
• сыртқы құрылғылармен жабдықталған дербес компьютер;
• процессордың түріне қарай резиденттік немесе жүйелік программалар.
Машина тіліне қарағанда ассамблер тілі едәуір күрделі, программаларды
ұтымды жазуға және жөндеуге мүмкіндік береді.
Ассамблер ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Алгоритм типтері
Алгоритм тілін оқыту әдістемесі
Алгоритм және алгоритмдеу ұғымдары
Алгоритмдер теориясы. Анықтамасы. Қасиеттері. Түрлері. Алгоритмді жазу әдістері. Алгоритм модельдері
Алгоритм тілінде есеп шығару жолдары
Информатика пәнінен әдістемелік құрал
Алгоритмнің күрделілігі - осы алгоритмді есептеу процесінде қолданылған элементарлы қадамдар саны
Алгоритмдердің концепциялары мен қасиеттері
Алгоритм. Алгоритм қасиеттері
Алгоритмнің қасиеттері
Пәндер