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

Узвядзенне ў ступень у мове праграмавання Паскаль: парады і рэкамендацыі

Існуе велізарная колькасць моў праграмавання, і Паскаль займае сярод іх не апошняе месца. І калі вы збіраецеся ў далейшым сур'ёзна займацца праграмаваннем, варта пачынаць знаёмства з гэтым светам менавіта з вывучэння дадзенага мовы, так як ён больш просты ва ўспрыманні і, што немалаважна, праграма абсалютна бясплатная.

У артыкуле мы разбяром такую няпростую праблему, як узвядзенне ў ступень. Паскаль, нажаль, не падае нам для вырашэння гэтай задачы, у адрозненне ад іншых моў праграмавання, асобнага аператара. Так што тут выпадае, як той казаў, выкручвацца падручнымі сродкамі, звяртаючыся да цыклаў і матэматычным аператарам - менавіта тут мы можам даць волю нашай фантазіі. Разгледзім некалькі метадаў вырашэння гэтай праблемы.

Хай нам дадзена самая простая задача, дзе нейкае лік неабходна ўзвесці ў цэлую станоўчую ступень. Дапусцім, лік a ўзводзім ў 4 ступень. Тут выконваецца простая матэматычная аперацыя: b: = a * a * a * a.

У наступным кроку мы ўскладнілі задачу і складзем універсальную праграму, якая будзе ўзводзіць любы лік у любую цэлую станоўчую ступень. Тут ёсць магчымасць скарыстацца любым цыклам, але мы разгледзім больш просты метад з выкарыстаннем цыклу са лічыльнікам. На малюнку злева вы можаце азнаёміцца з поўным тэкстам нашай праграмы, там жа ёсць і тлумачэння выконваемых аперацый. Дарэчы, варта адзначыць, што ўзводзімае лік a неабавязкова задаваць Integer, а можна, дапусцім, Real, што дазволіць ўзвесці ў ступень дробавую лік.

Папярэднія прыклады дазваляюць нам ўзводзіць колькасці толькі ў цэлыя звычайная ступень. Але сустракаюцца задачы, дзе неабходна ўзвесці лік у дробную ступень. Пры напісанні такой праграмы нам неабходна веданне уласцівасцяў лагарыфмаў. У прыватнасці: a b = e b ln a. Зыходзячы з гэтага, патрэбны фрагмент нашай праграмы будзе мець выгляд: r: = exp (b * ln (a)). Але тут мы сутыкаемся з тым, што гэты аператар не працуе з нулём і адмоўнымі лікамі. Для таго, каб наша праграма выконвала ўзвядзенне ў ступень 0, трэба задаць ўмова: If b = 0 Then r: = 1 Else r: = exp (b * ln (a)). Але як жа для адмоўнага ліку выглядае ўзвядзенне ў ступень?

Паскаль зноў прымушае нас задумацца. Тут прыходзіцца вырабляць дадзеную аперацыю з модулем нашага ліку і браць дадзеныя з адмоўным вынікам. Затым праверыць цотнасць ступені: калі наша ступень была цотнай, тады мы бярэм ад выніку модуль. У такім выпадку наша праграма будзе мець выгляд: r = (- 1) * exp (b * ln (abs (a))); If Round (b / 2) = b / 2 Then r: = abs (r). Ўмова тут правярае, цотны ці не ступень.

У выніку мы падыходзім да больш універсальнай мадэлі нашай праграмы, якая будзе працаваць з любымі лікамі. Гэта значыць, зараз мы павінны былі смакатой ў адзінае цэлае ўсё вышэйпададзенае. У малюнку справа вы можаце азнаёміцца з поўным тэкстам нашай гатовай праграмы. Звярніце ўвагу на зададзены тып дадзеных. У адрозненне ад першай праграмы, тут выкарыстоўваецца Real, бо тут мы ўжо працуем з любымі лікамі, а не толькі з цэлымі. Такім чынам, узвядзенне ў ступень сапраўдных лікаў намі цалкам разгледжана. Засталося разгледзець толькі адно пытанне.

Пераходзячы да яго, варта адзначыць, што пры вырашэнні дадзенай задачы неабходныя досыць глыбокія веды ў праграмаванні. Гэта ўзвядзенне ў ступень комплекснага ліку. Тут можна спрабаваць выкарыстоўваць розныя варыянты вырашэння, дапусцім, формулу Муавра, але там ёсць цяжкасці з перакладам комплекснага ліку ў трыганаметрычных форму. Ёсць рашэнне гэтай задачы ў заданні працэдуры перамнажэннем двух комплексных лікаў і простага цыклу са лічыльнікам, г.зн. паўтарэнне гэтай працэдуры роўнае ступені колькасць разоў. На прадастаўленым прыкладзе вы можаце больш дэталёва разабрацца з тэкстам гэтай праграмы.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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