7 – amaliy ish
Mavzu: C++ tilida kirish qiymatini tekshirishni amalga oshirish
Ishdan maqsad:
C++ dasturlash tilida kirish qiymatlarini nazoratlash bilim
ko‘nikmalariga ega bo‘lish
Nazariy qism
Kirish qiymatini tekshirish funksiyada yoki ilovada foydalanuvchi tomonidan
kiritiluvchi ixtiyoriy kattalikni asligi muvofiqligini (tipini va o‘lchamini) tekshirish
jarayonidir. Barcha ilovalar foydalanuvchi tomonidan
biror turdagi kattalikni
kiritishni talab etadi. Foydalanuvchi tomonidan kiritiluvchi kattaliklar turli
manbalardan kelishi mumkin, xususan, tahdidchi tomonidan ham kiritilishi mumkin.
Tahdidchi bu kiritilgan ma’lumotlar orqali dasturni avariyaga uchratishi, yoki o‘ziga
kerakli ma’lumotni qo‘lga kiritishi mumkin. Bunga javoban har bir dasturiy ta’minot
foydalanuvchi tomonidan kiritilgan kattaliklarni tekshirishi shart.
Ilovalarga noto‘g‘ri ma’lumotni kiritilishi natijasida bir qancha muammolar
va zaifliklar yuzaga kelishi mumkin. Quyida noto‘g‘ri
kiritilgan kirish qiymati
asosida yuzaga kelishi mumkin bo‘lgan zaifliklar keltirilgan:
xotiraning to‘lib toshishi;
ineksiya tahdidlari;
xizmatdan vos kechish tahdidlari;
axborotni oshkor bo‘lishi;
tizimni xavfsiz bo‘lmasligi;
va hak.
Yuqoridagi tahdidlarni oldini olish uchun turli xususiyatlar bo‘yicha
tekshirishni amalga oshirish talab etiladi. Umumiy holda xavfsizlik tomonidan kirish
qiymatlarini quyidagi xususiyatlar bo‘yicha tekshirish amalga oshirish shart:
uzunlikga tekshirish;
oraliqga tekshirish;
formatga tekshirish;
turga tekshirish;
nolga bo‘linishga tekshirish.
C++ dasturlash tilida kirish qiymatlarini tekshirish uchun bir nechta tayyor
funksiyalardan foydalaniladi. Ular quyidagi
jadvalda keltirilgan va
cctype
sarlavhasida mavjud:
7.1-jadval
C++ dasturlash tilida kirish qiymatini tekshiruvchi funksiyalar
Funksiya
Ma’nosi
isalnum(int)
Raqam yoki belgi bo‘lsa nol bo‘lmagan qiymat qaytariladi
isalpha(int)
Belgi bo‘lsa nol bo‘lmagan qiymat qaytariladi
iscntrl(int)
Boshqaruvchi belgi bo‘lsa nol bo‘lmagan qiymat qaytariladi
isdigit(int)
Raqam bo‘lsa nol bo‘lmagan qiymat qaytariladi
isgraph(int)
Chop etiluvchi belgi bo‘lsa nol bo‘lmagan
qiymat qaytariladi
(probelsiz)
isprint(int)
Chop etiluvchi belgi bo‘lsa nol bo‘lmagan qiymat qaytariladi
(probel bilan)
ispunct(int)
Raqam – belgi yoki probel bo‘lsa nol bo‘lmagan qiymat qaytariladi
isspace(int)
Probel belgisi bo‘lsa nol bo‘lmagan qiymat qaytariladi
isxdigit(int)
O’n oltilik sanoq sistemasidagi raqamlar (0-9, a-f, A-F) bo‘lsa nol
bo‘lmagan qiymat qaytariladi
Ushbu funksiyalarda mavjud belgilar quyidagi 7.1- rasmda keltirilgan.
7.1-rasm. Funksiyalarda mavjud belgilar
Amaliy qism
C++ dasturlash tili:
C++ dasturlash tili odatda
foydalanuvchilarga birinchi
bo’lib tavsiya etiladigan til sifatida qaraladi. U quyi darajada to’g’ridan to’g’ri
qurilmalar uchun ham ishlay olsa, yuqori darajadagi til sifatida ham turli loyihalarda
namoyon bo’ladi.
C++ da yaratilgan mashhur dasturlash va platformalar
Windows;
Facebook(server);
Adobe
Photoshop, Illustrator, Premiere Pro;
Mozilla Firefox;
MySQL server;
AutoDesk Maya;
4.
Kiritilgan parolni “yaxshi”ligi tekshirilsin (kamida bitta katta harf, kamida
bitta
maxsus belgi (_,-,), kamida bitta raqam va kichik harflar va parol maxsus belgi
va raqamdan boshlanmasligi shart).
Nazorat savollari
1.
Ilovalarga noto‘g‘ri ma’lumotlar kiritilishi natijasida yuzaga keladigan
muammolar va zaifliklar nimalardan iborat.
2.
C++ dasturlash tilida qanday kirish qiymatini tekshiruvchi funksiyalar
mavjud
3.
Kirish qiymatlarini qanday xususiyatlar bo‘yicha
tekshirish amalga oshirish
lozim hisoblanadi.