1

Тема: Оцет задача

Дано: 9% розчин оцтової кислоти.
Відомо, що під час заморожування до певної температури концентрація змінюється.
В нижчій частині посудини концентрація стає 60% відносно початкових 9%, а в верхній 40%
Скільки заморожувань потрібно провести, відливаючи нижню частину у іншу ємність (котру заморожувати), щоб максимально можливо концентрувати розчин оцтової кислоти?

P.S. Неправильне моє формулювання завдання

2

Re: Оцет задача

Короче я розумію так. В нижній частині стає на 20% вищою конц. розчину.
20% від 9% це 20*9/100=1.8%
9%+1.8%=10.8%
нехай x=9%, y=20%, z=result

int i=0;
int max=9;//заморожувань
int x=9, y=20, z=0;
z=((x*20)/100)+x;//перше заморожування z=10.8%
while(i<max)
{
   x=z;
   z=((x*20)/100)+x;//друге буде 12.96%
   i++;
}
cout << "Після 10 заморожувань стало " << z << "% оцтової кислоти в розчині" << endl;

3

Re: Оцет задача

Ця фігня

#include <iostream>
#include <windows.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
    int i=0;
    int max=9;//çàìîðîæóâàíü
    double x=9, y=20, z=0;
    z=((x*20)/100)+x;//ïåðøå çàìîðîæóâàííÿ z=10.8%
    while(z<=99.9999)
    {
       x=z;
       z=((x*20)/100)+x;//äðóãå áóäå 12.96%
       std::cout << "Refr " << i+1 << ": z=" << z << "\n";
       i++;
       Sleep(100);
    }
    std::cout << "Z= " << z << "% acetic acid after " << i+1 << " counts" << std::endl;
    return 0;
}

Вивела

Refr 1: z=12.96
Refr 2: z=15.552
Refr 3: z=18.6624
Refr 4: z=22.3949
Refr 5: z=26.8739
Refr 6: z=32.2486
Refr 7: z=38.6984
Refr 8: z=46.438
Refr 9: z=55.7256
Refr 10: z=66.8708
Refr 11: z=80.2449
Refr 12: z=96.2939
Refr 13: z=115.553
Z= 115.553% acetic acid after 14 counts

Але 115.553% не може бути взагалі. Щось не так