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

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

Восстановить пароль Регистрация
 
Faraon9
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 4
11.12.2012, 23:09     Многофайловый проект: высчитать значение заданной функции с определенным интервалом #1
Прошу помощи!
учебная задача: требовалось написать программу, высчитывающую значение заданной функции с определенным интервалом.
в одном файе пограмму написал- все работало.
но требуется сделать многофайловый проект
я разбил на два файла .срр и один заголовочный:

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

В этом деле еще новичек, так что буду благодарен конкретным советам: где и что на что исправить/дописать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 23:09     Многофайловый проект: высчитать значение заданной функции с определенным интервалом
Посмотрите здесь:

Вычислить значение функции на интервале с определенным шагом C++
Высчитать значение выражения с приоритетами C++
C++ Вычислить значение заданной функции
Собрать многофайловый проект в Turbo C++ (ошибка Linker error Undefined symbol f (int) in module) C++
Многофайловый проект с функциями в классе C++
Значение функции на отрезке с определенным шагом C++
C++ Вычисление площади круга (многофайловый проект)
Многофайловый проект, избавить от засорения инициализации объектов функцию main C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,397
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";
}
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)))
иначе выдает ошибку "неопределенный идентификатор у".
с этим изменением све работает!
еще раз спасибо затакую масштабную помощь!
Yandex
Объявления
12.12.2012, 09:13     Многофайловый проект: высчитать значение заданной функции с определенным интервалом
Ответ Создать тему
Опции темы

Текущее время: 11:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru