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

Вычисление функции на промежутке - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
30.08.2011, 20:39     Вычисление функции на промежутке #1
Вычеслить ф-цию y=fn(x) на промежутке (0;2,5) з шагом 0,1. Вычеслить среднее арифметическое значение ф-ций больше 0,5 и меньше чем 1,5
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
#include <iostream.h>
#include <conio.h>
#include <math.h>
using namespace std;
int main(int argc, char* argv[])
{
float S=0,x=0,y,Sc;
int k=0;
do
y=cos*cos+3/sin*sin+2*x;
cout<<"y= "<<y<<" x= "<<x>>endl;
if(y>=0.5 && y<=1.5)
{
S=S+y;
k=k+1;
}
x=x+0,1;
}
while (x<=2,5);
if(k==0)
{
cout<<"k=0 Rozv.";
getch();
return 0;
}
Sc=S/k;
cout<<"Sc= "<<Sc<<endl;
cout<<"Smile"<<endl;
getch();
return 0;
}
Помогите....как должно быть правильно

 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2011, 20:39     Вычисление функции на промежутке
Посмотрите здесь:

C++ Поиск максимального значения функции на заданном промежутке
C++ Поиска максимального значения функции в заданном промежутке
Вычисления функции на заданном промежутке. (Pascal ABC>C++) C++
Перевести с Pascal вычисление функции на заданном промежутке и построить график этой функции C++
Вычисление функции на заданном промежутке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
romedal
 Аватар для romedal
53 / 53 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
30.08.2011, 21:23     Вычисление функции на промежутке #2
Цитата Сообщение от Alston Посмотреть сообщение
do //Может быть сдесь поставить "{"
y=cos*cos+3/sin*sin+2*x;
Попробуй...
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
30.08.2011, 21:37  [ТС]     Вычисление функции на промежутке #3
не могу откомпелировать=((
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.08.2011, 22:31     Вычисление функции на промежутке #4
Что это за cos и sin? Синус и косинус - это функции (как в смысле программирования, так и в математическом), они не могут существовать без своих аргументов.
-=ЮрА=-
Заблокирован
Автор FAQ
31.08.2011, 15:52     Вычисление функции на промежутке #5
Цитата Сообщение от Alston Посмотреть сообщение
cos*cos
- если cos не переменная, тогда в программе ошибка...

Добавлено через 13 минут
Цитата Сообщение от Alston Посмотреть сообщение
<<x>>endl;
в cout оператор вывода в другую сторону

Цитата Сообщение от Alston Посмотреть сообщение
if(k==0)
{
cout<<"k=0 Rozv.";
getch();
return 0;
}
Sc=S/k;
cout<<"Sc= "<<Sc<<endl;
cout<<"Smile"<<endl;
getch();
- зачем 2 выхода из мэйн, можно проще

Цитата Сообщение от Alston Посмотреть сообщение
if(y>=0.5 && y<=1.5)
- ничего подобного, твой промежуток
Цитата Сообщение от Alston Посмотреть сообщение
больше 0,5 и меньше чем 1,5
- о больше или равно ничего не сказано

Цитата Сообщение от Alston Посмотреть сообщение
x<=2,5)
- опять же твой промежуток (0;2,5), в него ни 0 ни 2,5 не входят!
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
31.08.2011, 15:53     Вычисление функции на промежутке #6
Цитата Сообщение от Alston Посмотреть сообщение
Вычеслить ф-цию y=fn(x)
Напишите какую именно функцию надо вычислить.
-=ЮрА=-
Заблокирован
Автор FAQ
31.08.2011, 16:04     Вычисление функции на промежутке #7
Если у вычисляется по такой формуле
C++
1
y = pow(cos(x),2)+3/(pow(sin(x),2) + 2*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
44
45
46
47
48
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
float fn(float x)
{
    float y = pow(cos(x),2)+3/(pow(sin(x),2) + 2*x);
    return y;
}
 
int main(/*int argc, char* argv[]*/)//командная строка для решения этой задачи тебе не нужна ;)
{
    cout<<"\tVvod diapazona peremennih\r\n";
    cout<<"xn = ";
    float xn;cin>>xn;
    cout<<"xk = ";
    float xk;cin>>xk;
    cout<<"dx = ";
    float dx;cin>>dx;
 
    cout<<"\tVvod diapazona (a = f(x);b = f(x)) srednearifmeticheskogo\r\n";
    cout<<"a = ";
    float a;cin>>a;
    cout<<"b = ";
    float b;cin>>b;
 
    float S = 0;
    float y,x = xn + dx;
    int k = 0;
    while(x < xk)
    {
        cout<<" x= "<<x<<"\ty= "<<(y = fn(x))<<"\r\n";
        if(a < y && y < b)
        {
            S = S + y;
            k = k + 1;
        }
        x = x + dx;
    }
 
    if(k == 0)
        cout<<"nylevoi promezhytok\r\n";
    else
        cout<<"Sc = "<< S/k<<"\r\n";
    cout<<"Press any key to continue"<<endl;
    getch();
    return 0;
}
РS:По универу помню, преподы любят на защите говорить - "а сделай так чтобы диапазоны менять при вводе можно было", поэтому оснастил программу переменными начала хн, конца хк - промежутка для аргумента, его шага dx и диапазона значений функции а и b
Миниатюры
Вычисление функции на промежутке  
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
31.08.2011, 16:12     Вычисление функции на промежутке #8
Маленькое замечание. Посмотрите на область определения функции, а то вы на 0 легко разделите, когда границы интервала вводите с клавиатуры.
-=ЮрА=-
Заблокирован
Автор FAQ
31.08.2011, 16:20     Вычисление функции на промежутке #9
Цитата Сообщение от Thinker Посмотреть сообщение
Маленькое замечание. Посмотрите на область определения функции, а то вы на 0 легко разделите.
- замечание принимаю, вот только мне кажется, что эта функция
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
(pow(sin(x),2) + 2*x)
- нулю никогда не равна, а так да нужно решить уравнение для задания ОДЗ:
sin^2(x) + 2*x = 0
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
31.08.2011, 16:22     Вычисление функции на промежутке #10
-=ЮрА=-, ну как же, а в точке x=0.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
31.08.2011, 16:39     Вычисление функции на промежутке #11
Thinker, -=ЮрА=-, было бы неплохо для начала уточнить на каком "промежутке" вычисляется функция
[0, 2.5]
(0, 2.5)
[0, 2.5)
(0, 2.5]
ТС, учишь другой язык (язык "Си", на котором будешь общаться с машинами), постарайся освоить и свой родной - Вычислить. Дай людям саму функцию для вычисления, определи интервал\полуинтервал\отрезок. Просто меня терзают смутные сомнения...
C++
1
y=cos*cos+3/sin*sin+2*x;
-=ЮрА=-
Заблокирован
Автор FAQ
31.08.2011, 16:48     Вычисление функции на промежутке #12
Цитата Сообщение от alkagolik Посмотреть сообщение
-=ЮрА=-, было бы неплохо для начала уточнить на каком "промежутке" вычисляется функция
- в условии чётко об этом сказано

Цитата Сообщение от Alston Посмотреть сообщение
Вычеслить ф-цию y=fn(x) на промежутке (0;2,5)
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
31.08.2011, 16:55     Вычисление функции на промежутке #13
-=ЮрА=-, да, прошу прощения. тогда точки х=0 просто нету, иначе говоря нужно вычислить
(0, 2.5)~[0.1, 2.4]
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
31.08.2011, 16:58     Вычисление функции на промежутке #14
Цитата Сообщение от alkagolik Посмотреть сообщение
-=ЮрА=-, да, прошу прощения. тогда точки х=0 просто нету, иначе говоря нужно вычислить
(0, 2.5)~[0.1, 2.4]
На промежутке (0, 2.5) ни функция sin(x), ни sin^2(x) + 2x в ноль не обращаются. Точка x=0 относилась к варианту Юрия.
-=ЮрА=-
Заблокирован
Автор FAQ
31.08.2011, 17:02     Вычисление функции на промежутке #15
Цитата Сообщение от alkagolik Посмотреть сообщение
тогда точки х=0 просто нету, иначе говоря нужно вычислить
(0, 2.5)~[0.1, 2.4]
Согласен, об этом тоже написал ранее
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Сообщение от Alston
x<=2,5)
- опять же твой промежуток (0;2,5), в него ни 0 ни 2,5 не входят!
Цитата Сообщение от Thinker Посмотреть сообщение
-=ЮрА=-, ну как же, а в точке x=0.
- она не входит в промежуток (0;2,5) - Спасибо что обратил внимание

Добавлено через 3 минуты
Цитата Сообщение от Thinker Посмотреть сообщение
На промежутке (0, 2.5) ни функция sin(x), ни sin^2(x) + 2x в ноль не обращаются. Точка x=0 относилась к варианту Юрия.
- я извиняюсь конешно но прочитай пост выше - в программе было записано
C++
1
2
3
4
float y,x = xn + dx;
    int k = 0;
    while(x < xk)
    {
так что точка х=0, в моем алгоритме просто не учавствует...
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
31.08.2011, 17:03     Вычисление функции на промежутке #16
На промежутке (0, 2.5) ни функция sin(x), ни sin^2(x) + 2x в ноль не обращаются
обращаются, просто это выходит за рамки темы И все таки заострю внимание на том, что функцию ТС так и не выложил. Что он там написал не зная синтаксиса, одному ему известно.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
31.08.2011, 17:08     Вычисление функции на промежутке #17
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Согласен, об этом тоже написал ранее


- она не входит в промежуток (0;2,5) - Спасибо что обратил внимание

Добавлено через 3 минуты
- я извиняюсь конешно но прочитай пост выше - в программе было записано
C++
1
2
3
4
float y,x = xn + dx;
    int k = 0;
    while(x < xk)
    {
так что точка х=0, в моем алгоритме просто не учавствует...
А до этого не присутствовал ли фрагмент кода

C++
1
2
3
4
5
6
7
 
        cout<<"xn = ";
        float xn;cin>>xn;
        cout<<"xk = ";
        float xk;cin>>xk;
        cout<<"dx = ";
        float dx;cin>>dx;
и нельзя ли было ввести xn=-0.1, dx=0.1

Добавлено через 2 минуты
Цитата Сообщение от alkagolik Посмотреть сообщение
обращаются, просто это выходит за рамки темы
И в какой же это точке sin(x) обращается в ноль на промежутке (0, 2.5)?
-=ЮрА=-
Заблокирован
Автор FAQ
31.08.2011, 17:11     Вычисление функции на промежутке #18
Цитата Сообщение от Thinker Посмотреть сообщение
А до этого не присутствовал ли фрагмент кода
- чувак давай не офтопить, алгоритм есть, пусть ТС функцию выкладывает

Цитата Сообщение от Thinker Посмотреть сообщение
и нельзя ли было ввести xn=-0.1, dx=0.1
- нельзя ли тогда было ввести xn = 2.5 xk = 0???
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
31.08.2011, 17:15     Вычисление функции на промежутке #19
Я уж не говорю о функции sin^2(x) + 2x, которая тем более не обращается

Добавлено через 2 минуты
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- чувак давай не офтопить, алгоритм есть
Эх и ничего себе... Выложил алгоритм, так держи ответ...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2011, 17:37     Вычисление функции на промежутке
Еще ссылки по теме:

C++ Определить значение функции у = f (x) на промежутке [a, b]
Написать блок-схему и программу вычисления функции на заданном промежутке и построить график этой функции C++
C++ Вычисление функции на заданном промежутке, и построение графика этой функции

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

Или воспользуйтесь поиском по форуму:
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
31.08.2011, 17:37     Вычисление функции на промежутке #20
Thinker, да. я говоря это абстрагировался от заданного интервала, чего не стоило делать. Но вообще sin^2(x) + 2x равно нулю в точке sin^2(x)=-2x, это же очевидно. Я же говорю, это выходит за рамки обсуждения не то, чтобы темы, а вообще множества рациональных, иррациональных чисел. Ведь ты не станешь отрицать что есть какой-то x, который равен квадратному корню из -1, к примеру.
Yandex
Объявления
31.08.2011, 17:37     Вычисление функции на промежутке
Ответ Создать тему
Опции темы

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