КампутарыПраграмнае забеспячэнне

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

 

 

 

 

Newest

Copyright © 2018 be.delachieve.com. Theme powered by WordPress.