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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
TaYloR
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 38
#1

Нахождение корня методом хорд - C++

11.10.2010, 14:50. Просмотров 1922. Ответов 4
Метки нет (Все метки)

Помогите дописать программу, Билдер в 5-ой строке выдаёт синтаксическую ошибку:
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
#include<iostream.h>
#include<conio.h>
#include<math.h>
int main(){
        double f(double x){
                return pow(x,3)+3*pow(x,2)-4*x-12;
        }
        double findRoot(a, b, eps)
        {
                while(fabs(b - a) > eps)
                        {
                        a = b - (b - a) * f(b)/(f(b) - f(a));
                        b = a - (a - b) * f(a)/(f(a) - f(b));
                        }
                return b;
        }
 
double a, b, eps;
cout<<"Vvedite a, b, eps: ";
cin<<a<<b<<eps;
cout<<"Koren' = "<<findRoot(a, b, eps);
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2010, 14:50     Нахождение корня методом хорд
Посмотрите здесь:

нахождение корня на интервале C++
C++ Отыскание корня уравнения f(x)=0 на интервале (A,B) с точностью Е (метод хорд)
Решить нелинейное уравнение методом хорд и методом простой итерации C++
Методом деления отрезка пополам и методом итераций найти прибли-женное значение корня уравнения C++
C++ Нахождение корня методом деления отрезка пополам
C++ Нахождение корня уравнения методом деления отрезка пополам
C++ Нахождение корня нелинейного уравнения методом итерации
Найти корень уравнения методом хорд и методом касательных C++
Нахождение квадратного корня C++
C++ Нахождение корня целого числа методом Ньютона
Решить уравнение по заданной формуле методом хорд и модифицированным методом Ньютона C++
Нахождение корня уравнения методом деления отрезка пополам C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
11.10.2010, 15:12     Нахождение корня методом хорд #2
Нельзя оглашать/определять локальные ф-ции, т.е. ф-ции, оглашённые в определении другой.
TaYloR
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 38
11.10.2010, 16:18  [ТС]     Нахождение корня методом хорд #3
То есть? можешь показать в коде ошибку, функция double f(double x) ведь не оглашается в findRoot
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
11.10.2010, 16:51     Нахождение корня методом хорд #4
Зделай функции глбальными,тоесть создай их вне главной функции main,так же параметры функции findRoot должны иметь тип.
Как то так:
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
#include<iostream.h>
#include<conio.h>
#include<math.h>
using namespace std;
double f(double x)
{
    return pow(x,3)+3*pow(x,2)-4*x-12;
}
double findRoot(double a, double b, double eps)
{
     while(fabs(b - a) > eps)
     {
         a = b - (b - a) * f(b)/(f(b) - f(a));
         b = a - (a - b) * f(a)/(f(a) - f(b));
     }
     return b;
}
int main()
{
double a, b, eps;
cout<<"Vvedite a, b, eps: ";
cin>>a>>b>>eps;
cout<<"Koren' = "<<findRoot(a, b, eps);
getch();
return 0;
}
TaYloR
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 38
11.10.2010, 17:30  [ТС]     Нахождение корня методом хорд #5
Спасибо. А можешь посмотреть, почему на отрезке [-4.3, -2.4] прога выдаёт ответ -2 вместо -3? на остальных промежутках работает
Yandex
Объявления
11.10.2010, 17:30     Нахождение корня методом хорд
Ответ Создать тему
Опции темы

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