Mа’ruza rejasi



Yüklə 20,38 Kb.
səhifə2/2
tarix25.12.2023
ölçüsü20,38 Kb.
#197071
1   2
C da for while

Algoritm

  • Boshlash
  • i, i2, i3
  • Tamom
  • yo’q
  • ha
  • i <= 8
  • i = 1;
  • i = i + 1;
  • i2 = i * i;
  • i3 = i2 * i;
  • Kvadrat va kubni hisoblash
  • Natijani chiqarish
  • i ni qiymatini bittaga oshirish

Algoritm (“sikl” bloki)

  • Boshlanish
  • i, i2, i3
  • Tamom
  • i2 = i * i;
  • i3 = i2 * i;
  • i = 1,8
  • “Sikl" bloki
  • Sikl tanasi

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);
  • }
  • Boshlang’ich qiymat
  • Oxirgi qiymat
  • Har qadamda i ning bittaga oshishi
  • Takrorlanish rost qiymatda ishlaydi
  • Sikl
  • Sikl tanasining boshi
  • Sikl tanasining oxiri
  • Sikl sarlavhasi
  • for (i=1; i<=8; i++)
  • i2 = i*i;
  • i3 = i2*i;
  • printf("%4d %4d %4d\n", i, i2, i3);
  • Sikl tanasi

O’zgaruvchilarni kamayish sikli

  • 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);
  • }
  • i = 8; i >= 1; i --

O’zgaruvchan sikl

  • for (; ; )
  • { // sikl tanasi }
  • Misollar
  • 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++) { ... }
  • for (; c < d; ) { ... }

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);
  • i=9
  • i=0

Sikl necha marta takrorlanadi

  • a = 1;
  • for(i=1; i<4; i++) a++;
  • a = 4
  • a = 1; b=2;
  • for(i=3; i >= 1; i--)a += b;
  • a = 7
  • a = 1;
  • for(i=1; i >= 3; i--)a = a+1;
  • a = 1
  • a = 1;
  • for(i=1; i<= 4; i--)a ++;
  • a = 1;
  • for(i=1; i<4; i++) a = a+i;
  • a = 7
  • 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

  • Boshlash
  • count
  • tamom
  • yo’q
  • ha
  • n != 0
  • count = 0;
  • count = count + 1;
  • n = n / 10;
  • Raqamlar sonini hisoblovchi o’zgaruvchi
  • n
  • Shartni bajarish

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<
  • }
  • Shartni bajarish
  • 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;
  • }
  • Old shartli takrorlanish
  • Xossalari:
    • Murakkab shartlardan foydalanish mumkin:
    • Agar dastur tanasida faqat bitta ifoda bo’lsa, qavs {} larni yozish shart emas.
  • while ( a < b && b < c ) { ... }
  • while ( a < b ) a ++;
  • Old shartli takrorlanish
  • 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 ++;
  • 2 marta
  • a = 6
  • a = 4; b = 6;
  • while ( a < b ) a += b;
  • 1 marta
  • a = 10
  • a = 4; b = 6;
  • while ( a > b ) a ++;
  • 0 marta
  • a = 4
  • a = 4; b = 6;
  • while ( a < b ) b = a - b;
  • 1 marta
  • b = -2
  • 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:
      • do ;
      • while ();
  • 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

  • Boshlanish
  • Tamom
  • yo’q
  • ha
  • n <= 0
  • Sikl tanasi
  • Shart
  • “Xususiy jarayon” bloki
  • n
  • Qism dastur

So’ng shartli takrorlanish dasturi

  • int main()
  • {
  • long n;
  • do {
  • cout<< "Musbat sonni kiriting\n";
  • cin>>n;
  • }
  • while ( n <= 0 );
  • ... }
  • Shart
  • Xossasi: Sikl tanasi har doim hech bo’lmaganda bir marta bajariladi
  • a = 4; b = 6;
  • do { a ++; } while (a <= b);
  • 3 марта
  • a = 7
  • a = 4; b = 6;
  • do { a += b; } while ( a <= b );
  • 1 марта
  • a = 10
  • a = 4; b = 6;
  • do { a += b; } while ( a >= b );
  • a = 4; b = 6;
  • do b = a - b; while ( a >= b );
  • 2 марта
  • b = 6
  • a = 4; b = 6;
  • do a += 2; while ( a >= b );
  • Sikl ichiga tushish
  • Sikl ichiga tushish
  • Sikl necha marta takrorlanadi
  • Масала (нотўғри коддан ҳимоя воситаси билан)
  • Натурал сонни киритинг ва унинг рақамлари сони 10 га тенглигини текширинг.
  • Мисол:
  • Сонни киритинг>= 0: Сонни киритинг >= 0:
  • -234 1233
  • Мусбат сон керак. Йўқ
  • Сонни киритинг >= 0:
  • 1234
  • Ҳа
  • Натурал сонни киритинг ва қандай сонлар бир неча марта такрорланаётганини текширинг.
  • Мисол:
  • Сонни киритинг>= 0: Сонни киритинг >= 0:
  • 2323 1234
  • Тарорланяпти: 2, 3 такрорланиш йўқ.
  • http://acm.tuit.uz/forum
  • 11:53

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.

Yüklə 20,38 Kb.

Dostları ilə paylaş:
1   2




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin