C++ DASTURLASH TILIDA FOR SIKL OPERATORI HAQIDA
N.R.Zaynalov, TATU Samarqand filiali,
“Axborot xavfsizligi”kafedrasi mudiri
O.Sh.Umurzaqov, TATU Samarqand filiali,
“Axborot xavfsizligi”kafedrasi assistenti
M.A.Saidmurodov, TATU SF magistranti
Ushbu maqolada C++ dasturlash tilida mavjud sikl operatoridan biri ko‘rib chiqilgan. Bunda for operatoriga asoslangan misollar oddiylashtirilgan shakldan boshlab o‘rganilgan va keyinchalik murakkablashtirilgan. Keltirilgan misollar yosh o‘quvchilarimizda dasturlash sohasiga qiziqish uyg‘otadi deb umid qilamiz.
Tayanch so‘zlar: Dasturlash, C++, Sikl, For.
This article discusses one of the loop operators available in the C++ programming language. Examples based on the for operator were studied starting from the simplified form and then complicated. We hope that the given examples will arouse interest in the field of programming in our young students.
Кeywords: Programming, C++, Loop, For.
В данной статье рассматриваются один из вариантов цикла. Здесь оператор for рассматривается с простейших примеров и с переходом к сложным примерам. Приведенные примеры являются очень простыми, изучение которых заинтересует молодых учащихся заниматься программированием.
Ключевые слова: Программирование, С++, Цикл, For.
Ba’zi - bir algoritmlarda bajarilishi lozim bo‘lgan qadamlar takrorlanishi talab qilinadi. Ushbu jarayon sikl deb ataladi. Takrorlanish qadamlariga ko‘ra sikllar 2 ga bo‘linadi: - qadamlar soni aniq sikl; - iteratsion sikl.
Dasturalash masalalarida, ko‘p hollarda buyruqlar to‘plamining bir qismini bir necha bor takrorlash talab etiladi. Bunday jarayonga asoslangan algoritm siklik algoritm deyiladi. C++ dasturlash tilida sikl operatorining 3 ta ko‘rinishi mavjud: for, while, do…while.
Qadamlar soni aniq ko‘rsatilgan sikllarda chegaraviy qiymat aniq ko‘rsatilgan bo‘ladi. Bu yerda takrorlanuvchi tarkibni maxsus sikl yasovchilar yordamida tuzish va undagi qadamlar sonini aniqlash mumkin bo‘ladi.
Ushbu C++ dasturlash tili universal dasturlash tili bo‘lib, dastlab C nomi bilan Unix operatsion tizimi uchun dasturlash tili sifatida ishlab chiqilgan. Oddiyligi, samarali ekanligi va har xil kompyuterlarga ko‘chirish mumkinligi ushbu tilni keng tarqalgan tillardan biriga aylantirdi. Milliy adabiyotlarda ushbu tilni nomini yozishda chalkashliklar mavjudligi tufayli ingliz variantidagi yozuvni qoldiramiz.
Dasturlashdagi sikl – bu maxsus hisoblagich yordamida, shuningdek uning davomiyligi yoki tugallanish mantiqiy sharti bo‘yicha nazorat qilinadigan operatorlar ketma-ketligini takroran bajarish.
Sikl for operatori bir xil amallar ketma-ketligini takroran bajarishga qaratilgan. Bu sikl sarlavhasi (ingl.: loop header) sikl operatorining bir qismi yoki hisoblagichning boshlang‘ich qiymatini, sikl qadamini va davom ettirish yoki tugallash shartini belgilaydigan alohida operatordir. Umumiy holda for operatori quyidagicha bo‘ladi:
for([];[];[]){
[] // inglizcha “loop body”, ba’zida “sikl jismi” deyiladi
}
Ushbu parametrlar tavsifi:
- bu o‘zgaruvchi bo‘lib, (ingliz tilida “variable cycle” va “counter of a cycle” deyiladi) sikl hisoblagichi hisoblanadi va boshlang‘ich qiymati bilan aniqlanadi. Iteratsiya joriy raqamini saqlaydigan o‘zgaruvchi bo‘lib, sikl iteratsiyalari hisoblagichi yoki oddiygina sikl hisoblagichi deb ataladi. Hisoblagich bo‘lishi shart emas, ba’zida bitta bo‘lishi ham shart emas;
- bu sikldan chiqish sharti bo‘lib, bir nechta o‘zgaruvchiga bog‘liq bo‘lishi mumkin. Ba’zida tashqi sharoit tufayli ham sikldan chiqish belgilanishi mumkin, masalan, klaviatura tugmasini bosish yoki muayyan vaqt belgilanishi kabi hollar. Ushbu shart qiymati true bo‘lganda sikl davom ettiriladi. Agar shart ko‘rsatilmagan bo‘lsa, unda sikldan chiqish yo‘li sikl jarayonida nazarda tutilishi zarur;
- bu yerda hisoblagich qiymati har bir iteratsiya jarayoni oxirida o‘zgartiriladi;
- bu yerda har bir iteratsiya jarayonida bajariladigan buyruq kodlari keltiriladi.
Kvadrat qavslarning mavjudligi, bevosita keltirilgan sikl parametrlarining qo‘llanishi shart emasligidan dalolat beradi. Oddiy misollarda sikl operatorini qo‘llash jarayonlari bilan tanishib chiqamiz.
Misol. 1 dan n gacha bo‘lgan butun sonlar ko‘paytmasini hisoblash dasturini tuzing.
Yechish.
#include
using namespace std;
int main(){
int n;// n nomli butun sonli o‘zgaruvchisi e’lon qilindi
cout<<"n = ";// n qiymatini kiritamiz
unsigned long long res=1;// bu natija saqlanadigan o‘zgaruvchi
for(int i=1;i<=n;i++)// hisoblagich siklda e’lon qilinayapti
res*=i;// bu res=res*i, ya’ni har bir iteratsiyada natijani i ga ko‘paytiramiz
cout<<"Natija = "<return 0;}
Keyingi dasturda ham ushbu masalaning dasturi keltirilgan, ammo sikl operatorida sikl tanasi yo‘q.
#include
using namespace std;
int main() {
unsigned long long n;
int i, k;
cout<< "k = "; cin>> k; // 0 <= k <= 20
for(n = 1, i = 1; i<= k; n *= i, ++i);
cout<< k << "! = "<< n <return 0;}
Demak, sikl operatorida uning tanasi bo‘sh bo‘lishi ham mumkin va hisoblash jarayoni bevosita for operatorining sarlavhasidan o‘rin egallagan.
Diapazon doirasida ishlaydigan sikl for operatori bilan tanishamiz. Dasturlash tilida mavjud massiv va konteyner elementlari bilan ishlashda for operatorining maxsus shakli mavjud. Ushbu ko‘rinish range-based for deb nomlanadi. Ushbu operatorning umumiy ko‘rinishi quyidagicha bo‘ladi:
for ( : ) {
}
Bajariladigan jarayonni tasavvur qilishni yengillashtirish maqsadida ro‘yxat bilan misol keltiramiz. Quyidagi keltirilgan dasturda ro‘yxat i o‘zgaruvchi bilan aniqlanadi.
#include
using namespace std;
int main() {
for(auto i : {'a', 'b', 'c', 'd'})
cout<return 0;}
Natija: a kodi = 97 b kodi = 98 c kodi = 99 d kodi = 100
Ushbu dasturda keltirilgan ro‘yxatdagi belgilar va ularning ASCII kodlari chop etiladi.
Quyida ko‘paytiruv jadvalini chop etadigan dasturni keltiramiz:
#include
using namespace std;
int main()
{ for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
cout<< i << " * " << j << " = " << i * j;
cout<Bu yerda har bir siklda alohida nomli o‘zgaruvchilardan foydalaniladi.
Massivlar bilan ishlaganda for sikl operatorida chegaradan chiqib ketish holatlari kuzatiladi. Dasturchilarda bunday hatoliklar juda ko‘p uchraydi, shu bois foreach sikl operatidan foydalanish ham tavsiya etiladi. Ushbu operatorning umumiy ko‘rinishi quyidagicha bo‘ladi:
for (element e’lon qilinadi : massiv)
E’lon qilingan element tipi massiv tipi bilan bir xil bo‘lishi taklif etiladi. Ushbu operatorda massivning har bir elementi e’lon qilingan elementga uzatiladi. Quyidagi oddiy misolga e’tiborni qaratamiz:
#include
int main()
{ int math[] = { 0, 1, 4, 5, 7, 8, 10, 12, 15, 17, 30, 41};
for (int number : math)
cout<Natija quyidagicha bo‘ladi:
0 1 4 5 7 8 10 12 15 17 30 41
Bu yerda number o‘zgaruvchiga birin-ketin massiv elementlari uzatiladi, massiv indeksi emas. Massiv elementlari tugashi bilan sikldan chiqish amalga oshiriladi. Endi for operatorida uchraydigan qisqa shakllarga nazar tashlaymiz, masalan:
#include
int main()
{ int count = 0;
for (; count < 10; ) { cout<< count << " "; ++count; }
return 0;}
Natija: 0 1 2 3 4 5 6 7 8 9
Bu yerda sikl count hisoblagichiga qiymat oldindan berilgan va uning qiymari sikl tanasida o‘zgartiriladi. Siklda esa faqatgina shart tekshiriladi. Shu bilan birga for operatorida hech bir operatorni keltirmasa ham bo‘ladi, ya’ni
for (;;)
;
Bunday sikl uzluksiz sikl, ba’zida cheksiz sikl deb ataladi (ingl.:infinite loop) – bu maxsus dasturlashtirilgan yoki mantiqiy xato sababli hech qachon tugamaydigan sikl.
Sikl operatorida bir nechta hisoblagichni qo‘llash mumkin. Bunda ular for operatorida vergul operatori bilan ajratiladi, masalan:
#include
int main()
{ int i, j;
for (i = 0, j = 9; i< 10; ++i, --j)
cout< return 0;}
Ushbu siklda ikkita hisoblagich kiritilgan va ularning boshlang‘ich qiymatlari i = 0 va j = 9. Bunda, har bir qadamda i ning qiymati bittaga oshib ketsa, j ning qiymati esa bittaga kamayib boradi. Oxirida i = 9 va j = 0. bo‘ladi.
Shunday qilib, C++ dasturlash tilidagi for sikl operatori har tomonlama mukammal bo‘lib, dasturchilarga keng imkoniyatlar yaratib beradi. Shu bois ushbu operatorni har tomonlama amaliy jihatdan o‘rganib chiqish tavsiya etiladi.
Do'stlaringiz bilan baham: |