2014-11-07 3 views
-4

Я работаю над программой ниже, и я хочу, чтобы программа выполняла то же самое, но не с одной функцией main(), а вместо одной функции main() PLUS одна пользовательская функция, называемая computeConeVolume, которая содержит расчет. Другими словами, я хочу удалить вычисление одной строки и заменить ее вызовом функции, а затем написать и добавить функцию ниже основного с помощью вычисления, окружить любой другой синтаксис, который мне нужно заполнить.Программа вычисления объема конуса

Функция должна содержать локальные переменные, а константа объявлена ​​и должна иметь расчет, она может не делать ничего другого, например ввода или вывода. Должна быть способна объявлять «глобальные» переменные где угодно, но нет переменных выше или за пределами main(), и функция разрешена. Следует использовать функцию возврата значения, потому что ее немного проще понять, но вы можете использовать функцию void. Нужно иметь прототип функции в верхней части кода, затем главную, а затем вашу функцию.

Нужна помощь с этим, поскольку я новичок в C++ и пытаюсь учиться.

//Cone Volume Calculator Program 

#include <iostream> 
using namespace std; 

int main() 
{ 
    //Declare variables and constants 
    double coneRadius = 0.0; 
    double coneHeight = 0.0; 
    const double PI = 3.1415; 
    double coneVolume = 0.0; 

    //Prompt the user for inputs 
    cout << "Enter the radius of the cone: "; 
    cin >> coneRadius; 
    cout << "Enter the height of the cone: "; 
    cin >> coneHeight; 

    //Do the calculation 
    coneVolume = 0.3333 * PI * coneRadius * coneRadius * coneHeight; 

    //Display the result 
    cout << "The volume of your cone is: " << coneVolume << endl; 

    system("pause"); 
    return 0; 
} //end of main 
+3

У вас есть точные требования к функции, так что вы должны быть в состоянии сделать первую попытку и показать нам здесь, чтобы улучшить. Если вы не знаете, с чего начать, вы можете искать обучающие программы в Интернете. –

ответ

-2

Как об этой программе

#include <cmath> 
#include <iostream> 
using namespace std; 
double coneVolume(double, double); 
int main() 
{ 
    //Declare variables and constants 
    double coneRadius = 0.0; 
    double coneHeight = 0.0; 

    //Prompt the user for inputs 
    cout << "Enter the radius of the cone: "; 
    cin >> coneRadius; 
    cout << "Enter the height of the cone: "; 
    cin >> coneHeight; 

    //Do the calculation 

    //Display the result 
    cout << "The volume of your cone is: " << coneVolume(coneRadius, coneHeight) << endl; 

    system("pause"); 
    return 0; 
} //end of main 

double coneVolume(double coneRadius, double coneHeight) 
{ 
    double PI = acos(-1.0); 
    double volume = coneRadius * coneRadius * coneHeight * PI/3.0; 
    return volume; 
} 

Пожалуйста, обратите внимание, что я добавил библиотеку CMATH для того, чтобы использовать функцию ACos.

double PI = acos(-1.0); 

Я прочитал этот трюк в куске кода, который когда-то использовал тригонометрия с использованием C++. Я не использовал никаких круглых скобок, когда я вычислил том, потому что оба * и/находятся в том же порядке приоритета и оцениваются слева направо. Я разделил на 3.0, потому что я использую парные. Для прототипа функции, которая находится прямо над главной функцией

double coneVolume(double, double); 

Я просто написал тип аргументов функции, как только тип аргументов функции, необходимые для propotypes.

+3

Этот ответ был бы полезен, если бы вы могли объяснить оригинальные проблемы и объяснить, почему вы сделали это так, как вы это сделали. Никто ничего не узнает, когда вы делаете для них свою работу. –

+0

['M_PI'] (http://stackoverflow.com/questions/1727881/how-to-use-the-pi-constant-in-c) –

1

Я пытаюсь переработать некоторые ответы Amadeus и использовать некоторые из вашего кода.

Прежде всего, вы должны определить функцию, с которой вы хотите рассчитать объем конуса. Что-то вроде

double coneVolume(double, double); 

Обратите внимание, что всегда оставите основную функцию в конце вашего документа .c.

Вам также потребуется декларация вашей функции. Здесь вы фактически записываете, что делает функция.

double coneVolume(double coneRadius = 0.0, double coneHeight = 0.0) { 
    double coneVolume = coneVolume = 0.3333 * PI * coneRadius * coneRadius * coneHeight; 
    return coneVolume; 
} 

Установка значения в голове метод просто вещь для значений по умолчанию, это на самом деле не нужен здесь, чтобы показать вам.

Куда поехать const double PI = 3.1415;? Где-то выше ваших функций, то это видно повсюду в вашем документе. Вы также можете подумать об использовании math.h, включив его, затем вы можете использовать M_PI, что примерно то же, что и ваша константа PI.(Точнее, это определение, которое заменяет любое время, когда вы пишете M_PI по фактическому значению Pi)

Если вы действительно хотите, чтобы функция просто вычислялась без ввода (почему бы вам это ни хотелось), вы можете просто определить их локально, как и в вашем основном.

Примечание: Глобальная область всегда не входит в основной метод.

Если больше вопросов, спросить :)

+0

Расширение: может быть легко сделано return (математическая операция с использованием 2 vars) внутри вашего метода coneVolume() вместо фактического объявления и возврата. Все предпочтения. – user2277872

+0

Конечно, это так. Я ссылаюсь на его задачу: «Функция должна содержать локальные переменные [...] Следует использовать функцию возврата значения, потому что ее немного проще понять, но вы можете использовать функцию void». – Cadoiz

+0

А, я вижу. Отличный ответ, просто расширяя его, чтобы обеспечить ясность. – user2277872

Смежные вопросы