§ 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 (< –3) 

  y = -x;

else

  if (< 0) 

    = 0;

  else

    y = x * x;

11. Напішыце праграму для вылічэння значэння функцый.

1. f space left parenthesis x right parenthesis equals space open curly brackets table attributes columnalign left end attributes row cell x squared comma space калі space – 1 less or equal than space space х space less or equal than space 1 end cell row cell – sin space x space straight у space астатніх space выпадках end cell end table close               2. space f space left parenthesis x right parenthesis equals space open curly brackets table attributes columnalign left end attributes row cell x minus 7 comma space калі space х space less than negative 7 end cell row cell square root of 49 space minus space x squared end root comma space space калі space minus 7 space less or equal than space х space less or equal than 7 end cell row cell negative х space plus space 7 space straight у space астатніх space выпадках end cell end table close

3. f space left parenthesis x right parenthesis equals space open curly brackets table attributes columnalign left end attributes row cell square root of x squared space plus space 9 end root comma space калі space space х space less than negative 3 end cell row cell sin space x comma space space калі space minus 3 space less or equal than space х space less than 0 end cell row cell cos squared space x comma space калі space space х space greater or equal than space 0 end cell end table close                     4. f space left parenthesis x right parenthesis equals space open curly brackets table attributes columnalign left end attributes row cell open vertical bar x close vertical bar comma space калі space х space less than space 0 end cell row cell cos space x comma space калі space 0 space less or equal than space x space less than space pi end cell row cell square root of x space plus space open square brackets x close square brackets end root comma space space калі space pi space less or equal than space х space less than 100 end cell row cell bevelled fraction numerator 1 over denominator sin space x end fraction comma space калі space space х space greater or equal than space 100 end cell end table close

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 — сто).