Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.83
phreaker228
6 / 6 / 1
Регистрация: 22.12.2010
Сообщений: 91
#1

Производная функции - C++

15.06.2012, 00:21. Просмотров 2819. Ответов 10
Метки нет (Все метки)

Задание: вывести на экран таблицу значений функции y=x*2e^x и ее первой производной в диапазоне от -5 до 5.Для вычисления значений f(x) и f'(x) создать функции. Вот код,не могу сообразить,что не так!Помогите,чтобы заработала!
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
35
36
37
38
39
40
41
42
43
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string.h>
#include <math.h>
using namespace std;
float func (double x);
float funcP (double x); 
int _tmain(int argc, _TCHAR* argv[])
{   double y;
    setlocale(0,"Rus");
    printf("---------------------------------------\n");
    printf("|        x         |        y         |\n");
    printf("---------------------------------------\n");
    for  (double x=-5;x<=5;x++)
    {   func (x);
        
        printf("|%9.2lf      |%9.2lf         |\n", x, y);
    }
        printf("---------------------------------------\n");
        scanf("%lf",-5); //вывод значений функции от -5 до 5
    printf("---------------------------------------\n");
    printf("|        x         |        y         |\n");
    printf("---------------------------------------\n");
    for  (double x=-5;x<=5;x++)
    {   funcP (x);
        
        printf("|%9.2lf      |%9.2lf         |\n", x, y);
    }
        printf("---------------------------------------\n");
        scanf("%lf",-5); // вывод значений производной от -5 до 5
 
    return 0;
}
 
 
float func (double x) //процедура ищет значения функции
{
 double y=x-2*exp(x);
 return 1;  }
float funcP (double x) //процедура ищет производную функции
{double y=1-2*exp(x); 
return 1;}

http://www.cyberforum.ru/cpp-beginners/thread917108.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2012, 00:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Производная функции (C++):

Производная
Добрый день. Как можно вычислить производную полинома, если он представлен в...

Производная частного
Добрый день! Подскажите пожалуйста есть ли в с/с++ функция которая считает...

вторая производная в С
у меня определенная функцияю y=(cos(x)+6)/sinx мне нужно найти вторую...

Производная скобочек
Допустим есть у нас &quot;x(x+1)(x+2)...(x+last-1)&quot; - такая скобочка (где last -...

строки и производная
Кому не сложно, помогите, пожалуйста с задачей. Многочлен...

10
Hrundel
28 / 28 / 2
Регистрация: 27.05.2012
Сообщений: 114
15.06.2012, 01:05 #2
Цитата Сообщение от phreaker228 Посмотреть сообщение
C++
1
2
3
for(double x=-5;x<=5;x++)
{
func (x);
В этом месте функция func (x); должна возвращать куда-то значение. А возвращать некому.
Надо:

C++
1
float someVar = func (x);
Цитата Сообщение от phreaker228 Посмотреть сообщение
C++
1
2
3
4
5
float func (double x) //процедура ищет значения функции
{
double y=x-2*exp(x);
return 1; 
}
процедура всегда возвращает единицу. Надо:

C++
1
2
3
4
5
float func (double x) //процедура ищет значения функции
{
return (float)(x-2*exp(x));
 
}
то же самое в случае с функцией funcP(x);

Цитата Сообщение от phreaker228 Посмотреть сообщение
C++
1
printf("|%9.2lf      |%9.2lf         |\n", x, y);
выводить нужно не значения x, y а значения возвращаемые функцией

Кроме того, необходимо избегать смешения типа данных. Если переменные в программе типа double, то и функции (!!!те которые возвращают значения называются функции, а которые не возвращают называются процедуры) должны тоже возвращать значения типа double
1
never old
8 / 8 / 4
Регистрация: 02.06.2012
Сообщений: 25
15.06.2012, 01:11 #3
Так невооруженным взглядом:
У Вас внутри обеих функций объявляется double y, а из функций возвращается значение 1. Объявленный double y внутри main() так нигде и не инициализируется. Было бы неплохо из функций значение y возвращать и вызывать функции y=func(x). Причем функции еще и описаны как float, неплохо бы на double поменять.
1
phreaker228
6 / 6 / 1
Регистрация: 22.12.2010
Сообщений: 91
15.06.2012, 01:13  [ТС] #4
Спасибо огромное!Переделал,вот что получилось:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string.h>
#include <math.h>
using namespace std;
float func (double x);
float funcP (double x);
 
int _tmain(int argc, _TCHAR* argv[])
{   
    setlocale(0,"Rus");
    printf("---------------------------------------\n");
    printf("|        x         |        y         |\n");
    printf("---------------------------------------\n");
    for  (double x=-5;x<=5;x++)
    { float s=func (x);
        
        printf("|%9.2lf      |%9.2lf         |\n", x, s);
    }
        printf("---------------------------------------\n");
        scanf("%lf",-5); //вывод значений функции от -5 до 5
    
    printf("---------------------------------------\n");
    printf("|        x         |        y         |\n");
    printf("---------------------------------------\n");
    for  (double x=-5;x<=5;x++)
    {  float s= funcP (x);
        
        printf("|%9.2lf      |%9.2lf         |\n", x, s);
    }
        printf("---------------------------------------\n");
        scanf("%lf",-5); // вывод значений производной от -5 до 5
 
    return 0;
}
 
 
float func (double x) //процедура ищет значения функции
{
 return x-2*exp(x);
 
}
 
float funcP (double x) //процедура ищет значения функции
{
 return 1-2*exp(x);
 
}
Как сделать,чтобы было две таблицы,одна со значениями функции,другая со значениями производной?
0
Hrundel
28 / 28 / 2
Регистрация: 27.05.2012
Сообщений: 114
15.06.2012, 01:19 #5
Та таблица, которая выводится первой содержит значения функции, а вторая значения производной.

Добавлено через 50 секунд
Значения y могут совпадать
0
phreaker228
6 / 6 / 1
Регистрация: 22.12.2010
Сообщений: 91
15.06.2012, 01:19  [ТС] #6
При компеляции создается только одна таблица
0
Hrundel
28 / 28 / 2
Регистрация: 27.05.2012
Сообщений: 114
15.06.2012, 01:21 #7
После вывода первой таблицы ожидается ввод значений пользователем


Цитата Сообщение от phreaker228 Посмотреть сообщение
C++
1
scanf("%lf",-5); //вывод значений функции от -5 до 5
Просто нажми Энтер
0
phreaker228
6 / 6 / 1
Регистрация: 22.12.2010
Сообщений: 91
15.06.2012, 01:23  [ТС] #8
То есть это надо удалить?

Добавлено через 42 секунды
Цитата Сообщение от Hrundel Посмотреть сообщение
Просто нажми Энтер
Ничего не происходит)
0
Hrundel
28 / 28 / 2
Регистрация: 27.05.2012
Сообщений: 114
15.06.2012, 01:23 #9
Вообще то, да Просто удали
1
phreaker228
6 / 6 / 1
Регистрация: 22.12.2010
Сообщений: 91
15.06.2012, 01:26  [ТС] #10
Всё,допили!Спасибо всем большушее,что вы есть!
1
Hrundel
28 / 28 / 2
Регистрация: 27.05.2012
Сообщений: 114
15.06.2012, 01:27 #11
Удачи!!!
0
15.06.2012, 01:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2012, 01:27
Привет! Вот еще темы с решениями:

вторая производная
Подскажите, плиз, как найти вторую производную функции в точке?

Правая и левая производная
Помогите сделать задачу. Необходимо посчитать правую и левую производную для...

Интерполяция и вторая производная
Нужна программа для интерполяции табличных данных и последующего вычисление 2...

не по теме: производная для решения НУ методом Ньютона
есть функция : double f( double x ){ double fx = sin(pow(x,0.5)) -...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru