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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2013, 20:15   #1
КРИЖ
Пользователь
 
Регистрация: 08.03.2011
Сообщений: 44
По умолчанию массив указателей на функции

есть две функции и мне стало интересно можно ли сделать вот так
Код:
#include "stdafx.h"
#include <math.h>
#include <stdio.h>

const unsigned int N=2;

double f1(const double x,const double y1,const double y2)
{
	return x+y1+y2;
}
double f2(const double x,const double y1,const double y2)
{
	return exp(x)+y1+y2;
}
void main(void)
{
	double (*p[2])(const double x,const double y1,const double y2);
	p[0]=f1;
	p[1]=f2;
	double *k1=new double[N];
	double *k2=new double[N];
	double *k3=new double[N];
	double *k4=new double[N];
	double *y=new double[N];
	double h,x,b,a;
	unsigned int i,n;
	printf("Enter y(x0)[0],y(x0)[1] and x0\n");
	scanf_s("%lf",&y[0]);
	scanf_s("%lf",&y[1]);
	scanf_s("%lf",&x);
	a=x;
	printf("Enter b,n\n");
	scanf_s("%lf",&b);
	scanf_s("%d",&n);
	h=(b-x)/n;
	for(;;)
	{
		b-=h;
		if(b<=a)
		{
			break;
		}
		for(i=0;i<N;++i)
		{
			k1[i]=h*p[i](x,y[0],y[1]);
			k2[i]=h*p[i](x+h/2,y[0]+k1[0]/2,y[1]+k1[1]/2);
			k3[i]=h*p[i](x+h/2,y[0]+k2[0]/2,y[0]+k2[1]/2);
			k4[i]=h*p[i](x+h,y[0]+k3[0],y[1]+k3[1]);
		}
		for(i=0;i<N;++i)
		{
			y[i]=y[i]+(k1[i]+2*k2[i]+2*k3[i]+k4[i])/6;
		}
		x=x+h;
	}
	for(i=0;i<N;++i)
	{
		printf("\t%5.6lf\n",y[i]);
	}
	getchar();
	getchar();
}
если нет, то как можно сделать массив в котором были бы функции)
P.S. Не имею под рукой копилятор.

Последний раз редактировалось КРИЖ; 06.11.2013 в 20:37.
КРИЖ вне форума Ответить с цитированием
Старый 07.11.2013, 21:01   #2
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
Лампочка

Цитата:
Сообщение от КРИЖ Посмотреть сообщение
Не имею под рукой копилятор.
http://compileonline.com/
http://codepad.org/
http://ideone.com/
Somebody вне форума Ответить с цитированием
Старый 08.11.2013, 19:19   #3
КРИЖ
Пользователь
 
Регистрация: 08.03.2011
Сообщений: 44
По умолчанию

ухты компиляторы есть в онлайне)))
КРИЖ вне форума Ответить с цитированием
Старый 08.11.2013, 22:40   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И уже давно, кстати.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив указателей CaXaH Общие вопросы C/C++ 11 25.09.2012 12:06
Массив указателей на функции. Создание меню prettynetty Помощь студентам 0 07.03.2012 00:03
Указатель на массив указателей на массив char'ов... SrgGld Общие вопросы C/C++ 0 19.11.2010 23:35
массив указателей RUSt88 Общие вопросы C/C++ 12 10.01.2010 11:11