• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Помогите найти ошибку /ms Visual C++

  • Автор темы effreet
  • Дата начала
E

effreet

Помогите пожалуста найти ошибку. Программа у меня запускается, но считает не правильно. Заранее спасибо!
Задание:
Написать на языке СИ++ программу, вычисляющую функцию, представленную в виде ряда с заданной точностью e=0,001.
__________.png


Мой код:
C++:
#include "iostream.h"
#include "math.h"
#include "conio.h"

float exponentation (float base,float exponent){ // функция возведения в степень
float a=base; // объявляем переменные
float x=1;
if(exponent==0) // проверка степени на 0
{
base=1;
goto end;
}
for (x; x<exponent; x++)
{
base=base*a;
}
end:
return (base); // функция возвращает значение
}

int main(){
int maxiter=600; // максимальное кол-во итераций
int n=0;
float x, accuracy, numerator, denominator, prov, lnx; // объявляем переменные
bool done=true; // переменная типа bool, задаем ей значение true
begin: // метка
cout <<"please, enter -1<=x<1"<< endl; // запрос на ввод икса
cin>>x; // вводим аргумент
if(fabs (x)>-1,(x)>=1) // проверка что Х>-1 и X>=1
{
cout <<"wrong x value"<< endl; // сообщение об ошибке
goto begin;
}
cout <<"enter accuracy"<< endl; 
cin>>accuracy; // вводим точность
lnx=0; // обнуляем переменную
prov=1; 
for(n; fabs(prov)>accuracy; n++)
{
numerator = exponentation (x, n); // считаем числитель, вызывая функцию степень 
denominator = n; // знаменатель 
prov=numerator/denominator; // член ряда
lnx+=-1*(numerator/denominator); // сумма
if (n > maxiter) // проверка на кол-во итераций
{
cout<<"Divergence"<< endl; // сообщение о том, что ряд расходится
done=false; // присвоение переменной значение false
break; // прерывание цикла и переход к следующему оператору
}
}
if(done)
{
cout <<" the natural logarithm of " << x << " = " << lnx << endl; // результат, высчитанный программой
cout <<" using built-in function " << x << " = " << log(1-x) << endl; // результат, полученный с использованием встроенной функции
cout <<" used " << n << " iterations " << endl; // кол-во использованных итераций
}
getch (); // ожидание ввода
return 0;
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!