C tili asoslari
Scratchda bloklar bilan o'rgangan g'oyalarni endi haqiqiy matn-kodga ko'chiramiz. C, tezkor va aniq til bo'lib, deyarli barcha zamonaviy tillarning poydevorida turadi. Bu darsda birinchi dasturdan boshlab, o'zgaruvchilar, shartlar, sikllar va funksiyalargacha bosqichma-bosqich yuramiz, har birini IDE uslubidagi jonli kod izlagichda ko'rib.
Bu darsda nimani o'rganasiz
3.1 C tili nima?
C, 1972-yilda yaratilgan dasturlash tili bo'lib, hozirgacha eng ko'p ishlatiladigan va eng ta'sirli tillardan biri. Operatsion tizimlar (Windows, Linux yadrosi), brauzerlar va hatto boshqa dasturlash tillari ham ko'pincha C asosida qurilgan.
Scratchda biz bloklarni ulardik. C tilida esa kod, ya'ni maxsus qoidalar bo'yicha yozilgan matn yozamiz. Avvaliga bu qiyinroq tuyuladi, lekin buning evaziga til juda tezkor va kompyuterga juda yaqin ishlaydi.
Nega aynan C dan boshlaymiz?
- U sodda va aniq: faqat kerakli narsani o'zingiz yozasiz, hech narsa yashirin bo'lmaydi
- Xotira va kompyuter qanday ishlashini chuqur tushunishga o'rgatadi
- Undagi g'oyalar (turlar, sikllar, funksiyalar) Python, JavaScript, Java va boshqalarda ham bor
Eng muhimi: C ni tushunsangiz, boshqa tillar siz uchun ancha oson bo'ladi. Shuning uchun u haqiqiy poydevor.
3.2 Birinchi dastur
Har bir dasturchining birinchi dasturi odatda ekranga «Salom» yozadi. Mana C tilidagi to'liq dastur, atigi olti qator:
Demak har qanday C dasturi main funksiyasidan boshlanadi: kompyuter dasturni ishga tushirganda aynan shu yerdan o'qiy boshlaydi. printf esa ekranga matn chiqaradi.
;) turishi shart. Bu C ga «ushbu buyruq tugadi» deganini bildiradi, xuddi gap oxiridagi nuqtaga o'xshab.3.3 Kompilyatsiya
Kompyuter biz yozgan C kodini to'g'ridan-to'g'ri tushunmaydi. U faqat 0 va 1 lardan iborat mashina kodini biladi. Shuning uchun kodimizni kompilyator (C uchun odatda gcc) yordamida mashina kodiga o'giramiz. Quyida shu jarayonni qadamlab ishga tushiring:
Demak yo'l doim bir xil: kod yoz → kompilyatsiya qil (gcc) → dasturni ishlat. Agar kodda xato bo'lsa, kompilyator dasturni yaratmaydi, balki xato qaysi qatorda ekanini aytadi.
3.4 O'zgaruvchilar va turlar
Dastur ma'lumotni biror joyda saqlashi kerak. Buning uchun o'zgaruvchi (variable) ishlatamiz, ya'ni xotiradagi nomli quti. Scratchdagi «o'zgaruvchi»ning aynan o'zi, faqat bu yerda har bir o'zgaruvchining turi (type) ham bo'ladi.
Tur deganda o'zgaruvchi qanaqa ma'lumot saqlashini bildiradi: butun son, kasr son yoki bitta harf. C ga turni oldindan aytib qo'yamiz, shunda u qancha xotira ajratishni biladi.
Har bir tur xotirada turlicha joy egallaydi. Kartani bosib, batafsil ko'ring:
3.5 printf va kiritish
printf ekranga matn chiqaradi. Lekin u faqat oddiy matn emas, o'zgaruvchilar qiymatini ham chiqara oladi. Buning uchun maxsus belgilar, format spetsifikatorlari ishlatiladi:
%dbutun son (int) uchun%fkasr son (float, double) uchun%cbitta harf (char) uchun\nyangi qatorga o'tish uchun
Pastda turni tanlang va qiymat kiriting, printf qanday chiqarishini ko'ring:
scanf ishlatiladi, masalan scanf("%d", &yosh);. U klaviaturadan kiritilgan sonni yosh o'zgaruvchisiga yozadi.3.6 Operatorlar
Operator deganda qiymatlar ustida amal bajaradigan belgi tushuniladi. C da uch asosiy guruh bor:
- Arifmetik:
+qo'shish,-ayirish,*ko'paytirish,/bo'lish,%qoldiq - Taqqoslash:
==teng,!=teng emas,>katta,<kichik - Mantiqiy:
&&va,||yoki,!emas
Muhim nozik nuqta: C da butun sonlar bo'linganda natija ham butun bo'ladi. Masalan 7 / 2 natijasi 3 (kasr qism tashlanadi), 7 % 2 esa 1 (qoldiq). Pastda sinab ko'ring:
3.7 Shartlar: if / else
Scratchdagi «agar ... bo'lsa» bloki C da if deb yoziladi. Dastur shartni tekshiradi: agar shart to'g'ri (rost) bo'lsa, bitta yo'ldan, aks holda else orqali boshqa yo'ldan boradi.
if ... else if ... else zanjiri yoki switch ishlatiladi. Diqqat: tenglikni tekshirishda bitta emas, ikkita teng belgi (==) qo'yiladi. Bitta = bu qiymat berish, ikkita == bu taqqoslash.3.8 Sikllar: for / while
Bir ishni ko'p marta takrorlash uchun sikl ishlatamiz, xuddi Scratchdagi «takrorla» kabi. C da eng ko'p ishlatiladigani for sikli. U uch qismdan iborat: boshlang'ich qiymat, davom etish sharti va har qadamdagi o'zgarish.
Quyidagi dastur 1 dan 5 gacha sonlarni qo'shib boradi. Uni qadamlab yuriting va o'zgaruvchilar bilan natija qanday o'zgarishini debugger kabi kuzating:
Natija: 1, 3, 6, 10, 15. while sikli ham xuddi shunday ishlaydi, lekin shart oldindan beriladi va tana shart to'g'ri bo'lguncha takrorlanadi.
Bashorat qiling
Bu sikl terminalga nima chiqaradi?
3.9 Funksiyalar
Scratchda «o'z blokingiz»ni yasagandik. C da bu funksiya deyiladi: bir bo'lak kodga nom berib, uni istalgan joyda chaqirib ishlatamiz. Funksiya ma'lumot qabul qilishi (parametr) va natija qaytarishi (return) mumkin.
Endi kvadrat(4) deb chaqirsak, u 16 qaytaradi. Pastda son tanlang va funksiya chaqiruvini kuzating:
3.10 Chuqurroq advanced
Asoslarni egalladingiz. Endi C ning yana uchta muhim tushunchasi bilan qisqacha tanishamiz. Bularni keyingi haftalarda chuqur o'rganamiz, hozir esa umumiy tasavvur olamiz.
Massivlar
Massiv deganda bir nechta bir xil turdagi qiymatni bitta nom ostida saqlash tushuniladi. Har bir element o'z raqami (indeks) bilan olinadi, va indeks 0 dan boshlanadi.
Satrlar (string)
Satr deganda harflar ketma-ketligi tushuniladi. C da satr aslida char larning massivi. So'z, ism yoki gap shu tarzda saqlanadi.
Pointerlar (ko'rsatkich)
Pointer deganda biror o'zgaruvchining xotiradagi manzilini saqlovchi o'zgaruvchi tushuniladi. Ya'ni u qiymatning o'zini emas, balki «u qayerda turibdi» degan ma'lumotni saqlaydi. Bu C ning eng kuchli, ayni paytda eng nozik tushunchasi, va biz uni 6-haftada to'liq o'rganamiz.
Atamalar lug'ati
3.11 Bilim testi
16 ta savol. Haftani yakunlash uchun kamida 11 tasiga to'g'ri javob bering.
Tabriklaymiz! 3-hafta yakunlandi
Endi siz haqiqiy C kodi yoza olasiz: o'zgaruvchilar, turlar, printf, operatorlar, shartlar, sikllar va funksiyalar bilan tanishdingiz. Bu, har qanday katta dasturning asosiy g'ishtlari.
Keyingi hafta: Massivlar va satrlar (ko'p qiymatni saqlash, indeks, satrlar va null terminator).
Keyingi modulga o'tish