Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
GoldC
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 5
#1

Задачка "Выбор подходяшего бака" кто знает? - C++

13.02.2012, 14:03. Просмотров 529. Ответов 9
Метки нет (Все метки)

Есть два бака, размер определяется высотой и диаметром, нужно выбрать наиболее подходящий бак для указного объема жидкости. Объем бака Pi RxRxH, Pi=3.14159 R - Радиус, H - Высота, юзер вводит высоту бака и их деаметры, а так же объем жидкости в литрах.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2012, 14:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задачка "Выбор подходяшего бака" кто знает? (C++):

Что такое "bool " и #include <algorithm>? Кто знает , как они работают ? - C++
Вот код: #include &quot;stdafx.h&quot; #include &lt;algorithm&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; bool...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Кто нибудь делал прогу "Эмулятор клавиш с промежутком времени между "нажатиями""? - C++
Пара людей заинтересована в таком приложении только с условием: программа должна работать всегда т.е. откыл она записала карту нажатия...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Структура: Вывести тех студентов, кто сдал оба экзамена либо на "4" либо на "5" - C++
Условие задачи: Дана ведомость студентов: Фамилия студента, оценка_1, оценка_2. Вывести тех студентов, кто сдал оба экзамена либо на...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
-=ЮрА=-
Заблокирован
Автор FAQ
13.02.2012, 15:06 #2
GoldC, всё просто подходит бак у которого объём недолива меньше + в него помещается вся вода. К примеру V1(2) объёмы баков - Vx объём воды, понятное дело что если Vx больше V1 или V2 то нужно выбирать тот бак для которого Vx < Vбака. А если Vx < V1 и Vx < V2 то нужно выбирать бак у которого как говорил выше недолив dV1 = V1 - Vx, dV2 = V2 - Vx меньше. Т.е. сравнить dV1 и dV2 - ИМХО задача для 2-го класса школы...
GoldC
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 5
13.02.2012, 15:19  [ТС] #3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
GoldC, всё просто подходит бак у которого объём недолива меньше + в него помещается вся вода. К примеру V1(2) объёмы баков - Vx объём воды, понятное дело что если Vx больше V1 или V2 то нужно выбирать тот бак для которого Vx < Vбака. А если Vx < V1 и Vx < V2 то нужно выбирать бак у которого как говорил выше недолив dV1 = V1 - Vx, dV2 = V2 - Vx меньше. Т.е. сравнить dV1 и dV2 - ИМХО задача для 2-го класса школы...
Интересует решение данной задачи на С++
я тут вот нацарапал но не знаю правильно или нет... точней с проверкой какая лучше чего то печально(
Код
#include <iostream>
using namespace std;
int main()
{
	double a,b,l,diametr,BbIcoTa,diametr2,BbIcoTa2;
	cout<<"BBedite litry\n";
	cin>>l;
	cout<<"BBedite \n";
	cout<<"1 bochka\n"<<"diametr= ";
	cin>>diametr;
	cout<<"BbIcoTa= ";
	cin>>BbIcoTa;
	cout<<'\n'<<"2 bochka\n";
	cout<<"diametr2 ";
	cin>>diametr2;
	cout<<"BbIcoTa2 ";
	cin>>BbIcoTa2;
	a=3.141559*diametr*diametr*BbIcoTa/4;
	b=3.141559*diametr2*diametr2*BbIcoTa2/4;
	
	if (a==b && a>=l)
	{
		cout<<"IIEPBA9I u BTOPA9I";
	}
	else
	{
	if (a>b && a>=l)
	{
		if (b<a && b>=l)
		{cout<<BTOPA9I;}
		else
		{cout<<IIEPBA9I;}
	}
	else
	{
		if (b>=l)
		{
			if (a<b && a>=l)
			{
				cout<<"IIEPBA9I\n";
			}
			else
			{
			cout<<"BTOPA9I\n";
			
			}
		}
	}
	}
	cout<<" V1= "<<b;	
	cout<<"  V2= "<<a;
	cout<<"  Litry= "<<l;
	return 0;
-=ЮрА=-
Заблокирован
Автор FAQ
13.02.2012, 15:23 #4
Вот и весь код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <cmath>
using namespace std;
 
double calcV(double pi, double H, double D)
{
    return pi*(D*D/4)*H;
}
 
int main()
{
    double H, D1, D2, V1, V2, Vx;
    double pi = 2*asin(1.0);
    while(true)
    {
        cout<<"Enter H : ";cin>>H;
        cout<<"Enter D1: ";cin>>D1;
        cout<<"Enter D2: ";cin>>D2;
        cout<<"Enter Vx: ";cin>>Vx;
        Vx = Vx/1000;//Перевдим в м3
        V1 = calcV(pi,D1,H);
        V2 = calcV(pi,D2,H);
        if(Vx < V1 && Vx < V2)
            cout<<"Choose : "<<(D1 < D2 ? "first" : "second")<<" tank\n";
        else
        if(V2 < Vx && Vx < V1)
            cout<<"Choose first tank\n";
        else
        if(V1 < Vx && Vx < V2)
            cout<<"Choose second tank\n";
        else
            cout<<"Both tanks a less than Vx\n";
    }
    return 0;
}
Миниатюры
Задачка "Выбор подходяшего бака" кто знает?  
-=ЮрА=-
Заблокирован
Автор FAQ
13.02.2012, 15:26 #5
PS:Пока цеплял миниатюру код почему то прыгал, сейчас всё ок!
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
13.02.2012, 15:28 #6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
GoldC, всё просто подходит бак у которого объём недолива меньше + в него помещается вся вода. К примеру V1(2) объёмы баков - Vx объём воды, понятное дело что если Vx больше V1 или V2 то нужно выбирать тот бак для которого Vx < Vбака. А если Vx < V1 и Vx < V2 то нужно выбирать бак у которого как говорил выше недолив dV1 = V1 - Vx, dV2 = V2 - Vx меньше. Т.е. сравнить dV1 и dV2 - ИМХО задача для 2-го класса школы...
А при чём здесь недолив? Может надо минимизировать больший габарит, чтоб лучше проходил где нибудь? Или площадь поверхности, чтоб был дешевле (меньше металла уйдёт на изготовление)?
-=ЮрА=-
Заблокирован
Автор FAQ
13.02.2012, 15:30 #7
GoldC, почему сразу не сказали что у баков разная высота?
Цитата Сообщение от GoldC Посмотреть сообщение
BbIcoTa,diametr2,BbIcoTa2;
, тогда преобразуйте мой код вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
    double H1, H2, D1, D2, V1, V2, Vx;
    double pi = 2*asin(1.0);
    while(true)
    {
        cout<<"Enter H1: ";cin>>H1;
        cout<<"Enter D1: ";cin>>D1;
        cout<<"Enter H2: ";cin>>H2;
        cout<<"Enter D2: ";cin>>D2;
        cout<<"Enter Vx: ";cin>>Vx;
        Vx = Vx/1000;//Ïåðåâäèì Гў Г¬3
        V1 = calcV(pi,D1,H1);
        V2 = calcV(pi,D2,H2);
        if(Vx < V1 && Vx < V2)
- дальше всё без изменений
GoldC
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 5
13.02.2012, 15:30  [ТС] #8
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
PS:Пока цеплял миниатюру код почему то прыгал, сейчас всё ок!
cout<<"Enter H : ";cin>>H;
cout<<"Enter D1: ";cin>>D1;
cout<<"Enter D2: ";cin>>D2;
cout<<"Enter Vx: ";cin>>Vx;
немного не понял... тут ты вводишь диаметр на 2бочки... а высоту только на одну и сколько литров?
-=ЮрА=-
Заблокирован
Автор FAQ
13.02.2012, 15:33 #9

Не по теме:

Цитата Сообщение от taras atavin Посмотреть сообщение
А при чём здесь недолив? Может надо минимизировать больший габарит, чтоб лучше проходил где нибудь? Или площадь поверхности, чтоб был дешевле (меньше металла уйдёт на изготовление)?
- потому что так требует задание, ИМХО ты его не до конца понял...



Добавлено через 2 минуты
Цитата Сообщение от GoldC Посмотреть сообщение
cout<<"Enter H : ";cin>>H;
cout<<"Enter D1: ";cin>>D1;
cout<<"Enter D2: ";cin>>D2;
cout<<"Enter Vx: ";cin>>Vx;
немного не понял... тут ты вводишь диаметр на 2бочки... а высоту только на одну и сколько литров?
- да уже поправил постом выше, задание надо корректней ставвить, у тебя можно было понять что высота одинакова а диаметры разные

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
int main()
{
* * * * double H1, H2, D1, D2, V1, V2, Vx;
* * * * double pi = 2*asin(1.0);
* * * * while(true)
* * * * {
* * * * * * * * cout<<"Enter H1: ";cin>>H1;
* * * * * * * * cout<<"Enter D1: ";cin>>D1;
* * * * * * * * cout<<"Enter H2: ";cin>>H2;
* * * * * * * * cout<<"Enter D2: ";cin>>D2;
* * * * * * * * cout<<"Enter Vx: ";cin>>Vx;
* * * * * * * * Vx = Vx/1000;//Перевдим в м3
* * * * * * * * V1 = calcV(pi,D1,H1);
* * * * * * * * V2 = calcV(pi,D2,H2);
* * * * * * * * if(Vx < V1 && Vx < V2)
- замени в моём коде соотв строки и считай с разными высотами баков
GoldC
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 5
13.02.2012, 15:42  [ТС] #10
Вообще в итоге вот готовая софтинка)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <cmath>
using namespace std;
 
double calcV(double pi, double H, double D)
{
        return pi*(D*D/4)*H;
}
 
int main()
{
        double H1, H2, D1, D2, V1, V2, Vx;
        double pi = 2*asin(1.0);
        while(true)
        {
                cout<<"Enter H1: ";cin>>H1;
                cout<<"Enter D1: ";cin>>D1;
                cout<<"Enter H2: ";cin>>H2;
                cout<<"Enter D2: ";cin>>D2;
                cout<<"Enter Vx: ";cin>>Vx;
                Vx = Vx/1000;//Перевдим в м3
                V1 = calcV(pi,D1,H1);
                V2 = calcV(pi,D2,H2);
                if(Vx < V1 && Vx < V2)
                        cout<<"Choose : "<<(D1 < D2 ? "first" : "second")<<" tank\n";
                else
                if(V2 < Vx && Vx < V1)
                        cout<<"Choose first tank\n";
                else
                if(V1 < Vx && Vx < V2)
                        cout<<"Choose second tank\n";
                else
                        cout<<"Both tanks a less than Vx\n";
        }
        return 0;
}
Спасибо тебе за помощь!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2012, 15:42
Привет! Вот еще темы с ответами:

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

Создать иерархию классов "Фирма", "Бухгалтер", "Сотрудник", "Зарплата" - C++
Само по себе понятие &quot;зарплата&quot; не особенно конкретное: оно включает и почасовую, и ставочную зарплату, и комиссионные, и процент с продаж....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.02.2012, 15:42
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru