All pastes #180278 Raw Edit

Roofus code

public text v1 · immutable
#180278 ·published 2006-09-22 23:52 UTC
rendered paste body
//@cadyp@6@

// 
// The program will find the optimal radius that minimizes cost for a particular volume.
// The program will ask for user to input a minimum and maximum tank volume and the increment.
// Results will be displayed in form of a table.
//

#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;

const double PI = 3.14159265358979323846;
double totalvolume (double volume); // prototype

class Constants {
public:
	double cost_cyl;
	double cost_cone;
};

int	main()
{
	cout << "Enter the minimum tank volume (integer, cubic meters)   >>> ";
	double minvol;
	cin >> minvol;
	cout << "Enter the maximum tank volume (integer, cubic meters)   >>> ";
	double maxvol;
	cin >> maxvol;
	cout << "Enter the tank volume increment (integer, cubic meters) >>> ";
	double increment;
	cin >> increment;
	double volume = 0.0;
	double finalvolume = 0.0;
	double new_volume = 0.0;
	double radius = 0.0;
	double cost = 3000000.0;
	cout << "" << endl;
	cout << "  Tank Volume (m^3)   Tank radius (m)   Minimum Cost ($) " << endl;
	cout << "---------------------------------------------------------" << endl;
	for (volume = minvol;
		volume <= maxvol; volume = volume + increment)
	{
	for (radius = 1.0;
		radius <= 7.0; radius = radius + 0.1)
	{
	}
	}
	{ 
		finalvolume = volume;
		new_volume = volume;
	double rndcost = ((int)(cost*0.001+0.5))*1000.0;
	cout << " " << finalvolume << "  " << new_radius << "  " << rndcost << endl;
	return 0;
}




//
// Calculate and displays the optimal radius where the cost is minimized;
// and that displays the cost at this radius.
//

double totalvolume (double volume)
{
	Constants tank;		//input - tank constants
	double cone_cost;	//input - cost of the cone portion of the tank
	double cyl_cost;	//input - cost of the cylinder portion of the tank

	// Get data on the tank
	tank.cost_cyl = 300;
	tank.cost_cone = 400;
	cout << "Enter the tank volume (cubic meters) >>> ";
	double volume;
	cin >> volume;
	double radius = 0.0;
	double new_radius = 0.0;
	double cost = 3000000.0;
		for (radius = 1.0;
		radius <= 7.0; radius = radius + 0.1)
	{
	// Calculate the cost of the tank and height of cylinder and cone
	double height_cyl = (volume - (PI*radius*radius*radius) / 3.0) / (PI*radius*radius);
	double height_cone = radius;
	double SA_cone = PI * radius * sqrt(radius*radius + height_cone*height_cone);
	if (SA_cone > 100)
		cone_cost = SA_cone * tank.cost_cone - 0.2*tank.cost_cone*(SA_cone-100.0);
	else
		cone_cost = SA_cone * tank.cost_cone;
	double SA_cyl = PI*radius*radius + 2.0*PI*radius*height_cyl;
	if (SA_cyl > 200)
		cyl_cost = SA_cyl*tank.cost_cyl - 0.1*tank.cost_cyl*(SA_cyl-200.0);
	else
		cyl_cost = SA_cyl*tank.cost_cyl;
	double total_cost = cyl_cost + cone_cost;
	if (total_cost < cost) 
	{
		cost = total_cost;
		new_radius = radius;
	}
	return ans;
	}

Output code



double rndcost = ((int)(cost*0.001+0.5))*1000.0;
cout << "" << finalvolume << "" << new_radius << "" << rndcost << endl;