§ 4. Аператар галінавання
Практыкаванні
1. Ці можна змяніць лагічную ўмову ў аператары галінавання ў прыкладзе 4.1 так, каб паведамленні "pologitelnoe" і "ne pologitelnoe" прыйшлося памяняць месцамі? Калі так, то як гэта зрабіць?
2*. Якія змяненні трэба ўнесці ў праграму прыкладу 4.1, каб разглядаліся тры выпадкі: "pologitelnoe", "otricatelnoe", "ravno 0"?
3. Дабаўце ў праграму прыкладу 4.2 праверку карэктнасці зыходных даных: каардынаты дамоў павінны быць такімі, каб адлегласці да школы былі рознымі. Калі адлегласці аднолькавыя, то вывесці паведамленне 'Каардынаты ўведзены няправільна', а калі розныя, то вывесці адказ.
4. Якія змяненні спатрэбіцца ўнесці ў праграму прыкладу 4.2, калі дапусціць, што дзяўчынкі могуць праходзіць аднолькавыя адлегласці? Унясіце змяненні ў праграму і праверце правільнасць яе работы.
5. Як вядома, шмат якія задачы маюць не адзінае рашэнне. Так, Юля знайшла іншы спосаб вылічэння другой лічбы трохзначнага ліку для прыкладу 4.3. Якую з каманд выкарыстоўвала Юля? Растлумачце, што атрымаецца пры выкананні кожнай з прыведзеных каманд.
1. a2 = a % 2. 10 / 10; a2 = a / 100 % 10; 3. a2 = a % 100 / 10;
6. Пеця вырашыў удасканаліць праграму з прыкладу 4.3 і праверку лічбаў у ліку запісаў наступным чынам:
if ( a1 % 2 == 0)
cout << a1 << endl;
else
if (a2 % 2 == 0)
cout << a2 << endl;
else
if (a3 % 2 == 0)
cout << a3 << endl;
else
cout << "net takih" << endl;
Чаму Пецева адзнака была невысокай? Прывядзіце прыклады, для якіх праграма выдае няправільны адказ. Калі такое магчыма, то прывядзіце прыклады, калі праграма выдае правільны адказ.
7. Дадзены натуральны лік. Напішыце праграму, якая праверыць, ці з’яўляецца ён трохзначным і ці кратная 7 сума яго лічбаў.
8. Дадзены натуральны лік. Напішыце праграму, якая праверыць, ці з’яўляецца ён чатырохзначным і ці размешчаны яго лічбы ў парадку спадання.
9. Дадзены натуральны лік. Напішыце праграму, якая праверыць, ці з’яўляецца лік шасцізначным «шчаслівым» (г. зн. сума першых трох лічбаў ліку роўна суме апошніх трох).
10. Запішыце функцыю, значэнне якой вылічваецца з дапамогай прапанаванага фрагмента праграмы:
if (x < –3)
y = -x;
else
if (x < 0)
y = 0;
else
y = x * x;
11. Напішыце праграму для вылічэння значэння функцый.
1. 2.
3. 4.
12. Напішыце праграму, якая праверыць, ці належыць пункт А(x, у)вобласці.
1. |
2. |
3. |
|||
4. |
5. |
6. |
13. Напішыце праграму, якая вызначыць, ці маецца сярод лікаў a, b, c хоць бы адна пара роўных паміж сабой лікаў. Вызначыце, якія лікі роўныя.
14. Напішыце праграму, якая вызначыць, ці з’яўляецца трохвугольнік са старанамі a, b, c раўнабедраным. Калі так, то праграма павінна вызначыць, якая са старон з’яўляецца асновай, а якія — бакавымі старанамі.
15. Дадзены нумар года. Напішыце праграму, якая вызначыць, ці з’яўляецца ён высакосным (год з’яўляецца высакосным, калі яго нумар дзеліцца на 4, за выключэннем тых, якія дзеляцца на 100 і не дзеляцца на 400).
16. Напішыце праграму, якая знойдзе колькасць пунктаў перасячэння прамой y = kx + b і акружнасці x2 + y2 = r2. Значэнні k, b, r уводзяцца.
17*. Дадзены рэчаісныя лікі x1, y1, x2, y2, x3, y3, якія з’яўляюцца каардынатамі вяршынь трохвугольніка. Напішыце праграму, якая вызначыць, ці ляжыць пачатак каардынат унутры гэтага трохвугольніка.
18. Уводзіцца лік ад 1 да 4, які вызначае пару года. Напішыце праграму, якая выведзе назву гэтай пары года (1 — зіма, 2 — вясна, 3 — лета, 4 — восень). Выкарыстоўваць аператар switch.
19. Дадзены натуральны лік N (N < 20), які вызначае суму грошай у рублях. Напішыце праграму, якая выведзе для гэтага ліку назву: «рубель», «рубля», «рублёў».
20*. Уводзіцца лік ад 1 да 100. Напішыце праграму, якая выведзе назву гэтага ліку (1 — адзін, 2 — два, ..., 100 — сто).