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

в чём заключается ошибка 'f' cannot be used as a function?

09.12.2021, 14:27. Показов 1560. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в чём заключается ошибка 'f' cannot be used as a function?

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
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <cstdio>
 
 
using namespace std;
 
float trapezy(float a , float b , float n);
 
 
 
float trapezy(float a , float b , float n)
{
    float x;
    float f(1/x);
    double h = (b - a) / n;
    double ans = 0; 
    for (double i = a + h; i < b - h; i += h)
    {
    ans += f(i);
    }
    ans *= 2;
    ans += f(a) + f(b);
    ans *= h / 2;
    return ans;
 
}
int main()
{
    float a = 1; 
    float b = 7; 
    int n = 6; // Number of interval
    cout << trapezy(a, b, n);
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.12.2021, 14:27
Ответы с готовыми решениями:

Ошибка в чем заключается?
Где тут ошибка в алгоритме ?

В чем заключается ошибка?
https://www.cyberforum.ru/attachment.php?attachmentid=502778&amp;stc=1&amp;d=1426742401

В чем заключается ошибка?
//unit Word_checker; var cur_alfabet: arrayof char := ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',...

10
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
09.12.2021, 14:29
Цитата Сообщение от katia030204 Посмотреть сообщение
в чём заключается ошибка 'f' cannot be used as a function?
В том, что f в вашем коде - это не функция, но в 24 строке она почему-то используется как функция.
0
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 88
09.12.2021, 14:38  [ТС]
Спасибо поняла, как можно изменить код чтобы f получала функцию 1/х ?
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
09.12.2021, 14:41
Цитата Сообщение от katia030204 Посмотреть сообщение
как можно изменить код чтобы f получала функцию 1/х ?
Ваш код:
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
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <cstdio>
  
using namespace std;
 
float trapezy(float a , float b , float n);
 
float f(float x) 
{
    return 1 / x;
}
 
float trapezy(float a , float b , float n)
{
    double h = (b - a) / n;
    double ans = 0; 
    for (double i = a + h; i < b - h; i += h)
    {
        ans += f(i);
    }
    ans *= 2;
    ans += f(a) + f(b);
    ans *= h / 2;
    return ans;
 
}
 
int main()
{
    float a = 1; 
    float b = 7; 
    int n = 6; // Number of interval
    cout << trapezy(a, b, n);
    return 0;
}
0
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 88
09.12.2021, 14:53  [ТС]
Я так пробовала, но мне нужно сделать так чтобы мы не использовали дополнительных функций
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
09.12.2021, 14:58
Цитата Сообщение от katia030204 Посмотреть сообщение
но мне нужно сделать так чтобы мы не использовали дополнительных функций
И вы рассчитывали, что с извлеку эту информацию из вашей головы с помощью некой ментальной связи?
Озвучьте задание полностью, так, как оно было дано в оригинале.
0
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 88
09.12.2021, 15:05  [ТС]
Понятно, сможете ли мне помочь, чтобы можно было в этом коде реализовать алгоритм трапеций, чтобы он использовал данную функцию 1/x в main , без создания дополнительных функций
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
09.12.2021, 15:24
Цитата Сообщение от katia030204 Посмотреть сообщение
реализовать алгоритм трапеций, чтобы он использовал данную функцию 1/x в main , без создания дополнительных функций
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
#include <iostream>
#include <cmath>
 
template <typename F>
double trapz(double a, double b, int n, F f) 
{
    double w = (b - a) / n;
 
    double ans = f(a) + f(b);
 
    for(int i = 1; i < n; ++i)
    {
        ans += 2 * f(a + i * w);
    }
    return ans * w / 2;
}
 
int main()
{
    double a = 1; 
    double b = 7; 
    int n = 6; // Number of interval
    
    std::cout << trapz(a, b, n, [](double x) { return 1/x; });
}
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4573 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
09.12.2021, 15:47
katia030204, Вы, наверное, хотели что-тотакое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
float f(float x)
{
    return (1 / x);
}
 
float trapezy(float a, float b, float n)
{
    float x;
 
    double h = (b - a) / n;
    double ans = 0;
    for (double i = a + h; i < b - h; i += h)
    {
        ans += f(i);
    }
    ans *= 2;
    ans += f(a) + f(b);
    ans *= h / 2;
    return ans;
 
}
Добавлено через 4 минуты
Раз без создания дополнительных функций, то вариант DrOffset с лямбда-функцией даже очень годится...

Добавлено через 5 минут
DrOffset, почему int w = (b - a) / n;, а не double
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
09.12.2021, 15:58
liv, потому что на экране телефона не все умещается
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4573 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
09.12.2021, 16:01
DrOffset, изменил на double
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2021, 16:01
Помогаю со студенческими работами здесь

В чем заключается ошибка ?
procedure TForm1.Button1Click(Sender: TObject); var i,j : integer; begin randomize; for i:=0 to form1.StringGrid1.ColCount-1 do ...

В чем заключается ошибка ?
Сколько существует различных наборов значений логических переменных x1, x2, ... x10, которые удовлетворяют всем перечисленным ниже...

В чем заключается ошибка?
unit Unit46; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, ...

В чем заключается ошибка в коде?
Дана последовательность вещественных чисел. Из неё необходимо выбрать несколько подряд идущих чисел так, чтобы каждое следующее число...

В чём заключается моя ошибка?
#include &quot;iostream&quot; using namespace std; int main () { int n,a,b,c; //a-количество часов //b-количество минут ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru