Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Здачка на классы Vc++

2.0K
25 мая 2006 года
BroKeR
163 / / 04.05.2006
Добрый вечер господа!У меня такая просьба,подскажите(или намекните)как решитьтакую задачу с испоьзованием классов,не могу понять как ее вообще решать!Зарание спасибо!
 
Код:
// Решите с помощью классов следующую задачу:
//даны две бочки известного объема. В одной бочке в начальный момент
//времени содержится спирт (96%), в другой – вода.
//Кружкой емкостью 1л переливаем итеративно содержимое из одной бочки
//в другую следующим способом: на каждой итерации
//зачерпнули из первой бочки -> вылили во вторую
//зачерпнули из второй бочки -> вылили в первую.
//Требуется определить номер итерации, на которой концентрация спирта в
//первой бочке станет меньше 50%.
9.4K
25 мая 2006 года
_nоrth_
99 / / 24.04.2006
N это объем бочки.
Код:
#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();
}
2.0K
25 мая 2006 года
BroKeR
163 / / 04.05.2006
Добрый вечер,рад видеть!А как все ж таки сделать ее с классами то?И что такое getch()-очень интересно.
9.4K
25 мая 2006 года
_nоrth_
99 / / 24.04.2006
Цитата:
Originally posted by BroKeR
Добрый вечер,рад видеть!А как все ж таки сделать ее с классами то?И что такое 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;
}
2.0K
25 мая 2006 года
BroKeR
163 / / 04.05.2006
Щас поковыряю,подумаю,напишу.Большое Спасибо!
91K
12 сентября 2013 года
KostaKosta
1 / / 12.09.2013
спс за алгоритм ))

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);

};
Bochka.cpp

 
Код:
# 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;
}
и вот для main, например

Код:
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);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог