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

Code::blocks требует инициализатор после подключения header файла

13.04.2016, 23:07. Показов 1992. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
файл func.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef FUNCS_H_INCLUDED
#define FUNCS_H_INCLUDED
 
//Вычислить интеграл методом правых прямоугольников с критерием двойного пересчёта и точностью 1е-6
//Вычисление значения функции в точке - функция, интеграл - функция с функц параметром для передачи функции
//Процедуры в виде отдельного файла, результат в виде таблицы
//Параметры: s1 = 1, s2 = 10, ds = 3, t1 = 1, t2 = 3, dt = 1, a = 2.63, b = 3.1
// int(a,b) s*x^2*dx/(lg(x^t) + cos^2(x^(1/3)))
//Метод:
//x0 = a, xn = b, h = (b-a)/n, i = h * sum(i = 0, n)(f(xi))
 
double FuncIn (double x, double s, double t);
 
void Int (double a, double b, double(*FuncIn)(double, double, double),
 double &Int, int &k, double s, double t, double eps = 1e-6);
 
void Sum (double a, double b, double h, double &S, double(*FuncIn)(double, double, double), double s, double t);
 
 
#endif // FUNCS_H_INCLUDED
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <iomanip>
 
using namespace std;
 
#include "funcs.h"
 
int main()
{
    int k_iter = 0;
    double I, a = 2.63, b = 3.1, s = 1, s2 = 10, ds = 3, t = 1, t2 = 3, dt = 1;
    cout<<endl<<setw(2)<<"s"<<setw(2)<<"t"<<setw(10)<<I<<setw(5)<<"k_iter";
    for (int i = s; i <= s2; i += ds)
    {
        for (int j = t; j <= t2; j += dt)
        {
            Int(a, b, FuncIn, I, k_iter, s, t);
            cout<<endl<<setw(2)<<s<<setw(2)<<t<<setw(10)<<I<<setw(5)<<k_iter;
        }
    }
}
||=== Build: Debug in Example 55 (compiler: GNU GCC Compiler) ===|
D:\учёба\Прога\Example 55\main.cpp|17|error: expected initializer before 'int'|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

ничего не пойму, посмотрел в интернетах, вроде правильно написал
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.04.2016, 23:07
Ответы с готовыми решениями:

Code::blocks требует файл gnu/stubs-64.h, пробую первый раз
Code::btocks - kubuntu, установил нужные программы, пытаюсь скомпилировать простенький код для AVR, а code::btocks требует какой то файл -...

Error LNK2005 после подключения header-файла
Пока я не подключаю никаких .h -ников всё хорошо и замечательно, но как только я подключаю ашник, то сразу появляется вот такая штука ...

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

11
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,169
13.04.2016, 23:15
Во-первых,

Цитата Сообщение от Blackwing215b Посмотреть сообщение
файл func.h
и в то же время

Цитата Сообщение от Blackwing215b Посмотреть сообщение
#include "funcs.h"
Так func.h или funcs.h?

Во-вторых, все прекрасно компилируется GCC. Что-то вы нам недоговариваете...

Добавлено через 1 минуту
Цитата Сообщение от Blackwing215b Посмотреть сообщение
main.cpp|17|error: expected initializer before 'int'
Так а какая строка получается 17? В вашей 17 выше никакого int нет вообще.
0
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 6
13.04.2016, 23:46  [ТС]
Не, я тут опечатался, в коде написано правильно. Про строку - я тут лишние комментарии потёрь, строку исправить забыл. Тут это 8 строка
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,169
13.04.2016, 23:59
Цитата Сообщение от Blackwing215b Посмотреть сообщение
Тут это 8 строка
Скорее всего вы нас просто обманываете: ваш реальный funcs.h чем-то отличается от того, что вы тут привели.

Например, если забыть поставить ; после объявления функции Sum в funcs.h, то будет точно такая же ошибка. Однако в том, что вы тут привели, ; на месте.
1
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 6
14.04.2016, 00:08  [ТС]
Да, точно. У меня щас две копии проекта этого, перепутал, извиняйте. Но, тем не менее, всё равно не хочет компилить, говорит undefined reference to 'FuncIn(double, double, double)' и аналогично для Int в 17 строке
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,169
14.04.2016, 00:13
Цитата Сообщение от Blackwing215b Посмотреть сообщение
undefined reference
Так а где определения этих функций? В том коде, что вы привели, их нет - только объявления наличествуют. А остальной ваш код нам отсюда не видно.
0
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 6
14.04.2016, 00:17  [ТС]
funcs.cpp
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
#include <iostream>
#include <math.h>
 
double FuncIn(double x, double s, double t)
{
    return s*x*x/(log10(pow(x, t)) + cos(pow(x, 1/3))*cos(pow(x, 1/3)));
}
 
void Int(double a, double b, double(*FuncIn)(double, double, double),
 double &Int, int &k, double s, double t, double eps = 1e-6)
{
    int n = 10; k = 0;
    double h = (b-a)/n, S = 0; S1 = 0;
    Sum (a, b, h, S, FuncIn, s, t)
    do
    {
        S1 = S;
        h /= 2;
        Sum (a, b, h, S, FuncIn, s, t);
        k++;
    }
    while (fabs(S-S1) > eps);
    Int = S;
}
 
void Sum(double a, double b, double h, double &S, double(*FuncIn)(double, double, double), double s, double t)
{
    double x = a, sum = 0;
    while (x < b)
    {
        sum += (*FuncIn)(x, s, t);
        x += h;
    }
    S = h*sum;
}
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,169
14.04.2016, 00:23
Лучший ответ Сообщение было отмечено Blackwing215b как решение

Решение

Цитата Сообщение от Blackwing215b Посмотреть сообщение
funcs.cpp
Линкер не видит этого файла. Он у вас, скорее всего, просто не добавлен в проект.
1
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 6
14.04.2016, 00:27  [ТС]
Странно, я его создавал через код блокс как файл проекта... Добавил щас, заработало. Спасибо большое! Просто недавно начал с плюсами разбираться, первый раз подключал свой файл. Щас не заметил, что его не было в дереве проекта.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,169
14.04.2016, 00:36
Цитата Сообщение от Blackwing215b Посмотреть сообщение
заработало
Я порекомендовал бы еще включить funcs.h в funcs.cpp. При этом надо будет убрать аргумент по умолчанию ... = 1e-6 в определении функции Int (достаточно аргумента по умолчанию в объявлении этой функции).

Ваш funcs.cpp в его нынешнем виде вообще не компилируем, ибо функция Sum вызывается до первого своего объявления.
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
14.04.2016, 00:36
Цитата Сообщение от Blackwing215b Посмотреть сообщение
void Int (double a, double b, double(*FuncIn)(double, double, double),
*double &Int, int &k, double s, double t, double eps = 1e-6);
обратите внимание:
имя одного из аргументов функции совпадает с именем функции:
C++
1
void Int
C++
1
*double &Int
это не является ошибкой,
но так делать - очень плохая идея.

приводит к путанице.

далее, смотрим реализацию функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Int(double a, double b, double(*FuncIn)(double, double, double),
 double &Int, int &k, double s, double t, double eps = 1e-6)
{
    int n = 10; k = 0;
    double h = (b-a)/n, S = 0; S1 = 0;    //<---- что такое S1?
    Sum (a, b, h, S, FuncIn, s, t)
    do
    {
        S1 = S;
        h /= 2;
        Sum (a, b, h, S, FuncIn, s, t);
        k++;
    }
    while (fabs(S-S1) > eps);
    Int = S;
}
компилятор на вас обидился:
error: ‘S1’ was not declared in this scope
должно быть так:
C++
1
double h = (b-a)/n, S = 0, S1 =0;
в остальном код рабочий.
1
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 6
14.04.2016, 00:39  [ТС]
это всё мелочи, я их уже исправил) у меня запара была только с подключением файла, всё остальное - спешка и банальная невнимательность. S1 нужен для проверки точности
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2016, 00:39
Помогаю со студенческими работами здесь

Размер исполняемого файла при компиляции в Code Blocks
Привет всем.. Решил, что лучше поздно чем никогда и подумал - не вечно же кодить на VB6 - нужно как то пересаживаться на C++ ... установил...

Путь относительно проекта, а не текущего файла в Code::Blocks
Здравствуйте. Есть файловая структура проекта MyProject/ | +-- project/ | +-- codeblocks/ | +-- MyProject.cbp | ...

При создании файла заголовка в Code::Blocks вставляются какие-то команды препроцессору.
Вот что появляется при создании файла rectangle.hpp: #ifndef RECTANGLE_HPP_INCLUDED #define RECTANGLE_HPP_INCLUDED //Здесь...

Считать английский текст из файла и вывести слова, начинающиеся с гласных букв (как запустить в Code::Blocks)?
Эта програмка считывает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв #include &lt;iostream&gt; ...

Code::Blocks 16.01, wxWidgets 3.0.3, TDM-GCC. Что не так при запуске exe-файла полученного приложения? (+)
Долго бился над связкой Code::Blocks и wxWidgets. Наконец добился, получил первый исполняемый файл. Но при его запуске получаю сообщение,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru