Apparat va dasturiy ta’minoti. Kompyuter apparat (hardware) va dasturiy (software) ta’minotlardan tashkil


Download 127.97 Kb.
bet3/4
Sana31.03.2023
Hajmi127.97 Kb.
#1313012
1   2   3   4
Bog'liq
Apparat va dasturiy ta’minoti. Kompyuter apparat (hardware) va d

Bajarilishdagi xatoliklar. Bajarilishdagi xatolik dastur dasturlash va hisoblash qoidalariga nomutanosib ravishda tuzilganda sodir bo‘ladi. Bunda, masala bajarilishi uchun kiritilgan qiymatlar turi natijaviy qiymat turiga mos kelmay qoladi va odatda, dasturning natijani chiqarish vaqtida bajarilish (Runtime)dagi xatolik yuz beradi.
Quyidagi dastur orqali Runtime xatoligiga misol keltirish mumkin:
1 #include
2 using namespace std;
3
4 int main()
5 {
6 int i = 4;
7 int j = 0;
8 cout << i / j << endl;
9
10 return 0;
11 }
Bu yerda “i” va “j” – butun turga mansub o‘zgaruvchilar. Ularning qiymatlari mos ravishda 4 va 0. 8-satrda i ning ga nisbatini ekranga chiqarish buyrug‘i berilgan. Ularning nisbati nolga tengligini bilamiz, biroq, dasturlashda bo‘lish amallari qiymatini chiqarish uchun haqiqiy turga mansub o‘zgaruvchi tanlab olinishi kerak.
Mantiqiy xatoliklar. Dasturda mantiqiyxatoliklar kutilgan natija olinmaganda sodir bo‘ladi. Bu holat turli sabablarga ko‘ra yuzaga keladi. Misol tariqasida quyidagi dasturni ko‘ribchiqamiz:
1 #include
2 using namespace std;
3
4 int main()
5 {
6 cout << "Selsiy 35 darajasining Farangeytdagi ko‘rsatkichi" << endl;
7 cout << (9 / 5) * 35 + 32 << endl;
8
9 return 0; 10 }
 
Natija: Selsiy 35 darajasining Farangeytdagi ko‘rsatkichi
67
Dastur Selsiy 35 darajasi Farangeytning 67 darajasiga teng degan noto‘g‘ri natija berdi. Natija 95 bo‘lishi kerak edi. C++da butun qiymatlar o‘rtasida bo‘lish amali bajarilganda natijaning butun qismigina uzatiladi: 9/5=1. To‘g‘ri natijani olish uchun esa 9.0/5 ko‘rinishda kiritilishi lozim.
Umuman olganda, sintaksis xatolikni aniqlash juda oson, chunki uni kompilyator ko‘rsatib beradi. Runtime xatoligi ham u qadar murakkab emas, unda dastur strukturasi yoki qaysidir operatorning noto‘g‘ri kiritilganlini dastur kodini qaytadan ko‘rib chiqish orqali aniqlash mumkin. Mantiqiy xatolikni aniqlash esa umuman boshqa masala. Bu turli vaziyatlarda sodirbo‘lishi lozim. Mantiqiy xatolikni aniqlash uchun bajarilishi lozim bo‘lgan masalaning nazariyasi va dasturlash tili qonuniyatlarining mutanosibligini ko‘rib chiqish, fikrlash orqali aniqlash mumkin bo‘ladi.
1  Sintaksis xatolik. Kompilyator tomonidan aniqlangan xatoliklar sintaksis xatoliklar yoki kompilyatsiya xatoliklari deyiladi.
Sintaksis xatolik dastur kodini mashina kodiga kompilyatsiya qilish jarayonida kompilyator tomonidan aniqlanadi. Sintaksis xatolik kod tuzilishi buzilganda, kalit so‘zlardagi xatolik, zaruriy belgilarni tashlab ketish, qo‘llanilishi mumkin bo‘lmagan belgilar yozilganda, faqat dastur kodini terishda ishlatiladigan kalit so‘zlar dastur ichida oddiy so‘z sifatida qo‘llanilganda va boshqa shu kabi hollarda yuz beradi.
Sintaksis xatolikka quyidagi dastur va xatolik to‘g‘risidagi kompilyator uzatgan ma’lumotni taqdim etamiz:
#include 
using namespace std;
3
4 int main ()
5 {
6 cout << “Dasturlash kursi << endl;
7
8 return 0;
9 }
Ushbu dastur Visual C++ muhitida kompilyatsiya qilinsa, u quyidagi xatoliklarni ko‘rsatadi:
1>Test.cpp(4): error C2144: syntax error : ‘int’ should be preceded by ‘;’
1> Test.cpp(6): error C2001: newline in constant
1>Test.cpp(8): error C2143: syntax error : missing ';' before 'return'
Bu yerda asosiy ikki xatolik yuz bergan. Birinchidan, 4-satrning so‘ngida “;” belgisi tushirib qoldirilgan. Ikkinchidan, 6-satrda ochilgan qo‘shtirnoq yopilmagan.

Download 127.97 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling