КампутарыПраграмаванне

Цыкл 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}. Калі не выконваць правілы напісання праграм, кампілятар паведаміць пра памылку. Такіх правіл пяць.

  1. Лічыльнік (параметр цыклу) {a} задаецца цэлым лікам.
  2. Значэння {b} і {c} таксама павінны мець цэлалікавых тып. Напрыклад, трэба пралічыць значэння кута, зададзенага ў радыянах ад 0 да p. Але наступная запіс кода будзе няправільнай for a: = 0 to pi do. Рашэнне - выкарыстоўваць функцыі акруглення trunc () або round (). Першая адкідвае дробную частку рэчавага колькасці, другая - акругляе яго да бліжэйшага цэлага.
  3. Калі карыстальнік памыліўся і паказаў {b} <{c}, аператар {d} ні разу не адпрацуе.
  4. Пасля выканання цыклу лічыльнік {a} можа мець любое значэнне. Хоць гэта супярэчыць логіцы, але на практыцы {a} <> {c}. Выснова: не рэкамендуецца звяртацца да {a} пасля выканання канструкцыі for.
  5. У целе цыклу (гэта значыць пасля слова 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

 

 

 

 

Newest

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