C++ dasturlash tilini o‘rganamiz (boshlovchilar uchun). I DARS
Sanoq sistemalari va dastur haqida tushuncha.
Barcha OpenNet a’zolariga alangalik salom! Bugundan boshlab dasturlashga qiziquvchilar (lekin bu sohada bilimi kam bo‘lganlar) uchun bu olamga birgalikda C++ tili misolida kirib boramiz. Yozganlarimni kimgadir foydasi tegsa juda xursand bo‘laman.
Darsdan avvalgi mashg‘ulot
Sanoq sistemalari
Biz narsalarni sanaymiz va bunda 10 ta raqamdan foydalanamiz (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). ya’ni 9 gacha sanaganimizdan keyin 2 xonalik songa o‘tib 10 ni hosil qilamiz. Bu inson barmoqlari hammasi bo‘lib 10 ta bo‘lganligidan kelib chiqqan deyishadi. Bir o‘ylab ko‘ring-a, agar barmoqlar 10 tamas, 8 ta bo‘lganda qanaqa bo‘lardi? Sakkizta raqam ishlatardik (0, 1, 2, 3, 4, 5, 6, 7) va 8 o‘rniga 10 deb ketardik. Agar 20 ta bo‘lsachi? Unda yana 10 ta boshqa raqam o‘ylab topardik, shunaqamasmi?
Biz foydalanadigan 0 dan 9 gacha raqamlardan tashkil topgan sanoq sistemasi o‘nlik sanoq sistemasi deyiladi. Shuningdek, istalgan natural sonli sanoq sistemalari mavjud.
Nega bu dasturlash deb sanoq sistemalaridan gapirib ketdi deb hayron bo‘layotgandirsiz. Sababi kompyuter 10 lik sanoq sistemasidamas, 2 lik sanoq sistemasida ishlaydi ya’ni unda faqat 2 ta raqam borL 0 va 1. Dasturlash tilida bu raqamlar bit deyiladi. Bu haqida keyinroq to‘xtalarmiz. Hozircha sizga maslahatim bir sanoq sistemasidagi sonni boshqa sanoq sistemasidagi songa o‘tkazishni o‘rganing. Quyida o‘nlik sanoq sistemasidan ikkilik sanoq sistemasiga o‘tish va uning aksini tushuntirishga harakat qilaman.
1- Masala. O‘nlik sanoq sistemasidagi 23 soni ikkilik sanoq sistemasida nechchiga teng?
Yechilishi. Buning uchun 23 ni 2 ga bo‘lib, qoldiqni olasiz va bir joyga yozib qo‘yasiz. Chiqqan to‘liqsiz bo‘linmani yana 2 ga bo‘lib, qoldiqni avvalgi qoldiqning chap tmoniga yozib qo‘yasiz. Bo‘lingandan keyin chiqqan javobni yana ikkiga bo‘lasiz. Shu ishni oxirgi bo‘linma 0 (nol) qolguncha davom ettirasiz. Qoldiqlardan hosil bo‘lgan son shu sonning ikkilik sanoq sistemasidagi ko‘rinishi bo‘ladi :)
2-Masala. 2 lik sanoq sistemasidagi 10111 sonini 10 lik sanoq sistemasiga o‘tkazing.
Yechilishi. Buning uchun avval quyidagi uzun yig‘indini yozib olamiz:
Yozish tartibi: chapdan boshlab har bir sonni 2 ga ko‘paytirib qo‘shib chiqasiz. Hamma sonni yozib bo‘lganingizdan keyin o‘ngdagi birinchi 2 ning darajasiga 0 ni, keyingisiga 1 ni va hkz. yozib chiqasiz va shu ifodani hisoblaysiz.
Dasturlashga qaytdik
Xo‘sh dasturning o‘zi nima? Dastur — bu buyruqlar ketma-ketligi. Ya’ni siz dastur yozganda kompyuterga qiladigan ishlarini tartib bilan aytib chiqasiz. Kompyuter siz o‘ylaganchalik aqlli emas. Misol uchun kompyuterga choy qaynatishini buyurmoqchi bo‘lsangiz “Choyni qaynat” emas, taxminan quyidagi ko‘rinishda bo‘ladi:
1) O‘lchamlari x * y * z bo‘lgan buyumni choynak deb tushun;
2) Qopqog‘ini 20 sm ko‘tar;
3) ichiga 2 litr suv sol;
4) qopqoqni yopib, isitishga qo‘y;
5) ichidagi suv harorati 100°C bo‘lmaguncha qizitaver;
6) Agar 100°C ga teng bo‘lsa, qizitishni to‘xtat va choy qaynagani haqida kompyuter foydalanuvchisiga xabar ber.
Kompyuter bu ishlarni yuqpridan pastga qarab tartib bilan bajarib keladi. Lekin bu gapingizni o‘zingiz sezib turganingizdek kompyuter tushunmaydi. O‘rtada qandaydir til bo‘lishi kerakki, siz ham, kompyuter ham tushuning va shu orqali unga buyruqlarni ketma-ket berib boring. Ana shuning uchun ham dasturlash tillari yuzaga kelgan. Dasturlash tillari 2 turga bo‘linadi:
1) Quyi dasturlash tillari — Bunda dasturlash tili siz bilan biz tushunadigan tildan ancha uzoq, kompyuter uchun esa ancha tez va sodda bo‘ladi. Shuning uchun ham bu tilda dastur yozish ancha qiyin va uzoq jarayon;
2) Yuqori dasturlash tillari — bu biz uchun o‘qib tushunish ancha oson bo‘lgan dasturlash tillari. C++ tili ham shunga kiradi. Bu tildagi dasturlarni kompyuterning o‘z ona tili bo‘lmish binar kodga (ikkilik sanoq sistemasidagi 1 va 0 lar) o‘giruvchi maxsus dastur bo‘lib, uni kompilyator deyishadi.
Hozircha shular. Zerikmaslik uchun quyida masalalar tashlayman.
Masala.
I. O‘nlik sanoq sistemasida yozilgan quyidagi sonlarni 2 lik sanoq sistemasida yozing:
a) 7;
b) 10;
c) 59;
d) 255.
II. Ikkilik sanoq sistemasida yozilgan quyidagi sonlarni o‘nlik sanoq sistemasida yozing:
a) 10;
b) 110110;
c) 11010101;
d) 100001000100101.
Mana shu masalani C++ da yozib ko'rsating, iltimos. 2 kundan beri yoza olmayapman va javob topa olmayapman. Rahmat.