Кампутары, Праграмаванне
Цыкл for: Pascal для пачаткоўцаў
Аснова праграмавання - цыклы, напрыклад, for. Pascal. Як і любы кампутарны мову, ён таксама змяшчае такія канструкцыі ў сваім сінтаксісе.
Прызначэнне цыклічных аператараў
Тыповая задача - прымусіць кампутар выконваць адно і тое ж дзеянне некалькі разоў. Вось тут і ратуюць канструкцыі, якія дазваляюць арганізаваць паўтор кода. Такім чынам, цыкл у праграмаванні - гэта шматкроць якi выконваецца дзеянне, якое арганізуецца з дапамогай сродкаў мовы.
Мова праграмавання Pascal ўключае некалькі такіх канструкцый:
- for - паўтор з параметрам;
- while - паўтор з перадумовай;
- repeat ... until - паўтор з постусловием.
Нягледзячы на ўяўную прастату і відавочнасць цыклічных канструкцый, пачаткоўцы праграмісты сутыкаюцца з шэрагам праблем пры іх рэалізацыі. Найбольшыя складанасці выклікае пастаноўка умоў выхаду з цыклу. У гэтых адносінах падліковыя аператар for з'яўляецца самым немудрагелістым.
структура
Каб запісаць канструкцыю паўтору з параметрам, трэба набраць наступны код:
FOR {a}: = {b} TO {c} DO {d}.
У прыкладзе зарэзерваваныя словы мовы для зручнасці напісаны загалоўнымі літарамі, на практыцы можна выкарыстоўваць маленькае кляймо. Выкарыстоўваюцца зменныя і аператары прыведзены ў фігурных дужках. Яны азначаюць:
- {A} - пераменная любога счётного тыпу, часцей за ўсё INTEGER;
- {B}, {c} - выразы счётного тыпу, такога ж, як і {a};
- {D} - адвольны аператар / аператары мовы, званыя таксама целам цыклу.
Адпрацоўваючы канструкцыю for, Pascal разлічвае значэнне {b}, прысвойвае {a}: = {c}, пасля чаго запускаецца паўтор дзеянняў:
- праверка ўмовы {b} <= {c}, пры выкананні якога цыкл спыняе сваю працу;
- запуск аператара {d};
- павелічэнне значэння {a} на адзінку, то ёсць {a}: = {a} + 1.
Паколькі колькасць паўтораў ўнутры цела for вядома, дадзеную канструкцыю адносяць да дэтэрмінаваных цыклах.
прыклад
Каб зразумець, як будзе выконвацца for, далей, прыведзены прыклад, кода на мове паскаль для «чайнікаў».
- s: = 0;
- for a: = 1 to 5 do
- begin
- s: = s + a;
- end;
- writeln (s);
Разбіраючыся ў напісаных інструкцыях, можна запісаць значэння ў кожнай ітэрацыі:
- 1-я ітэрацыя: a = 1; s = 1;
- 2-я ітэрацыя: a = 2; s = 3;
- 3я ітэрацыя: a = 3; s = 6;
- 4-я ітэрацыя: a = 4; s = 10;
- 5-я ітэрацыя: a = 5; s = 15.
У выніку карыстач убачыць на экране лік «15» - суму лікаў ад 1 да 5.
Каб зрабіць першую праграму больш універсальнай, варта замяніць колькасці 1 і 5 зменнымі.
частыя памылкі
Пры выкарыстанні цыклу for, Pascal патрабуе ўважлівага стаўлення да значэнняў {a}, {b}, {c}. Калі не выконваць правілы напісання праграм, кампілятар паведаміць пра памылку. Такіх правіл пяць.
- Лічыльнік (параметр цыклу) {a} задаецца цэлым лікам.
- Значэння {b} і {c} таксама павінны мець цэлалікавых тып. Напрыклад, трэба пралічыць значэння кута, зададзенага ў радыянах ад 0 да p. Але наступная запіс кода будзе няправільнай for a: = 0 to pi do. Рашэнне - выкарыстоўваць функцыі акруглення trunc () або round (). Першая адкідвае дробную частку рэчавага колькасці, другая - акругляе яго да бліжэйшага цэлага.
- Калі карыстальнік памыліўся і паказаў {b} <{c}, аператар {d} ні разу не адпрацуе.
- Пасля выканання цыклу лічыльнік {a} можа мець любое значэнне. Хоць гэта супярэчыць логіцы, але на практыцы {a} <> {c}. Выснова: не рэкамендуецца звяртацца да {a} пасля выканання канструкцыі for.
- У целе цыклу (гэта значыць пасля слова do) не рэкамендуецца выкарыстоўваць якія-небудзь аператары, якія змяняюць значэння параметру {a}. Прытрымліванне дадзенай правілу памылкі не выкліча, але будзе парушаная логіка праграмы.
Наступнае правіла з'яўляецца агульнапрынятым і адпавядае «добраму тону» у праграмаванні: каб было зручна працаваць з кодам, неабходна запісваць аператары цела цыклу не з першай калонкі. Напрыклад, робячы 2-3 прабелу злева ці выкарыстоўваючы клавішу Tab.
Дадзенае прадпісанне дастасавальна не толькі да мовы паскаль. Для «чайнікаў» яно дазваляе хутка знайсці і выправіць памылку ў інструкцыях.
тыповыя задачы
Дапусцім, неабходна выканаць табуляцыі функцыі выгляду f (x) = 3 * x + 15, гэта значыць атрымаць табліцу з M значэнняў функцый у дыяпазоне [x 1; x 2], дзе x 1 і x 2 - мінімальная і максімальныя значэння аргументу. Вырашаць гэтую і падобныя задачы дапамагае канструкцыя for. Pascal рэкамендуе запісаць праграмны код наступным спосабам:
- for a: = 1 to M do
- begin
- x: = x1 + (x2-x1) * (a-1) / (M-1);
- f: = 3 * x + 15;
- writeln (x, '', f);
- end.
Паколькі крок змены x не зададзены, значэнне аргументу разлічваецца ў ходзе праграмы пры кожнай ітэрацыі з дапамогай формулы: x: = x1 + (x2- x1) * (a-1) / (M-1).
Цыкл у цыкле
З прычыны таго, што ўнутры канструкцыі дазваляецца выкарыстоўваць любыя аператары, дапускаецца змясціць у яе цела яшчэ адзін цыкл for. Pascal мае стандартнае апісанне для дадзенай задачы, падобнае з іншымі мовамі праграмавання:
- FOR {a}: = {b} TO {c} DO
- FOR {a1}: = {b1} TO {c1} DO
Каб канструкцыя працавала дакладна, неабходна выконваць ўмова: лічыльнікі ў кожным цыкле павінны быць розныя. Інакш ўнутраны цыкл будзе мяняць значэнне параметру вонкавага цыклу, што прывядзе да лагічным памылак.
Similar articles
Trending Now