Operatorni takrorlash
Shartli sikl, sikl takrori soni oldindan noma'lum bo'lgan hollarda ham qo'llaniladi. Uning blok diagrammasi quyidagi rasmda ko'rsatilgan
Bu operatorning “while” operatoridan farqi shundaki, bu yerda mantiqiy ifoda sikl boshida emas, oxirida hisoblab chiqiladi va tekshiriladi. Shuning uchun bunday sikl yoki keyingi shartli sikl yoki post shartli sikl deb ataladi. Bunday tsiklni tayinlashda siz "xayr" tsiklini belgilash bilan bir xil qoidalarga amal qilishingiz kerak. REPEAT va UNTIL o'rtasidagi bayonotlar ketma-ketligi kamida bir marta takrorlanadi, mantiqiy ifoda TRUE emas. Bunday siklni yakuniy holat sikli deb ham ataladi. Agar tsiklning tashqarisidagi belgiga ishora qiluvchi halqa qismida o'tish bayonoti uchrasa, u holda tsikl o'zining tabiiy oxirida tugashi mumkin. Misol. Birinchi kiritilgan manfiy sondan oldin klaviaturada kiritilgan raqamlar ketma-ketligi yig‘indisini izlash dasturini tuzing.
Dasturning blok diagrammasi:
E'tibor bering, natija S yig'indisi emas, balki S yig'indisidan oxirgi kiritilgan X salbiy sonini ayirish natijasidir. Shuning uchun, ushbu strukturaning davrlarini dasturlashda alohida e'tibor berish kerak. Eslatib o'tamiz, bu velosiped kamida bir marta amalga oshirilmoqda.
Operator "IF"
Operator sikl parametri deb ataladigan o'zgaruvchini qaysidir qiymatlar ketma-ketligiga qayta tayinlash yo'li bilan operator qavslaridagi operator yoki operatorlar guruhining qayta bajarilishini belgilaydi. Loop parametri , ifodasining birinchi qiymati va ifodasining oxirgi qiymati bir xil skaler tartiblash turi yoki kesish turi bo'lishi kerak. Birinchi va oxirgi qiymatlar tsiklga kirishdan oldin faqat bir marta hisoblab chiqiladi va shuning uchun tsiklda turgan operatorlar tomonidan o'zgartirilishi mumkin emas. Ko'pincha tsikl parametri sifatida butun sonli o'zgaruvchidan foydalaning va uning modifikatsiyasi + 1 yoki -1 ga teng. Agar tsiklik parametrning qiymati oshsa, uning o'zgarish bosqichlari + 1, agar u kamaysa, -1 bo'ladi. Oxirgi holatda, FOR tsikli operatori TO o'rniga DOWNTO xizmat so'zidan foydalanadi. Agar TO dan foydalanganda boshlang'ich qiymat yakuniy qiymatdan katta bo'lsa, u holda tsikl bajarilmaydi. Xuddi shunday, agar DOWNTO dan foydalanilganda boshlang'ich qiymat yakuniy qiymatdan kichik bo'lsa, tsikl bajarilmaydi.
Tsiklik jarayonlarni tashkil etish Tsikl operatorlari ba'zi operatorlarning bir necha marta bajarilishini belgilaydi. Loop bayonotlari qiyin, chunki ular Ularga boshqa operatorlar kiradi. Paskalda sikl operatorlarining uch turi mavjud: 1. Old shartga ega operator (“bye” operatori). 2. Shartdan keyingi operator (“takrorlash” operatori). 3. Parametrli tsiklning operatori (operator "for"). Dastlabki ikkita operator tsikl takrorlanish soni oldindan noma'lum bo'lgan hollarda qo'llaniladi. Uchinchi operator sikl takrori soni oldindan ma'lum bo'lganda ishlatiladi. Barcha sikl operatorlari quyidagi xususiyatlar bilan tavsiflanadi: 1. Takroriy hisoblar faqat bir marta yoziladi. 2. Tsiklga kirish faqat uning boshlanishi orqali mumkin. 3. sikl qismiga kirishdan oldin sikl operatorining o‘zgaruvchilari aniqlanishi kerak. 4. Tsikldan uning tabiiy tugashi yoki o'tish operatori orqali chiqishni ta'minlash kerak."Bye" operatori Tsikl takrorlanish soni oldindan ma'lum bo'lmagan hollarda qo'llaniladi. Uning blok diagrammasi quyidagi rasmda ko'rsatilgan. P bayonotlar bloki tsiklning tanasi deb ataladi. Q mantiqiy ifodaning qiymati rost bo'lsa, u bajariladi. Q mantiqiy ifodaning qiymati sikl tanasigacha hisoblangan va tekshirilganligini ko'rishingiz mumkin. Shuning uchun bunday halqa oldingi shart halqasi yoki oldingi shart halqasi deb ataladi. Umumiy belgi: WHILE DO Takrorlanishlarni boshqaradigan mantiqiy ifoda har bir iteratsiyadan oldin baholanadi va shuning uchun iloji boricha sodda bo'lishi kerak. “Bye” operatori bilan sikl tuzishda quyidagi shartlarga rioya qilish kerak: 1. Mantiqiy ifoda siklni boshlashdan oldin ma’lum qiymatga ega bo‘lishi kerak. 2. sikl tanasi ichidagi operatorlar orasida mantiqiy ifoda qiymatiga ta'sir etuvchi kamida bittasi bo'lishi kerak. Aks holda, tsikl cheksiz bo'ladi. Mantiqiy ifoda TRUE deb baholanguncha, bayonotning bajarilishi davom etadi. Shuning uchun bunday tsikl davom etish sharti bo'lgan tsikl deb ham ataladi.
2.2. Dasturlash tilida sikl tushunchasi
Ko'pincha, vazifalarni dasturlashda siz bir xil buyruqlar ketma-ketligini bir necha marta bajarishni xohlaysiz. Bu jarayon tsiklik deb ataladi. Yangi kiritilgan ma'lumotlar bilan ma'lum buyruqlar ketma-ketligi bir necha marta takrorlanadigan algoritm tsiklik deb ataladi.
Tsikllik jarayonni amalga oshirish uchun dasturlash tillari sikllardan foydalanadi. C / C ++ dasturlash tilida foydalanish oson sikl operatorlari mavjud.
C++ tilidagi sikl operatorlarining turlari
for loop;
oldindan shartli while tsikli;
do… while postshart bilan aylanish.
Loop operatorlarining har biri o'ziga xos qo'llanish xususiyatlariga ega. Yuqoridagi sikl operatorlaridan istalgan birini boshqasi bilan almashtirish mumkin.
Loop uchun. for sikl operatorining umumiy shakli. C++ da for tsikli juda keng ko'lamli amalga oshirish va qo'llanilishi mumkin. For tsikli parametr sikli deb ham ataladi.
For sikl operatorining umumiy shakli:
for (boshlash; ifoda; oshirish)
{
// operatorlar ketma-ketligi
// ...
}
Ishga tushirish - tsikl o'zgaruvchisining boshlang'ich qiymati o'rnatilgan tayinlash operatsiyasi. Bu o'zgaruvchi tsiklning ishlashini boshqaruvchi hisoblagichdir. For tsiklini boshqaruvchi o'zgaruvchilar soni ikki yoki undan ortiq bo'lishi mumkin;
ifoda - tsikl o'zgaruvchisining qiymati tekshiriladigan shartli ifoda. Ushbu bosqichda tsiklning keyingi bajarilishi aniqlanadi; o'sish - har bir iteratsiyadan keyin tsikl o'zgaruvchisining qiymati qanday o'zgarishini aniqlaydi. For tsikli ifoda rost deb baholanguncha ishlaydi. Ifodaning noto'g'ri bo'lishi bilan siklning bajarilishi to'xtaydi va for tsiklidan keyingi operator bajariladi.
For sikl operatoridan foydalanishga misollar
100 dan 300 gacha bo'lgan barcha butun sonlar yig'indisini toping. Ushbu muammoni hal qiluvchi kod bo'lagi.
int sum;
int i;
sum = 0;
for (i = 100; i<=300; i++)
sum = sum + i;
// sum = 40200
Ushbu muammoni hal qiladigan kod parchasi.
// s = 1 + 1/2 + 1/3 + ... + 1/n
int n;
float s = 0;
int i;
// ввод значения n
n = 4;
for (i = 1; i<=n; i++)
s = s + 1.0/i;
// s = 2.08333
Bu misolda haqiqiy qiymatni olish uchun 1 (butun tip) o'rniga 1,0 (haqiqiy tip) raqami kiritiladi. Bo'limning ishlashi
1,0 / i
haqiqiy natija beradi.
Ushbu muammoni hal qiladigan kod parchasi.
float s;
int i;
s = 0;
for (i=50; i>=1; i--)
s = i + Math::Sqrt(s);
s = Math::Sqrt(s);
// s = 1.7579
Bu misolda for tsiklidagi hisoblagich i qiymati kamayish tartibida o'zgaradi. Loopning har bir iteratsiyasi uchun bu qiymat 1 ga kamayadi. Bunday masalalarni hal qilishda sikl hisoblagichining qiymati oxirgi qiymatdan birinchi qiymatga o'zgarishi kerak. Bunday holda, 50 dan 1 gacha.
Hisob-kitoblarda matematika kutubxonasidan Sqrt () funksiyasidan foydalanilgan.
For tsiklini amalga oshirishning qanday variantlari bor?
For tsikli turli xil usullarda amalga oshirilishi mumkin. For tsiklini boshqaradigan o'zgaruvchilar soni bitta, ikkita yoki undan ko'p bo'lishi mumkin. Loop sarlavhasining har qanday elementi for tsiklida yo'q bo'lishi mumkin:
ishga tushirish;
ifodalash;
o'sish.
2 ta boshqaruv o'zgaruvchisiga ega bo'lgan for sikl operatoriga misol. Mahsulot qiymatlarini toping:
Do'stlaringiz bilan baham: |