130 likes | 580 Views
Ciklas „While“. Nežinomų kartojimų skaičiaus ciklas. Struktūra. while (sąlyga) Kartojamas sakinys;. while (sąlyga) { Kartojami sakiniai; }. Ciklo vykdymas. Patikrinama ciklo sąlyga Jei sąlygos reikšmė TRUE, atliekamas ciklo sakinys
E N D
Ciklas „While“ Nežinomų kartojimų skaičiaus ciklas
Struktūra while (sąlyga) Kartojamas sakinys; while (sąlyga) { Kartojami sakiniai; }
Ciklo vykdymas • Patikrinama ciklo sąlyga • Jei sąlygos reikšmė TRUE, atliekamas ciklo sakinys • Priešingu atveju, atliekami toliau už ciklo esantys sakiniai
1 pavyzdys X = 10; while (x < 15) x = x + 1; Kiek kartų atliekamas šis ciklas? Kokia bus x reikšmė atlikus ciklą?
2 pavyzdys X = 10; y = 14; while (x <= y) { x = x + 1; y = y – 1; } Kiek kartų atliekamas šis ciklas? Kokios bus x ir y reikšmės atlikus ciklą?
3 pavyzdys X = 5; while (x > 10) x = x + 3; x = x * 2 +3; Kiek kartų atliekamas šis ciklas? Kokia bus x reikšmė atlikus ciklą?
4 pavyzdys X = 7;y = 8; while (x <= y) x = x - 2; Kiek kartų atliekamas šis ciklas? Kokia bus x reikšmė atlikus ciklą?
1 uždavinys Turime dvi lėkštes. Pirmoje yra riešutai, o antra tuščia. Riešutus perkeliame iš pirmos lėkštės i antrąją pagal taisykles: a) jei riešutų skaičius pirmoje lėkštėje lyginis, perkeliame pusę jų; b) jei riešutų skaičius pirmoje lėkštėje nelyginis, perkeliame vieną; c) pirmąjį ir antrąjį veiksmą kartojame tol, kol visi riešutai neatsidurs antroje lėkštėje. Nustatykite, kiek reikia perkėlimų, kad riešutai atsidurtų antroje lėkštėje, jei iš pradžių buvo n riešutų.
Sprendimas int main() { int n, perk=0; setlocale (LC_CTYPE,""); cout << "Kiek riešutų 1 lėkštėje? " << endl; cin >> n; while (n > 0) { if (n % 2 == 0) n = n / 2; else n = n - 1; perk = perk + 1; } cout << "Riešutus perkėlinėsite " << perk << " kartų"; getch(); return 0; }