§ 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.  Тестирование.