§ 3. Асноўныя алгарытмічныя канструкцыі
Алгоритмические конструкции
Как вам уже известно из курса информатики, любой алгоритм может быть записан с использованием трех базовых алгоритмических конструкций: следование, цикл и ветвление (пример 3.1). Команды, составляющие алгоритмическую конструкцию следование, выполняются последовательно, друг за другом, в том порядке, в котором они записаны. Команды цикла и ветвления управляют порядком выполнения других команд в программе и относятся к командам управления (управляющим конструкциями). Алгоритмическая конструкция ветвления обеспечивает выполнение одной или другой последовательности команд в зависимости от истинности или ложности некоторого условия. Оператор ветвления — команда, реализующая алгоритмическую конструкцию ветвления на языке программирования. Алгоритмическая конструкция повторение (цикл) представляет собой последовательность действий, выполняемых многократно. Саму последовательность называют телом цикла. Оператор цикла — это команда, реализующая алгоритмическую конструкцию повторения на языке программирования. Существуют разные возможности управлять тем, сколько раз будет повторяться тело цикла. Может быть задано условие продолжения или окончания работы цикла, а также число повторений тела цикла. В зависимости от этого выделяют цикл с предусловием, цикл с постусловием и цикл с параметром. Существуют разные возможности управлять тем, сколько раз будет повторяться тело цикла. Может быть задано условие продолжения или окончания работы цикла, а также число повторений тела цикла. Выделяют следующие циклы: цикл с предусловием, цикл с постусловием и цикл с параметром. Выбор цикла зависит от задачи. Во многих случаях циклы взаимозаменяемы. При выборе цикла можно ориентироваться на следующее:
|
Пример 3.1 Блок-схемы алгоритмических конструкций. Следование Ветвление Цикл
Кроме блок-схем, для графического представления алгоритмов используют структурограммы (N — S-диаграммы, диаграммы Насси — Шнейдермана). Примеры структурограмм Команда ветвления: Команда цикла с предусловием: |
3.2. Лагічны тып даных
У мове праграміравання С++ для работ з умовамі вызначаны лагічны тып даных bool. Велічыні тыпу bool могуць прымаць два значэнні — false (няпраўда) і true (праўда). Значэнні false і true атрымліваюцца ў выніку выканання аперацый параўнання над лікавымі данымі. Параўноўваць можна канстанты, пераменныя, арыфметычныя і лагічныя выразы. Для параўнання выкарыстоўваюць наступныя знакі:
Лагічны выраз — выраз, які прымае адно з двух значэнняў: true або false. Лагічныя выразы можна прысвойваць пераменным тыпу bool, а таксама выводзіць іх значэнні на экран: будзе выведзена 0 для значэння true або 1 для значэння false адпаведна (прыклад 3.2). У мове С++ любое лікавае значэнне можа ўспрымацца як лагічнае. Пры гэтым значэнні, роўныя нулю, лічуцца няпраўдай, а не роўныя нулю — праўдай. У С++ дапушчальныя лагічныя выразы наступнага выгляду: bool a = 3 <= x <= 7;. Аднак сэнс такога выразу не супадае з матэматычным. Пры выкананні праграмы кампілятар спачатку праверыць праўдзівасць умовы 3 <= x і замяніць яе на 0 або 1 у залежнасці ад таго, праўдзівая гэта ўмова ці не. Затым адбудзецца праверка таго, што атрыманае значэнне меншае за 7 або роўна 7. Па-за залежнасцю ад праўдзівасці першай часткі ўмовы вынік заўсёды будзе праўдзівым, паколькі 0 <= 7 і 1 <= 7. Таму значэнне пераменнай a заўсёды будзе праўдзівым, і яно не залежыць ад значэння пераменнай x. |
Тып bool названы ў гонар англійскага матэматыка і логіка Джорджа Буля, які займаўся пытаннямі матэматычнай логікі ў XIX ст. Прыклад 3.2. Прыклады лагічных выразаў:
Значэнне лагічнага выразу y >= x * x можна вызначыць, толькі ведаючы значэнні пераменных x і y. Пры x = 2 і y = 10 значэнне выразу — true. Пры x = 10 і y = 2 – false. Праверым праўдзівасць гэтых выразаў у праграме:
Вынік работы праграмы: |