#include <stdio.h>
#include <conio.h>
const int N = 100;
void main(void)
{
double spirt1 = 96.0;
double spirt2 = 0.0;
int step = 0;
while(spirt1>50.0)
{
step++;
spirt2 = (spirt1+N*spirt2)/(N+1);
spirt1 = ((N-1)*spirt1+spirt2)/N;
}
printf("Na %d-m sage\n", step);
getch();
}
Здачка на классы Vc++
Код:
// Решите с помощью классов следующую задачу:
//даны две бочки известного объема. В одной бочке в начальный момент
//времени содержится спирт (96%), в другой – вода.
//Кружкой емкостью 1л переливаем итеративно содержимое из одной бочки
//в другую следующим способом: на каждой итерации
//зачерпнули из первой бочки -> вылили во вторую
//зачерпнули из второй бочки -> вылили в первую.
//Требуется определить номер итерации, на которой концентрация спирта в
//первой бочке станет меньше 50%.
//даны две бочки известного объема. В одной бочке в начальный момент
//времени содержится спирт (96%), в другой – вода.
//Кружкой емкостью 1л переливаем итеративно содержимое из одной бочки
//в другую следующим способом: на каждой итерации
//зачерпнули из первой бочки -> вылили во вторую
//зачерпнули из второй бочки -> вылили в первую.
//Требуется определить номер итерации, на которой концентрация спирта в
//первой бочке станет меньше 50%.
N это объем бочки.
Добрый вечер,рад видеть!А как все ж таки сделать ее с классами то?И что такое getch()-очень интересно.
Цитата:
Originally posted by BroKeR
Добрый вечер,рад видеть!А как все ж таки сделать ее с классами то?И что такое getch()-очень интересно.
Добрый вечер,рад видеть!А как все ж таки сделать ее с классами то?И что такое getch()-очень интересно.
Hi!
getch() ждет нажатие клавиши. До тех пор Dos окно не закрывается.
Нужен класс например Bocska.
2 private поля: Объем, Спиртность.
В конструкторе задаются эти значения.
Два метода Слить(Объем),
Залить(Объем, Спиртность)
И метод доступа: получитьСпиртность().
Пример реализации класса
Код:
void Bocska::Zality(double obj, double spt)
{
if(obj <= 0.0) return;
Spirtnoszty = (Szpirtnoszty*Objem + obj*spt)/(Objem+obj);
Objem+=obj;
}
{
if(obj <= 0.0) return;
Spirtnoszty = (Szpirtnoszty*Objem + obj*spt)/(Objem+obj);
Objem+=obj;
}
Щас поковыряю,подумаю,напишу.Большое Спасибо!
Bochka.h
Код:
#pragma once
class Bochka{
double m_size;
double m_concentration;
public:
Bochka(){};
Bochka(double size,double concentration){m_size=size; m_concentration = concentration;};
double GetСoncentration() const {return m_concentration;};
void Pereliv(Bochka & barrel,double sizeOfCap);
};
class Bochka{
double m_size;
double m_concentration;
public:
Bochka(){};
Bochka(double size,double concentration){m_size=size; m_concentration = concentration;};
double GetСoncentration() const {return m_concentration;};
void Pereliv(Bochka & barrel,double sizeOfCap);
};
Код:
# include "Bochka.h"
void Bochka::Pereliv(Bochka & barrel,double sizeOfCap)
{
this->m_concentration = (barrel.m_concentration + this->m_size*this->m_concentration)/(this->m_size+sizeOfCap);
this->m_size = this->m_size + sizeOfCap;
barrel.m_size = barrel.m_size - sizeOfCap;
}
void Bochka::Pereliv(Bochka & barrel,double sizeOfCap)
{
this->m_concentration = (barrel.m_concentration + this->m_size*this->m_concentration)/(this->m_size+sizeOfCap);
this->m_size = this->m_size + sizeOfCap;
barrel.m_size = barrel.m_size - sizeOfCap;
}
Код:
Bochka spirt(20.0,96.0);
Bochka water(20.0,0.0);
int step = 0;
while(spirt.GetСoncentration() > 50)
{
step++;
spirt.Pereliv(water,1.0);
water.Pereliv(spirt,1.0);
}
printf("\n\nNumber of steps: %d \n", step);
Bochka water(20.0,0.0);
int step = 0;
while(spirt.GetСoncentration() > 50)
{
step++;
spirt.Pereliv(water,1.0);
water.Pereliv(spirt,1.0);
}
printf("\n\nNumber of steps: %d \n", step);