Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
#1

Написать программу для вычисления числа с заданной точностью. - C++

14.03.2014, 11:39. Просмотров 1270. Ответов 22
Метки нет (Все метки)

Нужно написать программу для вычисления числа http://www.cyberforum.ru/cgi-bin/latex.cgi?y=\sqrt[k]{x} с заданной точностью.
--------
За введенными x, k, http://www.cyberforum.ru/cgi-bin/latex.cgi?\varepsilon (точность вычислений) программа должна вернуть значение http://www.cyberforum.ru/cgi-bin/latex.cgi?y=\sqrt[k]{x} , где k, x http://www.cyberforum.ru/cgi-bin/latex.cgi?\in R.
------------
В программе использовать формулу:
http://www.cyberforum.ru/cgi-bin/latex.cgi?y=y(i)+1/k(x/({y(i)}^{k-1})-y(i))
Организовать цикл, в каком на каждом шаге вычислять:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\delta =1/k(x/({{y}_{i}}^{k-1})-{y}_{i})
тогда http://www.cyberforum.ru/cgi-bin/latex.cgi?{y}_{i+1}={y}_{i}+\delta. Условие выхода из цикла:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\left|\delta  \right|<\varepsilon , где http://www.cyberforum.ru/cgi-bin/latex.cgi?\varepsilon наперед заданна точность вычислений.
Начальные присвоения:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\delta = 1, y=1.
Для вычисления степеня http://www.cyberforum.ru/cgi-bin/latex.cgi?{{y}_{i}}^{k-1} использовать оператор цикла.
При написании программы стоит просчитать все возможные случаи некорректного ввода данных.
Сделать проверку верности ввода числа x в зависимости от введенного значения k.
П.С. Помогите хотя бы с основным кодом.

Добавлено через 1 час 57 минут
АП ей ей

Добавлено через 13 часов 20 минут
((((((((((((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2014, 11:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу для вычисления числа с заданной точностью. (C++):

Написать программу для вычисления факториала числа с заданной точностью - C++
Написать программу для вычисления факториала числа: n!=1*2*3*.....n. Использовать специальный класс, полем которого является число n, а...

Написать программу для вычисления косинуса с заданной точностью - C++

Написать программу для вычисления ряда с заданной точностью e (e>0) - C++
Здравствуйте! Помогите написать программу для вычисления ряда с заданной точностью e (e&gt;0).

Написать программу для вычисления ряда с заданной точностью e (e>0) - C++
Здравствуйте! Помогите написать программу для вычисления ряда с заданной точностью e (e&gt;0).

Написать программу для вычисления ряда с заданной точностью - C++
Нужно написать программу для вычисления ряда с заданной точностью eps. У самого беда с этими рядами. Люди добрые помогите, завтра мне...

Написать программу и рекурсивную функцию для вычисления значения суммы бесконечного ряда с заданной точностью - C++
Написать программу и рекурсивную функцию для вычисления значения суммы бесконечного ряда с заданной точностью. на печать вывести значение...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
14.03.2014, 12:22 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
int main(int argc, char* argv[])
{
    double x = 0, y0 = 0, y1 = 0, eps = 0, sigma = 0;
    int k = 0;//целочисленное иначе теряется смысл вычисления Yi в степени k-1
    cin >> x >> k >> eps;
    if(x<0)
    {
        cout << "x is not valid"<<endl;
        system("pause");
        return 0;
    }
    else if(x == 0 && k < 0)
    {
        cout << "x and k are not valid"<<endl;
        system("pause");
        return 0;
    }
    y0 = 1;
    sigma = 1;
    double yk = 0;
    while(fabs(sigma) >= eps)
    {
        yk = y0;
        for(int i = 2; i <= k-1; i++)
        {
            yk*=yk;
        }
        sigma = 1./k*(x/yk - y0);
        y1 = y0 + sigma;
        y0 = y1;
    }
    cout << "y = " << y1 << endl;
    system("pause");
 
    return 0;
}
Добавлено через 16 минут
упс подправил косяки, вот рабочий код, проверил с калькулятором
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
int main(int argc, char* argv[])
{
    double x = 0, y0 = 0, y1 = 0, eps = 0, sigma = 0;
    int k = 0;//целочисленное иначе теряется смысл вычисления Yi в степени k-1
    cin >> x >> k >> eps;
    if(x<0)
    {
        cout << "x is not valid"<<endl;
        system("pause");
        return 0;
    }
    else if(x == 0 && k < 0)
    {
        cout << "x and k are not valid"<<endl;
        system("pause");
        return 0;
    }
    y0 = 1;
    sigma = 1;
    double yk = 0;
    while(fabs(sigma) >= eps)
    {
        yk = y0;
        for(int i = 2; i < k; i++)
        {
            yk*=y0;
        }
        sigma = 1./k*(x/yk - y0);
        y1 = y0 + sigma;
        y0 = y1;
    }
    cout << "y = " << y1 << endl;
    system("pause");
 
    return 0;
}
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
14.03.2014, 15:30  [ТС] #3
А что такое sigma?
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
14.03.2014, 15:32 #4
ну...буква такая греческая просто я ее так назвал, она есть в формуле

Добавлено через 20 секунд
правда там дельта.....да какя разница как называется переменная
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
15.03.2014, 15:29  [ТС] #5
Лан спс, позже проверю как работает)

Добавлено через 23 часа 36 минут
Как прописать кубический корень в С++?
zss
Модератор
Эксперт С++
6366 / 5930 / 1923
Регистрация: 18.12.2011
Сообщений: 15,239
Завершенные тесты: 1
15.03.2014, 15:32 #6
Цитата Сообщение от andreyananas Посмотреть сообщение
Как прописать кубический корень в С++?
C++
1
y=pow(x,1.0/3.0);
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
25.03.2014, 15:10  [ТС] #7
Цитата Сообщение от aLarman Посмотреть сообщение
fabs
что эта функция делает?
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
25.03.2014, 15:17 #8
Цитата Сообщение от andreyananas Посмотреть сообщение
эта функция делает?
возвращает абсолютное значение (модуль) для рациональных чисел
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
25.03.2014, 16:13  [ТС] #9
Цитата Сообщение от aLarman Посмотреть сообщение
y0 = 1;
* * sigma = 1;
* * double yk = 0;
почему yk объявляется аж тут? а не в самом начале7
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
25.03.2014, 16:31 #10
Цитата Сообщение от andreyananas Посмотреть сообщение
почему yk объявляется аж тут? а не в самом начале7
а разве это имеет значение? можете перенести в начало есть такое негласное правило, не объявлять пока не понадобится
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
25.03.2014, 17:20  [ТС] #11
Цитата Сообщение от aLarman Посмотреть сообщение
а разве это имеет значение? можете перенести в начало есть такое негласное правило, не объявлять пока не понадобится
Мне вот и было интересно, имеет или нет)
Вообще прога иногда виснет, не могу понять почему(
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
25.03.2014, 17:22 #12
я присылал 2 варианта, надеюсь Вы используете 2ой? с 1ым были проблемы зависания (там были некторые вещи не правильными)
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
25.03.2014, 17:30  [ТС] #13
Цитата Сообщение от aLarman Посмотреть сообщение
я присылал 2 варианта, надеюсь Вы используете 2ой? с 1ым были проблемы зависания (там были некторые вещи не правильными)
да, второй
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
01.04.2014, 14:15  [ТС] #14
Цитата Сообщение от aLarman Посмотреть сообщение
C++
1
2
3
4
5
yk = y0;
for(int i = 2; i < k; i++)
{
yk*=y0;
}
Вот как ты считаешь степень к-1 ?
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
01.04.2014, 14:24 #15
ну предположим, k = 3;
yk = x;
в цикле i = 2, меньше 3? да меньше идем дальше, yk = yk * x = x^2;
i++ теперь i = 3; меньше 3? нет вышли, получили степень k-1 = 2;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2014, 14:24
Привет! Вот еще темы с ответами:

Написать программу вычисления суммы ряда с заданной точностью через функции - C++
Помогите написать программу через функции Добавлено через 32 секунды С помощью функции посчитать с заданной точностью (параметр...

Определить количество членов ряда, необходимых для вычисления числа Пи с заданной точностью ε по формуле - C++
Помогите, пожалуйста, нужно определить количество членов ряда, необходимых для вычисления числа Пи с заданной точностью ε по...

Написать программу для вычисления энтропии по формуле Шеннона для заданной последовательности - C++
Очень нужна программа для Dev С ++ для вычисления энтропии по формуле Шеннона для последовательности от 1 до 256

Написать программу для вычисления значения функции, заданной графически, по введенному с клавиатуры аргументу - C++
Надо написать такую прогу на Dev-C++ (4.9.9.2). Насколько я понял мне нужно посмотреть на рисунок и разбить его на несколько уравнений...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.04.2014, 14:24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru