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

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

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

Студворк — интернет-сервис помощи студентам
Всем привет! Нужно написать программку на вычисление функции, но незнаю с чего начать и чем закончить, только начал учить С++ Ребята, помогите, очень нужно.
Условие: Написать программу на вычисление значения функции при разных значения аргументов, заданных интервалом смены и величины шага. Сам пример на картинке. Заранее всем огромное спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.07.2012, 23:11
Ответы с готовыми решениями:

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

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

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

14
 Аватар для Кот Ангенс
320 / 270 / 128
Регистрация: 24.05.2012
Сообщений: 629
24.07.2012, 13:49
А при x >= 1 функция чему равна?
1
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 15:46  [ТС]
Там нету такого условия, там только то, что на картинке.

Добавлено через 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
Если 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  [ТС]
Запустил ваш вариант, у меня выводило большие числа, ничего вводить не нужно (вы написали, что х вводиться с клавиатуры). С "у" ничего больше делать не нужно (условие задачи писал вверху). Спасибо за помощь, но немного не разобрался в работе программы, не могли бы написать несколько комментариев?
0
 Аватар для Кот Ангенс
320 / 270 / 128
Регистрация: 24.05.2012
Сообщений: 629
24.07.2012, 16:33
В условии написано, что x принимает значения в диапазоне [0; 2], а функция определена для диапазона (-inf; 1). Можешь передать преподавателю, что задача некорректна.
1
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 16:55  [ТС]
Спасибо! Ну а все же, если бы диапазон был не таким, то как ее написать? Если вас не затруднит.

Добавлено через 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
Цитата Сообщение от 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
 Аватар для nikitos7832
3 / 3 / 0
Регистрация: 26.03.2012
Сообщений: 27
24.07.2012, 16:56
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  [ТС]
Господа! Огромнейшее вам спасибо, вы меня очень выручили! Когда лучше выучу с++, тоже буду помогать кому-то!
0
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 15
24.07.2012, 18:34  [ТС]
Ребята, еще одна проблемка Делал задание (на рисунку), и при запуске программы, она начинает считать до бесконечности, что не так сделал? Помогите еще пожалуйста

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
 Аватар для Intel~lect
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
24.07.2012, 18:37
Переменная 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  [ТС]
Спасибо большое!

Добавлено через 1 минуту
Эээм... Это не помогло, программа дальше считает до бесконечности
0
 Аватар для Intel~lect
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
24.07.2012, 18:52
Попробуй у второго цикла просто условие изменить.
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  [ТС]
Оу, спасибо, помогло!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.07.2012, 19:04
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru