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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
zmei89
31 / 6 / 1
Регистрация: 10.09.2010
Сообщений: 835
#1

Вычисления значений функции - C++

13.10.2010, 12:22. Просмотров 1766. Ответов 36
Метки нет (Все метки)

Помогите пожалуйста с задачей,требуется на писать,отладить и протестировать прогу,обеспечивающая вычисления значений указанной функции:
В проге обязательно использовать функции.Использования глобальных переменных запрещено
Функция у=f(x)
имеет вид:
Если x<-3,то y=e^x+5
Если -3<= 0, то y=x/x^2 +1
Если x>0, то y=под корнем x+1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2010, 12:22     Вычисления значений функции
Посмотрите здесь:

Вычисления значений функции с условиями - C++
Составить структурную схему алгоритма и проект программы вычисления значений Y=f(x) , для трех вариантов значений параметров функции. ...

Вычисления значений функции на отрезке [a; b] с шагом h - C++
Составить программу вычисления значений функции F(x) на отрезке с шагом h . Результат представить в виде таблицы, первый столбец которой...

Составить программу вычисления значений функции - C++
Помогите составить y=lnx/(1-x2) Пожалуйста если можно напишите код программы.:help:

Программа вычисления значений функции y= sin(x) - C++
Доброго времени суток. У меня есть вот такая задачка: Написать программу вычисления значений функции y = sin(x), с помощью разложения...

программа вычисления наибольшего из значений функции - C++
Мне дана такая задача: написать программу вычисления наибольшего из значений функции y1=x²+1, y2=7-x² , y3=x+1 для любого х я написала...

Составить программу для вычисления значений функции - C++
вот уравнение

Составить программу для вычисления значений функции F(x) - C++
Помогите решить :(

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
13.10.2010, 17:13     Вычисления значений функции #21
вместо y = sqrt(x); y = sqrt(x+1);
zmei89
31 / 6 / 1
Регистрация: 10.09.2010
Сообщений: 835
13.10.2010, 22:07  [ТС]     Вычисления значений функции #22
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
#include <conio.h>
#include <stdlib.h>
#include <math.h>
 
float func(float x)
{
float y = 0;
   if( x < -3 ){
      y = exp(x) + 5;    < ЧТО ОБОЗНАЧАЕТ ЭТО СТРОЧКА?
   }else if( x >= -3 && x < 0 ){
      y = x/(x*x) + 1;  //здесь можно и сократить одну x
   }else if( x > 0 ){
      y = sqrt(x);
   } 
   return y;
}
 
void printval(float x)      
{
   printf("x = %-0.3f\ty = %-0.3f", x, func(x));   ЧТО ОБОЗНАЕТ ЭТА СТРОЧКА?
}
 
int main()
{
  printval(-4);    ЧТО ОБОЗНАЧАЕТ ЭТИ СТРОЧКИ?
  printval(-2);
  printval(1);
 
  printf("Press any key");   ЧТО ОБОЗНАЧАЕТ ЭТА СТРОЧКА?
  getch();
  return 0;
}
Sudoki
124 / 64 / 1
Регистрация: 19.04.2010
Сообщений: 196
13.10.2010, 22:15     Вычисления значений функции #23
Цитата Сообщение от zmei89 Посмотреть сообщение
void printval(float x)
{
printf("x = %-0.3f\ty = %-0.3f", x, func(x)); ЧТО ОБОЗНАЕТ ЭТА СТРОЧКА?
}
Эта строчка выведет на экран следующее
Для printval(-4)
x = -4.000 y = значение функции func(-4)
Для printval(-2)
x = -2.000 y = значение функции func(-2)
и т.д.

Добавлено через 1 минуту
Цитата Сообщение от zmei89 Посмотреть сообщение
printf("Press any key"); ЧТО ОБОЗНАЧАЕТ ЭТА СТРОЧКА?
getch();
Эта связка используется для того чтобы мог посмотреть результат работы программы.
Нажимая любую клафишу она закончится
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
13.10.2010, 22:16     Вычисления значений функции #24
1. y присваивается значение exp(x) + 5 (exp(x) - экспонента, значение функции e^x, где e - число Эйлера - 2.718281828459045... Содержится в стандартной библиотеке math)
2. printf - функция, выводящая на экран значение своего первого параметра (то, что в кавычках), при этом заменяет значения типа %-0.3f на значения последующих своих параметров (в данном случае на x и func(x)). Т.е. если, к примеру, x = 3, func(x) = 1.5, выведено будет "x = 3.000 y = 1.500". Функция содержится в стандартной библиотеке stdio
3. Вызывается функция printval, описанная ранее (там, где была функция принтф)
4. Снова вывод на экран, на этот раз сообщения "Press any key"
Sudoki
124 / 64 / 1
Регистрация: 19.04.2010
Сообщений: 196
13.10.2010, 22:16     Вычисления значений функции #25
Цитата Сообщение от zmei89 Посмотреть сообщение
printf("x = %-0.3f\ty = %-0.3f", x, func(x)); ЧТО ОБОЗНАЕТ ЭТА СТРОЧКА?
Эту функцию замени на вот эту а то все будет выведено в одну строку
C++
1
printf("x = %-0.3f\ty = %-0.3f\n", x, func(x));
zmei89
31 / 6 / 1
Регистрация: 10.09.2010
Сообщений: 835
13.10.2010, 22:20  [ТС]     Вычисления значений функции #26
а что означает y = exp(x) + 5
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
13.10.2010, 22:27     Вычисления значений функции #27
Эммм... Я же написал
1. y присваивается значение exp(x) + 5 (exp(x) - экспонента, значение функции e^x, где e - число Эйлера - 2.718281828459045... Содержится в стандартной библиотеке math)
zmei89
31 / 6 / 1
Регистрация: 10.09.2010
Сообщений: 835
13.10.2010, 22:37  [ТС]     Вычисления значений функции #28
Спасибо,более менее понятно стало
zmei89
31 / 6 / 1
Регистрация: 10.09.2010
Сообщений: 835
16.10.2010, 13:40  [ТС]     Вычисления значений функции #29
Прошу прощения я задание не до конца написал
В варианте задания "кусочки функцмии" y+f(x). В программе необходимо обеспечить ввод с клавиаткры границ диапазона [a,b] и шага изменений h для аргумента x. Нужно вывести на экран таблицу значений y=f(x) для x принадлежит [a,b], шаг изменения x равен h
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
17.10.2010, 08:30     Вычисления значений функции #30
zmei89, переделайте main функцию так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
  float a,b,h,i;
  printf("Vvedite a:");
  scanf("%f",&a);
  printf("Vvedite b:");
  scanf("%f",&b);
  printf("Vvedite h:");
  scanf("%f",&h);
 
  for(i=a;i<=b;i+=h)
  {
    printval(i);
  }
 
  printf("Press any key");
  getch();
  return 0;
}
zmei89
31 / 6 / 1
Регистрация: 10.09.2010
Сообщений: 835
20.10.2010, 20:51  [ТС]     Вычисления значений функции #31
а до int main что нужно вставить?
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
21.10.2010, 07:33     Вычисления значений функции #32
zmei89, всё то же самое:
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
#include <conio.h>
#include <stdio.h>
#include <math.h>
 
float func(float x)
{
float y = 0;
   if( x < -3 ){
      y = exp(x) + 5;
   }else if( x >= -3 && x < 0 ){
      y = x/(x*x) + 1;  //здесь можно и сократить одну x
   }else if( x > 0 ){
      y = sqrt(x+1);
   } 
   return y;
}
 
void printval(float x)
{
   printf("x = %-0.3f\ty = %-0.3f\n", x, func(x));
 
}
 
int main()
{
  float a,b,h,i;
  printf("Vvedite a:");
  scanf("%f",&a);
  printf("Vvedite b:");
  scanf("%f",&b);
  printf("Vvedite h:");
  scanf("%f",&h);
 
  for(i=a;i<=b;i+=h)
  {
        printval(i);
  }
 
  printf("Press any key");
  getch();
  return 0;
}
zmei89
31 / 6 / 1
Регистрация: 10.09.2010
Сообщений: 835
21.10.2010, 07:40  [ТС]     Вычисления значений функции #33
так я делал только ошибку вывел на этой строчке printf("x = %-0.3f\ty = %-0.3f\n", x, func(x));
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
21.10.2010, 08:16     Вычисления значений функции #34
Какую ошибку? stdio подключён?
zmei89
31 / 6 / 1
Регистрация: 10.09.2010
Сообщений: 835
21.10.2010, 21:17  [ТС]     Вычисления значений функции #35
все работает выводит a,b,h

Добавлено через 4 часа 6 минут
Помогите пожалуйста с прогой этот же пример только почему то ошибок полно вывел по методичке смотрел
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
50
51
52
53
#include <stdio.h>
#include <math.h>
 
/*
 y=f(x)     <тут в методичке на писано было Вычисление функции,заданной варианте,правильно я        поставил y=f(x)  или надо все эти функции Если x<-3,то y=e^x+5
Если -3<= 0, то y=x/x^2 +1
Если x>0, то y=под корнем x+1
*/
 double f(double x)
 {
   if (x <= -3) return exp(x + 5);
   if (x <= 0) return x / (x * x +1);
   return sqrt (x+1);
}
 
int main()
{
  double a, b, h;
  double x, y;
 
  //Ввод значений границ диапазона и шага изменения X
   while (1) //бесконечный цикл ввода
   {
     printf ("Введите значения A, B, H:");
     scanf ("%lf%lf" , &a, &b, &h);
     if (a > b)
     {
       printf ("Вы ввели неверные значения: a > b! !\n");
       continue; // продолжаем выполнение цикла ввода
     }
     if (h <=0)
     {
        printf ('Вы ввели неверное значения: h <= 0! !\n");
        continue; // продолжаем выполнение цикла ввода
     }
     //Ввод корректен - выводим из цикла
     break;
   }
 
   //Формируем шапку таблицы
   printf ("+----------+---------------+\n");
   printf ("+     X       +        Y            +\n");
   printf ("+----------+---------------+\n");
   //формируем таблицу
   for (x = a; x <= b; x += h)
   {
     y = f(x);
     printf ("| %10lf | %12lf |\n", x, y);
   }
   //Завершаем формирование таблицы
   printf ("+----------+---------------+\n");
   return 0;
}
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
21.10.2010, 21:21     Вычисления значений функции #36
Теперь?(Ошыбка в 33 строке вместо ' надо " )
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
50
51
52
53
#include <stdio.h>
#include <math.h>
 
/*
y=f(x) <ГІГіГІ Гў ìåòîäè÷êå Г*Г* ГЇГЁГ±Г*Г*Г® áûëî Âû÷èñëåГ*ГЁГҐ ГґГіГ*êöèè,Г§Г*Г¤Г*Г*Г*îé ГўГ*ðèГ*Г*ГІГҐ,ГЇГ°Г*âèëüГ*Г® Гї ïîñòГ*ГўГЁГ« y=f(x) èëè Г*Г*äî ГўГ±ГҐ ГЅГІГЁ ГґГіГ*êöèè Åñëè x<-3,ГІГ® y=e^x+5
Åñëè -3<= 0, òî y=x/x^2 +1
Åñëè x>0, ГІГ® y=ïîä êîðГ*ГҐГ¬ x+1
*/
double f(double x)
{
if (x <= -3) return exp(x + 5);
if (x <= 0) return x / (x * x +1);
return sqrt (x+1);
}
 
int main()
{
double a, b, h;
double x, y;
 
//Ââîä Г§Г*Г*Г·ГҐГ*ГЁГ© ГЈГ°Г*Г*ГЁГ¶ äèГ*ГЇГ*çîГ*Г* ГЁ ГёГ*ГЈГ* èçìåГ*ГҐГ*ГЁГї X
while (1) //ГЎГҐГ±ГЄГ®Г*ГҐГ·Г*ûé öèêë ââîäГ*
{
printf ("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГї A, B, H:");
scanf ("%lf%lf" , &a, &b, &h);
if (a > b)
{
printf ("Âû ââåëè Г*ГҐГўГҐГ°Г*ûå Г§Г*Г*Г·ГҐГ*ГЁГї: a > b! !\n");
continue; // ïðîäîëæГ*ГҐГ¬ âûïîëГ*ГҐГ*ГЁГҐ öèêëГ* ââîäГ*
}
if (h <=0)
{
printf ("Âû ââåëè Г*ГҐГўГҐГ°Г*îå Г§Г*Г*Г·ГҐГ*ГЁГї: h <= 0! !\n");
continue; // ïðîäîëæГ*ГҐГ¬ âûïîëГ*ГҐГ*ГЁГҐ öèêëГ* ââîäГ*
}
//Ââîä êîððåêòåГ* - âûâîäèì ГЁГ§ öèêëГ*
break;
}
 
//Ôîðìèðóåì ГёГ*ГЇГЄГі ГІГ*áëèöû
printf ("+----------+---------------+\n");
printf ("+ X + Y +\n");
printf ("+----------+---------------+\n");
//ôîðìèðóåì ГІГ*áëèöó
for (x = a; x <= b; x += h)
{
y = f(x);
printf ("| %10lf | %12lf |\n", x, y);
}
//Г‡Г*âåðøГ*ГҐГ¬ ôîðìèðîâГ*Г*ГЁГҐ ГІГ*áëèöû
printf ("+----------+---------------+\n");
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2010, 21:32     Вычисления значений функции
Еще ссылки по теме:

Создать программу для вычисления значений функции - C++
Создать программу для вычисления значений функции согласно заданного варианта.

Реализовать рекурсивный алгоритм вычисления значений функции - C++
Где ошибка? #include&quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int f(unsigned int m, unsigned int n) { if...

Составить программу, для вычисления значений функции - C++
Составить программу, для вычисления значений функции у=(х2-2х+5)(х-3) при изменении аргумента х еще -8 до +6 с шагом 0.01.

Составить программу для вычисления значений функции F(x) - C++
Составить программу для вычисления значений функции F(x) на отрезке с шагом h. Результат представить в виде таблицы, первый столбец...

Составить программу для вычисления значений функции F(x) - C++
Составить программу для вычисления значений функции F(x) на отрезке с шагом h.где h=0,5 f(x)=7sin^2x-1\2 cosx Помогите Решить...


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

Или воспользуйтесь поиском по форуму:
zmei89
31 / 6 / 1
Регистрация: 10.09.2010
Сообщений: 835
21.10.2010, 21:32  [ТС]     Вычисления значений функции #37
Цитата Сообщение от Asics^ Посмотреть сообщение
Теперь?(Ошыбка в 33 строке вместо ' надо " )
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
50
51
52
53
#include <stdio.h>
#include <math.h>
 
/*
y=f(x) <ГІГіГІ Гў ìåòîäè÷êå Г*Г* ГЇГЁГ±Г*Г*Г® áûëî Âû÷èñëåГ*ГЁГҐ ГґГіГ*êöèè,Г§Г*Г¤Г*Г*Г*îé ГўГ*ðèГ*Г*ГІГҐ,ГЇГ°Г*âèëüГ*Г® Гї ïîñòГ*ГўГЁГ« y=f(x) èëè Г*Г*äî ГўГ±ГҐ ГЅГІГЁ ГґГіГ*êöèè Åñëè x<-3,ГІГ® y=e^x+5
Åñëè -3<= 0, òî y=x/x^2 +1
Åñëè x>0, ГІГ® y=ïîä êîðГ*ГҐГ¬ x+1
*/
double f(double x)
{
if (x <= -3) return exp(x + 5);
if (x <= 0) return x / (x * x +1);
return sqrt (x+1);
}
 
int main()
{
double a, b, h;
double x, y;
 
//Ââîä Г§Г*Г*Г·ГҐГ*ГЁГ© ГЈГ°Г*Г*ГЁГ¶ äèГ*ГЇГ*çîГ*Г* ГЁ ГёГ*ГЈГ* èçìåГ*ГҐГ*ГЁГї X
while (1) //ГЎГҐГ±ГЄГ®Г*ГҐГ·Г*ûé öèêë ââîäГ*
{
printf ("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГї A, B, H:");
scanf ("%lf%lf" , &a, &b, &h);
if (a > b)
{
printf ("Âû ââåëè Г*ГҐГўГҐГ°Г*ûå Г§Г*Г*Г·ГҐГ*ГЁГї: a > b! !\n");
continue; // ïðîäîëæГ*ГҐГ¬ âûïîëГ*ГҐГ*ГЁГҐ öèêëГ* ââîäГ*
}
if (h <=0)
{
printf ("Âû ââåëè Г*ГҐГўГҐГ°Г*îå Г§Г*Г*Г·ГҐГ*ГЁГї: h <= 0! !\n");
continue; // ïðîäîëæГ*ГҐГ¬ âûïîëГ*ГҐГ*ГЁГҐ öèêëГ* ââîäГ*
}
//Ââîä êîððåêòåГ* - âûâîäèì ГЁГ§ öèêëГ*
break;
}
 
//Ôîðìèðóåì ГёГ*ГЇГЄГі ГІГ*áëèöû
printf ("+----------+---------------+\n");
printf ("+ X + Y +\n");
printf ("+----------+---------------+\n");
//ôîðìèðóåì ГІГ*áëèöó
for (x = a; x <= b; x += h)
{
y = f(x);
printf ("| %10lf | %12lf |\n", x, y);
}
//Г‡Г*âåðøГ*ГҐГ¬ ôîðìèðîâГ*Г*ГЁГҐ ГІГ*áëèöû
printf ("+----------+---------------+\n");
return 0;
}
/*
y=f(x) <тут в методичке на писано было Вычисление функции,заданной варианте,правильно я поставил y=f(x) или надо все эти функции Если x<-3,то y=e^x+5
Если -3<= 0, то y=x/x^2 +1
Если x>0, то y=под корнем x+1 что именно тут нужно на писать?
*/
Yandex
Объявления
21.10.2010, 21:32     Вычисления значений функции
Ответ Создать тему
Опции темы

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