Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2009, 15:40   #1
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию Не компилится проект на студии 2005

Здравсвуйте программисты! Подскажите пожалуйста, почему не компилится проект на писанный на студии 2005. Вот исходник программы:

Код:
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
const double epsilon = 1e-3;
double f1(double x);
double f2(double x);
void Kasateln(double (*f) (double), double start, double end);

//---------------------------------------------
int main()
{
cout<<"   --------Metod Kasatelnyix---------"<<endl<<endl;
Kasateln(&f1,0,2);
Kasateln(&f2,0.001,8);
system("pause");
}
double f1(double x )
{
    return 9.25*pow(x,4)-3*x*x+6.25*x;
}
double f2(double x)
{
return 2*x-log10(x)-7;
}

//для метода касательных нужна производная функции df(x) 
void Kasateln(double (*f) (double),double (*df) (double), double start, double end )
{
double x,xn=start;
do{
        x=xn;
        xn=x-f(x)/df(x);
        }
while(fabs(xn-x)>2*epsilon);
cout << x << endl;;
}

Последний раз редактировалось Sazary; 12.06.2009 в 15:44.
prikolist вне форума Ответить с цитированием
Старый 12.06.2009, 15:47   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Прототип функции отличается от описания.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 12.06.2009, 15:54   #3
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Сделал так, но выдаёт ошибку снова, не могу понять в чём проблемма.

Код:
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
const double epsilon = 1e-3;
double f1(double x);
double f2(double x);
void Kasateln(double (*f) (double),double (*df) (double), double start, double end )

//---------------------------------------------
int main()
{
cout<<"   --------Metod Kasatelnyix---------"<<endl<<endl;
Kasateln(&f1,0,2);
Kasateln(&f2,0.001,8);
system("pause");
}
double f1(double x )
{
    return 9.25*pow(x,4)-3*x*x+6.25*x;
}
double f2(double x)
{
return 2*x-log10(x)-7;
}

void Kasateln(double (*f) (double),double (*df) (double), double start, double end )//для метода касательных нужна производная функции df(x) 
{
double x,xn=start;
do{
        x=xn;
        xn=x-f(x)/df(x);
        }
while(fabs(xn-x)>2*epsilon);
cout << x << endl;;
}
prikolist вне форума Ответить с цитированием
Старый 12.06.2009, 15:56   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Во-первых, после прототипа нет точки с запятой.
Во-вторых, прототип-то вы поменяли, а вызывается функция с тремя аргументами.
Код:
Kasateln(&f1,0,2);
Kasateln(&f2,0.001,8);
Я вижу, сообщения компилятора вы не читаете. А зря.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 12.06.2009, 15:57   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

1. Что компилятор пишет?
2.
Код:
Kasateln(&f1,0,2);
Kasateln(&f2,0.001,8);
У Вас функция принимает 4 параметра, а Вы передаёте 3. Кто будет указатель на функцию нахождения производной передавать?
pu4koff вне форума Ответить с цитированием
Старый 12.06.2009, 16:03   #6
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Точку с запятой поставил, получается что в этом месте кода,тоесть:
Код:
Kasateln(&f1,0,2);
Kasateln(&f2,0.001,8);
Нужно по 4 аргумента в методе Kasateln, при вызове, но какой же 4-ый ставить?
prikolist вне форума Ответить с цитированием
Старый 12.06.2009, 16:14   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

У вас в комменте даже написано:
Код:
//для метода касательных нужна производная функции df(x)
Вот и объявите эту функцию для производной. И ссылку на нее посылайте вторым аргументом.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 12.06.2009, 16:22   #8
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Хорошо,я объявлю вот так:
Код:
double df(double x)
{

}
А что в теле функции писать?
prikolist вне форума Ответить с цитированием
Старый 12.06.2009, 16:24   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Функции у вас две, следовательно, и функций для производных должно быть две.
Цитата:
А что в теле функции писать?
Ну раз она зовется "производной", то логично будет найти производную функции и записать это в тело.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 12.06.2009, 16:32   #10
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Извините, но как примерно найти производную функции, что под этим словом подразумевается. Просто не могу представить как это сделать. Что в 2ух функциях должно быть у меня описано? Прошу прощения если не коректно выразился.
prikolist вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не компилится исходник решения СЛАУ м.прост.итераций.тупит mem.h. Who is nber 1? avi2109 Общие вопросы C/C++ 7 08.11.2008 16:14
Не компилится данный исходник. В чём проблемма? AngelOfDeath Общие вопросы C/C++ 4 16.10.2008 00:34