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

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.

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