Печатать книгуПечатать книгу

§ 2. Арганізацыя вылічэнняў

Сайт: Профильное обучение
Курс: Інфарматыка. 10 клас (Павышаны ўзровень)
Книга: § 2. Арганізацыя вылічэнняў
Напечатано:: Гость
Дата: Воскресенье, 28 Апрель 2024, 18:36

2.1. Выкарыстанне матэматычных функцый

 

Пры вылічэннях часта выкарыстоўваюцца розныя матэматычныя функцыі (прыклад 2.1). Гэтыя функцыі рэалізаваны як убудаваныя дапаможныя алгарытмы і захоўваюцца ў бібліятэцы cmath. Для падключэння гэтай бібліятэкі выкарыстоўваюць каманду #include <cmath>.

Аргументы функцый заўсёды запісваюцца ў дужках. Некаторыя з функцый прыведзены ў табліцы:

Запіс на С++ Апісанне
abs(x) Знаходзіць модуль ліку x
sqrt(x) Знаходзіць корань квадратны з ліку x. Вынік — лік рэчыўнага тыпу
cbrt(x) Знаходзіць корань кубічны з ліку x. Вынік — лік рэчыўнага тыпу
ceil(x) Знаходзіць найбліжэйшы цэлы лік, не меншы, чым значэнне  x
floor(x) Знаходзіць найбліжэйшы цэлы лік, не большы, чым значэнне x
sin(x) Вылічвае сінус ліку x. Лік x задаецца ў радыянах
cos(x) Вылічвае косінус ліку x. Лік x задаецца ў радыянах

 

(Іншыя функцыі можна паглядзець у Дадатку да главы 1.)

Аргументам функцыі можа быць лік, пераменная, выраз ці іншая функцыя:

ceil(10*sin(x)), sqrt(abs(-16)).

У прыкладзе 2.1 выкарыстоўваюцца матэматычныя функцыі для вылічэння модуля, квадратнага кораня і сінуса.

Прыклад 2.1. Зададзены значэнні пераменных x і y. Вылічыць значэнне выразу:

b space equals space fraction numerator square root of x space plus space 4 over denominator open vertical bar y close vertical bar minus space 2 end fraction sin x

Этапы выканання задання

I. Зыходныя даныя: пераменныя x, y.

II. Вынік: пераменная  b.

III. Алгарытм рашэння задачы.

1. Увод зыходных даных.
2. Вылічэнне па формуле.
3. Вывад выніку.

IV. Апісанне пераменных: x, y, b — double.

V. Праграма:

#include <iostream>

#include <cmath>

 

using namespace std;

 

int main()

{

  double x, y;

  cout << "vvedi x, y" << endl;

  cin >> x >> y;

  double b = (sqrt(x) + 4) / 
      
(abs(y) - 2) * sin(x);

  cout << "b=" << b << endl;

  return 0;

}

VI. Тэсціраванне праграмы. Запусціць праграму і ўвесці значэнні x = 13, y = 7.7.

Вынік:

VI. Правільнасць вылічэнняў можна праверыць на калькулятары.

2.2. Рашэнне задач

Прыклад 2.2. Напішыце праграму для рашэння геаметрычнай задачы. Зададзены квадрат з даўжынёй стараны a. Знайсці яго плошчу і даўжыню дыяганалі.

Этапы выканання задання

I. Зыходныя даныя: пераменная  (даўжыня стараны).

II. Вынік: пераменныя (плошча) і  (даўжыня дыяганалі).

III. Алгарытм рашэння задачы.

1. Увод зыходных даных.
2. Вылічэнне значэнняў плошчы выконваецца па формуле S = a2 даўжыні дыяганалі — па формуле d = begin mathsize 18px style space straight a square root of 2 end style.
3. Вывад выніку.

IV. Апісанне пераменных: a, s, d — double.

Прыклад 2.3. Напішыце праграму для рашэння фізічнай задачы.

Хлопчык, які стаіць на беразе, кідае ў возера каменьчык. Пункт кідання знаходзіцца на вышыні h над паверхняй вады. Пачатковая скорасць каменьчыка v0 накіравана гарызантальна. Каменьчык падае ў ваду на адлегласці l ад берага. Вызначыце модуль пачатковай скорасці каменьчыка і модуль скорасці, з якой ён увайшоў у ваду.

Этапы выканання задання

I. Зыходныя даныя: пераменныя h і l (вышыня над паверхняй вады і адлегласць ад берага).

II. Вынік: пераменныя v0 і v (пачатковая скорасць і скорасць, з якой каменьчык увайшоў у ваду).

III. Алгарытм рашэння задачы.

1. Увод зыходных даных.

2. Каменьчык удзельнічае адначасова ў двух рухах: раўнамерным са скорасцю v0 па гарызанталі і роўнапаскораным без пачатковай скорасці па вертыкалі. У канцы палёту праекцыі хуткасці і каардынаты каменьчыка будуць: vx = v0; t; vy = gt; begin mathsize 16px style y space equals space h space equals space fraction numerator g t squared over denominator 2 end fraction end style. Тадыbegin mathsize 16px style t space equals space square root of fraction numerator 2 h over denominator g end fraction end root end style.

3. Пачатковая скорасць вылічваецца па формуле v subscript 0 equals l over t. Значэнне скорасці, з якой каменьчык увайшоў у ваду, можна вылічыць па формуле  v space equals space square root of v subscript x superscript 2 space plus space v subscript y superscript 2 end root.

4. Вывад выніку.

IV. Апісанне пераменных: h, l, g, t, vy, v0, v — double.

Пры напісанні праграм зввяртайце ўвагу на фармаціраванне тэксту праграмы (прыклад 2.4).

1. У першай пазіцыі на экране пішуць толькі каманды  #include <iostream>, #include <cmath>, using namespace std;, int main() ставяць фігурныя дужкі, а астатнія каманды пішуць са зрухам на 2—4 пазіцыі ўправа.

2. Калі ў праграме некалькі частак, то іх можна аддзяліць адна ад адной пустым радком.

Для аўтаматычнага фармаціравання кода можна выкарыстаць каманду Format use AStyle з кантэкставага меню рабочай вобласці  (пыклад 2.5).

Прыклад 2.2.

V. Праграма:

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

  double a;

  cout << "vvedi a"<<endl;

  cin >> a;

  double s = a * a;

  double d = a * sqrt(2);

  cout << "s=" << s;

  cout << "  d=" << d << endl;

  return 0;

}

VI. Тэсціраванне праграмы. Увядзіце значэнне  = 2. Вынік:

Праверыць правільнасць вылічэнняў можна на калькулятары.

Прыклад 2.3.  

V. Праграма:

#include <iostream>

#include <cmath>

 

using namespace std;

 

int main()

{

  double h, l;

  cout << "vvedi h, l"<< endl;

  cin >> h >> l;

  double g = 10;

  double t = sqrt(2 * h / g);

  double vy = g * t;

  double v0 = l / t;

  double v = sqrt(v0*v0 + vy*vy);

  cout << "v0=" << v0;

  cout << "  v=" << v << endl;

  return 0;

}

 

VI. Тэсціраванне праграмы:

Запусціце праграму і ўвядзіце значэнні h = 1.8 і l = 4.8.

Результат должен быть следующим:

Праверыць правільнасць вылічэнняў можна на калькулятары.

У праграме можна выкарыстоўваць каментарыі — тэкст, які не аналізуецца пры запуску праграмы на выкананне. Тэкст пасля сімвалаў // лічыцца каментарыем і вылучаецца шэрым колерам. У каментарыях зручна запісваць умову задачы і тлумачэнні да каманд.

Прыклад 2.4. Праграма з каментарыямі і адфармаціраваным кодам:

Калі для каментарыяў выкарыстоўваць сімвалы ///, то яны вылучаюцца больш ярка. Зрабіць вылучаны блок каментарыем можна з дапамогай Crtl+Shift+C, зняць каментарый — Crtl+Shift+X,

Прыклад 2.5. Кантэкставае меню рабочай вобласці:

2.3. Цэлалікавы тып даных

Часта пры рашэнні задач трэба працаваць з цэлымі лікамі. Для гэтага ў C++ выкарыстоўваецца тып даных int.

З дапамогай пераменных тыпу можна задаваць цэлыя лікі з дыяпазону ад –2147483648 да 2147483647. Для гэтага тыпу даных вызначаны наступныя аперацыі:

Матэматычныя аперацыі

Запісу у С++

+ (складанне) +
– (адніманне)
∙ (множанне) *
цэлалікавае дзяленне /
знаходжанне астачы %

У С++ для дзялення як цэлых, так і рэчаісных лікаў выкарыстоўваецца адзін і той жа знак «/». Будзе вынік цэлым ці рэчыўным, залежыць ад аперандаў (пераменных ці лікаў, якія стаяць злева і справа ад знака). Калі хоць бы адзін аперанд рэчыўны, то вынік будзе рэчыўным. Калі абодва аперанды цэлыя, то і вынік будзе цэлым.

Аперацыя «%» адпавядае аперацыі mod у мове праграміравання Pascal і выкарыстоўваецца толькі для цэлых лікаў.

Прыклад 2.6. Дадзены два цэлыя лікі a і b. Напісаць праграму, якая знаходзіць цэлую частку і астачу ад дзялення a на b.

Этапы выканання задання

I. Зыходныя даныя: пераменныя a і b.

II. Вынік: пераменныя c (цэлалікавая дзель) і d (астача).

III. Алгарытм рашэння задачы.

1. Увод зыходных даных. 
2. Цэлалікавую дзель знаходзім як вынік аперацыі: a/b, астача — a%b.
3. Вывад выніку.

IV. Апісанне пераменных: a, b, c, d  int.

Значэнне, якое выдае ў якасці выніку аперацыя %, можа адрознівацца ад матэматычнага азначэння астачы (у матэматыцы пад астачай разумеюць неадмоўны лік). Калі астача не роўна нулю, то знак ліку, які з’яўляецца вынікам аперацыі %, вызначаецца знакамі аперандаў (прыклад 2.7). Калі прааналізаваць даныя з табліцы, то можна зразумець, што  begin mathsize 16px style a space percent sign space b space equals space a space minus space open square brackets a over b close square brackets space cross times space b end style [1].

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

double = 16 / 7;

Спачатку будзе выканана дзяленне 16 на 7 (цэлалікавае), у выніку атрымаем 2. Пасля чаго цэлае значэнне 2 будзе пераўтворана да рэчыўнага значэння 2.0. Каб атрымаць рэчыўны вынік, неабходна, каб хаця б адзін лік быў рэчыўным. Каманду можна запісаць, напрыклад, так:

double x = 16. / 7;

Калі ў аператары прысвойвання выкарыстоўваюцца не канстанты, а пераменныя, то неабходна пераўтварыць выраз так, каб дзеянні выконваліся з патрэбным тыпам. Напрыклад, аператар прысвойвання 

double x = a / b;

у якім a і b цэлалікавыя пераменныя, можна запісаць так:

double x = 1. */ b;

Тады вынік аперацыі множання будзе рэчыўным і дзяленне будзе выконвацца для рэчаісных лікаў.


[1] Дужкі open square brackets blank close square brackets  абазначаюць акругленне ліку да цэлага ў меншы бок.

 

Тып int з’яўляецца базавым цэлалікавым тыпам. Іншыя цэлалікавыя тыпы можна атрымліваць, прыпісваючы да int мадыфікатары. Адрозніваюць два тыпы мадыфікатараў, якія могуць змяняць знакавасць ці памер.

Знакавасць:

signed — тып будзе мець знакавае ўяўленне (выкарыстоўваецца па змоўчанні, калі мадыфікатар не вызначаны);

unsigned — тып будзе мець бяззнакавае ўяўленне.

Памер:

short — тып будзе займаць у памяці не менш за 16 біт;

long — тып будзе мець памер, не меншы за 32 біт;

long long — тып будзе мець памер, не меншы за 64 біты.

Прыклады выкарыстання мадыфікатараў:

Тып

Дыяпазон значэнняў

Памер (біт)

short int 32768..32767 16
unsigned short int 0..65535 16
int 2147483648.. 2147483647 32
unsigned int 0..4294967295 32
long long int  263 .. 263  1 64
unsigned long long int 0 .. 264  1 64

Калі пры апісанні выкарыстоўваюць мадыфікатары, то слова int можа быць прапушчана. Наступныя апісанні эквівалентныя:

short int short
unsigned int unsigned
long long int long long
unsigned long long int unsigned long long

Прыклад 2.6.  

V. Праграма:

#include <iostream>

using namespace std;

int main()

{

  int a, b;

  cout << "Vvedi 2 chisla" << endl;

  cin >> a >> b;

  int c = a / b;

  int d = a % b;

  cout << "a / b = " << c << endl;

  cout << "a % b = " << d << endl;

  return 0;

}

IV. Тэсціраванне праграмы:

Запусціце праграму і ўвядзіце значэння a = 11 и b = 4.

Вынік павінен быць наступным:

Прыклад 2.7.  Вынік аперацый div і mod для розных лікаў:

a

b

a / b

a % b

17 3 5 2
–17 3 –5 –2
17 –3 –5 2
–17 –3 5 –2

У мове С++ дапускаецца відавочнае пераўтварэнне тыпаў. Для гэтага выкарыстоўваецца каманда 

     static_cast<dataType>(value   

Тут dataType — імя тыпу, да якога трэба пераўтварыць велічыню value.

У кодзе праграмы гэта каманда выкарыстоўваецца наступным чынам:

  double static_cast<double>(a)/b;  

Таксама кампілятарам С++ падтрымліваецца так званы Cі-стыль прывядзення тыпаў даных, калі новы тып паказваецца ў дужках перад імем пераменнай:

    double x = (double)/ b;    

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

    double = double(a) / b;  

Аднак такое пераўтварэнне лічыцца небяспечным, паколькі кампілятар не правярае выхад за мяжу магчымых значэнняў тыпу.

2.4. Рашэнне задач

 

Прыклад 2.8. Васеў таймер паказвае час толькі ў секундах. Напісаць для Васі праграму, якая перавядзе час у мінуты і секунды.

Этапы выканання задання

I. Зыходныя даныя: пераменная с (час у секундах).

II. Вынік: пераменныя m (поўная колькасць мінут) і s (астача секунд).

III. Алгарытм рашэння задачы.

1. Увод зыходных даных. 
2. Для знаходжання поўнай колькасці мінут трэба знайсці цэлую частку ад дзялення зыходнага ліку секунд на 60. 
3. Секунды, што засталіся, можна знайсці як астачу ад дзялення зыходнага ліку секунд на 60. 
4. Вывад выніку.

IV. Апісанне пераменных: c, m, s — int.

Прыклад 2.9. Зададзены трохзначны лік. Напішыце праграму, якая знаходзіць сярэднюю лічбу.

Этапы выканання задання

I. Зыходныя даныя: пераменная а.

II.  Вынік: пераменная b (пераўтвораны лік).

III. Алгарытм рашэння задачы.

1. Увод зыходных даных.
2. Сярэднюю лічбу ліку можна знайсці, калі спачатку падзяліць лік на 10, а затым знайсці астачу ад дзялення атрыманага ліку на 10

3. Вывад выніку
.

IV. Апісанне пераменных: a, b — int.

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

Этапы выканання задання

I. Зыходныя даныя: пераменная l (локці).

II. Вынік: пераменныя m (метры) і s (сантыметры).

III. Алгарытм рашэння задачы.

1. Увод зыходных даных.
2. Спачатку перавядзём локці ў сантыметры. Для гэтага колькасць локцяў трэба памножыць на 45 і захаваць значэнне ў пераменнай 
 x.
3. Для вызначэння ліку метраў знойдзем цэлую частку ад дзялення x на 100
.
4. Сантыметры, якія засталіся, можна знайсці як астачу ад дзялення x на 100.
5. Вывад выніку
.

IV. Апісанне пераменных: l, x, m, s int.

Прыклад 2.11. Напісаць праграму, якая вызначыць поўную колькасць гадзін і мінут, якія прайшлі ад пачатку сутак да таго моманту (у першай палове сутак), калі гадзіннікавая стрэлка павярнулася на f градусаў (0  f < 360, f — цэлы лік).

Этапы выканання задання

I. Зыходныя даныя: пераменная f (колькасць градусаў).

II. Вынік: пераменныя с (гадзіны) і m (мінуты).

III. Алгарытм рашэння задачы.

1. Увод зыходных даных. 
2. Гадзіннікавая стрэлка абыходзіць цыферблат за 12 гадзін, значыць, за адну гадзіну яна паварочваецца на 360 / 12 = 30°. Паварот гадзіннікавай стрэлкі ажыццяўляецца кожную мінуту. Вугал павароту 30 / 60 = 1 / 2. 
3. Колькасць гадзін можна знайці, калі цалкам падзяліць f на 30.
4. Астача ад дзялення f на 30 адпавядае мінутам. Для таго каб іх знайсці, трэба астачу памножыць на 2. 
5. Вывад выніку.

IV. Апісанне пераменных: f, c, m int.

Прыклад 2.12. Дадзены цэлы лік а3 і а10 за чатыры аперацыі множання (іншыя аперацыі выкарыстоўваць нельга).

Этапы выканання задання

I. Зыходныя даныя: пераменная  a.

II. Вынік: пераменныя a3 (a3) і a10 (a10).

III. Алгарытм рашэння задачы.

1. Увод зыходных даных.
2.Для скарачэння колькасці множанняў увядзём дадатковыя пераменныя, якія будуць захоўваць прамежкавыя значэнні.

а) a2 = a ∙ a (1-е множанне);

б) a3 = a2 ∙ a (2-е множанне);

в) a5 = a2 ∙ a3 (3-е множанне);

г) a10 = a5 ∙ a5 (4-е множанне).

3. Вывад выніку.

IV. Апісанне пераменных: a, a2, a3, a5, a10 long long.

Прыклад 2.8.

 V. Праграма:

#include <iostream>

using namespace std;

int main()

{

  int c;

  cout << "Kol-vo sek" << endl;

  cin >> c;

  int m = c / 60;

  int s = c % 60;

  cout << m << ":" << s << endl;

  return 0;

}

VI. Тэсціраванне праграмы.

Запусціце праграму і ўвядзіце значэннe   c = 137.

Вынік павінен быць наступным:

Прыклад 2.9.

 V. Праграма:

#include <iostream>

using namespace std;

int main()

{

  int a;

  cout << "Chislo a = ";

  cin >> a;

  int b = a / 10 % 10;

  cout << "b=" << b << endl;

  return 0;

}

VI. Тэсціраванне праграмы.

Запусціце праграму і ўвядзіце значэнне a = 452.

VII. Вынік: пераменная b (сярэдняя лічба лiку).

Некаторыя старарускія адзінкі даўжыні:

1 локаць = 45 см, 1 аршын = 16 выршкоў, 1 вяршок = 4 ногці, 1 ногаць≈ 11 мм.

Прыклад 2.10.

V. Праграма:

#include <iostream>

using namespace std;

int main()

{

  setlocale(0"");

  int l;

  cout << "Увядзіl = ";

  cin >> l;

  int x = l * 45;

  int m = x / 100;

  int s = x % 100;

  cout << l << " локцяў = ";

  cout << m << " м ";

  cout << s << см" << endl;

  return 0;

}

VI. Тэсціраванне праграмы:

Запусціце праграму і ўвядзіце значэнне l = 7.

Вынік павінен быць наступным:

Прыклад 2.11.

V. Праграма:

#include <iostream>

 

using namespace std;

 

int main()

{

  int f;

  cout << "ugol f = ";

  cin >> f;

  int c = f / 30;

  int m = f % 30 *2;

  cout << c << ":" << m << endl;

  return 0;

}

VI. Тэсціраванне праграмы.

Запусціце праграму і ўвядзіце значэнне f = 85.

Вынік павінен быць наступным:

Прыклад 2.12.

V. Праграма:

#include <iostream>

using namespace std;

int main()

{

  long long a;

  cout << "a = ";

  cin >> a;

  long long a2 = a * a;

  long long a3 = a2 * a;

  long long a5 = a3 * a2;

  long long a10 = a5 * a5;

  cout << "a^3 = " << a3 << endl;

  cout << "a^10 = " << a10 << endl;

  return 0;

}

VI. Тэсціраванне праграмы.

Запусціце праграму і ўвядзіце значэнні l = 3.

Вынік павінен быць наступным:

Пытанні к параграфу

1. Што разумеюць пад тэсціраваннем праграмы?

2. Для чаго можна выкарыстоўваць каментарыі?

3. Які тып даных можна выкарыстоўваць у C++ для работы з цэлалікавымі данымі?

4. Якое максімальнае значэнне можна задаць пераменнай тыпу int?

5. Якія аперацыі вызначаны для цэлалікавых даных?

Практыкаванні

 

1. Адкажыце на пытанні для прыкладу2.12.

  1. Чаму ў праграме выкарыстаны тып  long long, а не тып int?
  2. Увядзіце значэнне 123. Чаму атрымалі адмоўны вынік?
  3. Для якога найбольшага ліку праграма выдае правільны адказ?
  4. Што можна змяніць у праграме, каб не атрымаць адмоўныя значэнні?

2. Дадзены x, y. Напішыце праграму для вылічэння значэння арыфметычнага выразу.

1. begin mathsize 14px style straight b space equals space fraction numerator c o s straight pi x cubed minus s i n straight pi y squared over denominator fourth root of s i n straight pi z space plus space c o s straight pi y end root end fraction end style       2. begin mathsize 14px style b space equals space fraction numerator sin space pi x squared space plus sin space pi y squared space over denominator z cubed space minus space 1.5 space y end fraction end style       3. begin mathsize 14px style a space equals space fraction numerator square root of open vertical bar x close vertical bar space minus 1 end root space minus space square root of x over denominator 1 space plus space begin display style x squared over 2 end style space plus space begin display style y squared over 4 end style end fraction end style

3. Напішыце праграму для рашэння геаметрычнай задачы.

1. Знайсці даўжыню акружнасці і плошчу круга зададзенага радыуса. Значэнне ліку π можна вылічыць з роўнасці: pi space equals space arccos left parenthesis negative 1 right parenthesis.  
2. Раўнабедраны трохвугольнік зададзены даўжынямі асновы і вышыні. Знайсці яго плошчу і даўжыню бакавой стараны.
3. Вылічыць плошчу кольца, унутраны радыус якога роўны R1, а знешні  R2
4. Трохвугольнік зададзены велічынямі сваіх вуглоў і радыусам апісанай акружнасці. Знайсці стораны трохвугольніка.

4. Напішыце праграму для рашэння фізічнай задачы.

1. Аўтамабіль праходзіць першую частку шляху даўжынёй S1 км за t1 мін, участак шляху даўжынёй S2 км за t2 мін і, нарэшце, участак даўжынёй S3 км за t3 мін. Знайдзіце сярэднюю скорасць аўтамабіля, адлюстраваную ў км/г.
2. Вызначыце паскарэнне, выкліканае сілай прыцягнення, на вышыні h = kRЗ ад паверхні Зямлі (значэнне k уводзіцца), калі на паверхні Зямлі яго модуль g = 9, 81 м / с2.

5. Напішыце праграму для рашэння хімічнай задачы.

1. У арганізме чалавека на долю атамаў кіслароду прыпадае 65 % ад масы цела. Знайдзіце масу атамаў кіслароду для сваёй масы цела.
2⃰. Маса аднаго атама кіслароду 26.56 ∙ 10−27 (гэты лік у праграме на мове C++ запісваецца так: 26.56E–27, літара E — англійская). Вызначыце, колькі атамаў кіслароду змяшчаецца ў вашым целе.

6. Напішыце праграмы для рашэння задач. Выкарыстоўвайце аперацыі / и %.

1. Зададзены двухзначны лік. Знайдзіце сярэдняе арыфметычнае лічбаў ліку. 
2. Зададзены трохзначны лік. Знайдзіце суму лічбаў ліку. 
3. Дадзена маса ў грамах. Перавядзіце яе ў кілаграмы і грамы. 
4. Плошча ўчастка вымяраецца ў арах. Знайдзіце колькасць поўных км2
5. З пачатку месяца прайшло m мін. Вызначыць, якое зараз чысло і колькі зараз часу (у гадзінах і мінутах).

7⃰. Для старарускай сістэмы вагі вядомыя наступныя суадносіны:

1 беркавец = 10 пудоў = 400 фунтаў = 38 400 залатнікоў

Напішыце праграму, якая пераводзіць масу, зададзеную ў залатніках, у фунты, пуды і беркаўцы.

8. Напісаць праграму, якая вызначыць f — вугал (у градусах) паміж становішчам гадзіннікавай стрэлкі ў пачатку сутак і яе становішчам у h г m мін (0 ≤ < 12, 0 ≤ < 60).

9. Ад пачатку сутак прайшло h поўных гадзін (0 ≤ < 12). Вядома, што зараз паміж гадзіннікавай і мінутнай стрэлкамі вугал у f градусаў (0 ≤ < 360, f — цэлы лік). Колькі зараз можа быць мінут?

10. Напішыце праграмы для рашэння задач.

1. Дадзены цэлы лік а. Не карыстаючыся ніякімі іншымі арыфметычнымі дзеяннямі, акрамя множання, атрымаць а9 за чатыры аперацыі. 
2. Дадзены цэлы лік а. Не карыстаючыся ніякімі іншымі арыфметычнымі дзеяннямі, акрамя множання, атрымаць а2, а5 і а17 за шэсць аперацый. 
3. Дадзены цэлы лік а. Не карыстаючыся ніякімі іншымі арыфметычнымі дзеяннямі, акрамя множання, атрымаць а15 за пяць аперацый.
4. Дадзены рэчыўны лік х. Не карыстаючыся ніякімі іншымі арыфметычнымі дзеяннямі, акрамя складання, аднімання і множання, вылічыць 2х4 – 3х3 + 4х2 – 5х + 6. Дазваляецца выкарыстоўваць не больш за 4 множанні і не больш за 4 складанні і адніманні.