Cи тілінде бағдарламалау Берикжан Касымов, 2018-2019



Pdf көрінісі
бет19/34
Дата28.06.2022
өлшемі2.75 Mb.
#459535
1   ...   15   16   17   18   19   20   21   22   ...   34
devcpp 1 Kaz66

 
 
 


Cи тілінде бағдарламалау Берикжан Касымов, 2018-2019 
 
31 
http://astanabilim.kz/infor/c
  
  Шектеуші шартқа тәуелді қосынды 
Элементтер саны белгісіз болғандағы күрделі есептерді қарастырайық 
 
Есеп.  Тізбектің барлық элементтерінің қосындысын табу керек 
𝑆 =
1
2

2
4
+
3
8

4
16
+ ⋯,
модулі бойынша 0,001 –ден кем емес болған жағдайда
Бұл есептің шешімі тізбектің элементтері модулі бойынша кемитін және 
нольге қарай ұмтылған жағдайда ғана болады. Қанша элемент қосындыға 
кіретіндігін біз білгендіктен while немесе do-while циклдерін қолданған жөн. 
Есепті шығару жолының бір нүсқасы төменде көрсетілген. 
Егер а айнымалысының мәні 0,001 –ден кіші болған кезде цикл аяқталады. 
Бағдарлама бірінші қадамнан циклге кіру үшін а айнымалысына 0,001 –ден
басқа кезкелген мәнді беру керек.
Егер а айнымалысы азаймайтын болса, онда циклдің тақырыптағы шарт 
ақиқат болады және бағдарлама «циклденеді».
5. Бағдарламаны тексеру әдістері 

𝐃𝐞𝐯 − 𝐂 + + бағдарламасының тексеру құралдары
 
 «Тексеру» («откладка») деген не? 
«Тексеру» сөзі «іздеу және бағдарламадағы қателерді дұрыстау дегенді 
білдіреді. Сәйкесінше ағылшынның debugging (тікелей аударғанда «шіркейді 
жою») деген сөзінен шыққан. Ол 1940 жылы Mark II компьютерінің 
байланысыстарына шіркей кіріп кеткен, сол кезде есептеуіш техникада ақау 
пайда болған.
Бағдарламаларда үш түрлі қателер бөлінеді: 


Cи тілінде бағдарламалау Берикжан Касымов, 2018-2019 
 
32 
http://astanabilim.kz/infor/c
  
синтаксистік – операторларды жазу кезіндегі қателер (мысалы: printf 
операторының орынына көбінесе print деп қате жазады); мұндай 
қателерді қай жолда тұрғандығын транслятор лезде тауып бергендік-
тен тез арада оңай түзетуге болады; 
орындаудағы уақыттың қателері (ощибки времени выполнения)- 
жұмыс істеу «апаттық» жағдайлар болғанда болатын қателер,
мысалы: «нольге бөлу» кезңнде т.с.с. 
логикалық – алгоритімдегі қателер (бағдарлама жұмыс істеп тұрады, 
бірақ басқа нірселерді орындайды, бұндай жағдайда не қылу керек); 
мұндай қателерді айқындау және анықтау қиынға түседі, сондықтан 
олар кей кездерде қате жазылған команданың қасында емес басқа 
жерлерді көрсетіп тұрады.  
«Тексеру» кезінде ең қиыны –ол қателерді табу, яғни қате жазылған 
операторды 
анықтап 
табу. 
Қате 
жазылған 
операторды 
табу 
автоматтандырылмаған, оны тек адам тауып түзете алады. Мұндай тексеру 
жұмысын жеңілдету алдамшы тәсілдер ойлап тапқан және ол үшін арнайы 
«тексерушілер» («отладчики») бағдарлама жазған.
 Трассировка 
Трассировка – ол жұмыс істеу кезіндегі бағдарламаның қандай да бір 
нүктесінде сигналдық хабарламаларды шығаруды ұйымдастырады. 
Біріншіден: ондай хабарламаны алғанан кейін біз білеміз бағдарлама сол 
нүктеге түскендігін (жұмысты апаттық жағдайда аяқтаған жоқ және циклденген 
жоқ). Екіншіден: бұл хабарламалар арқылы тек мәтіннің қателіктерін ғана емес, 
сонымен қатар айнымалының мәндерін дұрыс есептегендігін тексеруге мүмкін-
дік береді. Егер екінші бақылау нүктесіндегі барлық айнымалылардың мәндері 
ақиқат болса, ал үшінші бақылау нүктесінде жалған болса, онда қатені осы екі 
нүктелердің арасынан іздеу керек.
Бұл бағдарламаның үш нүктесінде (1,2 және 3) трассировка операторлары 
орналасқан: 




Достарыңызбен бөлісу:
1   ...   15   16   17   18   19   20   21   22   ...   34




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

    Басты бет