Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Faraon9
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 4
#1

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

11.12.2012, 23:09. Просмотров 652. Ответов 2
Метки нет (Все метки)

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

head.h:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef _HEAD_H 
#define _HEAD_H
#include <iostream>
#include <locale>
#include <math.h>
 
using namespace std;
 
    extern double a, x, y;
    extern double Xstart;
    extern double Xend;
    extern double dx;
double F(double);
 
 
#endif
func.cpp:


C++
1
2
3
4
5
6
7
8
#include "head.h"
 
double F(double y)
{
    y=0.7*(3*a*x+1/(a*log10(x))); 
    
    return y;
}
code1.cpp:



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "head.h"
 
    
    double Xstart=10.00, Xend=19.00, dx=1.50;
void main ()
{  
        setlocale (LC_ALL,"Russian");
    cout << "Для рассчета функции вида y=0,7(3ax+1/a*lnx) введите перемнную а: \n";
    cin >> a;
    cout << "\tx\t|y=F(x)\n"; 
    for(x=Xstart; x<=Xend; x++)
        {
             F(y);
            cout <<"\t"<< x <<"\t|"<<y<<"\n";
        }
}
получаю ошибки:
Ошибка 1 error LNK2001: неразрешенный внешний символ ""double a" (?a@@3NA)"
D:\C++\LAB1ttp\osnoma\code1.obj
Ошибка 2 error LNK2001: неразрешенный внешний символ ""double a" (?a@@3NA)"
D:\C++\LAB1ttp\osnoma\func.obj
Ошибка 3 error LNK2001: неразрешенный внешний символ ""double x" (?x@@3NA)"
D:\C++\LAB1ttp\osnoma\code1.obj
Ошибка 4 error LNK2001: неразрешенный внешний символ ""double x" (?x@@3NA)"
D:\C++\LAB1ttp\osnoma\func.obj
Ошибка 5 error LNK2001: неразрешенный внешний символ ""double y" (?y@@3NA)"
D:\C++\LAB1ttp\osnoma\code1.obj

при убирании из файле head.h слова extern от переменных "a", "x", "y" компилятор выдает следующие ошибки:
Ошибка 1 error LNK2005: "double a" (?a@@3NA) уже определен в code1.obj D:\C++\LAB1ttp\osnoma\func.obj
Ошибка 2 error LNK2005: "double x" (?x@@3NA) уже определен в code1.obj D:\C++\LAB1ttp\osnoma\func.obj
Ошибка 3 error LNK2005: "double y" (?y@@3NA) уже определен в code1.obj D:\C++\LAB1ttp\osnoma\func.obj

В этом деле еще новичек, так что буду благодарен конкретным советам: где и что на что исправить/дописать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 23:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Многофайловый проект: высчитать значение заданной функции с определенным интервалом (C++):

Многофайловый проект - C++
Здравия всем! Опять зеленый метушится! Перед, непосредственно, главным вопросом, хочу показать то, что мне известно (если я не...

Многофайловый проект в VS - C++
Всем привет. Добавил новый элемент .cpp в свой проект, в котором уже есть другой .cpp, и компилятор отказывается компилировать новый...

Многофайловый проект - C++
Собственно вопрос, скорее, к работе devc++ Ну вот захотел для &quot;завтраки&quot; собрать МП из 2 файлов 1 - main.cpp (ну как иначе) #include...

Многофайловый проект - C++
1й файл main.cpp #include &lt;iostream&gt; #include &lt;locale&gt; #include &lt;Windows.h&gt; #include &quot;My_Struct.h&quot; using namespace std; ...

Многофайловый проект - C++
Таки всеми правдами и неправдами создал из 3 файлов &quot;тестик&quot;. И собственно не хочет это дело компилировать. Где я тут напортачил ? :( 1.)...

Разбиение на многофайловый проект - C++
Имеется вот такой кодик, надо разбить на многофайловый, где: 1.main в одном *.cpp 2.остальные функции в другом *.cpp 3.ну и структура...

2
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4612 / 694
Регистрация: 29.11.2010
Сообщений: 12,626
12.12.2012, 00:41 #2
head.h:
C++
1
2
3
4
5
6
#ifndef _HEAD_H 
#define _HEAD_H
 
double F(double a, double x); 
 
#endif
head.cpp:
C++
1
2
3
4
5
6
7
#include <cmath>
#include "head.h"
 
double F(double a, double x)
{
    return y=0.7*(3*a*x+1/(a*log10(x))); 
}
code1.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <cmath>
#include <iostream>
#include <clocale>
#include "head.h"
using namespace std;
    
 
int main ()
{
    double Xstart=10.00, Xend=19.00, dx=1.50, a;  
    setlocale (LC_ALL, "Russian");
    cout << "Для рассчета функции вида y=0,7(3ax+1/a*lnx) введите перемнную а: \n";
    cin >> a;
    cout << "\tx\t|y=F(x)\n"; 
    for(double x=Xstart; x<=Xend; x+=dx)
         cout << "\t" << x << "\t|"<< F(a, x) << "\n";
}
1
Faraon9
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 4
12.12.2012, 09:13  [ТС] #3
спасибо большое.
все получилось, только вот изменил:
C++
1
return 0.7*(3*a*x+1/(a*log10(x)))
иначе выдает ошибку "неопределенный идентификатор у".
с этим изменением све работает!
еще раз спасибо затакую масштабную помощь!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 09:13
Привет! Вот еще темы с ответами:

VS 2015, многофайловый проект - C++
Всем привет. У меня возник вопрос по VS 2015 Community. Всегда пользовался Dev C++ но вдруг на 3 курсе препод сказал чтобы перешли на...

Многофайловый проект с функциями в классе - C++
создаю класс в ней функцию и запихиваю все программу, все работает. Но мне нужно сделать несколько функций я разбиваю программу создаю...

Вычисление площади круга (многофайловый проект) - C++
Реализуйте программу по расчету площади окружности из предыдущей работы в многофайловом варианте, в котором в функции main...

Как правильно организовать многофайловый проект? - C++
Добрый вечер дорогой форум. Сразу скажу я новичек. Пишу курсовик, сроки, как всегда поджимают (семья, ремонт и две работы)... Но это...


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

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

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