Перевод задания : найти x используя формулу, с точностью задаваемой пользователем, значение a , p ввести с клавиатуры.
Вот мой код на плюсах:
#include <iostream>
#include<math.h>
#include <vector>
int main() {
float precision = 0, a = 0, p = 0;
int counter = 0, n = 1;
std::vector<float> vec_x = {1, 1};
std::cout << "Enter a value of precision : " << std::endl;
std::cin >> precision;
std::cout << "Enter a value of a : " << std::endl;
std::cin >> a;
std::cout << "Enter a value of p : " << std::endl;
std::cin >> p;
for (counter; abs(vec_x[counter] - vec_x[n]) < precision; counter++)
{
vec_x.push_back(vec_x[n] / pow(p, 2) * (pow(p, 2) - 1) + 1 / 2 * (p + 1) * a / pow(vec_x[n], p) - (1 / 2) * (p + 1) * pow(vec_x[n], p) / p);
n++;
std::cout << vec_x[n] << std::endl;
}
return 0;
}
Как всё должно было работать: создаётся вектор x-ов, создаются переменные, в них записываем значения с клавиатуры, цикл проверяет условие: |x1 - x2| > precision, пока условие верно находит следующий x, выводит на экран, проверяет условие уже для нового x и так пока не выйдет с цикла. Но программа проходит один раз и после этого выходит. Отладчик показывает, что 0.888889 < 0.0001 при вводе данных: 0.0001 , 2 , 3. Помогите, пожалуйста, правильно написать условие цикла.
Вместо abs, нужно использовать fabs или std::abs, abs - только для целочисленных.
Условие в цикле — это условие продолжения, а не условие выхода. Поэтому нужно проверять, что разница больше необходимой точности: fabs(a-b)>precision
У вас какая-то проблема с формулой, мало того, что вы забыли большие скобки(которые квадратные), так и то, что я смог распарсить с этой картинки, не даёт корректного результата.
Воспользуюсь итерационным алгоритмом из Википедии
#include <iostream>
#include <cmath>
#include <tuple>
double solve(double a, double p, double precision) {
double prev, cur = 1;
do {
std::tie(prev, cur) = std::make_tuple(cur, ((p-1) * cur + a/std::pow(cur, p-1)) / p);
} while (std::abs(cur - prev) > precision);
return cur;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В Xcode при вводе русского символа в переменную типа char, если сразу же вывести эту самую переменную, выводит \320 или что-то похожее
У меня есть программа которая работает с файлами, все готово кроме интерфейса, я бы его спокойно могла бы доделать на C++, но сроки поджимаютМожно...
Дано натуральное число x и количество рядов равное 5 как вывести сумму ряда?
Начал изучения библиотеки clang для парсинга кодаМне необходимо найти все комментарии