Форум программистов, компьютерный форум CyberForum.ru

Вычислить значение функции при разных аргументах, Visual C++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 49, средняя оценка - 4.61
Lokoss
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
23.07.2012, 23:11     Вычислить значение функции при разных аргументах, Visual C++ #1
Всем привет! Нужно написать программку на вычисление функции, но незнаю с чего начать и чем закончить, только начал учить С++ Ребята, помогите, очень нужно.
Условие: Написать программу на вычисление значения функции при разных значения аргументов, заданных интервалом смены и величины шага. Сам пример на картинке. Заранее всем огромное спасибо!
Вычислить значение функции при разных аргументах, Visual C++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2012, 23:11     Вычислить значение функции при разных аргументах, Visual C++
Посмотрите здесь:

C++ Вычислить значение функции переменных при заданных значениях параметров
C++ Вычислить значение составной функции при заданных значениях аргументов
Используя интерполяционную формулу Ньютона, вычислить значение функции при заданных значениях аргумента с точностью до 0.001 C++
C++ Вычислить значение функции Y (x) при различных значениях исходных данных x и а
C++ Вывести значение функции при вводе разных Х и У
C++ Const-параметры в аргументах функции
C++ Приближенное значение функции с использованием разных циклов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
24.07.2012, 13:49     Вычислить значение функции при разных аргументах, Visual C++ #2
А при x >= 1 функция чему равна?
Lokoss
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 15:46  [ТС]     Вычислить значение функции при разных аргументах, Visual C++ #3
Там нету такого условия, там только то, что на картинке.

Добавлено через 1 час 55 минут
Вот попытался написать, но в итоге получается много одинаковых результатов, я уже не знаю, что делать, ребят помогите пожалуйста, очень надо!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
void main ()
    
 
 
{ 
    double x, y, a=0.75, b=1.19, c=-2.5;
    
    if (x<0.5)
        y=a*x+b*cos(x);
    else if (x>=0.5 && x<1)
         y=b*pow(x,2)+c*sin(2*x);
    for (x=0;x<=2;x+=0.2)
        cout<<"Y="<<setprecision(3)<<y<<endl;
}
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
24.07.2012, 16:04     Вычислить значение функции при разных аргументах, Visual C++ #4
Если x вводится с клавиатуры, то :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cmath>
#include <stdio.h>
#include <conio.h>
double a = 0.75, b = 1.19, c = -2.5, h = 0.1;
double CalcY(double x)
{
double y;
if (x < 0.5)
y = a*x + b*cos(x);
else
y = b*pow(x, 2) + c*sin(2*x);
// Нужно ли делать ещё что-то с y?
return y;
}
 
void main()
{
for (double i=0; i<=2; i+=h)
printf("%d\n", CalcY(i);
_getch();
}
Lokoss
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 16:19  [ТС]     Вычислить значение функции при разных аргументах, Visual C++ #5
Запустил ваш вариант, у меня выводило большие числа, ничего вводить не нужно (вы написали, что х вводиться с клавиатуры). С "у" ничего больше делать не нужно (условие задачи писал вверху). Спасибо за помощь, но немного не разобрался в работе программы, не могли бы написать несколько комментариев?
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
24.07.2012, 16:33     Вычислить значение функции при разных аргументах, Visual C++ #6
В условии написано, что x принимает значения в диапазоне [0; 2], а функция определена для диапазона (-inf; 1). Можешь передать преподавателю, что задача некорректна.
Lokoss
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 16:55  [ТС]     Вычислить значение функции при разных аргументах, Visual C++ #7
Спасибо! Ну а все же, если бы диапазон был не таким, то как ее написать? Если вас не затруднит.

Добавлено через 17 минут
Ребят, а если не учитывать, что х лежит [0,2], то данный код есть правильным? И еще раз всем спасибо!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cmath>
#include <iostream.h>
#include <iomanip.h>
void main()
 
{
double x, y, a=0.75, b=1.19, c=-2.5, h=0.1;
 
    for(x=0;x<0.5;x+=h)
    {   y=a*x+b*cos(x);
    cout<<"y="<<setprecision(2)<<y<<endl;
    }
    
    for(x=0.5;x<1;x+=h)
    
    {   y=b*pow(x,2)+c*sin(2*x);
        cout<<"Y="<<setprecision(2)<<y<<endl;
    }
}
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
24.07.2012, 16:56     Вычислить значение функции при разных аргументах, Visual C++ #8
Цитата Сообщение от Lokoss Посмотреть сообщение
Спасибо! Ну а все же, если бы диапазон был не таким, то как ее написать? Если вас не затруднит.
Да, в некоторых местах ошибся, ибо писал без проверки. Поправь :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cmath>
#include <stdio.h>
#include <conio.h>
double a = 0.75, b = 1.19, c = -2.5, h = 0.1;
double CalcY(double x)
{
double y;
if (x < 0.5)
y = a*x + b*cos(x);
else
y = b*pow(x, 2) + c*sin(2*x);
// Нужно ли делать ещё что-то с y?
return y;
}
 
void main()
{
for (double i=0; i<=2; i+=h)
printf("%lf\n", CalcY(i)); // Здесь нужна была ещё одна скобка и %lf, а не %d
_getch();
}
p.s Считал я от 0 до 2, но при этом не учитывал того, что второе условие до 1. Тут уж решай сам, какой промежуток использовать. Если все-таки с [0;1), то исправь эти строчки :
1) for (double i=0; i<=2; i+=h)
на for (double i=0; i<1; i+=h)
2) else
на else if (x <= 1) // не обязательно, ибо по for передается до 1

Если хочешь указать точность, то вместо %lf напиши, допустим, %.2lf
p.s Ну твой код правильный, но "не красивый" : )
nikitos7832
 Аватар для nikitos7832
3 / 3 / 0
Регистрация: 26.03.2012
Сообщений: 27
24.07.2012, 16:56     Вычислить значение функции при разных аргументах, Visual C++ #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#include <conio.h>
int main () {
double x=0, y=0, h=0.1, a=0.75, b=1.19, c=-2.5;
while (x<0.5)
{
    y=a*x+b*cos(x);
    cout << "x=" << x << "     y=" << y << endl;
    x+=h;
}
while ((x>=0.5)&&(x<1))
{
    y=b*x*x+c*sin(2*x);
    cout << "x=" << x << "     y=" << y << endl;
    x+=h;
}
_getch();
}
Lokoss
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 17:01  [ТС]     Вычислить значение функции при разных аргументах, Visual C++ #10
Господа! Огромнейшее вам спасибо, вы меня очень выручили! Когда лучше выучу с++, тоже буду помогать кому-то!
Lokoss
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 18:34  [ТС]     Вычислить значение функции при разных аргументах, Visual C++ #11
Ребята, еще одна проблемка Делал задание (на рисунку), и при запуске программы, она начинает считать до бесконечности, что не так сделал? Помогите еще пожалуйста
Вычислить значение функции при разных аргументах, Visual C++
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
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
void main()
 
{
    double z, x=0, y=0, t=x+y, a=1, b=2, h1=0.1, h2=0.2;
    
    while(t<=1)
    {
        z=pow(a,x)+pow(b,y);
        cout<<"x="<<setprecision(3)<<x<<"   z="<<z<<endl;
        x+=h1;
        y+=h2;
    }
 
    while(t>1)
    {
        z=a*pow(x,2)+log(b*x*y);
        cout<<"x="<<setprecision(3)<<x<<"   z="<<z<<endl;
        x+=h1;
        y+=h2;
    }
}
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
24.07.2012, 18:37     Вычислить значение функции при разных аргументах, Visual C++ #12
Переменная t не изменяется в цикле. То есть условие продолжения всегда true
C++
1
2
3
4
5
6
7
8
while(t<=1)
    {
        z=pow(a,x)+pow(b,y);
        cout<<"x="<<setprecision(3)<<x<<"   z="<<z<<endl;
        x+=h1;
        y+=h2;
        t = x + y;
    }
И во втором также дописать
Lokoss
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 18:46  [ТС]     Вычислить значение функции при разных аргументах, Visual C++ #13
Спасибо большое!

Добавлено через 1 минуту
Эээм... Это не помогло, программа дальше считает до бесконечности
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
24.07.2012, 18:52     Вычислить значение функции при разных аргументах, Visual C++ #14
Попробуй у второго цикла просто условие изменить.
C++
1
2
3
4
while (x+y>1 && x<=2 && y<=2)
{
...
}
Думаю так должна работать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2012, 19:04     Вычислить значение функции при разных аргументах, Visual C++
Еще ссылки по теме:

Вычислить значение функции Y (x) при различных значениях исходных данных x и а C++
Вычислить значение функции У ( х ) при различных значениях исходных данных х и а C++
C++ Вычислить значение разных функций при определенном аргументе
C++ Вычислить значение функции Y(x) при различных значениях начальных данных х и а
Ошибка в аргументах функции C++

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

Или воспользуйтесь поиском по форуму:
Lokoss
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 19:04  [ТС]     Вычислить значение функции при разных аргументах, Visual C++ #15
Оу, спасибо, помогло!
Yandex
Объявления
24.07.2012, 19:04     Вычислить значение функции при разных аргументах, Visual C++
Ответ Создать тему
Опции темы

Текущее время: 07:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru