0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
1

Вычислить значение функции

19.11.2019, 14:50. Показов 1786. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую.. Помогите решить задачу.
Напишите программу, которая реализует указанную выше функцию и вычисляет ее значения для некоторого набора значений переменной x.



пишет ошибка компиляции.. хотя я у себя запускаю и выводится ответ.. Но ответ по числам немного не сходится.. я думаю это что то с переменной е.
вот входные данные и результат работы для проверки:
C++
1
2
3
4
5
6
7
8
9
10
Входные данные
1
2.3
2.56
7.123456
Результат работы
10.731685
31.926086
40.762019
3725.231017
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <cmath>
#include <conio.h>
#include <iostream>
#include <float.h>
#include <stdio.h>
#define e 2.7
 
using namespace std;
int main()
{
    double F,x;
    //const double e = 2;
    double arr[4];
    
    for(int i=0;i<4;i++){
        cin>>x;
        F=sin(x)+sqrt(log(4)*3*x)+abs(3*pow(e,x));
        arr[i]=F;    }
   for(int i=0;i<4;i++){  
       printf("%.6f\n", arr[i]);
 }
    return 0;
}
Миниатюры
Вычислить значение функции  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2019, 14:50
Ответы с готовыми решениями:

Вычислить значение функции (значение переменной Х передается в качестве параметра функции)
Написать функцию, которая возвращает вычисленное значение функции. Значение переменной Х передается...

Вычислить значение аргумента x, значение функции y, max и min функций
где диапазон изменения аргумента -2 &lt;= x &lt;=3 , шаг 0,1

Вычислить где значение функции меняет знак(отделение корней функции)
Имеется следующая функция f(x)=sqrt(4*x+7)-3*cos(x) Нужно написать программу, где будет выводится...

Вычислить значение функции a = b ^2 sin (b), причем b изменяется от 0,9 до 1,7 с шагом 0,2. Найти среднее значение разности между элементами
Доброго времени суток ! Помогите решить задачу ! Нужно написать в цикле с постусловием следующее...

30
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
19.11.2019, 22:09  [ТС] 2
Неужели никто не подскажет ?
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
20.11.2019, 00:42 3
Arlekin_s, код ошибочен, посмотрите как осуществляется переход на другое основание логарифма.
кроме того не имеет смысла брать модуль от ex, даже умноженного на 3 (3*ex всегда положительно). квадратными скобками обозначается не модуль, а целая часть.

на скрине ошибка в формуле - единичку нужно прибавить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <iomanip>
#include <cmath> 
using namespace std;
 
int main()
{
    const int n=4;    
    double x[n]={1, 2.3, 2.56, 7.123456}, F;
    
    for (int i = 0; i < n; i++)
    {        
        F=1.+sin(x[i])+sqrt(log(3.*x[i])/log(4))+int(3.*exp(x[i]));
        cout << setprecision(6) << fixed<< F << "\n";
    }
 
system("pause");
return 0;
}
OUTPUT:
10.731685
31.926086
40.762019
3725.231017
или если хотите применять формулу как она есть, отнимите единичку от проверочных результатов
1
2456 / 1061 / 481
Регистрация: 17.11.2018
Сообщений: 2,740
20.11.2019, 01:26 4
Цитата Сообщение от Yetty Посмотреть сообщение
на скрине ошибка в формуле - единичку нужно прибавить
Yetty, я думаю, что ошибки нет. Просто округлить нужно до большего целого.
C++
1
 + ceil( 3. * exp( x[i] ) );
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
20.11.2019, 02:02 5
analogov net, посмотрел всё же квадратные скобки это операция взятия целой части.
0
2456 / 1061 / 481
Регистрация: 17.11.2018
Сообщений: 2,740
20.11.2019, 02:03 6
Цитата Сообщение от Yetty Посмотреть сообщение
с ответом сходится, но правильно ли использовать ceil ?
Yetty, если исходить из ответа, который предоставил ТС, то да. А откуда он вытащил эти ответы мы не знаем. Наверное, ему их дал тот, кто в своих вычислениях использовал ceil. Но, если нужно именно до ближайшего целого(что вполне логично), то может быть нужно использовать round, например. Или какую-нибудь другую фичу...
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
20.11.2019, 02:13 7
analogov net, применять ceil для квадратных скобок неправильно.
0
2456 / 1061 / 481
Регистрация: 17.11.2018
Сообщений: 2,740
20.11.2019, 02:20 8
Цитата Сообщение от Yetty Посмотреть сообщение
применять ceil для квадратных скобок неправильно.
Yetty, вполне возможно, я же не спорю. Но во всяком случае, мне кажется, что это логичнее, чем приписывать к формуле единичку, которой там нет. А там, пусть ТС решает...
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
20.11.2019, 02:37 9
analogov net, если Вы не против, давайте чтобы не путать ТС остановимся на следующем: формулу оставляем без изменений, в коде убираем 1 и оставляем int, ответы уменьшаем на 1:
9.731685
30.926086
39.762019
3724.231017
0
2456 / 1061 / 481
Регистрация: 17.11.2018
Сообщений: 2,740
20.11.2019, 08:27 10
Цитата Сообщение от Yetty Посмотреть сообщение
давайте чтобы не путать ТС остановимся на следующем:
Yetty, а я разве против? Это всего лишь было моё мнение...
0
2456 / 1061 / 481
Регистрация: 17.11.2018
Сообщений: 2,740
20.11.2019, 10:28 11
Yetty, оказывается, то, что изображено на скрине, это не квадратные скобки, а специальные, обозначающие округление числа до ближайшего большего целого. Так что ceil вполне подходит...
Из википедии:
Вычислить значение функции
1
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
20.11.2019, 10:59  [ТС] 12
У нас в институте есть модуль который это все проверяет.. основан он вот на этом https://ejudge.ru/ какие он туда числа подставляет и как он его проверяет.. известно только ему одному... я поправил задачу под нужды условия.. (там надо сначала ввести числа) получилось вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <iomanip>
#include <cmath> 
using namespace std;
 
int main()
{
    const int n=4;    
    //double x[n]={1, 2.3, 2.56, 7.123456}, F;
    double x[n], F;
    for (int i = 0; i < n; i++)
    {        
        cin>>x[i];
        F=sin(x[i])+sqrt(log(3.*x[i])/log(4))++ ceil( 3. * exp( x[i] ) );
        x[i]=F;
        
    }
 
    for (int i = 0; i < n; i++)
        cout << setprecision(6) << fixed<< x[i] << "\n";
return 0;
}
эта задача вылетает с "Неправильный ответ" .. на второй проверке
Миниатюры
Вычислить значение функции  
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
20.11.2019, 11:04  [ТС] 13
И еще такой вопрос.. что при умножение означает запись 3. * ... (три точка)
0
4063 / 3317 / 924
Регистрация: 25.03.2012
Сообщений: 12,490
Записей в блоге: 1
20.11.2019, 11:09 14
Arlekin_s, а что не так с точкой? это знак десятичной дроби.
Это разновидность дроби, которая представляет собой способ представления действительных чисел.
После точки идёт дробная часть числа. (иногда в жизни для разделения целой и дробной частей используется запятая, но не в большинстве языков программирования)
Представление действительных чисел с помощью десятичных дробей является обобщением записи целых чисел в десятичной системе счисления. В представлении целого числа в виде десятичной дроби отсутствуют цифры после запятой.
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
20.11.2019, 11:14  [ТС] 15
Цитата Сообщение от Kuzia domovenok
Arlekin_s, а что не так с точкой? это знак десятичной дроби.
Это разновидность дроби, которая представляет собой способ представления действительных чисел.
После точки идёт дробная часть числа. (иногда в жизни для разделения целой и дробной частей используется запятая, но не в большинстве языков программирования)
Представление действительных чисел с помощью десятичных дробей является обобщением записи целых чисел в десятичной системе счисления. В представлении целого числа в виде десятичной дроби отсутствуют цифры после запятой.
Может быть Вы меня немного не поняли.. я не говорил что с ней что то не так.. я спросил для чего она нужна... потому что я такую запись вижу впервые.. и есть ли разница между записью 3 * x и 3. * x
0
4063 / 3317 / 924
Регистрация: 25.03.2012
Сообщений: 12,490
Записей в блоге: 1
20.11.2019, 11:20 16
Arlekin_s, есть. первая запись это целая тройка умножить на икс, вторая - это три целых ноль десятых умножить на икс. Вы не знаете что такое 3.0 ?
Разница может проявляться по-разному. Классический пример - деление.
C++
1
2
3
int x=3;
cout<< 3*x/2 <<endl;//вывод 4
cout<< 3.0*x/2 <<endl;//вывод 4.5
1
2456 / 1061 / 481
Регистрация: 17.11.2018
Сообщений: 2,740
20.11.2019, 13:14 17
Цитата Сообщение от Arlekin_s Посмотреть сообщение
эта задача вылетает с "Неправильный ответ"
Arlekin_s, у тебя в 14 строке два плюса появились. Один плюс почикай...
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
20.11.2019, 13:56 18
Arlekin_s, если числа Вы вводите с клавиатуры, их и не нужно загонять в массив
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <iomanip>
#include <cmath> 
using namespace std;
 
int main()
{
    const int n=4;    
    double x, F[n];
    
    for (int i = 0; i < n; i++)
    {        
        cin >> x;
        F[i]=sin(x)+sqrt(log(3.*x)/log(4))+ceil(3.*exp(x));        
    }
 
    for (int i = 0; i < n; i++)
        cout << setprecision(6) << fixed << F[i] << "\n";
        
system("pause");
return 0;
}
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
20.11.2019, 14:54  [ТС] 19
Ничего не поменялось (
Миниатюры
Вычислить значение функции  
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
20.11.2019, 14:56  [ТС] 20
Вот условие целеком
Миниатюры
Вычислить значение функции  
0
20.11.2019, 14:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2019, 14:56
Помогаю со студенческими работами здесь

Вычислить значение функции аргумент которой вычисляется из другой кусочно заданной функции
Решите программу то я не знаю как:hysteric: Вычислить значение y в зависимости от выбранной...

Дано разложение функции в ряд Тейлора. Вычислить для значения x и точности Eps точное значение функции
Дано разложение функции y(x) в ряд Тейлора. Составить программу, вычисляющую для значения x и...

Функции: вычислить значение сложной (составной) функции
помогите,пожалуйста!! 1)Y= Max(a,b) если х=0 y=Min(a,b) если...

В главной функции main () ввести входные данные, и вызвав собственные функции, вычислить значение выражения и вывести результаты
В главной функции main () ввести входные данные, и вызвав собственные функции, вычислить значение...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru