Sayt bo'limlari
Muharrir tanlovi:
- Nima uchun noutbukga kichik SSD kerak va unga Windows-ni o'rnatishga arziydimi?
- Ramka kiritish. Ramkalar yaratish. noframes zaxirasini ta'minlash
- Windows tizimini tiklash Hech qachon tugamaydigan avtomatik tiklashga tayyorgarlik
- Dasturlar yordamida flesh-diskni ta'mirlash Noutbukdagi USB portni qanday tuzatish kerak
- Disk tuzilishi buzilgan, o'qish mumkin emas, nima qilish kerak?
- Qattiq disk kesh xotirasi nima va u nima uchun kerak?Kesh hajmi nima uchun javob beradi?
- Kompyuter nimadan iborat?
- Tizim blokining tuzilishi - qaysi komponentlar kompyuterning ishlashi uchun javobgardir Tizim blokining ichki qurilmalari xususiyatlari
- Qattiq diskni SSD ga qanday o'zgartirish mumkin
- Kirish qurilmalari kiradi
Reklama
Scanf C funktsiyasi: tavsif. Yozilgan dasturlash tili Ushbu o'zgaruvchilar turlari bilan nima qilish kerak |
Ushbu maqolada scanf() funktsiyasi ma'lum bir standartga murojaat qilmasdan umumiy tarzda muhokama qilinadi, shuning uchun har qanday C99, C11, C++11, C++14 standartlari ma'lumotlari bu erga kiritilgan. Ehtimol, ba'zi standartlarda funktsiya maqolada keltirilgan materialdan boshqacha ishlaydi. scanf C funktsiyasi - tavsifscanf() stdio.h(C) va cstdio(C++) sarlavhalari faylida joylashgan funksiya boʻlib, u dasturga formatlangan kiritish deb ham ataladi. scanf standart kirishdan (stdin) belgilarni o'qiydi va ularni formatga muvofiq o'zgartiradi, keyin ularni belgilangan o'zgaruvchilarga yozadi. Format ma'lumotlar qabul qilinganda ma'lum bir shaklga tushirilishini anglatadi. Shunday qilib, scanf C funksiyasi tasvirlangan: scanf("%format", &variable1[, &variable2,[...]]), bu erda o'zgaruvchilar manzil sifatida uzatiladi. O'zgaruvchilarni funktsiyaga shu tarzda o'tkazishning sababi aniq: uning ishlashi natijasida u xatolar mavjudligini ko'rsatadigan qiymatni qaytaradi, shuning uchun o'zgaruvchilar qiymatlarini o'zgartirishning yagona yo'li manzil bo'yicha o'tishdir. Shuningdek, ushbu usul tufayli funktsiya har qanday turdagi ma'lumotlarni qayta ishlashi mumkin. Ba'zi dasturchilar boshqa tillarga o'xshashligi sababli scanf() yoki printf() kabi funksiyalarni chaqirishadi. Scanf barcha asosiy til turlarini kiritish imkonini beradi: char, int, float, string va boshqalar. String tipidagi o'zgaruvchilarda manzil belgisini - "&" ni ko'rsatishning hojati yo'q, chunki string tipidagi o'zgaruvchi massiv bo'lib, uning nomi kompyuter xotirasidagi massivning birinchi elementining manzilidir. Ma'lumotlarni kiritish formati yoki boshqaruv qatoriKeling, tavsifdan scanf C funksiyasidan foydalanish misolini ko'rib chiqaylik. #o'z ichiga oladi Kirish formati quyidagi to'rtta parametrdan iborat: %[*][kenglik][modifikatorlar] turi. Bunday holda, "%" belgisi va turi talab qilinadigan parametrlardir. Ya'ni, minimal format quyidagicha ko'rinadi: "%s", "%d" va boshqalar. Umuman olganda, format satrini tashkil etuvchi belgilar quyidagilarga bo'linadi:
Tur yoki format spetsifikatsiyalari yoki konversiya belgilari yoki boshqaruv belgilariscanf C tavsifi, hech bo'lmaganda, "%" belgisi bilan boshlangan iboralar oxirida ko'rsatilgan format spetsifikatsiyasini o'z ichiga olishi kerak. U dasturga odatda klaviaturadan kiritilgan ma'lumotlar turini aytadi. Barcha format ko'rsatkichlari ro'yxati quyidagi jadvalda keltirilgan.
Format qatoridagi belgilarYulduzcha (*)Yulduzcha (*) belgilash operatsiyasini bostirish kerakligini bildiruvchi bayroqdir. Yulduzcha "%" belgisidan keyin darhol qo'yiladi. Masalan, Scanf("%d%*c%d", &x, &y); //ikkita butun son orasidagi belgiga e'tibor bermang. scanf("%s%*d%s", str, str2); //ikki satr orasidagi butun songa e'tibor bermaslik. Ya'ni, agar siz konsolda "45-20" qatorini kiritsangiz, dastur quyidagilarni amalga oshiradi:
Kenglik (yoki maydon kengligi)Bu joriy o'qish jarayonida o'qilishi kerak bo'lgan belgilarning maksimal sonini belgilaydigan "%" belgisi va format spetsifikatsiyasi orasidagi butun son. Yodda tutish kerak bo'lgan bir nechta muhim fikrlar mavjud:
Tur modifikatorlari (yoki aniqlik)Bu kiritish uchun kutilayotgan ma'lumotlar turini o'zgartiradigan maxsus bayroqlar. Bayroq tur spetsifikatsiyasining chap tomonida ko'rsatilgan:
Modifikatorli rasm jadval shaklida yanada aniqroq taqdim etilishi mumkin. Scanf C ning ushbu tavsifi dasturchilar uchun aniqroq bo'ladi. Boshqa belgilarFormatda duch kelgan har qanday belgilar o'chiriladi. Shuni ta'kidlash kerakki, boshqaruv qatorida bo'sh joy yoki chegaralovchi belgilar (yangi qator, bo'sh joy, yorliq) mavjudligi funktsiyaning har xil harakatiga olib kelishi mumkin. Bir versiyada scanf() cheklovchidan boshqa belgiga duch kelmaguncha cheklovchilar sonini saqlamasdan oʻqiydi, boshqa versiyada esa boʻshliqlar (faqat ular) muhim emas va “%d + %d” ifodasi ekvivalentdir. "% d+%d" ga. MisollarFunktsiya qanday ishlashi haqida fikr yuritish va aniqroq tushunish uchun bir qancha misollarni ko'rib chiqaylik. Scanf("%3s", str); //agar siz konsolda “1d2s3d1;3” qatorini kiritsangiz, str scanf("%dminus%d", &x, &y);ga faqat “1d2” yoziladi; //ikki raqam orasidagi minus belgilar olib tashlanadi scanf("%5", str); //belgilar str ga 5 ta bo'lgunga qadar kiritiladi va belgilar 0 dan 9 gacha raqamlar bo'ladi. scanf("%lf", &d); //turdagi kutilgan kiritish double scanf("%hd", &x); //bir qancha turdagi short scanf("%hu", &y); //bir qancha turdagi unsigned short scanf("lx", &z); //long int turining kutilgan soni Berilgan misollardan siz kutilgan raqam turli belgilar yordamida qanday o'zgarishini ko'rishingiz mumkin. scanf C - yangi boshlanuvchilar uchun tavsifUshbu bo'lim yangi boshlanuvchilar uchun foydali bo'ladi. Ko'pincha qo'lingizda scanf C ning to'liq tavsifi emas, balki funksiya qanday ishlashi haqida batafsil ma'lumot bo'lishi kerak.
XulosaShu bilan scanf C tavsifi yakunlanadi. Bu kichik dasturlarda ishlash va dasturlashning protsessual usulidan foydalanganda yaxshi qulaylik funksiyasidir. Biroq, asosiy kamchilik - bu scanf-dan foydalanishda yuzaga kelishi mumkin bo'lgan oldindan aytib bo'lmaydigan xatolar soni. Shuning uchun, dasturlashda scanf C tavsifini ko'z oldingizda ushlab turish yaxshidir. Katta professional loyihalarda iostreamlar yuqori darajadagi imkoniyatlarga ega bo'lganligi, xatolarni yaxshiroq tushunish va qayta ishlash, shuningdek, katta hajmdagi ma'lumotlar bilan ishlashlari sababli qo'llaniladi. Shuni ham ta'kidlash kerakki, scanf C rus tilidagi tavsifi ko'plab onlayn manbalarda, shuningdek, funktsiyaning yoshi tufayli uni ishlatish misollarida mavjud. Shuning uchun, agar kerak bo'lsa, siz har doim tematik forumlarda javob topishingiz mumkin. C/C++ standart kutubxonasi konsolga (klaviatura va monitor) o‘qish va yozish uchun bir qator funksiyalarni o‘z ichiga oladi. Ushbu funktsiyalar ma'lumotlarni oddiy belgilar oqimi sifatida o'qiydi va yozadi. Dasturlashda qo'llaniladigan oqim tushunchasi ushbu so'zni oddiy, kundalik tushunish bilan chambarchas bog'liq. Kirish oqimini suv (ma'lumot) hovuzga (kompyuter xotirasi) kiradigan quvurga, chiqish oqimini esa suv hovuzdan chiqadigan quvurga qiyoslash mumkin. Ushbu quvurning muhim xususiyati shundaki, ma'lumotlar bir vaqtning o'zida faqat bitta yo'nalishda harakatlanishi mumkin. Kirish va chiqish uchun bir xil quvur ishlatilsa ham, bu bir vaqtning o'zida sodir bo'lishi mumkin emas: oqim yo'nalishini almashtirish uchun uni to'xtatish kerak, ba'zi harakatlarni bajarish kerak va shundan keyingina oqim teskari yo'nalishga yo'naltirilishi mumkin. Oqimning yana bir xususiyati shundaki, u deyarli qurib ketmaydi. Ba'zida u quriydi, lekin tizim normal ishlayotgan bo'lsa, bu muddat uzoq davom eta olmaydi. Standart chiqish funksiyasi printf()printf() funksiyasi standart chiqish funksiyasidir. Ushbu funksiyadan foydalanib, siz monitor ekranida belgilar qatorini, raqamni, o‘zgaruvchining qiymatini... ko‘rsatishingiz mumkin. printf() funksiyasi stdio.h da prototipga ega Muvaffaqiyatli bo'lsa, printf() chop etilgan belgilar sonini qaytaradi. Boshqaruv chizig'i ikki turdagi ma'lumotlarni o'z ichiga oladi: to'g'ridan-to'g'ri ekranga chop etiladigan belgilar va argumentlar qanday chop etilishini ko'rsatadigan format spetsifikatsiyalari. printf() funksiyasi formatlangan chiqish funksiyasidir. Bu shuni anglatadiki, funktsiya parametrlarida chiqariladigan ma'lumotlarning formatini ko'rsatish kerak. Ma'lumotlar formati format ko'rsatkichlari tomonidan belgilanadi. Format spetsifikatsiyasi % belgisidan keyin format kodidan boshlanadi. Format ko'rsatkichlari:
Bundan tashqari, formatlash buyruqlariga l va h modifikatorlari qo'llanilishi mumkin.
Format spetsifikatsiyasida % belgisidan keyin aniqlik (oʻnli kasrdan keyingi raqamlar soni) koʻrsatilishi mumkin. Aniqlik quyidagicha o'rnatiladi: %.n<код формата>. Bu erda n - kasrdan keyingi raqamlar soni va<код формата>- yuqorida keltirilgan kodlardan biri. Misol uchun, agar bizda x=10,3563 float tipidagi o'zgaruvchi bo'lsa va biz uning qiymatini 3 kasrgacha aniq ko'rsatishni istasak, unda biz yozishimiz kerak: printf("O'zgaruvchi x = %.3f",x); Natija: Shuningdek, siz chop etish uchun ajratilgan maydonning minimal kengligini belgilashingiz mumkin. Agar chiziq yoki raqam belgilangan maydon kengligidan katta bo'lsa, chiziq yoki raqam to'liq chop etiladi. Masalan, agar siz yozsangiz: printf("%5d",20); keyin natija quyidagicha bo'ladi: E'tibor bering, 20 raqami satr boshidan beri chop etilmagan. Agar siz maydonning foydalanilmagan joylari nol bilan to'ldirilishini istasangiz, maydon kengligi oldiga 0 belgisini qo'yishingiz kerak. Masalan: printf("%05d",20); Natija: Ma'lumotlar formati spesifikaktorlariga qo'shimcha ravishda, boshqaruv chizig'ida boshqaruv belgilari bo'lishi mumkin:
Ko'pincha \n belgisidan foydalanasiz. Ushbu boshqaruv belgisi bilan siz yangi qatorga o'tishingiz mumkin. Misol dasturlarga qarang va siz hamma narsani tushunasiz. Dasturlarga misollar. /* 1-misol */ asosiy bekor (bo'sh) Dastur natijasi: /* 2-misol */ asosiy bekor (bo'sh) X=10,5; Printf("Obyekt koordinatalari: x:%.2f, y:%.2f, z:%.2f", x, y, z); Dastur natijasi: /* 3-misol */ void main() X=5; Dastur natijasi: /* 4-misol */ asosiy bekor (bo'sh) Dastur natijasi: /* 5-misol */ asosiy bekor (bo'sh) A=11; // 11 o'nlik sanoqda b ga teng Dastur natijasi: /* 6-misol */ asosiy bekor (bo'sh) Ch1="A"; Printf("%c%c%c",ch1,ch2,ch3); Dastur natijasi: /* 7-misol */ asosiy bekor (bo'sh) Printf("Bu %s",str); Dastur natijasi: /* 8-misol */ asosiy bekor (bo'sh) Dastur natijasi: Standart kiritish funktsiyasi scanf()scanf() funksiyasi formatlangan kiritish funktsiyasidir. Uning yordami bilan siz standart kiritish qurilmasidan (klaviatura) ma'lumotlarni kiritishingiz mumkin. Kirish ma'lumotlari butun sonlar, suzuvchi nuqta raqamlari, belgilar, satrlar va ko'rsatkichlar bo'lishi mumkin. scanf() funksiyasi stdio.h da quyidagi prototipga ega: Funktsiya qiymat berilgan o'zgaruvchilar sonini qaytaradi. Boshqaruv qatori uchta turdagi belgilarni o'z ichiga oladi: format spetsifikatsiyalari, bo'shliqlar va boshqa belgilar. Format spetsifikatsiyalari % belgisidan boshlanadi. Format ko'rsatkichlari: Scanf() funksiyasi (%s format spetsifikatsiyasi) yordamida satr kiritilayotganda satr birinchi bo'shliqdan oldin kiritiladi!! bular. agar siz "Salom dunyo!" qatorini kiritsangiz. scanf() funktsiyasidan foydalanish
keyin str massivida saqlanadigan natija qatorini kiritgandan so'ng, bitta "Salom" so'zidan iborat bo'ladi. FUNKSIYA BIRINCHI BO'L OLDINDAN STRINGGA KIRIDI! Agar siz bo'shliqlar bilan satrlarni kiritmoqchi bo'lsangiz, u holda funksiyadan foydalaning char *gets(char *buf); gets() funksiyasi yordamida siz toʻliq satrlarni kiritishingiz mumkin. gets() funksiyasi klaviaturadagi belgilarni yangi qator belgisi (\n) paydo bo'lguncha o'qiydi. Enter tugmasini bosganingizda yangi qator belgisi paydo bo'ladi. Funktsiya buf ga ko'rsatgichni qaytaradi. buf - kirish satri uchun bufer (xotira). gets() bu maqolaning mavzusi bo'lmasa-da, keling, klaviaturadan butun qatorni kiritish va uni ekranda ko'rsatish imkonini beruvchi misol dasturini yozamiz. #o'z ichiga oladi asosiy bekor (bo'sh) Oladi (bufer); // qator kiriting va enter tugmasini bosing Yana bir muhim eslatma! scanf() funksiyasidan foydalanib maʼlumotlarni kiritish uchun u oʻzgaruvchilarning oʻzi emas, balki oʻzgaruvchilar manzillarini parametr sifatida oʻtkazishi kerak. O'zgaruvchining manzilini olish uchun o'zgaruvchi nomidan oldin & (ampersand) belgisini qo'yish kerak. & belgisi manzilni olishni anglatadi. Manzil nimani anglatadi? Men tushuntirishga harakat qilaman. Dasturda bizda o'zgaruvchi bor. O'zgaruvchi o'z qiymatini kompyuter xotirasida saqlaydi. Shunday qilib, bu biz foydalanadigan manzil va o'zgaruvchining qiymati saqlanadigan kompyuter xotirasidagi manzildir. Keling, & dan qanday foydalanishni ko'rsatadigan misol dasturni ko'rib chiqaylik. #o'z ichiga oladi asosiy bekor (bo'sh) Printf("X o'zgaruvchini kiriting:"); Endi scanf() funksiyasining boshqaruv qatoriga qaytaylik. Yana bir marta: int scanf(char *boshqaruv satri); Boshqaruv satridagi bo'sh joy belgisi kirish oqimida bir yoki bir nechta bo'shliqlarni o'tkazib yuborishni buyuradi. Bo'sh joyga qo'shimcha ravishda yorliq yoki yangi satr belgisini ko'rish mumkin. Null bo'lmagan belgi belgi o'qilganligini va o'chirilganligini bildiradi. Siz kiritgan ikkita raqam orasidagi ajratgichlar bo'sh joy, yorliq yoki yangi qatordir. % dan keyin va format kodidan oldingi * belgisi (format ko'rsatgichi) o'qilishi kerak bo'lgan ma'lumotlar turini buyuradi, lekin bu qiymatga tayinlanmagan. Masalan: scanf("%d%*c%d",&i,&j); 50+20 kiritilsa, i o‘zgaruvchisi 50 ga, j o‘zgaruvchisi 20 ga o‘rnatiladi va + belgisi o‘qiladi va e’tiborga olinmaydi. Formatlash buyrug'i o'qilishi kerak bo'lgan eng katta maydon kengligini belgilashi mumkin. Masalan: scanf("%5s", str); kirish oqimidan dastlabki 5 ta belgini o'qish zarurligini bildiradi. Agar siz 1234567890ABC raqamini kiritsangiz, str massivi faqat 12345 ni o'z ichiga oladi, qolgan belgilar e'tiborga olinmaydi. Ajratuvchilar: bo'sh joy, tab va yangi qator - belgini kiritishda ular boshqa barcha belgilar kabi ko'rib chiqiladi. Agar boshqaruv satrida boshqa belgilar paydo bo'lsa, ular tegishli belgini aniqlash va o'tkazib yuborish uchun mo'ljallangan. Belgilar oqimi 10plus20 operatori scanf("%dplus%d",&x,&y); x o'zgaruvchisiga 10 qiymatini, y o'zgaruvchisiga 20 qiymatini beradi va ortiqcha belgilarni o'tkazib yuboradi, chunki ular boshqaruv qatorida uchraydi. Scanf() funksiyasining kuchli xususiyatlaridan biri bu skanerlashni belgilash qobiliyatidir. Qidiruv to'plami scanf() funksiyasi tomonidan o'qilgan belgilar taqqoslanadigan belgilar to'plamini belgilaydi. scanf() funksiyasi belgilarni qidirish to'plamida paydo bo'lgan vaqtgacha o'qiydi. Kiritilgan belgi qidiruv to'plamida topilmasa, scanf() funksiyasi keyingi format spetsifikatsiyasiga o'tadi. Qidiruv to'plami kvadrat qavs ichiga olingan belgilar ro'yxati bilan aniqlanadi. % belgisi ochilish qavs oldiga qo'yiladi. Keling, buni bir misol bilan ko'rib chiqaylik. #o'z ichiga oladi asosiy bekor (bo'sh) Dastur ekranda ko'rsatiladi: Qidiruv to'plamini belgilashda siz intervalni, shuningdek kiritish maydonining maksimal kengligini belgilash uchun defis belgisidan ham foydalanishingiz mumkin. scanf("%10", str1); Qidiruv to'plamiga kiritilmagan belgilarni ham belgilashingiz mumkin. Bu belgilarning birinchisidan oldin ^ belgisi mavjud. Ko'pgina belgilar kichik va katta harflarni farqlaydi. Eslatib o‘tamiz, scanf() funksiyasidan foydalanilganda, unga parametr sifatida o‘zgaruvchan manzillarni o‘tkazish kerak. Yuqoridagi kod yozilgan: char ko'chasi; // 80 ta belgidan iborat massiv E'tibor bering, str oldidan & belgisi yo'q. Bu amalga oshiriladi, chunki str massiv va massiv nomi - str massivning birinchi elementiga ko'rsatgichdir. Shuning uchun & belgisi ishlatilmasligi kerak. Biz allaqachon manzilni scanf() funksiyasiga o'tkazdik. Oddiy qilib aytganda, str massivning birinchi elementining qiymati saqlanadigan kompyuter xotirasidagi manzildir. Dasturlarga misollar. 1-misol. /* 1-misol */ #o'z ichiga oladi asosiy bekor (bo'sh) Printf("\nNecha yoshdasiz?:"); 2-misol. /* 2-misol */ #o'z ichiga oladi asosiy bekor (bo'sh) Printf("\nKalkulyator:"); 3-misol. /* 3-misol */ #o'z ichiga oladi asosiy bekor (bo'sh) Printf("\nFoydalanuvchi nomingizni kiriting (5 belgidan oshmasligi kerak):"); 4-misol. /* 4-misol */ #o'z ichiga oladi asosiy bekor (bo'sh) Printf("Sizning reytingingiz 2,3,4,5:"); Bu o‘quv qo‘llanmalar dasturlashni yangi boshlasangiz yoki boshqa tillarda dasturlash bo‘yicha katta tajribaga ega bo‘lsangiz ham hamma uchun! Ushbu material C/C++ tillarini uning asoslaridan tortib eng murakkab tuzilmalarigacha o'rganishni istaganlar uchundir. C++ - bu dasturlash tili, bu dasturlash tilini bilish kompyuteringizni eng yuqori darajada boshqarish imkonini beradi. Ideal holda, siz kompyuterni xohlagan narsani qilishingiz mumkin bo'ladi. Saytimiz C++ dasturlash tilini o'zlashtirishingizga yordam beradi. O'rnatish / IDEC++ tilini o'rganishni boshlashdan oldin qilishingiz kerak bo'lgan birinchi narsa, sizda IDE - integratsiyalashgan ishlab chiqish muhiti (dasturlashtiradigan dastur) mavjudligiga ishonch hosil qilishdir. Agar sizda IDE bo'lmasa, unda siz borasiz. IDE ni tanlashga qaror qilganingizdan so'ng, uni o'rnating va oddiy loyihalarni yaratishda mashq qiling. C++ tiliga kirishC++ tili - bu kompyuterga nima qilish kerakligini bildiruvchi buyruqlar to'plami. Ushbu buyruqlar to'plami odatda manba kodi yoki oddiy kod deb ataladi. Buyruqlar "funktsiyalar" yoki "kalit so'zlar" dir. Kalit so'zlar (C/C++-da ajratilgan so'zlar) tilning asosiy qurilish bloklari hisoblanadi. Funktsiyalar murakkab qurilish bloklaridir, chunki ular oddiyroq funktsiyalar nuqtai nazaridan yozilgan - buni quyida ko'rsatilgan bizning birinchi dasturimizda ko'rasiz. Funktsiyalarning bu tuzilishi kitob mazmuniga o'xshaydi. Tarkib kitobning boblarini ko'rsatishi mumkin, kitobning har bir bobi paragraflardan iborat o'z mazmuniga ega bo'lishi mumkin, har bir paragrafning o'z kichik bandlari bo'lishi mumkin. Garchi C++ siz ishlatishingiz mumkin bo'lgan ko'plab umumiy funktsiyalar va ajratilgan so'zlarni taqdim etsa ham, o'z funktsiyalaringizni yozishga ehtiyoj bor. Dasturning qaysi qismidan boshlanadi? C++ tilidagi har bir dastur bitta funktsiyaga ega bo'lib, u asosiy yoki asosiy funksiya deb ataladi, dasturning bajarilishi shu funksiyadan boshlanadi. Asosiy funktsiyadan siz boshqa har qanday funktsiyalarni chaqirishingiz mumkin, ular biz yozgan yoki yuqorida aytib o'tilganidek, kompilyator tomonidan taqdim etilgan. Xo'sh, ushbu standart funksiyalarga qanday kirishingiz mumkin? Kompilyator bilan birga keladigan standart funktsiyalarga kirish uchun siz preprotsessor direktivasi yordamida sarlavha faylini kiritishingiz kerak - #include . Nima uchun bu samarali? Keling, ishchi dasturning misolini ko'rib chiqaylik: #o'z ichiga oladi Keling, dasturning elementlarini batafsil ko'rib chiqaylik. #include bu "preprotsessor" direktivasi bo'lib, kompilyatorga bajariladigan faylni yaratishdan oldin iostream sarlavhasi faylidagi kodni dasturimizga qo'yishni aytadi. Sarlavha faylini dasturga ulash orqali siz dasturingizda foydalanishingiz mumkin bo'lgan ko'plab turli funktsiyalarga kirish huquqiga ega bo'lasiz. Masalan, cout operatori iostream ni talab qiladi. std nom maydonidan foydalanadigan qator; kompilyatorga std standart kutubxonasining bir qismi bo'lgan funktsiyalar guruhidan foydalanishni aytadi. Bu qator, shuningdek, dasturga cout kabi operatorlardan foydalanish imkonini beradi. Nuqtali vergul C++ sintaksisining bir qismidir. Bu kompilyatorga buyruqning oxiri ekanligini aytadi. Bir lahzada nuqta-vergul C++ da ko‘pchilik buyruqlarni tugatish uchun ishlatilishini ko‘rasiz. Dasturning keyingi muhim qatori int main(). Bu satr kompilyatorga main deb nomlangan funksiya mavjudligini va funksiya butun sonni qaytarishini bildiradi. Jingalak qavslar ( va ) funksiyaning boshlanishini (va tugashini) bildiradi. Jingalak qavslar kodning boshqa bloklarida ham qo'llaniladi, lekin ular doimo bitta narsani - mos ravishda blokning boshi va oxirini ko'rsatadi. C++ tilida cout obyekti matnni ko‘rsatish uchun ishlatiladi (“C out” deb talaffuz qilinadi). U belgilardan foydalanadi<< , известные как «оператор сдвига», чтобы указать, что отправляется к выводу на экран. Результатом вызова функции cout << является отображение текста на экране. Последовательность \n фактически рассматривается как единый символ, который обозначает новую строку (мы поговорим об этом позже более подробно). Символ \n перемещает курсор на экране на следующую строку. Опять же, обратите внимание на точку с запятой, её добавляют в конец, после каждого оператора С++. Keyingi buyruq cin.get() dir. Bu kirish ma'lumotlar oqimidan ma'lumotlarni o'qiydigan va ENTER tugmasi bosilishini kutuvchi boshqa funktsiya chaqiruvidir. Bu buyruq konsol oynasini ENTER tugmasi bosilmaguncha yopilishidan saqlaydi. Bu sizga dasturning natijasini ko'rish uchun vaqt beradi. Asosiy funktsiya (yopish jingalak qavs) tugagach, dasturimiz operatsion tizimga 0 qiymatini qaytaradi. Bu qaytarish qiymati juda muhim, chunki uni tahlil qilish orqali OS dasturimiz muvaffaqiyatli yakunlangan yoki bajarilmaganligini aniqlashi mumkin. Qaytish qiymati 0 muvaffaqiyatni anglatadi va avtomatik ravishda qaytariladi (lekin faqat int ma'lumotlar turi uchun; boshqa funktsiyalar qiymatni qo'lda qaytarishni talab qiladi), lekin agar biz 1 kabi boshqa narsani qaytarmoqchi bo'lsak, buni qilishimiz kerak edi. qo'lda. #o'z ichiga oladi Materialni birlashtirish uchun IDE-ga dastur kodini kiriting va uni ishga tushiring. Dastur ishga tushgach va natijani ko'rganingizdan so'ng, cout iborasi bilan biroz tajriba qiling. Bu sizga tilga ko'nikishingizga yordam beradi. Dasturlaringiz haqida fikr bildirishni unutmang!Kodingizga sharhlar qo'shing, bu nafaqat o'zingiz uchun, balki boshqalar uchun ham tushunarli. Kodni bajarishda kompilyator izohlarni e'tiborsiz qoldirib, haqiqiy kodni tavsiflash uchun istalgan miqdordagi sharhlardan foydalanishga imkon beradi. Sharh yaratish uchun kompilyatorga satrning qolgan qismi izoh ekanligini bildiradigan yoki // dan foydalaning yoki /* va keyin */ . Dasturlashni o'rganayotganingizda, dastur natijasi qanday o'zgarishini ko'rish uchun kodning qismlariga sharh berish foydali bo'ladi. Siz sharhlash texnikasi haqida batafsil o'qishingiz mumkin. Ushbu turdagi o'zgaruvchilar bilan nima qilish kerak?Ba'zida ba'zi o'zgaruvchilar turlari ortiqcha bo'lib tuyulsa, bir nechta o'zgaruvchilar turiga ega bo'lish chalkash bo'lishi mumkin. To'g'ri o'zgaruvchilar turidan foydalanish juda muhim, chunki ba'zi o'zgaruvchilar boshqalarga qaraganda ko'proq xotira talab qiladi. Bundan tashqari, ular xotirada saqlanish usuli, suzuvchi nuqta raqamlari tufayli float va double ma'lumotlar turlari "noaniq" va aniq butun son qiymatini saqlash kerak bo'lganda foydalanilmasligi kerak. C++ da o'zgaruvchilarni e'lon qilishO'zgaruvchini e'lon qilish uchun sintaksis turidan foydalaning<имя>; . O'zgaruvchilar deklaratsiyasiga ba'zi misollar: Int raqami; belgi belgisi; float num_float; Bir qatorda bir xil turdagi bir nechta o'zgaruvchilarni e'lon qilishga ruxsat beriladi, buning uchun ularning har biri vergul bilan ajratilishi kerak. Int x, y, z, d; Agar siz diqqat bilan qaragan bo'lsangiz, o'zgaruvchi deklaratsiyasidan keyin har doim nuqta-vergul qo'yilishini ko'rgan bo'lishingiz mumkin. Siz "o'zgaruvchilarni nomlash bo'yicha" konventsiya haqida ko'proq bilib olishingiz mumkin. C++ da o'zgaruvchilarni e'lon qilishda keng tarqalgan xatolarAgar siz e'lon qilinmagan o'zgaruvchidan foydalanmoqchi bo'lsangiz, dasturingiz kompilyatsiya qilinmaydi va siz xato xabarini olasiz. C++ tilida barcha til kalit so‘zlari, barcha funksiyalar va barcha o‘zgaruvchilar katta-kichik harflarga sezgir. O'zgaruvchilardan foydalanishShunday qilib, endi siz o'zgaruvchini qanday e'lon qilishni bilasiz. Mana o'zgaruvchidan foydalanishni ko'rsatadigan misol dastur: #o'z ichiga oladi Keling, ushbu dasturni ko'rib chiqamiz va uning kodini satr satr bilan ko'rib chiqamiz. int kalit so'zi sonning butun son ekanligini bildiradi. cin >> funktsiyasi qiymatni raqamga o'qiydi, foydalanuvchi kiritilgan raqamdan keyin Enter tugmasini bosishi kerak. cin.ignore() - bu belgini o'qiydi va unga e'tibor bermaydi. Biz dasturga kiritishimizni tashkil qildik; raqamni kiritgandan so'ng biz ENTER tugmasini bosamiz, bu belgi kirish oqimiga ham uzatiladi. Bizga kerak emas, shuning uchun uni tashlab yuboramiz. Yodda tutingki, o'zgaruvchi butun son turi sifatida e'lon qilingan, agar foydalanuvchi o'nlik sonni kiritishga harakat qilsa, u qisqartiriladi (ya'ni sonning o'nli qismi e'tiborga olinmaydi). O'nlik son yoki belgilar ketma-ketligini kiritishga harakat qiling, misol dasturini ishga tushirganingizda, javob kiritilgan qiymatga bog'liq bo'ladi. E'tibor bering, o'zgaruvchidan chop etishda tirnoq ishlatilmaydi. Qo'shtirnoqlarning yo'qligi kompilyatorga o'zgaruvchining mavjudligini va shuning uchun dastur o'zgaruvchining nomini bajarishda uning qiymati bilan almashtirish uchun o'zgaruvchining qiymatini tekshirishi kerakligini aytadi. Xuddi shu satrda bir nechta siljish bayonotlari to'liq qabul qilinadi va chiqish bir xil tartibda amalga oshiriladi. Siz har bir o'z o'zgartirish operatorini berib, satr literallarini (tirnoq ichiga olingan satrlar) va o'zgaruvchilarni ajratishingiz kerak.<< . Попытка поставить две переменные вместе с одним оператором сдвига << выдаст сообщение об ошибке . Не забудьте поставить точку с запятой. Если вы забыли про точку с запятой, компилятор выдаст вам сообщение об ошибке при попытке скомпилировать программу. Qiymatlarni o'zgartirish va taqqoslashAlbatta, qaysi turdagi ma’lumotlardan foydalanmasligingizdan qat’iy nazar, o‘zgaruvchilar qiymatini o‘zgartirish imkoniyatisiz unchalik qiziq emas. Quyida o'zgaruvchilar bilan birgalikda ishlatiladigan ba'zi operatorlar ko'rsatilgan:
Natijani chap tarafdagi o'zgaruvchiga belgilash uchun matematik funktsiyalarni bajaradigan operatorlar tayinlash belgisining o'ng tomonida ishlatilishi kerak. Mana bir nechta misollar: A = 4 * 6; // satr izohi va nuqtali verguldan foydalaning, a 24 a = a + 5 ga teng; // asl qiymat va beshning yig'indisiga teng a == 5 // beshni belgilamaydi, 5 ga teng yoki yo'qligini tekshiradi Ko'pincha shartli so'zlar va tsikllar kabi konstruktsiyalarda == dan foydalanasiz. A< 5 // Проверка, a менее пяти? a >5 // Tekshiring, beshdan ortiqmi? a == 5 // Tekshirilmoqda, beshga tengmi? a != 5 // Tekshiring, beshga teng emasmi? a >= 5 // a ning beshdan katta yoki teng ekanligini tekshiring? a<= 5 // Проверка, a меньше или равно пяти? Ushbu misollar taqqoslash belgilaridan foydalanishni juda aniq ko'rsatmaydi, lekin biz tanlash operatorlarini o'rganishni boshlaganimizda, bu nima uchun kerakligini tushunasiz. 1.KirishDasturlash yangi universal algoritmik modellarni talab qiladi, apparat vositalari esa algoritmlarni nafaqat boshqa shaklda, balki boshqa algoritmik model - avtomatlar asosida ham amalga oshiradi. Uskunani ishlab chiqishdan texnologiyani olish avtomatlashtirilgan dasturlashning asosiy g'oyasidir. Biroq, raqamli qurilma sintezi dasturlashdan farq qiladi. Ammo modelni qarzga olishda, bir tomondan, uni sezilarli darajada o'zgartirish tavsiya etilmaydi, boshqa tomondan, dasturlashning allaqachon mavjud nazariyasi va amaliyotini e'tiborsiz qoldirib bo'lmaydi.Keyinchalik, biz avtomatik dasturlarni loyihalash uchun SWITCH texnologiyasini ko'rib chiqamiz, unda siz doimo shunga o'xshash jarayonlarga duch kelasiz. Bir tomondan, u cheklangan holat mashinasi modelini shunchalik o'zgartirdiki, u aslida uni avtomat nazariyasi doirasidan tashqariga olib chiqdi. Boshqa tomondan, u dasturlashga dasturchilar idrok etishi qiyin bo‘lgan, ba’zan esa ortiqcha bo‘lgan tushunchalarni kiritadi, chunki dastur nazariyasi va dasturlash amaliyotidan ko'proq tanish analoglar mavjud. Avtomatik dasturlash muammolarini muhokama qilish uchun asos sifatida biz Shalyto A.A.ning yaqindagi ma'ruzasini olamiz. va uning avtomatik dasturlash paradigmasining ta'rifiga qaratilgan "dasturlash" maqolalari. C++ dasturlash tilining asoslari va nozik tomonlarini o'rganish. Amaliy topshiriqlar va testlardan iborat darslik. Dasturlashni o'rganmoqchimisiz? Unda siz to'g'ri joydasiz - bu erda bepul dasturlash bo'yicha trening. Tajribasizmi yoki yo'qmi, ushbu dasturlash darslari C++ dasturlarini turli xil ishlab chiqish muhitlarida yaratish, kompilyatsiya qilish va disk raskadrovka qilishni boshlashingizga yordam beradi: Visual Studio, Code::Blocks, Xcode yoki Eclipse. Ko'p misollar va batafsil tushuntirishlar. Yangi boshlanuvchilar (qo'g'irchoqlar) va yanada rivojlanganlar uchun juda mos keladi. Hamma narsa noldan eng tafsilotlarigacha tushuntirilgan. Ushbu darslar (200+) sizga nafaqat C++, balki boshqa dasturlash tillarida ham dasturlashni tushunish uchun yaxshi asos/poydevor beradi. Va bu mutlaqo bepul! Shuningdek, C++ tilida o‘yinni bosqichma-bosqich yaratish, SFML grafik kutubxonasi va C++ tilida ko‘nikma va bilimlaringizni sinab ko‘rish uchun 50 dan ortiq topshiriqlar ko‘rib chiqiladi. Qo'shimcha bonus. Karmaga +20 repost qilganingiz uchun va mening minnatdorchiligim uchun! № 0 bob. Kirish. Ishning boshlanishi1-bob. C++ asoslari№ 2 bob. C++ da o'zgaruvchilar va asosiy ma'lumotlar turlari№ 3 bob. C++ tilidagi operatorlar№ 4 bob. C++ tilidagi o‘zgaruvchilar doirasi va boshqa turlari№ 5 bob. Dasturda kodning bajarilishi tartibi. C++ tilidagi tsikllar va filiallar |
Mashhur:
Yangi
- Ramka kiritish. Ramkalar yaratish. noframes zaxirasini ta'minlash
- Windows tizimini tiklash Hech qachon tugamaydigan avtomatik tiklashga tayyorgarlik
- Dasturlar yordamida flesh-diskni ta'mirlash Noutbukdagi USB portni qanday tuzatish kerak
- Disk tuzilishi buzilgan, o'qish mumkin emas, nima qilish kerak?
- Qattiq disk kesh xotirasi nima va u nima uchun kerak?Kesh hajmi nima uchun javob beradi?
- Kompyuter nimadan iborat?
- Tizim blokining tuzilishi - qaysi komponentlar kompyuterning ishlashi uchun javobgardir Tizim blokining ichki qurilmalari xususiyatlari
- Qattiq diskni SSD ga qanday o'zgartirish mumkin
- Kirish qurilmalari kiradi
- Yozilgan dasturlash tili Ushbu o'zgaruvchilar turlari bilan nima qilish kerak