§ 4. Аператар галінавання
4.2. Рашэнне задач з выкарыстаннем аператара галінаваннянием оператора ветвления
Прыклад 4.2. Таня і Каця жывуць у розных дамах. Ім стала цікава, хто з іх жыве бліжэй да школы. Яны змясцілі на карце прамавугольную сістэму каардынат так, каб школа мела каардынаты (0, 0). Вядома, што Танін дом мае каардынаты (x1; y1), а Кацін — (x2; y2). Дзяўчынкі ходзяць у школу па прамой і праходзяць розныя адлегласці. Напісаць праграму, якая вызначыць, чый дом знаходзіцца бліжэй да школы. Этапы выканання задання I. Зыходныя даныя: каардынаты дамоў дзяўчынак x1, y1, x2, y2. II. Вынік: паведамленне пра тое, чый дом бліжэй. III. Алгарытм рашэння задачы. 1. Увод каардынат дамоў. «math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«msub»«mi»r«/mi»«mi»T«/mi»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«msqrt»«msubsup»«mi»x«/mi»«mn»1«/mn»«mn»2«/mn»«/msubsup»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«msubsup»«mi»y«/mi»«mn»1«/mn»«mn»2«/mn»«/msubsup»«/msqrt»«mo»§#160;«/mo»«/math» и «math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«msub»«mi»r«/mi»«mi»K«/mi»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«msqrt»«msubsup»«mi»x«/mi»«mn»2«/mn»«mn»2«/mn»«/msubsup»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«msubsup»«mi»y«/mi»«mn»2«/mn»«mn»2«/mn»«/msubsup»«/msqrt»«mo»§#160;«/mo»«mo».«/mo»«/math» 3. Параўнанне адлегласцей і вывад адказу. IV. Апісанне пераменных: x1, y1, x2, y2, r_T, r_K — тып double. Прыклад 4.3. Праверыць, ці з’яўляецца ўведзены лік трохзначным, і калі так, то вывесці цотныя лічбы гэтага ліку. Этапы выканання задання I. Зыходныя даныя: a (трохзначны лік). II. Вынік: пераменныя a1, a2, a3 (лічбы ліку) або паведамленні: «не трохзначны», «няма цотных лічбаў».. III. Алгарытм рашэння задачы. 1. Увод зыходнага ліку. 3.1. Для вылучэння першай лічбы a1 знаходзім цэлую частку ад дзялення ліку a на 100. 4. Вывад выніку. IV. Апісанне пераменных: a, a1, a2, a3 – int. Прыклад 4.4. Вылічыць значэнне функцыі для зададзенага x. «math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mi»f«/mi»«mo»(«/mo»«mi»x«/mi»«mo»)«/mo»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mfenced open=¨{¨ close=¨¨»«mtable columnalign=¨left¨»«mtr»«mtd»«mi»x«/mi»«mo»§#160;«/mo»«mo»§#8212;«/mo»«mo»§#160;«/mo»«mn»2«/mn»«mo»,«/mo»«mo»§#160;«/mo»«mi»§#1082;§#1072;§#1083;§#1110;«/mi»«mo»§#160;«/mo»«mi»x«/mi»«mo»§#160;«/mo»«mo»§#60;«/mo»«mo»-«/mo»«mn»2«/mn»«/mtd»«/mtr»«mtr»«mtd»«mi»x«/mi»«mo»,«/mo»«mo»§#160;«/mo»«mi»§#1082;§#1072;§#1083;§#1110;«/mi»«mo»§#160;«/mo»«mo»§#8212;«/mo»«mo»§#160;«/mo»«mn»2«/mn»«mo»§#160;«/mo»«mo»§#8804;«/mo»«mo»§#160;«/mo»«mi»§#1093;«/mi»«mo»§#160;«/mo»«mo»§#8804;«/mo»«mn»2«/mn»«/mtd»«/mtr»«mtr»«mtd»«mn»2«/mn»«msqrt»«mi»§#1093;«/mi»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«mn»2«/mn»«/msqrt»«mo»,«/mo»«mo»§#160;«/mo»«mi»§#1082;§#1072;§#1083;§#1110;«/mi»«mo»§#160;«/mo»«mi»§#1093;«/mi»«mo»§#160;«/mo»«mo»§#62;«/mo»«mn»2«/mn»«/mtd»«/mtr»«/mtable»«/mfenced»«/math» Этапы выканання задання I. Зыходныя даныя: пераменная х (значэнне пераменнай). II. Вынік: пераменная f (значэнне функцыі). III. Алгарытм рашэння задачы. 1. Увод зыходных даных. 2.1. Спачатку праверым праўдзівасць умовы x < –2. Калія яна праўдзівая, то вылічым значэнне функцыі па формуле f = x – 2. Інакш (гэта значэнні, для якіх x ≥ –2) праверым наступную ўмову. 3. Вывад выніку. IV. Апісанне пераменных: x, f — double. Прыклад 4.5. Вызначыць, ці належыць пункт a(x, у) дадзенай вобласці. Этапы выканання задання I.Зыходныя даныя: пераменныя x і y (каардынаты пункта). II. Вынік: слова «так» або «не» ў залежнасці ад прыналежнасці пункта зафарбаванай вобласці. III. Алгарытм рашэння задачы. 1. Увод зыходных даных. 3. Вывад выніку. IV. Апісанне пераменных: x, y – double. |
Прыклад 4.2. V. Праграма:
VI. Тэсціраванне. Танін дом — x1 = 2.3, y1 = 4.5, Кацін дом — x2 = −2.1, y2 = 4.9. Вынік: Танін дом — x1 = −6.1, y1 = 4.5, Кацін дом — x2 = −1.71, y2 = −3.2. Вынік: Прыклад 4.3. V. Праграма:
VI. Тэсціраванне. Вынік для значэння 345: Іншыя варыянты зыходных даных VII. Аналіз вынікаў. Для поўнай праверкі праграмы патрабуецца яшчэ праверыць значэнні, у якіх лічбаў менш за тры і якія змяшчаюць 1 цотную лічбу (на розных пазіцыях), дзве цотныя лічбы. Прыклад 4.4. V. Праграма:
V. Тэсціраванне: VI. Аналіз вынікаў. Лік 5 большы, чым 2, таму вылічэнне значэння функцыі адбываецца па формуле «math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mi»f«/mi»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mn»2«/mn»«msqrt»«mi»x«/mi»«mo»+«/mo»«mn»2«/mn»«/msqrt»«mo»§#160;«/mo»«mo»=«/mo»«mn»2«/mn»«msqrt»«mn»7«/mn»«/msqrt»«mo».«/mo»«/math» Для ліку −0.3 вылічэнні адбываюцца па формуле «math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mi»f«/mi»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«msup»«mi»x«/mi»«mrow»«mn»3«/mn»«mo»§#160;«/mo»«/mrow»«/msup»«mo»=«/mo»«mo»§#160;«/mo»«msup»«mrow»«mo»(«/mo»«mo»-«/mo»«mn»0«/mn»«mo».«/mo»«mn»3«/mn»«mo»)«/mo»«/mrow»«mn»3«/mn»«/msup»«/math». Поўная праверка праграмы патрабуе ўвесці значэнні, якія належаць кожнаму з названых ва ўмове прамежкаў. Прыклад 4.5. V. Праграма:
VI. Тэсціраванне: VII. Аналіз вынікаў. Поўная праверка праграмы патрабуе ўвесці значэнні, якія належаць кожнай з абласцей, што ўтвараюцца пры перасячэнні прамых. |