uy - Dasturiy ta'minot
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 - tavsif

scanf() 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 qatori

Keling, tavsifdan scanf C funksiyasidan foydalanish misolini ko'rib chiqaylik.

#o'z ichiga oladi int main() ( int x; while (scanf("%d", &x) == 1) printf("%d\n", x); return 0; //Linux tizimlari uchun talab )

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:

  • format spetsifikatsiyalari - % belgisi bilan boshlanadigan hamma narsa;
  • ajratuvchi yoki bo'sh joy belgilari - bular bo'sh joy, yorliq (\t), yangi qator (\n);
  • bo'sh joydan boshqa belgilar.

Funktsiya xavfli bo'lishi mumkin.

scanf() o'rniga scanf_s() dan foydalaning.

(Visual Studio tomonidan chop etilgan)

Tur yoki format spetsifikatsiyalari yoki konversiya belgilari yoki boshqaruv belgilari

scanf 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.

Ma'nosi

Dastur belgi kiritilishini kutadi. Yoziladigan o'zgaruvchi char xarakterli bo'lishi kerak.

Dastur butun sonli kasr sonini kiritishni kutadi. O'zgaruvchi int turida bo'lishi kerak.

Dastur eksponensial shaklda suzuvchi nuqta sonini kutadi. O'zgaruvchi float turida bo'lishi kerak.

Dastur suzuvchi nuqtali raqam kiritilishini kutadi. O'zgaruvchi float turida bo'lishi kerak.

7

Dastur suzuvchi nuqtali raqam kiritilishini kutadi. O'zgaruvchi float turida bo'lishi kerak.

Dastur sakkiztalik raqam kiritilishini kutadi. O'zgaruvchi int turida bo'lishi kerak.

Dastur qator kiritilishini kutadi. Satr birinchi duch kelgan chegaralovchi belgigacha bo'lgan har qanday belgilar to'plami deb hisoblanadi. O'zgaruvchi string turi bo'lishi kerak.

Dastur o'n oltilik raqamni kiritishni kutadi. O'zgaruvchi int turida bo'lishi kerak.

O'zgaruvchi ko'rsatkich kiritishni kutadi. O'zgaruvchi ko'rsatkich turi bo'lishi kerak.

scanf funksiyasi tomonidan o'qilgan belgilar soniga teng o'zgaruvchiga butun son qiymatini yozadi.

Dastur ishorasiz butun sonni o'qiydi. O'zgaruvchining turi belgisiz butun son bo'lishi kerak.

Dastur ikkilik raqam kiritilishini kutadi. O'zgaruvchi int turida bo'lishi kerak.

Skanerlanadigan belgilar to'plami. Dastur scanf o'rtasida belgilangan cheklangan hovuzdan belgilar kiritilishini kutadi va kirish oqimida belgilangan to'plamdagi belgilar mavjud ekan ishlaydi.

Format qatoridagi belgilar

Yulduzcha (*)

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:

  1. "X" o'zgaruvchisiga 45 qiymati beriladi.
  2. "y" o'zgaruvchisiga 20 qiymati beriladi.
  3. Va minus belgisi (tire) "-" "% * c" tufayli e'tiborga olinmaydi.

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:

  1. scanf 20 ta belgini sanamagan bo'lsa ham, chegaralovchi belgiga duch kelsa, ishlashni to'xtatadi.
  2. Agar kiritishda 20 dan ortiq belgi bo'lsa, ularning faqat birinchi 20 tasi str o'zgaruvchisiga yoziladi.

Tur modifikatorlari (yoki aniqlik)

Bu kiritish uchun kutilayotgan ma'lumotlar turini o'zgartiradigan maxsus bayroqlar. Bayroq tur spetsifikatsiyasining chap tomonida ko'rsatilgan:

  • L yoki l (kichik L) d, i, o, u, x ko'rsatkichlari bilan "l" dan foydalanilganda, bayroq dasturga long int tipidagi kiritishni kutish kerakligini aytadi. E yoki f spetsifikatsiyasi bilan "l" dan foydalanilganda, bayroq dasturga ikki tomonlama qiymat kiritilishini kutish kerakligini aytadi. "L" dan foydalanish dasturga long double tipidagi qiymat kutilayotganligini bildiradi. "l" ni "c" va "s" spetsifikatsiyalari bilan ishlatish dasturga wchar_t tipidagi ikki baytli belgilar kutilganligini bildiradi. Masalan, "%lc", "%ls", "%l".
  • h - qisqa turni ko'rsatuvchi bayroq.
  • hh - o'zgaruvchining signed char yoki unsigned char tipidagi qiymatga ko'rsatgich ekanligini ko'rsatadi. Bayroq d, i, o, u, x, n spetsifikatsiyalari bilan ishlatilishi mumkin.
  • ll (ikkita kichik L) - o'zgaruvchining signed int yoki unsigned long long int tipidagi qiymatga ko'rsatgich ekanligini ko'rsatadi. Bayroq belgilovchilar bilan ishlatiladi: d, i, o, u, x, n.
  • j - o'zgaruvchining stdint.h sarlavha faylidan intmax_t yoki uintmax_t yozish uchun ko'rsatgich ekanligini bildiradi. Belgilovchilar bilan ishlatiladi: d, i, o, u, x, n.
  • z - o'zgaruvchining size_t turiga ko'rsatgich ekanligini bildiradi, uning ta'rifi stddef.h da. Belgilovchilar bilan ishlatiladi: d, i, o, u, x, n.
  • t - o'zgaruvchining ptrdiff_t yozish uchun ko'rsatgich ekanligini bildiradi. Ushbu turdagi ta'rif stddef.h da mavjud. Belgilovchilar bilan ishlatiladi: d, i, o, u, x, n.

Modifikatorli rasm jadval shaklida yanada aniqroq taqdim etilishi mumkin. Scanf C ning ushbu tavsifi dasturchilar uchun aniqroq bo'ladi.

Boshqa belgilar

Formatda 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.

Misollar

Funktsiya 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 tavsif

Ushbu 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.

  • Funktsiya biroz eskirgan. Turli versiyalardagi kutubxonalarda bir nechta turli xil ilovalar mavjud. Masalan, takomillashtirilgan scanf S C funksiyasi, uning tavsifini Microsoft veb-saytida topish mumkin.
  • Formatdagi spetsifikatsiyalar soni funksiyaga uzatiladigan argumentlar soniga mos kelishi kerak.
  • Kirish oqimining elementlari faqat chegaralovchi belgilar bilan ajratilishi kerak: bo'sh joy, tab, yangi qator. Vergul, nuqta-vergul, nuqta va boshqalar - bu belgilar scanf() funksiyasi uchun ajratuvchi emas.
  • Agar scanf cheklovchi belgiga duch kelsa, kiritish to'xtatiladi. Agar o'qish uchun bir nechta o'zgaruvchi bo'lsa, scanf keyingi o'zgaruvchini o'qishga o'tadi.
  • Kirish ma'lumotlari formatidagi eng kichik nomuvofiqlik dasturdan oldindan aytib bo'lmaydigan natijalarga olib keladi. Agar dastur faqat xato bilan tugasa yaxshi bo'ladi. Ammo ko'pincha dastur ishlashni davom ettiradi va uni noto'g'ri qiladi.
  • scanf("%20s ...", ...); Agar kirish oqimi 20 ta belgidan oshsa, scanf birinchi 20 ta belgini o'qiydi va belgilangan bo'lsa, keyingi o'zgaruvchini o'qishni tugatadi yoki davom ettiradi. Keyingi scanf qo'ng'irog'i oldingi scanf qo'ng'irog'i to'xtatilgan joydan kirish oqimini o'qishni davom ettiradi. Agar dastlabki 20 ta belgini oʻqiyotganda chegaralovchi belgiga duch kelsa, scanf birinchi oʻzgaruvchi uchun 20 ta belgini oʻqimagan boʻlsa ham ishlashni toʻxtatadi yoki keyingi oʻzgaruvchini oʻqishga oʻtadi. Bunday holda, barcha hisoblanmagan belgilar keyingi o'zgaruvchiga biriktiriladi.
  • Agar skanerlanadigan belgilar to'plami "^" belgisi bilan boshlansa, scanf ma'lumotlarni chegaralovchi belgi yoki to'plamdagi belgiga duch kelmaguncha o'qiydi. Misol uchun, "%[^A-E1-5]" oqimdagi ma'lumotlarni A dan E gacha bo'lgan katta inglizcha belgilar yoki 1 dan 5 gacha bo'lgan raqamlardan biriga duch kelmaguncha o'qiydi.
  • Ta'riflanganidek scanf C funksiyasi o'zgaruvchilarga kiritilgan muvaffaqiyatli kiritilgan songa teng sonni qaytaradi. Agar scanf 3 ta o'zgaruvchini yozsa, u holda funktsiyaning muvaffaqiyatli ishlashi natijasi 3 raqamining qaytarilishi bo'ladi. Agar scanf hech qanday o'zgaruvchini yoza olmasa, natija 0 bo'ladi. Va nihoyat, agar scanf ishlashni boshlay olmasa. hammasi negadir natija EOF bo'ladi.
  • Agar scanf() funktsiyasi o'z ishini to'g'ri bajarmagan bo'lsa. Masalan, scanf("%d", &x) - raqam kutilgan edi, lekin kirish sifatida belgilar qabul qilindi. Keyingi scanf() chaqiruvi oldingi funksiya chaqiruvi tugagan kirish oqimidagi nuqtadan boshlanadi. Ushbu muammoni bartaraf etish uchun siz muammoli belgilardan xalos bo'lishingiz kerak. Buni, masalan, scanf("%*s") ni chaqirish orqali amalga oshirish mumkin. Ya'ni, funktsiya belgilar qatorini o'qiydi va uni tashlab yuboradi. Ushbu aqlli tarzda siz kerakli ma'lumotlarni kiritishni davom ettirishingiz mumkin.
  • scanf() ning ba'zi ilovalari belgilar to'plamida "-" dan foydalanishni skanerlashga ruxsat bermaydi.
  • “%c” spetsifikatsiyasi oqimdagi har bir belgini o'qiydi. Ya'ni, ajratuvchi belgini ham o'qiydi. Ajratuvchi belgini o'tkazib yuborish va kerakli belgini o'qishni davom ettirish uchun siz "%1s" dan foydalanishingiz mumkin.
  • “c” spesifikacidan foydalanganda “%10c” kengligidan foydalanish mumkin, lekin keyin scanf funksiyasiga o‘zgaruvchi sifatida char tipidagi elementlar massivini o‘tkazish kerak.
  • "%" "ingliz alifbosining barcha kichik harflari" degan ma'noni anglatadi va "%" oddiygina 3 ta belgidan iborat: 'z', 'a', '-'. Boshqacha qilib aytganda, "-" belgisi faqat to'g'ri tartibda joylashgan ikkita belgi o'rtasida paydo bo'lgan diapazonni anglatadi. Agar "-" iboraning oxirida, boshida yoki uning har ikki tomonidagi belgilarning noto'g'ri tartibida bo'lsa, u diapazonni emas, shunchaki defis belgisini ifodalaydi.

Xulosa

Shu 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
int printf(char *boshqaruv satri, ...);

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:

% Bilan ramzi
%d butun kasrli son
%i butun kasrli son
%e x.xx e+xx ko'rinishidagi o'nlik son
%E x.xx E+xx ko'rinishidagi o'nlik son
%f
%F o'nlik suzuvchi nuqta soni xx.xxxx
%g %f yoki %e, qaysi biri qisqaroq
%G %F yoki %E, qaysi biri qisqaroq
%o sakkizlik son
%s belgilar qatori
%u belgisiz kasrli raqam
%x o'n oltilik raqam
% X o'n oltilik raqam
%% belgisi %
%p ko'rsatgich
%n ko'rsatgich

Bundan tashqari, formatlash buyruqlariga l va h modifikatorlari qo'llanilishi mumkin.

%ld long int chop etish
%hu qisqa shtamp imzosiz
%Lf uzun qo'shaloq shtamp

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:
O'zgaruvchi x = 10,356

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:
20

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:
00020

Ma'lumotlar formati spesifikaktorlariga qo'shimcha ravishda, boshqaruv chizig'ida boshqaruv belgilari bo'lishi mumkin:

\b BS, pastki
\f Yangi sahifa, sahifani o'zgartirish
\n Yangi qator, qator tasmasi
\r Vagonni qaytarish
\t Gorizontal jadval
\v Vertikal yorliq
\" Ikkita tirnoq
\" Apostrof
\\ Teskari chiziq
\0 Null belgi, null bayt
\a Signal
\N Sakkizlik doimiy
\xN O‘n oltilik konstanta
\? So'roq belgisi

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 */
#o'z ichiga oladi

asosiy bekor (bo'sh)
{
int a,b,c; // a,b,c o'zgaruvchilarni e'lon qilish
a=5;
b=6;
c=9;
printf("a=%d, b=%d, c=%d",a,b,c);
}

Dastur natijasi:
a=5, b=6, c=9

/* 2-misol */
#o'z ichiga oladi

asosiy bekor (bo'sh)
{
float x,y,z;

X=10,5;
y=130,67;
z=54;

Printf("Obyekt koordinatalari: x:%.2f, y:%.2f, z:%.2f", x, y, z);
}

Dastur natijasi:
Obyekt koordinatalari: x:10,50, y:130,67, z:54,00

/* 3-misol */
#o'z ichiga oladi

void main()
{
int x;

X=5;
printf("x=%d", x*2);
}

Dastur natijasi:
x=10

/* 4-misol */
#o'z ichiga oladi

asosiy bekor (bo'sh)
{
printf("\"Matn qo'shtirnoq ichida\"");
printf("\nKislorod miqdori: 100%%");
}

Dastur natijasi:
"Qo'shtirnoq ichidagi matn"
Kislorod miqdori: 100%

/* 5-misol */
#o'z ichiga oladi

asosiy bekor (bo'sh)
{
int a;

A=11; // 11 o'nlik sanoqda b ga teng
printf("a-dec=%d, a-hex=%X",a,a);
}

Dastur natijasi:
a-dec=11, a-hex=b

/* 6-misol */
#o'z ichiga oladi

asosiy bekor (bo'sh)
{
char ch1,ch2,ch3;

Ch1="A";
ch2="B";
ch3="C";

Printf("%c%c%c",ch1,ch2,ch3);
}

Dastur natijasi:
ABC

/* 7-misol */
#o'z ichiga oladi

asosiy bekor (bo'sh)
{
char *str="Mening qatorim.";

Printf("Bu %s",str);
}

Dastur natijasi:
Bu Mening qatorim.

/* 8-misol */
#o'z ichiga oladi

asosiy bekor (bo'sh)
{
printf("Salom!\n"); // Chop etishdan keyin yangi qatorga o'tish bo'ladi - \n
printf("Mening ismim Pavel."); // Bu yangi satrda chop etiladi
}

Dastur natijasi:
Salom!
Mening ismim Pavel.

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:
int scanf(char *boshqaruv satri);

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


scanf("%s", str);

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)
{
char buferi; // kirish qatori uchun massiv (bufer).

Oladi (bufer); // qator kiriting va enter tugmasini bosing
printf("%s",bufer); // kiritilgan qatorni ekranga chiqarish
}

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)
{
int x;

Printf("X o'zgaruvchini kiriting:");
scanf("%d",&x);
printf("O'zgaruvchi x=%d",x);
}

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)
{
char str1, str2;
scanf("%%s", str1, str2);
printf("\n%s\n%s",str1,str2);
}
Keling, belgilar to'plamini kiritamiz:
12345abcdefg456

Dastur ekranda ko'rsatiladi:
12345
abcdefg456

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
scanf("%s", str);

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.
Ushbu dastur "Necha yoshdasiz?:" so'rovini ko'rsatadi va ma'lumotlar kiritilishini kutadi. Agar, masalan, 20 raqamini kiritsangiz, dastur "Siz 20 yoshdasiz" qatorini ko'rsatadi. scanf() funksiyasini chaqirganda, biz yosh o'zgaruvchisi oldiga & belgisini qo'yamiz, chunki scanf() funksiyasi o'zgaruvchan manzillarga muhtoj. scanf() funksiyasi kiritilgan qiymatni belgilangan manzilga yozadi. Bizning holatda, kiritilgan qiymat 20 yosh o'zgaruvchisi manziliga yoziladi.

/* 1-misol */

#o'z ichiga oladi

asosiy bekor (bo'sh)
{
int yoshi;

Printf("\nNecha yoshdasiz?:");
scanf("%d",&yosh);
printf("Siz %d yoshdasiz.", yosh);
}

2-misol.
Kalkulyator dasturi. Ushbu kalkulyator faqat raqamlarni qo'shishi mumkin. 100+34 ni kiritganingizda dastur shunday natija beradi: 100+34=134.

/* 2-misol */

#o'z ichiga oladi

asosiy bekor (bo'sh)
{
int x, y;

Printf("\nKalkulyator:");
scanf("%d+%d", &x, &y);
printf("\n%d+%d=%d", x, y, x+y);
}

3-misol.
Ushbu misol o'qish maydonining kengligini qanday o'rnatishni ko'rsatadi. Bizning misolimizda maydon kengligi besh belgidan iborat. Agar siz ko'p sonli belgilar bilan qatorni kiritsangiz, 5-dan keyingi barcha belgilar o'chiriladi. scanf() funksiya chaqiruviga e'tibor bering. & belgisi massiv nomi nomidan oldin kelmaydi, chunki massiv nomi massivning birinchi elementining manzili hisoblanadi.

/* 3-misol */

#o'z ichiga oladi

asosiy bekor (bo'sh)
{
belgi nomi;

Printf("\nFoydalanuvchi nomingizni kiriting (5 belgidan oshmasligi kerak):");
scanf("%5s", ism);
printf("\nSiz %s kiritdingiz", ism);
}

4-misol.
Ushbu maqoladagi oxirgi misol qidiruv to'plamidan qanday foydalanish mumkinligini ko'rsatadi. Dasturni ishga tushirgandan so'ng, 2 dan 5 gacha bo'lgan raqamni kiriting.

/* 4-misol */

#o'z ichiga oladi

asosiy bekor (bo'sh)
{
char bal;

Printf("Sizning reytingingiz 2,3,4,5:");
scanf("%", &bal);
printf("\nReyting %c", bal);
}

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 / IDE

C++ 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 kirish

C++ 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 << "Моя первая программа на С++\n"; cin.get(); }

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 std nom maydonidan foydalanish; int main() ( cout<<"Моя первая программа на С++\n"; cin.get(); return 1; }

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 qilish

O'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 xatolar

Agar 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 foydalanish

Shunday qilib, endi siz o'zgaruvchini qanday e'lon qilishni bilasiz. Mana o'zgaruvchidan foydalanishni ko'rsatadigan misol dastur:

#o'z ichiga oladi std nom maydonidan foydalanish; int main() ( int raqami; cout<< "Введите число: "; cin >>raqam; cin.ignore(); cout<< "Вы ввели: "<< number <<"\n"; cin.get(); }

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 taqqoslash

Albatta, 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:

  • * ko'paytirish,
  • - ayirish,
  • + qo'shimcha,
  • / bo'lim,
  • = topshiriq,
  • == tenglik,
  • >ko'proq
  • < меньше.
  • != teng emas
  • >= dan katta yoki teng
  • <= меньше или равно

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.Kirish

Dasturlash 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 boshlanishi

1-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



 


O'qing:



Eng yaxshi simsiz minigarnituralar reytingi

Eng yaxshi simsiz minigarnituralar reytingi

Universal quloqlarni arzon sotib olish mumkinmi? 3000 rubl - bunday pulga yuqori sifatli eshitish vositalarini sotib olish mumkinmi? Ma'lum bo'lishicha, ha. Va nutq ...

Mobil qurilmaning asosiy kamerasi odatda tananing orqa tomonida joylashgan bo'lib, fotosuratlar va videolarni olish uchun ishlatiladi.

Mobil qurilmaning asosiy kamerasi odatda tananing orqa tomonida joylashgan bo'lib, fotosuratlar va videolarni olish uchun ishlatiladi.

Yaxshilangan xarakteristikalar va yuqori avtonomiyaga ega planshet telefonining yangilangan versiyasi.Acer tomonidan ishlab chiqarilgan smartfonlar kamdan-kam hollarda tashrif buyuruvchilarga aylanadi...

Raqamingizni saqlab qolgan holda boshqa operatorga qanday o'tish mumkin

Raqamingizni saqlab qolgan holda boshqa operatorga qanday o'tish mumkin

Rossiyada 1 dekabrdan boshlab abonent boshqa uyali aloqa operatoriga o‘tganda telefon raqamini saqlab qolish to‘g‘risidagi qonun kuchga kirdi. Biroq, ma'lum bo'lishicha, ...

phabletni ko'rib chiqish, qimmat, lekin juda malakali

phabletni ko'rib chiqish, qimmat, lekin juda malakali

Qimmatbaho, lekin juda malakali fablet sharhi 20.03.2015 Men dunyodagi etiksiz yagona poyabzalchiman, o'z smartfonimsiz smartfon sharhlovchisiman....

tasma tasviri RSS