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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2012, 19:41   #1
maks12
Новичок
Джуниор
 
Регистрация: 08.05.2012
Сообщений: 3
По умолчанию Передача функции в качестве аргумента

Подскажите как решить проблему.
Вот программа
Код:
#include <iostream>
#include <iomanip>
#include <conio.h>  
#include <stdlib.h>
#include <math.h>
using namespace std;
 void rashet( double, double,double,double,double);
 double pryam(double,double,double);//объявление функции pryam
int main()
{
 setlocale(LC_ALL,"rus_rus.1251");// подключение русского языка
 double a,b,h,It;
 cout<<setprecision(15)//устанавливает максимальное количество цифр в дробной части для вещественных чисел
 <<setiosflags(ios::fixed);//устанавливает нормальный неэкспоненциальный вид
 cout<<"Введите нижнюю границу интегрирования ";
 cin>>a;
 cout<<"Введите верхнюю границу интегрирования ";
 cin>>b;
 cout<<"Введите шаг интегрирования ";
 cin>>h;
 It=(4*b+3)/(2*pow(1+b,2))+log(1+b)-(4*a+3)/(2*pow(1+a,2))-log(1+a); //точное значение интеграла
 rashet(a,b,h,It,pryam);
 return 0;
}
void rashet(double a, double b, double h,double It,double(*f)(double,double,double))
{
	double c;
	c = f(a,b,h);
	cout<<c<<endl;
	cout<<It<<endl;
	cout<<abs(c-It);
	}
//********************************************************************
//Определение функции,которая вычисляет приближенное значение
//интеграла на основе квадратурной формулы прямоугольников

double pryam(double a,double b,double h)//зоголовок функции
{
 double x,Ipr=0;
 double n;
 n=(b-a)/h;
 for(int i=0;i<=n-1;i++)
  { 
    x=a+h/2+i*h;
    Ipr=Ipr+h*pow(x,2)/pow(1+x,3);//приближённое значение интеграла
  }
 cout<<endl<<"Вычисление интеграла на основе квадратурной формулы прямоугольников"<<endl
  <<"Приближённое значение интеграла "<<Ipr<<endl;
return Ipr;
}
Ошибка error C2664: rashet: невозможно преобразовать параметр 5 из 'double (__cdecl *)(double,double,double)' в 'double'

Последний раз редактировалось ACE Valery; 08.05.2012 в 20:36.
maks12 вне форума Ответить с цитированием
Старый 08.05.2012, 21:28   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,758
По умолчанию

Код:
 void rashet( double, double,double,double,double);
Код:
void rashet(double a, double b, double h,double It,double(*f)(double,double,double))
Вы видете разницу?..
p51x вне форума Ответить с цитированием
Старый 08.05.2012, 21:40   #3
maks12
Новичок
Джуниор
 
Регистрация: 08.05.2012
Сообщений: 3
По умолчанию

Ну это же дабл для встроенной фукции. Для f
А для ее входные параметры разве нужно как-то объявлять ??
maks12 вне форума Ответить с цитированием
Старый 09.05.2012, 01:31   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,758
По умолчанию

Еще раз - смотрим внимательно на последний параметр - в одном случае дабл, во втором указатель. Вы считаете это одно и то же?
p51x вне форума Ответить с цитированием
Старый 09.05.2012, 23:43   #5
maks12
Новичок
Джуниор
 
Регистрация: 08.05.2012
Сообщений: 3
По умолчанию

Хорошо, а как мне устранить этот недочет ??
maks12 вне форума Ответить с цитированием
Старый 10.05.2012, 08:13   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,758
По умолчанию

Вы прикидываетесь или действительно студни отупели настолько? Если в описании и реализации заголовок функции отличается, то как исправить? Сделать, чтоб было одинаково.
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в Си использовать двумерный массив в качестве аргумента функции? Hornet_nsk Помощь студентам 7 05.02.2012 09:46
Имя функции в качестве аргумента Artem_Kokos Помощь студентам 1 25.04.2011 00:20
Как массив передать в качестве аргумента функции Mixim C# (си шарп) 7 10.03.2011 09:53
Передача object в качестве аргумента moknomo Microsoft Office Excel 3 14.12.2010 09:35
можно ли в качестве аргумента функции использовать имя текстового файла Arassir Общие вопросы Delphi 2 31.05.2010 23:12