Algoritm - Kvadrat va kubni hisoblash
- i ni qiymatini bittaga oshirish
Algoritm (“sikl” bloki) Dastur - int main()
- {
- int i, i2, i3;
- for (i=1; i<=8; i++)
- {
- i2 = i*i;
- i3 = i2*i;
- printf("%4d %4d %4d\n", i, i2, i3);
- }
- }
- for (i=1; i<=8; i++)
- {
- i2 = i*i;
- i3 = i2*i;
- printf("%4d %4d %4d\n", i, i2, i3);
- }
- Har qadamda i ning bittaga oshishi
- Takrorlanish rost qiymatda ishlaydi
- i2 = i*i;
- i3 = i2*i;
- printf("%4d %4d %4d\n", i, i2, i3);
- Masala. Butun sonlarni kublarini va kvadratlarini ekranga chiqaring. (8 dan 1 gacha kamayish tartibda).
- Xossa: o’zgaruvchi sikl kamayishi kerak.
- Yechim:
- for ( )
- {
- i2 = i*i;
- i3 = i2*i;
- printf("%4d %4d %4d\n", i, i2, i3);
- }
O’zgaruvchan sikl - for (; ; )
- { // sikl tanasi }
- for (a = 2; a < b; a+=2) { ... }
- for (a = 2, b = 4; a < b; a+=2) { ... }
- for (a = 1; c < d; x++) { ... }
- for (; c < d; x++) { ... }
O’zgaruvchan sikl - Xossa:
- Shart siklining keying qadami boshlanishdan oldin tekshiriladi, agar u yolg’on bo’lsa sikl bajarilmaydi;
- Agar shart yolg’on bo’lmasa, sikl to’xtovsiz ishlashi mumin (sikl ichiga tushib qoladi)
- Agar sikl tanasida bitta amal bo’lsa qavsni {} qo’ymasa ham bo’ladi.
- for(i=1; i<8; i++) { i--; }
- Sikl tanasida sikl o’zgaruvchilarni o’zgartirish tavsiya etilmaydi
- for (i = 1; i < 8; i++) a += b;
O’zgaruvchan sikl - for (i=8; i>=1; i--) printf("Привет");
- printf("i=%d", i);
- for (i=1; i<=8; i++) printf("Salom");
- printf("i=%d", i);
- a = 1;
- for(i=1; i<4; i++) a++;
- a = 1; b=2;
- for(i=3; i >= 1; i--)a += b;
- a = 1;
- for(i=1; i >= 3; i--)a = a+1;
- a = 1;
- for(i=1; i<= 4; i--)a ++;
- a = 1;
- for(i=1; i<4; i++) a = a+i;
- Noma’lum qadamlar sonidagi sikl
- Masala: Butun sondagi raqamlar sonini aniqlang.
- Yechim g’oyasi: oxirgi raqamdan boshlab sanaladi.
- Muammo: nechta qadam bo’lishi noma’lum
- Yechim: n=0 bo’lganda to’xtash kerak.
- Old shartli takrorlanish operatori
- while takrorlash operatori, operator yoki blokni tarorlash sharti yolg’on (false yoki 0) bo’lguncha takror bajaradi. U quyidagi sintaksisga ega:
- while () ;
- Agar rost qiymatli o’zgarmas ifoda bo’lsa, takrorlash cheksiz bo’ladi. Huddi shunday, takrorlash boshlanishida rost bo’lib, uning qiymatiga takrorlash tanasidagi hisoblash ta’sir etmasa, ya’ni uning qiymati o’zgarmasa, takrorlash cheksiz bo’ladi.
Algoritmi - count = count + 1;
- n = n / 10;
- Raqamlar sonini hisoblovchi o’zgaruvchi
Dasturi - int main()
- {long n,n1; int count;
- cout<<"Butun sonni kiriting\n";
- cin>>n; n1=n;
- count = 0;
- while (n != 0)
- {count ++;
- n = n / 10; }
- cout<
- }
- long – uzun butun raqam (± 2147483647)
- “%ld” – kiritish va chiqarish formati
- Old shartli takrorlanish operatori
- Huddi for operatoridek, ‘,’ yordamida da bir nechta amallar sinxron ravishda bajarish mumkin. Masalan son va uning kvadratlarini chop qiladigan dasturda ushbu holat ko’rsatilgan:
- #include
- using namespace std;
- int main()
- {
- int n,n2;
- cout<<"Sonni kiriting(1..10):_";
- cin>>n;
- n++;
- while(n--,n2=n*n,n>0)
- cout<<" n="<<n<<" n^2="<<n2<
- return 0;
- }
- Xossalari:
- Murakkab shartlardan foydalanish mumkin:
- Agar dastur tanasida faqat bitta ifoda bo’lsa, qavs {} larni yozish shart emas.
- while ( a < b && b < c ) { ... }
- Xossalari:
- Sikl sharti har safar tekshiriladi.
- Agar sikl sharti yolg’on bo’lsa, sikl umuman bajarilmaydi.
- Agar sikl sharti yolg’on bo’lmasa, dastur takrorlanaveradi.
- a = 4; b = 6;
- while ( a > b ) a = a– b;
- a = 4; b = 6;
- while ( a < b ) d = a + b;
- Sikl necha marta takrorlanadi
- a = 4; b = 6;
- while ( a < b ) a ++;
- a = 4; b = 6;
- while ( a < b ) a += b;
- a = 4; b = 6;
- while ( a > b ) a ++;
- a = 4; b = 6;
- while ( a < b ) b = a - b;
- a = 4; b = 6;
- while ( a < b ) a --;
- for ni while ga almashtirish
- for( i=1; i<=10; i++)
- {
- // sikl tanasi
- }
- i = 1;
- while ( i <= 10 ) {
- // sikl tanasi
- i ++;
- }
- for ( i=a; i>=b; i--)
- {
- // sikl tanasi
- }
- i = a;
- while ( i >= b ) {
- // sikl tanasi
- i --;
- }
So’ng shartli tarorlanish operatori - do-while takrorlash operatori while operatoridan farqli ravishda oldin operator yoki blokni bajaradi, keyin takrorlash shartini tekshiradi. Bu qurilma takrorlash tanasini kamida bir marta bajarilishini ta’minlaydi. do-while takrorlash operatori quyidagi sintaksisga ega:
- Bunday takrorlash operatorining keng qo‘llaniladigan holatlari - bu takrorlashni boshlamasdan turib, takrorlash shartini tekshirishning iloji bo‘lmagan holatlar hisoblanadi.
So’ng shartli tarorlanish operatori - Masalan, birorta jarayonni davom ettirish yoki to‘xtatish haqidagi so‘rovga javob olish va uni tekshirish zarur bo‘lsin. Hech bo‘lmaganda takrorlash jarayonining bitta qadami amalga oshirilgan bo‘lishi kerak:
- #include
- using namespace std;
- int main()
- {
- char javob;
- do
- { ... // программа танаси
- cout<< "Jarayonni to’xtatish (N):_ ";
- cin>>javob;
- }
- while(javob !=N);
- return 0;
- }
- Bu operator ham cheksiz takrorlanishi mumkin: do { } while(1);
So’ng shartli takrorlanish blok-sxemasi So’ng shartli takrorlanish dasturi - int main()
- {
- long n;
- do {
- cout<< "Musbat sonni kiriting\n";
- cin>>n;
- …
- }
- while ( n <= 0 );
- ... }
- Xossasi: Sikl tanasi har doim hech bo’lmaganda bir marta bajariladi
- a = 4; b = 6;
- do { a ++; } while (a <= b);
- a = 4; b = 6;
- do { a += b; } while ( a <= b );
- a = 4; b = 6;
- do { a += b; } while ( a >= b );
- a = 4; b = 6;
- do b = a - b; while ( a >= b );
- a = 4; b = 6;
- do a += 2; while ( a >= b );
- Sikl necha marta takrorlanadi
XULOSA - Xulosa o’rnida shuni ta’kidlab o’tish joizki, masalaning yechim go’yasiga asosan takrorlanish operatorlarining biridan yoki ichma-ich takrorlanishlarda har qaysidan foydalanish maqsadga mufoviq.
- Bugungi darsimizda:
- Parametrli takrorlanish operatori (for)
- Old shartli takrorlanish operatori (while)
- So’ng shartli takrorlanish operatori (do while)
- Operatorlari bilan tanishdik.
- MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
- ISHNIYAZOV ODIL
- OLIMOVICH
- Informatika asoslari kafedrasi katta o’qituvchisi
- E’TIBORINGIZ UCHUN RAXMAT!
Do'stlaringiz bilan baham: |