Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/125: Рейтинг темы: голосов - 125, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
1

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

23.07.2012, 23:11. Просмотров 25414. Ответов 14
Метки нет (Все метки)

Всем привет! Нужно написать программку на вычисление функции, но незнаю с чего начать и чем закончить, только начал учить С++ Ребята, помогите, очень нужно.
Условие: Написать программу на вычисление значения функции при разных значения аргументов, заданных интервалом смены и величины шага. Сам пример на картинке. Заранее всем огромное спасибо!
Вычислить значение функции при разных аргументах, Visual C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.07.2012, 23:11
Ответы с готовыми решениями:

Вычислить значение функции при разных аргументах, C
Приветствую. Помогите пожалуйста написать программку на вычисление функции. Только начал учить С....

Вычислить значения функции при указанных аргументах
Пожалуйста, помогите написать прогу на делфи Вычислить значения функции при указанных аргументах...

Вычислить значение функции при разных условиях
решите пожалуйста. y=\begin{cases}(\pi +x)^a & \text{, } \operatorname{tg}(a+x)\leq 1\\\\...

Вычисления значений при разных аргументах
Помогите составить программу вычисления значений Y при разных значения X при х начальном =0.1, х...

14
319 / 269 / 128
Регистрация: 24.05.2012
Сообщений: 629
24.07.2012, 13:49 2
А при x >= 1 функция чему равна?
1
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 15:46  [ТС] 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;
}
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
24.07.2012, 16:04 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();
}
1
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 16:19  [ТС] 5
Запустил ваш вариант, у меня выводило большие числа, ничего вводить не нужно (вы написали, что х вводиться с клавиатуры). С "у" ничего больше делать не нужно (условие задачи писал вверху). Спасибо за помощь, но немного не разобрался в работе программы, не могли бы написать несколько комментариев?
0
319 / 269 / 128
Регистрация: 24.05.2012
Сообщений: 629
24.07.2012, 16:33 6
В условии написано, что x принимает значения в диапазоне [0; 2], а функция определена для диапазона (-inf; 1). Можешь передать преподавателю, что задача некорректна.
1
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 16:55  [ТС] 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;
    }
}
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
24.07.2012, 16:56 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 Ну твой код правильный, но "не красивый" : )
1
3 / 3 / 0
Регистрация: 26.03.2012
Сообщений: 27
24.07.2012, 16:56 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();
}
1
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 17:01  [ТС] 10
Господа! Огромнейшее вам спасибо, вы меня очень выручили! Когда лучше выучу с++, тоже буду помогать кому-то!
0
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 18:34  [ТС] 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;
    }
}
0
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
24.07.2012, 18:37 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;
    }
И во втором также дописать
1
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 18:46  [ТС] 13
Спасибо большое!

Добавлено через 1 минуту
Эээм... Это не помогло, программа дальше считает до бесконечности
0
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
24.07.2012, 18:52 14
Попробуй у второго цикла просто условие изменить.
C++
1
2
3
4
while (x+y>1 && x<=2 && y<=2)
{
...
}
Думаю так должна работать
1
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 19:04  [ТС] 15
Оу, спасибо, помогло!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.07.2012, 19:04

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вычислить значения функции при указанных аргументах (сначала для 1-го х, потом для 2-го х)
Вычислить значения функции при указанных аргументах (сначала для 1-го х, потом для 2-го х)....

Почему функция сравнения возвращает одно и то же при разных аргументах?
Доброе время суток, товарищи ) Помогите плиз, разобраться в таком вопросе: была сделана...

Вычислить значения функции при указанных аргументах (сначала для 1-го х, потом для 2-го х). Значения a и b зад
Вычислить значения функции при указанных аргументах (сначала для 1-го х, потом для 2-го х).

Вычисления функции при заданных аргументах
Написать программу вычисления функции при заданных значениях аргументов. Результаты вывести экран...


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

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

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