C - явный интеграл в качестве параметра - PullRequest
1 голос
/ 03 марта 2011

Я рассчитываю аппроксимацию числа Пи, я установил его на 3,14596, но я попытался установить интеграл для подсчета числа Пи в качестве параметра при запуске программы, и из этого не было получено никакого результата.Я попытался добавить при запуске программы 4/1+x*x (там должно быть в скобках около 1+x*x, но компилятор видит их как ошибку), и я получаю его из args[1] как 4, только когда я перевел char в int с itoa().Есть ли способ, как передать его в приложение для вычислений?Это строка в моей программе:

float sum, integral;
integral=4/(1+x*x);
sum=sum+integral;

И у меня есть цикл for.В этом случае это имеет большое значение, но как включить этот параметр? Я думал о какой-то конкретной замене символа (я бы заменил X на фактическое значение), но возможно ли это?

1 Ответ

1 голос
/ 03 марта 2011

Вы не можете передать формулу в качестве аргумента вашей программы.Ваш параметр arg[1] является строкой, когда вы вызываете atoi, вы делаете только преобразование чисел до первого числового символа монахиня, поэтому в вашем случае он преобразовал символ '4' вашей строки "4/1+x*x" и остановилсяпреобразование в '/'.

Если вы хотите использовать формулу, вы должны написать интерпретатор, который анализирует строку, строит дерево оценки и выполняет замену значений переменных.Что-то довольно сложное, вероятно, не несколько сотен строк кода.Вероятно, проще использовать формулу в исходном коде и соответствующим образом перекомпилировать программу.Если это невозможно, перейдите на интерпретируемый язык, такой как perl, python, javascript, который реализует функцию eval.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...