Оқу-ҽдістемелік материалдар «алгоритмдеу жҽне бағдарламалау негіздері» Баспа



Pdf көрінісі
бет2/11
Дата28.01.2017
өлшемі1,33 Mb.
#2921
1   2   3   4   5   6   7   8   9   10   11

 
2.1.2 Программалар кітапханасы 
 
    Зауытта жҧмысшы автомобильді қҧрастырғанда оған қажетті болтты ҿз 
қолымен қалыпқа қҧйып, содан соң оған ойық бҧранданы шығарып жасап алу 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 12-сі 
 
 
12 
ойына да келмейді. Оның орнынына ол жанында тҧрған сҿреден қолын созып 
керекті болтты таңдап алады. Егер басқа болт керек болса, онда ол оны басқа 
сҿреден  алады.  Алдын  ала  даярланған  стандартты  бҿлшектер  жатқан  мҧндай 
сҿрелер бҧл кітапхана іспеттес. 
Программалаушы адам да программа қҧрғанда осы жоғарыда айтылғанға 
ҧқсас  ҽрекет  етеді.  Ҥлкен  программалардың  95  пайызы  шағын  ғана  бҧрын 
жасалып  қойылған  дайын  стандартты  бағыныңқы  программалардан 
қҧрастырылады.  Бҥкіл  дҥние  жҥзі  бойынша  жазылған  кҿптеген  мыңдаған 
программалардың ішінен деректерді пернетақтадан ендіруді немесе деректерді 
экранға  шығаруды  басқаратын  бағыныңқы  стандартты  программаны 
пайдаланбайтын жағдай ҿте сирек кездеседі. Бір кодты бірнеще рет қайта-қайта 
жазудың  керегі  не?  Ішінен  стандартты  блоктарды  алып,  ешқандай  ҿзгерістер 
ендірмей-ақ пайдалануға болатын программалар кітапханасында файлдар бар. 
Мҧндай  кітапханалар  жылдан  жылға  сҧранысқа  ие,  ҽрі  ірілене  тҥсуде. 
Сондықтан  да  ҽр  жыл  сайын  программалаушылардың  еңбек  ҿнімділігі  арта 
тҥсуде. 
Он бес жылдан астам уақыт бҧрын компьютерлік программаның орташа 
ҿлшемі  40-50  Кбайтқа  жететін.  Ал  он  жыл  бҧрын  ол  100  Кбайтқа  жетті. 
Программалаушылар  қазіргі  кезде  бірнеше  Мбайт  орын  алатын  программалар 
жасауда.  Егер  олар  программалар  кітапханасын  пайдаланбайтын  болса,  онда 
мҧндай  программаларды  даярлауға  жиырма  жылдай  уақыт  жҧмсалған  болар 
еді. 
Қазіргі  кезде  стандартты,  коммерциялық  жҽне  фирмалық  бағыныңқы 
программалар бар. Стандартты программалар кітапханалары кеңінен таралған. 
Ҽрбір программалаушы адам оларды басқа компаниялар арнайы коммерциялық 
программалар кітапханаларын жасаумен айналысып оларды басқа компаниялар 
мен жеке программалаушыларға сатумен айналасуда. Кҿптеген компанияларда  
жҧмыс  істеген  жылдары  жиналған  ҿздерінің  фирмалық  программалар 
кітапханасы  бар.  Ҽрбір  фирма  безендірілуі,  стилі  жҽне  басқарылуы  ҽр  тҥрлі 
ҿздерінің  жеке  программалар  кітапханасын  пайдалануда.  Фирмалық 
программалар  кітапханалары  таратылмайды  жҽне  сатылмайды.  Оларды 
бҽсекелестерінен ҿте мҧқият қорғайды. Программаны жасаушы фирмалар ҥшін 
бҧл ҿте бағалы дҥние болып есептеледі. 
Хат жазғанда да адамдар оларды ҽр тҥрлі тілдерде жазады. Мысалы, қазақ 
тілінде  ,  ағылшын  тілінде  т.с.с.    Ағылшын  мен  қазақ  тілінде  жазылған 
хаттардың сыртқы кҿрінісі тіптен бҿлек болады.  
Программаларды  да  программалаушылар  арнай  тілдердің  кҿмегімен 
жазады,  оларды  программалау  тілдері  деп  те  атайды.  Ҽр  тҥрлі  тілдерде 
жазылған  бірдей  программалардың  кҿрінісінің  ҿзі  де  тҥрліше  болатындығы 
табиғи нҽрсе. 
Жҥздеген  программалау  тілдері  жҽне  олардың  ҽрқайсының  бірнеше 
нҧсқасы бар. Программалаушы адам программаны ҿзіне ыңғайлы тілде жазады. 
Барлық жағдайда жарамды ҽмбебап программалау тілі жоқ. 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 13-сі 
 
 
13 
Бірақ  барлық  программалау  тілдерінің  бір  ортақ  қасиеті  бар.  Олар 
програмалаушыларға  тҥсінікті,  бірақ  процессорға  тҥсініксіз.  Процессор  тек 
сандармен ғана жҧмыс істей алады, сондықтан тек машиналық кодта жазылған 
программаларды ғана тҥсінеді, сондықтан кез-келген тілде жазылған программа 
алдымен  процессор  тіліне  аударылады,  яғни  машиналық  кодқа  айналады.  Бҧл 
аудару жҧмысын арнайы аудармашы программа орындайды.  
Аудару  ағылшынша  трансляция  (  translation  )  деп  аталады,  сондықтан 
программаларды 
машина 
кодына 
аудару 
жҧмысын 
орындаушы 
программаларды трансляторлар деп атайды. 
Сондықтан  біздер  қандай  программалау  тілі  туралы  сҿз  болып 
отырғандығын  білмей  тҧрып  программаның  кҿрінісінің  қандай  болатындығын 
айта  алмаймыз.  Оның  есесіне  кез-келген  програма  трансляциялаудан  кейін 
машина  кодына  айналатынын  білеміз.  Компьютерге  орнатылған  барлық 
программалар  машина  кодына  жазылған.    Егер  біз  осы  кодты  кҿру  тҽсілін 
тапсақ, онда процессордың немен жҧмыс істеп жатқандығын кҿретін боламыз. 
 
2.3 Есепті компьютерде шығаруға даярлау технологиясы 
2.3.1 Есепті компьютерде шығарудың 
негізгі кезеңдері 
 
Есепті  компьютерде  шығару-  біраз  бҿлігі  компьютерсіз  жҥзеге 
асырылатын мынадай негізгі кезеңдерден тҧрады: 
1.
 
Есептің қойылуы: 
־
 
есеп туралы ақпараттарды жинау; 
־
 
есептің шартын тҧжырымдау; 
־
 
есепті шығарудың ақтық мақсатын анықтау
־
 
деректерді сипаттау ( олардың тҥрін, шамалардың ауқымын, қҧрлымын т.с.с. 
)  
2.
 
Есепті, моделдерді талдау және зерттеу: 
־
 
есептің бар ҧқсастарын талдау; 
־
 
техникалық жҽне программалық қҧралдарды талдау; 
־
 
математикалық модельді жасақтау; 
־
 
деректер қҧрлымын жасақтау. 
3.
 
Алгоритмді жасақтау: 
־
 
алгоритмді жобалау тҽсілдерін таңдау; 
־
 
алгоритмді жазу пішінін ( блок-схема, алгоритмдік тіл т.б. ) таңдау; 
־
 
тестерді жҽне тестілеу тҽсілдерін таңдау; 
־
 
алгоритмді жобалау. 
4.
 
Программалау: 
־
 
программалау тілін таңдау; 
־
 
деректерді ҧйымдастыру тҽсілдерін айқындау; 
־
 
алгоритмді таңдалынып алынған программалау тілінде жазу. 
 5.  Тестілеу және жөндеу: 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 14-сі 
 
 
14 
־
 
синтаксистік жҿндеу; 
־
 
семантикалық жҽне логикалық қҧрлымын жҿндеу; 
־
 
тестілік есептеулер жҽне тестілеу нҽтижелерін талдау; 
־
 
программаны жетілдіру. 
6.  Есептің шешілу нәтижесін талдау: 
Қажет  болатын  болса  2-5  кезеңдерді  қайтадан  орындай  отырып 
математикалық модельді айқындай тҥсу. 
7.
 
Программаны даярлау: 
־
 
нақтылы есепті шығару ҥшін программаны жетілдіру; 
־
 
есепті шешуге, математикалық модельге, алгоритмге, программаға, тестілер 
жиынына, программаны пайдалану ҥшін қҧжаттар жасау. 
 
2.4 Математикалық модельдер 
 
Зерттелетін  объект  немесе  процесс  олардың  сандық  параметрлерін 
байланыстыратын  формула  тҥрінде  берілетін  жағдайлар  жиі  кездеседі.  Бҧған 
мына тҿмендегі формулаларды жатқызуға болады: 
־
 
дененің геометриялық параметрлерін сипаттайтын формулалар
־
 
физикалық процестерді сипаттайтын формулалар; 
־
 
химиялық формулалар; 
־
 
тауардың бағасын есептеп шығаруға арналған тҧрмыстық формулалар т.с.с. 
Математикалық  модель  деп-  объектіні  немесе  процесті  олардың 
сандық  параметрлерімен  байланыстыратын  математикалық  формуламен 
сипаттауды айтамыз. 
Математикалық  модельдерді  жазуда  ҽр  тҥрлі  ғылымдарда  қабылданған 
тҥрлі таңбалау жҥйелері пайдаланылады. 
Математикалық  модельді  жасақтау  кҿптеген  есептерді  компьютерде 
шығаруда маңызды рҿл атқарады. 
Математикалық  модель  адамның  шығармашылық  жҧмысының  ҿнімі 
болып табылады. Компьютер ойша жасалған модельді жаңа сапалық деңгейде 
таңбалық пішінге аударады. 
Математикалық  модельдің  мысалы  ретінде  дененің  тҥзу  сызықты  орын 
алмастыру формуласын алуға болады: 
   
2
0
xt
xt
a
V
Х
Х


 
 мҧндағы,  х-  ағымдағы  координата,  х
0
-  бастапқы  координата,  v
xt

бастапқы жылдамдықтың  х осіне проекциясы, a
хt
- ҥдеудің х осіне проекциясы, 
t- уақыт. 
Қҧбылысты 
сипаттау 
ҥшін 
оның 
ең 
маңызды 
қасиеттерін, 
заңдылықтарын, ішкі байланыстарын оның кейбір жеке  сипаттамаларын бҿліп 
кҿрсетіп,  маңызды еместерін  ескермеуге  болады.  Қҧбылыстың  метематикалық 
моделін жасақтауда осы айтылғандарды ескеру қажет. 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 15-сі 
 
 
15 
Метематикалық  модельді  ең  ҧтымды  тҥрде  есептеу  эксперименті  деп 
аталатын алгориттмдік модель тҥрінде компьютерде жҥзеге асыруға болады. 
Ҽрине,  есептеу  экспериментінің  нҽтижесі,  егер  модельде  шындықтың 
маңызды жақтары ескерілмеген болса шындыққа сҽйкес келмеуі де мҥмкін. 
     Сонымен,  есепті  шешу  ҥшін  метематикалық  моделін  жасақтауда 
модель қҧра отырып, мыналарды ескеруіміз керек: 

 
математикалық  модель  қҧруда  негізге  алынатын  болжамды  бҿліп 
кҿрсету; 

 
алғашқы  деректер  жҽне  нҽтижелер  деп  неніесептеу  керектігін 
анықтау; 

 
нҽтижелерді 
алғашқы 
деректермен 
байланыстыратын 
метематикалық қатысты жазу. 
Математикалық модельді қҧруда алғашқы деректер арқылы іздеп отырған 
шаманы  ҿрнектейтін  формуланы  табу  барлық  уақытта  мҥмкін  бола  бермейді. 
Мҧндай  жағдайда  белгілі  бір  немесе  басқа  дҽрежелі  дҽлдікпен  жауап  беруге 
мҥмкіндік беретін математикалық ҽдістер пайдаланады. 
Ғылыми  есептерді  шығарғанда  мҥмкіндігінше  шындыққа  жақын  келетін 
математикалық  модель  қҧру  керек  болады.  Мҧндай  модель  бойынша  дҽл 
есептеулер емес жуықтап есептеулер жасалады, бірақ осының арқасында басқа 
жолдармен  алуға  болмайтын  деректерді  алуға  болады.  Есеп  математикалық 
модельге  келтірілгеннен  кейін  оны  шығарудың  алгоритмін  қҧруға  болады. 
Алгоритмнің дайын болуының белгілі бір кезеңінде программалау басталады. 
Есепті компьютерде шығаруға даярлауды 4-суреттегідей сҧлбамен беруге 
болады. 
Ҿмірде кҥрделі есептерді шығаруда ҥлкен ҧжымдар жҧмыс істейді. 
Есептің  бірінші  формальды  тҥсінігін  сол  есеп  пайда  болған  саланың 
маманы  даярлайды.  Математикалық  модельді  басқа  адамдар  жасай  алады,  ал 
ондағы  пайдаланылатын  алгоритмдерді  ҥшінші  бір  адамдар  жасайды.  Ең 
соңында  программалауды  тағы  бір  мамандар  тобы  іс  жҥзіне  асыра  алады. 
Осылайша, есеп ҥлкен ҧжымның бірлескен еңбегінің арқасында шығарылатын 
жағдайлар жиі кездеседі. 
 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 16-сі 
 
 
16 
 
Сурет 4 Есепті компьютерде шығаруға даярлау сҧлбасы 
 
2.5 Программаны жасақтаудың негізгі кезеңдері 
 
Программаны  жасақтаудың  процесін  мынадай  формуламен  ҿрнектеуге 
болады: 
Программаны жасақтау→даярлау+тексеру және жөндеу 
 
Жаңадан ғана жасалған программада қателіктің болуы-бҧл қалыпты жҽне 
заңды  қҧбылыс.  Іс-жҥзінде  нақты  жҽне  жеткілікті  дҽрежеде  кҥрделі 
програманы қателіксіз қҧру мҥмкін емес. 
Программаны  компьютердің қабылдауына жҽне  оның нҽтижесін  беруіне 
қарап  оны  дҧрыс  қҧрылған  деген  қорытынды  жасауға  болмайды.  Ҿйткені 
берілген жағдайда дҧрыс болмаса да қандай да бір нҽтиже алуға қолымыз жетті. 
Осының ҿзінде программада кҿптеген логикалық қателіктердің болуы мҥмкін. 
Кеткен  қателіктерді  анықтау  ҥшін  программаны  компьютерге  ендіріп,  іске 
қосқанға дейін былай тексереміз. 
Программа  мҽтінін  «қолмен»  қарап  шығу,  тексеру  жҽне  айналдыру 
арқылы тексеруге болады. 
Программа  мәтінін  қарап  шығу.  Программа  мҽтінін  жазуда  кеткен 
қателіктерді жҽне программаның алгоритмнен алшақтығын анықтау ҥшін қарап 
шығады.  Атап  айтқанда  итерация  санын  беуші  операторлардың  дҧрыстығына 
кҿз  жеткізу  ҥшін  барлық  циклдердің  ҧйымдастырылуын  қарап  шығу  ҿте 
маңызды.  Шартты  операторлардағы  шарттарды,  бағыныңқы  программаларға 
қатынас жасаудағы аргументтерді тексеріп шығу пайдалы. 
Программаны  тексеру.  Программалаушы  программаны  тексергенде 
оның мҽтіні бойынша программа анықтайтын есептелу процесін ойша қалпына 
келтіруге тырысады, осыдан кейін оны талап етілетін процеспен салыстырады. 
Алғашқы есеп 
Математикалық 
пішін 
Математикалық 
модель 
Алгоритм 
Программа 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 17-сі 
 
 
17 
Тексеру  кезінде  программаның  не  істейтіндігін  ҧмыту  жҽне  ол  туралы 
тексеру  барысында  білу  керек.  Тек  программаны  тексеру  аяқталғаннан  кейін 
ғана  оның  не  істейтіндігін  еске  тҥсіруге  жҽне  программаның  нақты  ҽрекетін 
талап етілетін ҽрекеттермен салыстыруға болады. 
Программаны 
айналдыру. 
Айналдырудың 
мҽні 
программаның 
компьютерде  орындалуын  программалаушының  ойша  орындауы  болып 
табылады. 
Айналдыруды  орындау  ҥшін  кейбір  алғашқы  деректерді  беріп  жҽне 
олармен қажетті есептеулерді жҥргізу қажет. 
Айналдыру-  бҧл  еңбекті  кҿп  талап  ететін  қиын  процесс,  сондықтан  оны 
тек программаның логикалық кҥрделі бҿліктеріне қолданған жҿн. 
Алғашқы  деректерді  программаны  айналдыру  кезінде  программа-ның 
зерттелетін кҿптеген тармақтары қамтылатындай етіп таңдап алу керек. 
 
2.6 Программаны жөндеу және тестілеу 
 
   Программаны  жөндеу  (debugging-  жҿндеу  ағылшын  сҿзі  сҿзбе-  сҿз 
аударғанда  қоңыздарды  аулау  деген  мағына  береді.)  дегеніміз  программаны 
компьютерден ҿткізудің нҽтижесі бойынша ондағы қателіктерді іздеу жҽне жою 
процесі. 
Тестілеу  (test  ағылшын  сҿзі  сынау  деген  мағына  береді)  дегеніміз 
программаның  немесе  оның  жеке  бҿліктерінің  дҧрыс  жҧмыс  істейтіндігін 
сынау,  тексеру. 
Жҿндеу жҽне тестілеу бҧлар бірінен бірі айқын ажыратылған жҽне біріне- 
бірі ҧқсамайтын екі кезең: 

 
жҿндеу  кезінде  синтаксистік  қателіктердің  жҽне  кодтаудың  айқын 
қателіктерін тҿңіректеу жҽне жою орындалады. 

 
тестілеу  процесі  кезінде  айқын  қателіктері  жоқ  программаның 
жҧмыс істеу қабілеттілігі тексеріледі. 
   Тестілеу 
қателіктің  бар  екендігін  тағайындайды,  ал  жҿндеу 
программаның дҧрыс жҧмыс істемеу себептерін анықтайды. 
    Қазіргі  заманғы  программалауды  жҿндеу  жҧмысы    жҿндеуші  деп 
аталатын  арнайы  программалық  қҧралды  пайдалану  жолымен  жҥзеге 
асырылады.  Бҧл  қҧралдар  программаның  ішкі  жҧмысын  зерттеуге  мҥмкіндік 
береді. 
    Жҿндеу программасы ҽдетте мына тҿмендегідей мҥмкіндіктер береді: 

 
ҽрбір  командадан  соң,  тоқтай  отырып,  программаны  қадамдап 
орындау; 

 
кез-келген айнымалының ағымдағы мҽнін  қарау немесе кез-келген 
ҿрнектің,  оның  ішінде  стандартты  функцияларды  пайдаланып  мҽнін  табу 
қажеттілігіне қарай айнымалының жаңа мҽнін пайдаланып орындау; 

 
программада  «тексеру  нҧктелерін»  орнату,  яғни  аралық 
нҽтижелерді  бағалау  ҥшін  программа  уақытша  ҿз  жҧмысын  тоқтататын 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 18-сі 
 
 
18 
нҥктелерді тағайындау т.б. 
   Программаны жҿндеуде мыналарды есте сақтау маңызды

 
жҿндеу  процесінің  басында  қарапайым  тестілік  деректерді 
пайдалану; 

 
пайда  болатын  қиындықтарды  айқын  ажыратып  жҽне  қатаң  тҥрде 
кезегімен жою; 

 
қателіктің есебі компьютерде деп есептемеу керек. 
 Тест дегеніміз-алғашқы деректердің кейбір жиыны жҽне осы деректерге 
сҽйкес  келетін  программа  жҧмысы  кезінде  алынуға  тиісіті  барлық 
нҽтижелерінің дҽл сипаттамасы. 
Программа  қаншалықты  ҿте  мҧқият  жҿнделсе  де  оның  жҧмысқа 
жарамдылығын тағайындаудың шешуші кезеңі программаның тестер жҥйесінде 
тікелей орындалуын тексеру болып табылады. 
    Егер  программа  таңдалынып  алынған  тестілік  деректер  жҥйесінен 
ҿткенде  барлық  жағдайда  дҧрыс  нҽтижелер  беретін  болса,  онда  программаны 
шартты тҥрде дҧрыс деп есептеуге болады. 
    Тестілеу  тҽсілін  жҥзеге  асыру  ҥшін  тестердің  эталондық  нҽтижелері 
алдын-ала даярланған немесе белгілі болуы тиіс. 
    Эталондық 
нҽтижелерді  программаның  компьютерде  орындалу 
нҽтижесін алғаннан кейін емес, керісінше алғанға дейін есептеп шығарып қою 
керек. 
     Тестілік  деректер  қателіктердің  пайда  болуының  барлық  мҥмкін 
болатын шарттарын тексеруді қамтамасыз ететін болуы тиіс, атап айтқанда: 
־
 
алгоритмнің ҽрбір тармағының сыннан ҿтуі; 
־
 
кезектегі тестіден ҿткізу алдыңғы ҿткізудегі тексерілмегендердің тексерілуі; 
־
 
программаның  жалпы  жҧмыс  істейтіндігін  тексеру  ҥшін  бірінші  тестің 
мҥмкіндігінше қарапайым болуы; 
־
 
есептеу  кҿлемін  қысқарту  ҥшін  тестідегі  арифметикалық  операциялардың 
шегіне дейін ықшамдалуы
־
 
тізбектер  элементі  санының,  итерациялық  есептеулер  ҥшін  алынған 
дҽлдіктің,  тестілік  мысалдар  цикліндегі  интерация  санының  есептеулер 
кҿлемін қысқарту тҧрғысынан берілуі; 
־
 
есептеулерді азайтудың тексеру сенімділігін тҿмендетпеуі; 
־
 
тестілік  деректер  жиынын  кездейсоқ  таңдау  кҥткен  нҽтижелерді  қолмен 
орындау  тҽсілімен  анықтауда  қиындықтарға  алып  келетіндіктен  жҽне 
кҿптеген жағдайлар тексерілмей қалатындықтан тестілеудің белгілі мақсатқа 
бағытталған жҽне жҥйеленген болуы; 
־
 
тестілік деректерді кҥрделендіруде тҥсудің біртіндеп жҥргізілуі. 
 
 
2.6.1 Тестілеу процесінің кезеңдері 
 
  Тестілеу процесін ҥш кезеңге бҿлуге болады. 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 19-сі 
 
 
19 
1.Қалыпты  жағдайда  тексеру.  Программалардың  жҧмыс  істеуінің 
нақты жағдайына тҽн алғашқы деректер негізінде тестілеу болжанады. 
2.Экстремальды  жағдайда  тексеру.  Бҧл  жерде  тестілік  деректер 
дегеніміз  алғашқы  деректер  жиынының  шекаралық  мҽндері.  Бҧл  жиын 
программа дҧрыс жҧмыс  істеуге тиісті алғашқы деректерден тҧрады. Ҿте кіші 
немесе ҿте ҥлкен сандар жҽне деректердің болмауы мҧндай деректердің типтік 
мысалдары болып табылады. 
Барлық программалар қандайда бір шектеулі алғашқы деректер жиынын 
ҿңдеуде  есептеліп  жасақталатындығы  белгілі.  Сондықтан  мына  тҿмендегі 
сҧрақтарға жауап алу маңызды: 
1.
 
Айнымалының  теріс  жҽне  нолдік  мҽндерін  ҿңдеуге  арналмаған 
программаға  қандай  да  бір  кеткен  қателіктің  себептерінен  дҽл  сол  мҽндерді 
ҿңдеуге тура келсе не болар еді? 
2.
 
Егер  массив  элементтері  оны  хабарлауда  кҿрсетілген  саннан  асып 
кетсе, онда массивтермен жҧмыс істеп жатқан программа ҿзін қалай ҧстар еді? 
3.
 
Егер ҿңделіп жатқан сан ҿте кіші немесе ҿте ҥлкен болса, онда не 
болар еді? 
 Программа  дҧрыс  емес    деректерді  дҧрыс  деректер  ретінде  қабылдап, 
дҧрыс  нҽтижеге  ҧқсас,  бірақ  дҧрыс  емес  нҽтиже  беретін  жағдайлар  ең  жаман 
жағдайлар болып есептеледі. 
    Программа  ҿзі  дҧрыс  ҿңдей  алмайтын  кез  келген  деректерді  теріске 
шығаратын болу тиіс. 
 
2.7 Программалауда кездесетін қателіктер 
 
    Компьютерде  есеп  шығарудың  барлық  кезеңдерінде,  атап  айтқанда, 
есептің қойылуына бастап, оның қҧжаттарын даярлағанға дейін қателіктің кетуі 
мҥмкін. 
   Мысалы  есептің  дҧрыс  қойылмауы,  есепті  шығару  ҥшін  қҧрылған 
алгоритмнің дҧрыс болмауы, логикалық қателіктер кететін жағдайларды дҧрыс 
есепке  алмау,  семантикалық  жҽне  синтаксистік  қателер,  операцияларды 
орындау  кезінде  кететін  қателіктер,  деректерді  беруде  жіберілетін  қателіктер, 
ендіру-шығару кезінде кететін қателіктер. 
    Ҽдетте  синтаксистік  қателіктер  трансляциялау  кезінде  байқалады. 
Кҿптеген  басқа  да  қателіктерді  программалаушының  не  ойлағандығын 
білмегендіктен транслятор таба алмайды. 
     Сондықтан компьютердің синтакасистік қателіктер туралы хабарының 
жоқ  болуы  программаның  дҧрыстығының  жеткілікті  щарты  болып 
табылмайды. 
    Синтаксистік қателіктердің мысалдары: 
־
 
тыныс белгілерінің қалып кетуі; 
־
 
жақшалардың сҽйкес келмеуі; 
־
 
оператордың дҧрыс жазылмауы; 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 20-сі 
 
 
20 
־
 
қызметші сҿздің дҧрыс жазылмауы; 
־
 
айнымалы атының дҧрыс жазылмауы; 
־
 
циклдің аяқталу шартының жоқ болуы; 
־
 
массив сипаттамасының жоқ болуы т.с.с. 
 
2.7.1 Транслятор таба алмайтын қателіктер 
 
   Программада  пайдаланылатын  операторлар  дҧрыс  жазылғанымен 
транслятор таба алмайтын кҿптеген қателіктер болады. 
     Осындай қателіктердің мысалдарын келтірейік. 
    
Логикалық қателіктер: 
־
 
кейбір  шартты  тексергенмен  кейін  алгоритмнің  қай  тармағын  орындауға 
ҿтуді дҧрыс кҿрсетпеу; 
־
 
мҥмкін болатын шарттарды толық есептемеу; 
־
 
программада  алгоритм  блоктарын  орындау  ҥшін  қажет болатын  бір  немесе 
бірнеше шамаларды қалдырып кету. 
  
Циклдерде кездесетін қателіктер: 
־
 
циклдің басын дҧрыс кҿрсетпеу; 
־
 
циклдің аяқталу шарттарын дҧрыс кҿрсетпеу; 
־
 
итерация санын дҧрыс кҿрсетпеу; 
־
 
шексіз цикл. 
 
Ендіру-шығару қателіктері; деректермен жұмыс істеудегі 
қателіктер: 
־
 
деректердің тҥрін дҧрыс бермеу; 
־
 
талап етілген аз немесе кҿп деректерді оқуды ҧйымдастыру; 
־
 
деректерді дҧрыс тҥзетпеу; 
  
Айнымалыларды пайдалануда кететін қателіктер: 
־
 
айнымалыларды олардың бастапқы мҽндерін кҿрсетпей пайдалану; 
־
 
бір айнымалыны басқа айнымалының орнына қате кҿрсету. 
 
Массивтермен жұмыс істеуде кететін қателіктер: 
־
 
алдын ала нолге келтірілмеген массивтер; 
־
 
дҧрыс сипатталмаған массивтер
־
 
индекстерінің берілу реттілігі дҧрыс емес массивтер. 
  
Арифметикалық операцияларды орындауда кететін қателіктер: 
־
 
айнымалының  тҥрін  дҧрыс    кҿрсетпеу  (мысалы,  нақты  айнымалының 
орнына бҥтін айнымалыны кҿрсету); 
־
 
ҽрекеттер ретін дҧрыс анықтамау; 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 21-сі 
 
 
21 
־
 
нҿлге бҿлу; 
־
 
теріс санның квадрат тҥбірін табу; 
־
 
санның мҽнді разрядын жоғалту. 
Осы қателіктердің бҽрін тестілеудің кҿмегімен табуға болады. 
 

Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   11




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет