Кампутары, Праграмнае забеспячэнне
Turbo Pascal. While ... do - цыкл з перадумовай
Turbo Pascal хоць і не з'яўляецца сусветна каханым дадаткам для праграмавання, але стваральнікі, якія робяць першыя крокі ў напісанні ПА, пачынаюць знаёмства менавіта з гэтай асяроддзем. Яна дае паняцце аб разгалінаваных, апэратараў, функцыях і працэдурах, а таксама многіх іншых рэчах. Да прыкладу, пры вывучэнні праграміст сутыкнецца з цыкламі ў Turbo Pascal: While, For і Repeat.
Паняцце цыкла і яго разнавіднасці
Цыклам называюць шматкроць паўтараюцца дзеянні. У дадзенай асяроддзі выкарыстоўваюцца:
- з параметрам (For ... to ... do);
- з перадумовай (While ... do);
- з постусловием (Repeat ... until).
Першы выгляд выкарыстоўваецца, калі загадзя вядома, колькі крокаў у вырашэнні задачы. Аднак існуе шэраг заданняў, калі няма інфармацыі аб тым, колькі разоў будуць паўтарацца тыя ці іншыя дзеянні. У такім выпадку ў Pascal While цыкл становіцца незаменным, як, у прынцыпе, і Repeat.
структура цыклу
У чым заключаецца сутнасць працы ў Pascal While, For і Repeat цыклаў? У такіх канструкцый вылучаюць загаловак і цела. У першай складнікам паказваюцца зменныя, якія будуць «працаваць», задаюцца ўмовы на праверку праўдзівасці, перыяд, да якога цела будзе выконвацца. У другой складнікам прапісваюцца выразы, якія павінны выкарыстоўвацца ў выпадку выканання ўмовы, т. Е. True, а не False.
Калі ітэрацыя выконваецца на апошнім радку кода, тады яна вяртаецца да загалоўка, дзе правяраецца ўмова. У выпадку ісціны аперацыі паўтараюцца, а ў выпадку невыканання ўмовы, праграма "выходзіць" з цыкла і выконвае далейшыя аперацыі.
Наступным чынам выглядае цыкл While. Pascal ABC і падобныя праграмы патрабуюць напісання такога кода:
- While Умова do;
- Begin;
- Цела цыклу;
- End.
У выпадку, калі ў целе цыклу будзе выконвацца 1 аператар (1 дзеянне), тады "дужкі» begin ... end можна апусціць.
Блок-схема цыклу
У Turbo Pascal While мае наступныя асаблівасці:
- ўнутры канструкцыі можна выкарыстоўваць складаныя ўмовы;
- пасля слова do не павінна быць кропкі з коскі (гэта лічыцца памылкай у Turbo Pascal і Pascal ABC);
- зменная, канстанта ці выраз, якое служыць пры атрыманні адказу False выхадам іх падпраграмы, павінны быць абавязкова лагічнага тыпу, т. е. Boolean.
Наступным чынам выглядае блок-схема дадзенай разнавіднасці цыклу. Яна паказвае чарговасць выканання дзеянняў.
Алгарытм працы цыклу
У найпростых асяроддзях праграмавання, у т. Ч. І ў Pascal ABC, While цыкл дзейнічае па наступным прынцыпе:
- зададзеныя ітэрацыі, т. е. паўтарэння, будуць праходзіць столькі разоў, пакуль ўмова будзе сапраўдным (True);
- як толькі ўмова не выконваецца і дае адказ False (або інакш «Хлусня»), аператар выходзіць з цыкла;
- як толькі гэта адбылося, праграма «пайшла» у канструкцыі, якія стаяць пасля цыклу.
Гэта з'яўляецца істотным адрозненнем While ад Repeat, т. Е. Цыкла з перадумовай ад постусловия.
Вельмі важна прадугледзець у целе цыклу канчатковае змена зададзенай зменнай у загалоўку While. У любым выпадку павінна калі-небудзь наступіць сітуацыя, якая дае значэнне False. Інакш адбудзецца зацыкленне, і тады прыйдзецца скарыстацца дадатковымі мерамі для выхаду з кампілятара. Такія памылкі лічацца грубымі і недаравальна.
Як выйсці з праграмы падчас зацыклення?
Часцяком адбываецца сітуацыя, калі аператар While Pascal выдае зацыкленне ў напісаным праграмным кодзе. Што гэта азначае? Ітэрацыя паўтараецца бясконцую колькасць разоў, паколькі ўмова заўсёды праўдзіва. Напрыклад, вось фрагмент праграмы:
- While 2> 1 do;
- Write (1).
У такім выпадку, каб перапыніць выкананне задачы, дастаткова націснуць CTRL + F2.
Ёсць яшчэ 2 спосабу кантраляваць падобныя паводзіны праграмы. Да прыкладу, калі ўпісаць у код Continue, якое перадасць кіраванне на пачатак цыклічна канструкцыі (тут ўмова выхаду з цыкла кантралюецца, т. Е выкананне бягучай ітэрацыі прывядзе да спынення). Тады кіраванне перадаецца ў цыкле While ў папярэднюю праверку.
Аператар Break здольны перапыніць выкананне ўсяго цыкла і перадаць кіраванне наступнай ітэрацыі. Тут выхад з канструкцыі кантралявацца не будзе. На малюнку паказаны прыклады выкарыстання дадзеных аператараў.
рашэнне задач
Разгледзім у дзеянні цыкл While. Pascal задачы прапануе вырашыць самыя разнастайныя. Спынімся пакуль на найпростых, каб зразумець прынцып працы. Вырашаны заданні ў праграме Pascal ABC. Але будуць прадстаўлены і малюнкі класічнай асяроддзя Turbo Pascal для параўнання.
Заданне 1: дадзена функцыя Y = 5-X ^ 2/2. Скласці табліцу значэнняў з крокам sh = 0,5 на прамежку [-5; 5].
Алгарытм дзеянняў:
- задаць для зменнай Х пачатковае значэнне роўнае -5 (т. е. пачатак прамежку);
- вылічаць значэнне Y, пакуль пераменная x ня дасягне канца названага адрэзка;
- вывесці на экран значэння функцыі і абсцыс (Х);
- павялічыць Х на зададзены крок.
Вось так выглядае код у праграме Pascal ABC.
Як выглядае код у праграме Turbo Pascal. Малюнак ніжэй наглядна паказвае гэта.
Заданне 2: дадзены масіў А, які складаецца з цэлых станоўчых і адмоўных лікаў. У ім утрымліваецца 10 элементаў. Неабходна сфармаваць матрыцу У, у якой будуць адлюстраваны станоўчыя элементы масіва А, якія маюць цотны горада. Адлюстраваць на экране суму квадратаў у ліку з новай матрыцы.
Алгарытм дзеянняў:
- Неабходна напісаць падпраграму, якая будзе «працаваць» толькі з элементамі масіва А, якія маюць цотны горада. У цыкле значэнне зменнай, якая адказвае за цотнасць індэкса, будзе павялічвацца на 2.
- Калі лік з цотных індэксам з матрыцы А адпавядае умове х> 0, тады лічыльнік элементаў масіва павялічваецца на 1. Цяперашняе значэнне зменнай-лічыльніка будзе з'яўляцца індэксам капіяванага колькасці ў масіве В.
- Першапачаткова зменнай summa, якая адказвае за знаходжанне сумы квадратаў станоўчых лікаў, прысвойваецца 0. Затым будзе выконвацца аперацыя: да папярэдняй сумы дадаецца новае значэнне квадрата.
- Не варта палохацца, калі не ўсё станоўчыя колькасці перайшлі з адной матрыцы ў іншую. Трэба быць пільнымі. Шматлікія пачаткоўцы праграмісты ў паніцы перапісваюць код. Варта старанна вывучыць ўмова: дадатныя лікі, якія знаходзяцца на цотных «месцах», т. Е. Якія маюць індэксы, кратныя 2.
Ручная трасіроўка неабходная для таго, каб пераканацца ў вернасці вылічэнняў. Часам з дапамогай гэтага метаду можна выявіць памылкі, якія ня трапляюцца на вочы пры звычайнай праверцы напісанага кода.
Калі правесці ручныя разлікі, то можна пераканацца, што праграма правільна працуе. Гэта, у сваю чаргу, кажа пра тое, што алгарытм стварэння кода верны, паслядоўнасць дзеянняў прыводзіць да лагічнага канца.
Similar articles
Trending Now