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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2013, 16:29   #1
Ters
Новичок
Джуниор
 
Регистрация: 04.06.2013
Сообщений: 2
Радость Задача на функции

Напишите функцию , которая получает в качестве аргумента указатель на функцию double (*f) (double x) и возвращает разницу между максимальным и минимальным значениями функции f на отрезке [a, b].
На учебе функции еще не изучали, пробую сам, как такую задачу можно реализовать?
Ters вне форума Ответить с цитированием
Старый 04.06.2013, 16:56   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
функцию , которая получает в качестве аргумента указатель на функцию double (*f) (double x)
Код:
double function(double a, double b, double (*f) (double)){
  //Тело функции
  //К примеру, выводим значение f(a):
  std::cout << f(a);
}

//Использование
//Функция double(double):
double square(double x){
  return x*x;
}

//...
//Вызов:
double difference = function(-5, 7, square);
Цитата:
возвращает разницу между максимальным и минимальным значениями функции f на отрезке [a, b]
Задача неразрешима.
На самом деле, поскольку представление вещественных чисел в памяти комьютера дискретно, то между a и b только конечное множество представимых значений, их можно перебрать. Но лично я затрудняюсь ниписать такой код.
Abstraction вне форума Ответить с цитированием
Старый 04.06.2013, 21:49   #3
Ters
Новичок
Джуниор
 
Регистрация: 04.06.2013
Сообщений: 2
По умолчанию

Спасибо, вроде понял.
Цитата:
Задача неразрешима.
а если попробовать так проверить элементы и найти макс и мин и посчитать разность?


Код:
double function(double a, double b, double (*f) (double)){
  int i;
  double r,max=*f,min=*f;
  for( i=a;i<b;i++)
		if(*(f+i)<min)
			min=*(f+i);
	for( i=a;i<b;i++)
		if(*(f+i)>max)
			max=*(f+i);
	r=max-min;
}
Ters вне форума Ответить с цитированием
Старый 04.06.2013, 22:43   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

a=0.236482, b=0.236794, максимум при x=0.2364976435, минимум при x=0.23666666.
Ищите, считайте.
Код:
max=*f,min=*f
Бессмыслено, компилятор должен забраковать. f - не массив, f - указатель на функцию, его вызывать надо. Скорее уж
Код:
max=f(a), min=f(a)
Только, как уже сказано, всё равно безнадёжно.
Abstraction вне форума Ответить с цитированием
Старый 05.06.2013, 07:43   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Задача неразрешима.
На самом деле, поскольку представление вещественных чисел в памяти комьютера дискретно, то между a и b только конечное множество представимых значений, их можно перебрать. Но лично я затрудняюсь ниписать такой код.
Скорее, вопрос в том, может ли входная функция быть любой или на нее допустимо наложить какие либо ограничения, например, дифференцируемость на отрезке.
s-andriano вне форума Ответить с цитированием
Старый 05.06.2013, 10:50   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Скорее, вопрос в том, может ли входная функция быть любой или на нее допустимо наложить какие либо ограничения, например, дифференцируемость на отрезке.
А толку? Положим, f дифференцируема. Положим, нам даже дана производная g. Всё равно максимум может быть необнаружим без исследования сколь угодно малого сегмента.
Abstraction вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача по ФУНКЦИИ Жанбота Visual C++ 0 30.05.2012 15:09
C++ задача на функции zaki Помощь студентам 3 06.06.2011 07:38
Задача С++ функции Guzal Помощь студентам 8 10.10.2010 18:30
Задача на C++ (Функции)!! Myau Thai Помощь студентам 2 25.05.2009 17:48