0 / 0 / 0
Регистрация: 05.10.2010
Сообщений: 19
1

Решение системы уравнений: написать функцию, которая как параметр будет использовать другую функцию

19.10.2010, 17:10. Показов 1279. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята помогите разобраться с указателем на функцию!

у меня решается система ДУ методом Рунге_кутта. я хочу написать функцию, которая как параметр будет использовать другую функцию. Пытаюсь организовать все это с помощью указателей - пока не получается.

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
27
28
29
30
31
32
33
double Speed(double Vk, double t, double teta, double y, double Wx, int rejim)
 
double func_x(double Vk, double t, double teta, double y, double Wx, int rejim)
 
double func_y(double Vk, double t, double teta, double y, double Wx, int rejim)
 
double Runge (double (*point)(double, double, double, double, double, int))
{
    double k1, k2, k3, k4;
    double Vk1, Vk2,Vk3, t1, teta1;
    k1 = point(Vk,t,teta,y,Wx,rejim);
    Vk1=Vk+(h*0.5)*k1;
    k2 = point(Vk1, t+0.5*h, teta,y,Wx,rejim);
    Vk2=Vk+(h*0.5)*k2;
    k3 = point(Vk2, t+0.5*h, teta,y,Wx,rejim);
    Vk4 = Vk + h*k3;
    k4 = point(Vk3, t+h, teta,y,Wx,rejim);
    return (Vk + (h/6)*(k1+2*k2+2*k3+k4));
 
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    ...
             ...
Vk[i+1] = Runge (Speed (Vk[i], t,  teta[i],  y[i],  Wx, 1));
Teta[i+1]=Runge(Ugol( (Vk[i], t,  teta[i],  y[i],  Wx, 1));
x[i+1]=Runge(func_x( (Vk[i], t,  teta[i],  y[i],  Wx, 1));
y[i+1]=Runge(func_y( (Vk[i], t,  teta[i],  y[i],  Wx, 1));
...
...
}

Я понимаю, что функция Runge написано неправильно, потому что нельзя так писать параметры указателя.
Но как сделать правильно - не понимаю...
Объясните плиз
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2010, 17:10
Ответы с готовыми решениями:

Написать функцию Факториал и программу, которая будет использовать эту функцию
Суть программы: Нужно написать функцию Факториал и программу.ю которая будет использовать эту...

Написать функцию которая будет решать систему уравнений
Здравствуйте! Подскажите, пожалуйста, как в MathCAD написать функцию которая будет решать систему...

Создать функцию, которая будет вызывать другую функцию
Доброго времени суток. Изучаю PHP и вот столкнулся с такой практикой, не знаю как реализовать....

Написать функцию, которая находит решение системы методом Крамера
Задание: Написать функцию, которая находит решение системы методом Крамера. Вычисление...

2
Эксперт С++
5827 / 3478 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
19.10.2010, 17:34 2
cam_rus, первым аргументом должен передаваться указатель на функцию, а уже потом параметры для этой функции. Пример:
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
27
28
29
30
31
32
33
34
#include <iostream>
 
double sum ( double x, double y )
{
    return x + y;
}
 
double dif ( double x, double y )
{
    return x - y;
}
 
/*
 * Объявляем новый тип func - указатель на функцию с двумя аргументами
 * типа double, возвращающими значение типа double
 * Можно было бы обойтись без этого, определив прототип функции eval так:
 * double eval( double (*func) (double, double), double x, double y)
 */
typedef double ( *func ) ( double, double );
 
double eval ( func f, double x, double y )
{
    return f ( x, y );
}
 
int main()
{
    double x = 16.8, y = 2.345;
    std::cout << "x = " << x << ", y = " << y << std::endl;
    std::cout << "Evaluating the sum of x and y: " << eval ( sum, x, y ) << std::endl;
    std::cout << "Evaluating the difference between x and y: " << eval ( dif, x, y )
              << std::endl;
    return 0;
}
2
0 / 0 / 0
Регистрация: 05.10.2010
Сообщений: 19
19.10.2010, 18:32  [ТС] 3
О, спасибо большое, теперь заработало, я понял где ошибочка
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2010, 18:32
Помогаю со студенческими работами здесь

Написать функцию, которая находит решение системы методом Гаусса
Написать функцию, которая находит решение системы методом Гаусса. Найти решение системы при помощи...

Написать функцию, которая находит решение системы методом Крамера
Задание:

Написать функцию, которая могла бы передать значение в другую функцию
как сделать функцию которая бы могла передать значеие в другую функцию ну к примеру a=4*b; где...

Написать функцию, которая вычисляет минимум из четырех чисел. Использовать функцию min
package com.javarush.test.level02.lesson08.task04; public class Solution { public static...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru