§ 6. Выкарыстанне асноўных алгарытмічных канструкцый для рашэння задач

6.7. Прасцейшае мадэліраванне

Прыклад 6.19. Рэзервуар напоўнены m літрамі воднага раствору, які змяшчае s кг цукру. Кожную мінуту забіраюць x літраў раствору і дабаўляюць y літраў вады. Канцэнтрацыя падтрымліваецца раўнамернай пры дапамозе памешвання. Колькі цукру будзе ў растворы праз k мінут?

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

I. Зыходныя даныя: числа m, s, x, k.

II. Вынік: s (новае значэнне)

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

1. Увод зыходных даных. 
2. У пераменнай с будзем захоўваць значэнне бягучай канцэнтрацыі раствору, у пераменнай v — колькасць вады. 
3. У цыкле ад 1 да k:

3.1. Памяншаем колькасць раствору на x
3.2. Дабаўляем ваду. 
3.3. Пералічваем канцэнтрацыю раствору. 
3.4. Калі ў нейкі момант увесь раствор вылілі, то перарываем цыкл.

4. Вывад значэння пераменнай s. Калі колькасць раствору меншая або роўная нулю, то выводзім паведамленне «цукру не засталося», інакш выводзім колькасць цукру, якая засталася.

IV. Апісанне пераменных: n, s, r, z — int.

Прыклад 6.19.

V. Праграма:

#include <iostream>

 

using namespace std;

 

int main()

{

  setlocale(0,"");

  double m, s, x, y;

  cout << "раствор m = ";

  cin >> m;

  cout << "цукар s = ";

  cin >> s;

  cout << "расход x = ";

  cin >> x;

  cout << "прыход y = ";

  cin >> y;

  int k;

  cout << "час k = ";

  cin >> k;

  double c = s / m;

  for (int i = 0; i < k; i++){

    m -= x;

    if (<= 0) break;

    s = c * m;

    m += y;

    c = s / m;

  }

  if (<= 0)

    cout << "цукру не засталося" << endl;

  else

    cout << "цукру - " << s << endl;

  return 0;

}

 VI.  Тэсціраванне.