76
4.4 С/С++ тілінің негізгі операторларын қолдану арқылы
есептер шығару
«Жҧмысты жаңа бастаған» программалаушылар, әсіресе студенттер прог-
рамма жазуды былай бастайды: тапсырманы алған соң, бірден компьютерге
отырады да, сол алгоритмнің ӛздері білетін фрагменттерін кодтай бастайды.
Айнымалыларға бірден қарапайым атаулар (x және y сияқты) береді.
Компьютер жҧмыс істемей тҧрып қалған жағдайда, жазылған программаның
барлығы ӛшеді де, ҥзіліс жасалынып, барлық жҧмыс басынан қайталанады.
Компилятордың, компьютердің немесе операциялық жҥйенің дҧрыс жҧмыс
істемей жатқандығы жайлы жаңсақ кҥмәнді пікірлер де айтылып жатады.
Программаны орындау кезіне жеткенде, оған кез келген мәндер енгізіледі де,
экранға шыққан нәтижелерге таңданып қараумен болады. Мҧндай программа
мәліметтердің тек бір енгізілген мәндері ҥшін ғана жҧмыс істейді, ал ӛзгерістер
енгізілсе, ойға симайтын нәтижелер шығып, автордың ӛзіне деген сенімсіздігі
пайда болып, тіпті ол программалау ісін жек кӛріп кететін жағдайларға да тап
болуы мҥмкін.
Студенттің мақсаты программалауды кәсіби деңгейде ҥйрену болып
табылады. Жақсы маман әрбір программаны онда қойылған талаптарға сәйкес
жазуға қанша уақыт кететінін алдын ала анықтай алатын дәрежеде болуы тиіс.
Мҧндай жҧмысқа «білім, шыдам және тӛзімділіктен» басқа, тәжірибе ӛте қажет
нәрсе болып саналады. Оған қоса, программалау пәні шыққаннан бергі жарты
ғасырдан аса мерзімде мамандардың жинақтаған негізгі қағидаларын да меңге-
ру қажет. Тіпті ең қарапайым программа жазуда да біртіндеп тізбекті тҥрде
атқарылатын ережелер тәрізді әрекеттерді орындау керек екендігін білген
артық болмайды.
Программа жазып есеп шығаруда мынадай жҧмыс кезеңдері атқарылады:
1. Есептің математикалық моделін жасау. Бҧл кезеңде берілген мәлімет-
тер мен алынатын нәтижелер және де мәліметтерден нәтижеге қол жеткізуді
жҥзеге асыратын матеметикалық формулалар анықталады.
2. Есептің шығару алгоритмін құру. Берілген мәліметтерден қажетті нәти-
желер алу жолында атқарылатын әрекеттер толық анықталуы тиіс. Олар табиғи
тіл немесе графикалық алгоритмді бейнелеу тәсілдерімен ӛрнектелуі тиіс.
3. Белгілі бір программалау тілінде алгоритмге сәйкес программа жазу.
Бҧл кезеңде алгоритмнің әрбір қадамына сәйкес таңдап алынған программалау
тілінің операторлары (конструкциясы) жазылады.
4. Программаны орындау немесе атқару (бастапқы модуль
компилятор
объектілік модуль
қҧрастырушы
атқарылу модулі тізбегін алу).
5. Программаны тексеріп (тестен ӛткізіп), оның қателерін түзету,
жӛндеу. Программаны орындау барысында ҥш тҥрлі қате кетуі мҥмкін:
а) синтаксистік қате – компиляциядан ӛткізу кезеңінде тҥзетіледі.
77
ә) программаның атқарылуы кезінде анықталатын қателер (сандардың 0-ге
бӛлінуі, теріс саннан тҥбір, логарифм алу, т.с.с.) программаны алғашқы орын-
дауда анықталады.
б) семантикалық (логикалық) қателер тапсырманы дҧрыс тҥсінбеген жағ-
дайда, алгоритм дҧрыс қҧрылмаған кездерде болады.
Мҧндай қателерді анықтау ҥшін программаны белгілі бір сандарды бастапқы
мәліметтер тҥрінде енгізіп орындау қажет, яғни тестен ӛткізу керек. Тестен
ӛткізудің мақсаты – қате барын анықтау, қате кеткен орынды тауып, оның
себептерін анықтау, соларға сәйкес программаны тҥзету. Тест дегеніміз – алдын
ала нәтижелері белгілі болып келетін бастапқы мәліметтер жиыны. Қатені
анықтауға кӛмектескен тест тиімді болып саналады. Программаны жӛндеу ісі
тестердің барлығы (немесе қажетті бӛлігі) қатесіз орындалғанда аяқталады,
яғни олардың бәрі де дҧрыс нәтиже бергенде тоқтатылады.
Тестердің жеткілікті (қажетті) санын анықтаудың екі жолы бар: бірінші
тәсілде программа «қара жәшік» ретінде қарастырылады да, оған бастапқы
мәлімет енгізіліп, нәтиже алынады. Жәшіктің ішкі қҧрылымы бізге белгісіз.
Программаны мҧндай жолмен толық тестен ӛткізу ҥшін оны барлық берілген
мәліметтер жиынында тексеріп шығу керек, ал ол мҥмкін жҧмыс емес.
Сондықтан программаны толық тексеру ҥшін қажетті тестер санын анықтайтын
арнайы критерилер қҧрастырылады. Осы тәсілде алдымен келесі критерилер
қолданылады:
1) бастапқы мәліметтер кластарын тестен ӛткізу, яғни тестер жиыны мәлі-
меттердің әрбір класынан бір-бір мән алуы тиіс:
X 0 1 0 1 -1 1 -1
Y 0 1 1 0 1 -1 -1
2) нәтижелік мәліметтер кластарын тестен ӛткізу, яғни тестер жиыны нәти-
желік мәліметтердің әрбір класынан тексеруге қажет бір-бір мән алынатындай
дәрежеде болуы тиіс.
Екінші тәсілде программа «ақ жәшік» ретінде қарастырылады, мҧнда оның
қҧрылымы толығынан белгілі болып саналады. Мҧнда толық тестен ӛткізу –
программа басынан оның соңына алып баратын барлық тармақтарды тексеру
арқылы орындалады. Бірақ бҧны да орындау ӛте қиынға соғады, ӛйткені
циклдері мен тармақтары бар программалардың басынан соңына алып баратын
жолдар саны ӛте кӛп болып келеді. Сондықтан мҧндайда келесі критерилер
қолданылады:
а) командаларды тестен ӛткізу. Тестер жиыны әрбір команданың бірнеше
рет (бірден артық) орындалуын қамтамасыз етуі тиіс.
ә) тармақтарды тестен ӛткізу. Тестер жиыны әрбір тармақтың бірнеше рет
(бірден артық) орындалуын қамтамасыз етуі тиіс. Программалау практика-
сында осы критерийді пайдалану ең кең таралған тәсілдерге жатады.
Достарыңызбен бөлісу: |