10.1. Алгарытмы з цыкламі
У навакольным свеце можна назіраць сітуацыі, пры якіх розныя дзеянні і працэсы паўтараюцца. Некаторыя паўтараюцца некалькі разоў і завяршаюцца. Іншыя могуць паўтарацца вельмі доўга (напрыклад, кругаварот вады ў прыродзе, рух планет у касмічнай прасторы, змена пор года і г. д.). Чалавеку таксама рэгулярна даводзіцца выконваць дзеянні, якія паўтараюцца: мыцца, апранацца, наведваць цырульню, снедаць, хадзіць на работу і інш.
Як правіла, чалавек складае праграмы, у якіх кожная каманда паасобку і ўвесь алгарытм у цэлым выконваюцца за канчатковы лік паўтарэнняў.
Алгарытмічная канструкцыя паўтарэнне (цыкл) вызначае паслядоўнасць дзеянняў, якія выконваюцца шмат разоў. Гэтую паслядоўнасць дзеянняў
называюць целам цыкла.
Iснуе некалькі магчымасцей кіраваць тым, колькі разоў будзе паўтарацца цела цыкла.
Алгарытмічная канструкцыя цыкл з параметрам (цыкл з лічыльнікам) — спосаб арганізацыі цыкла, пры якім колькасць паўтораў залежыць ад пачатковага і канчатковага значэнняў параметра цыкла.
Такім чынам, цыкл з параметрам арганізуе выкананне каманд цела цыкла загадзя вядомую колькасць разоў (прыклад 10.1).
Параметр цыкла вызначае нумарацыю дзеянняў у цыкле. Параметр цыкла можа прымаць толькі цэлыя значэнні. Часта нумарацыю пачынаюць з 1 і заканчваюць лікам N (прыклад 10.2). У гэтым выпадку цыкл выканаецца N разоў. Калі нумарацыя вызначана двума адвольнымі лікамі N1 (пачатковае значэнне) і N2 (канчатковае значэнне), то цыкл выканаецца (N2 – N1 + 1) разоў.
Алгарытмічная канструкцыя цыкла з параметрам можа адлюстроўвацца на блок-схеме наступным чынам (значэнне параметра змяняецца ад 1 да N):
У дадзенай канструкцыі ў прамавугольніку(-ах) запісваюцца каманды алгарытму (цела цыкла), што паўтараюцца і выконваюцца N разоў (Так). Пры гэтым пасля кожнага выканання каманд цела цыкла адбываецца праверка, які раз выконваецца цыкл. На блок-схеме пераход на праверку ўмовы адлюстроўваецца ў выглядзе стрэлкі, што выходзіць з цела цыкла і вяртаецца да праверкі. Як толькі каманды цела цыкла выканаюцца N разоў (Не), цыкл завяршыцца (прыклад 10.3). Калі N 0, то каманда цела цыкла не выканаецца ні разу.
10.2. Выкарыстанне каманды цыкла з параметрам для выканаўцы Робат
Каб складаць алгарытмы з цыкламі для камп’ютарнага выканаўцы Робат, трэба ведаць, як запісваецца каманда цыкла.
Для запісу цыкла з параметрам выкарыстоўваецца каманда for. Фармат запісу каманды:
for var i:= N1 to N2 do1
begin
цела цыкла;
end;
Радок for var i:= N1 to N2 do з’яўляецца загалоўкам цыкла. Яго чытаюць так: «Для пераменнай i ад N1 да N2 рабі». Калі N2 N1, то каманды цела цыкла выконваюцца (N2 − N1 + 1) разоў, інакш цыкл не выконваецца ні разу.
Словы begin и end; з’яўляюцца аператарнымі дужкамі ў мове Pascal. Калі цела цыкла складаецца з адной каманды, аператарныя дужкі можна прапусціць.
Аператарныя дужкі — пара слоў, якія вызначаюць у мове праграміравання блок каманд, што ўспрымаецца як адно цэлае, як адна каманда.
Прыклад 10.4. Рэшым задачу с2 з убудаванага задачніка.
Робат павінен зафарбаваць усе клеткі поля (акрамя апошняй), перамяшчаючыся ўправа. Для гэтага ў цыкле трэба 10 разоў выканаць каманды:
зафарбаваць;
управа.
Дадзеныя каманды ўтвараюць цела цыкла.
Камандамі, што ўтвараюць цела цыкла, могуць быць любыя каманды з сістэмы каманд выканаўцы. Акрамя таго, у целе цыкла можа выклікацца дапаможны алгарытм. Выкарыстанне дапаможнага алгарытму дазволіць скараціць запіс цела цыкла і зробіць праграму больш зразумелай.
Прыклад 10.5. Рэшым задачу с7 з убудаванага задачніка.
На полі выканаўцы Робат ёсць сцены. Пры абходзе сцен Робат выконвае наступныя каманды:
зафарбаваць; уніз;
зафарбаваць; улева;
зафарбаваць; уверх;
зафарбаваць; улева.
Каб рашыць задачу, Робат павінен паўтарыць гэтыя каманды 5 разоў. Аформім дадзеныя каманды як дапаможны алгарытм kvadrat і выклікаем яго ў цыкле.
У дадзеным прыкладзе цела цыкла складаецца з адной каманды kvadrat, таму аператарныя дужкі можна не выкарыстоўваць.
Паняцце цыкла выкарыстоўваецца ў розных сферах чалавечай дзейнасці. |
Прыклад 10.1. Гатаванне пельменяў.
У дадзеным прыкладзе параметр цыкла i змяняецца ад 1 да 10. Дзеянні «дастаць пельмень з упакоўкі» і «кінуць пельмень у кіпячую ваду» выконваюцца 10 разоў і складаюць цела цыкла. Блок-схема дадзенага алгарытму выглядае такім чынам: Прыклад 10.2. Вылічым an (напрыклад, 35 = 243). Алгарытм узвядзення ліку ў ступень:
Прыклад 10.3. У фальклорных творах часта сустракаецца шматгаловы Змей Гарыныч (колькасць галоў можа быць, напрыклад, 7). Алгарытм перамогі над Змеем Гарынычам:
Блок-схема дадзенага алгарытму: |
Прыклад 10.4. Пачатковае становішча: Праграма для выканаўцы Робат:
Вынік работы праграмы:
Прыклад 10.5. Пачатковае становішча для вучэбнага камп’ютарнага выканаўцы Робат: Праграма для выканаўцы Робат складаецца наступным чынам:
Вынік работы праграмы: |