Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.07.2009, 22:21   #1
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию помогите с модульным методом программирования(функции в отдельных файлах)

я написал заголовочный файл
там создал прототипы функций которые вызываются в самой проге
написал определения функций в отдельном исходном файле
#include "moif.h"
написал
вот такие ошибки
2 In file included from C:\Dev-Cpp\Untitled2.cpp (ссылается на строку
#include "moif.h")
еще пишет что не может найти функции
написанные в исходнике
pavelstraut вне форума
Старый 18.07.2009, 22:36   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Код в #includ'ов в студию
psycho-coder вне форума
Старый 18.07.2009, 22:41   #3
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

это в заголовочном
Код:
#ifndef MOIF_H
 #define MOIF_H
   float srznach(int numb1,int numb2,int numb3);
float srznach(int numb1,int numb2);
void vvod(int& numb1,int& numb2);
void vvod(int& numb1,int& numb2,int& numb3);

#endif
это в исходнике где функции определены
Код:
#include <iostream.h>
#include "moif.h"
#include <conio.h>
float srznach(int numb1,int numb2,int numb3)
{
      int srz;
      srz=(numb1+numb2+numb3)/3;
      return srz;
}
float srznach(int numb1,int numb2)
{
      int srz;
      srz=(numb1+numb2)/2;
      return srz;
}
void vvod(int& numb1,int& numb2)
{
     cin>>numb1;
     cin>>numb2;
}
void vvod(int& numb1,int& numb2,int& numb3)
{
     cin>>numb1;
     cin>>numb2;
     cin>>numb3;
}

Последний раз редактировалось MaTBeu; 18.07.2009 в 22:59.
pavelstraut вне форума
Старый 18.07.2009, 23:06   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

У меня Ваш код скомпилился и работает нормально. Странно. Смотрите что с путями.
psycho-coder вне форума
Старый 18.07.2009, 23:12   #5
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

где посмотреть?
как код скомпилился если нет файла где фунцкия которая вызывает все остальные(main)
pavelstraut вне форума
Старый 18.07.2009, 23:19   #6
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Вот как у меня
Код:
// File1.cpp
#include "moif.cpp"

using namespace std;

int main()
{
  int i1, i2;
  vvod(i1, i2);
  float res = srznach(i1, i2);
  cout << i1 << " " << i2 << endl;
  cout << res << endl;

  getch();
  return 0;
}
Код:
// moif.h
#ifndef MOIF_H
#define MOIF_H
float srznach(int numb1,int numb2,int numb3);
float srznach(int numb1,int numb2);
void vvod(int& numb1,int& numb2);
void vvod(int& numb1,int& numb2,int& numb3);

#endif
Код:
// moif.cpp
#include <iostream.h>
#include "moif.h"
#include <conio.h>
float srznach(int numb1,int numb2,int numb3)
{
int srz;
srz=(numb1+numb2+numb3)/3;
return srz;
}
float srznach(int numb1,int numb2)
{
int srz;
srz=(numb1+numb2)/2;
return srz;
}
void vvod(int& numb1,int& numb2)
{
cin>>numb1;
cin>>numb2;
}
void vvod(int& numb1,int& numb2,int& numb3)
{
cin>>numb1;
cin>>numb2;
cin>>numb3;
}
Цитата:
как код скомпилился если нет файла где фунцкия которая вызывает все остальные(main)
Это Вы, что без int main() {} собирали прогу?
psycho-coder вне форума
Старый 19.07.2009, 09:28   #7
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

нет
я вам не написал же первый файл(где она описана)
теперь понял -вы сами написали
у меня все так же
не запускается

вот мой код в главном файле
Код:
#include <iostream.h>
#include "moif.h"
#include <conio.h>
int main()
{
    int numb1,numb2,numb3,resh;
    cout<<"сколько чисел хотите ввести(2 или 3)";
    cin>>resh;
    if(resh==2)
    {
               vvod(numb1,numb2);
     cout<<"среднее значение для "<<resh<<" чисел равно"<<srznach(numb1,numb2);
}
else if(resh==3)
 {
               vvod(numb1,numb2,numb3);
cout<<"среднее значение для "<<resh<<" чисел равно"<<srznach(numb1,numb2,numb3);
}
else
cout<<"ничо";
getch();
return 0;
}
он не может найти функции почему то

Последний раз редактировалось Sazary; 19.07.2009 в 17:22.
pavelstraut вне форума
Старый 19.07.2009, 17:20   #8
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Код:
#include <iostream.h>
#include "moif.h"
#include <conio.h>
Еще бы у Вас компилятор находил функции.
У Вас подключен файл с прототипами функций, а файла с реализацией этих функций нет

Внимательно посмотрите мой пост

Код:
// moif.h
#ifndef MOIF_H
#define MOIF_H
float srznach(int numb1,int numb2,int numb3);
float srznach(int numb1,int numb2);
void vvod(int& numb1,int& numb2);
void vvod(int& numb1,int& numb2,int& numb3);

#endif
Код:
// moif.cpp
#include <iostream.h>
#include "moif.h"
#include <conio.h>
Код:
// File1.cpp
#include "moif.cpp"
И еще:
#include <iostream>
и
#include <conio.h>
Можно не объявлять в главном модуле, т.к. они уже объявлены в moif.cpp
psycho-coder вне форума
Старый 20.07.2009, 08:20   #9
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

тепеь все запускается
другую прогу пишу этим же методом почему то функция cout из главного файла нормально русский выводит а из вспомогательного нет(иероглифы)
pavelstraut вне форума
Старый 20.07.2009, 08:30   #10
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

я не использовал для вывода русских букв никаких функций.
у меня просто заплатка стоит на dev c++
если я в вспомогательный файл(где определены функции) вставляю функцию main и вызываю функции оттуда ,не касаясь первого файла,
то русский выводится нормально а если без функции main в вспомогательном файле то не работает
pavelstraut вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Аппроксимация функции методом наименьших квадратов. 3abeel Фриланс 17 13.07.2009 09:21
Лаба в Паскале!Аппроксимация функции методом наименьших квадратов! Weltkind Фриланс 1 16.06.2009 17:01
Разработка программы построения графиков функции в системе программирования Турбо-Паскаль S-Alex Помощь студентам 5 18.05.2009 20:13
Макрос для сохранения листов в отдельных файлах Neo007 Microsoft Office Excel 2 22.10.2008 18:16
Помогите с вопросами о файлах Дима82 Помощь студентам 5 26.05.2008 19:49