Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: помогите с программой  (Прочитано 2429 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
помогите с программой
« : 29 Январь 2009, 12:01:12 »
при запусске этой программы
#include <iostream>
#include <iomanip>

#include <iostream>

#include <math.h>
#include <unistd.h>
#define T (24*60*30ul)      //Период Моделирования
#define Cmax 100            //Максимальное число одновременных подключений
#define RON discrete uniform() //Длительность Подключений
#define RIN uniform (1,10)  //Интервал Времени Между подключениями
#define RPT uniform (100,1000)  //Энергопотребления Подключения
#define C (125*125*125*125*5)
#define tax (8.0/10)
using namespace std;
/*====================================*/


float rand(void)
{
 static unsigned long int u=C;

 u*=C;

 return float (u)/0xFFFFFFFF;
}

/*====================================*/
float discrete (void)

 float x[8]={20,40,60,100};
 float P[8]={0 ,1; 0,2;0,3; 0,4},S,r;
 int k=0;
 S=P[0];
 r=rand();
  while (S<=r)
 {
   k++;
   S+=P[k];
 }
 return x[k];
}

/*====================================*/

float gauss (float m,float sigma)
{
return sqrt(-2*log(rand()))*sin(2*M_PI*rand())*sigma+m;
}

/*====================================*/
float uniform (float a, float b)
{
return rand()*(b-a)+a;
}
/*====================================*/
int main (void)
{
 
  unsigned long int i,j,l,nEvent,ton[Cmax],tin,nOtkaz,t_on;
  float nagr, pot[Cmax],nPotrTotal,potr,MinEnergiya,MaxEnergiya;;                           // Инициализация

  nEvent=0; nPotrTotal=0; nOtkaz=0; t_on=0; potr=0;
  for(i=0;i<Cmax;i++) { ton[i]=-1; pot[i]=0; }
  MinEnergiya=ULONG_MAX,MaxEnergiya=0;

  tin=RIN;

  // Основной Цыкл
  for(i=0;i<T;i++)
  {
     // Обработка
     for(j=0;j<Cmax;j++) if(ton[j]==i)
     {
       nEvent++;
       ton[j]=-1;

     }

     // Обработка очередного входного сообщения

     if(i==tin)
     {
  j=0; while((ton[j]!=-1) && (j<Cmax)) j++;
  if(j!=Cmax)
  {
      t_on=RON;
      ton[j]=t_on+i;

      potr=RPT;
      nPotrTotal+=potr*t_on/60;

      pot[j]=potr;

      // Определения Пиковой и Минимальной нагрузки
      nagr=0;
      for(l=0;l<Cmax;l++) nagr+=pot[l];

      if(nagr>MaxEnergiya)  MaxEnergiya=nagr;
      if(nagr<MinEnergiya)  MinEnergiya=nagr;

  } else nOtkaz++;

  tin=RIN+i;
      }
   }

   std::cout<<"........................ Rezultati modelirovaniya ..............................";
   std::cout<<"Obshiy ob'em potrebleniya energii za period modelirovaniya:"<<nPotrTotal/1000<<" kVt"<<std::endl;
   std::cout<<"2. Obshiy ob'em potrebleniya energii za period modelirovaniya \n   v stoimostnom viragenii :  "<<nPotrTotal/1000*tax<<" rub"<<std::endl;
   std::cout<<"3. Chislo obrabotannih trebovaniy: "<<nEvent<<std::endl;
   std::cout<<"4. Chislo otkazov: "<<nOtkaz<<std::endl;
   std::cout<<"5. Pikovaya nagruzka v sisteme:  "<<MaxEnergiya/1000<<" kVt"<<std::endl;
   std::cout<<"6. Minimalnaya nagruzka v sisteme:  "<<MinEnergiya<<" Vt"<<std::endl;
   //getch() переход;
}
выходят такие ошибки
3.cpp:29: ошибка: expected initializer before ‘float’
3.cpp:30: ошибка: expected `}' before ‘;’ token
3.cpp:30: ошибка: expected unqualified-id before numeric constant
3.cpp:30: ошибка: expected unqualified-id before numeric constant
3.cpp:30: ошибка: expected unqualified-id before numeric constant
3.cpp:30: ошибка: expected declaration before ‘}’ token
« Последнее редактирование: 29 Январь 2009, 12:42:05 от Sharabdin »

burgua

  • Гость
Re: помогите с программой
« Ответ #1 : 29 Январь 2009, 12:18:18 »
1
#include <iostream> дважды?
2.
Цитировать
float discrete (void)

 float x[8]={20,40,6
Кто будет { ставить?
3
Дабы избежать таких ошибок, используй IDE.

4.
Для кода есть тэг code, делает текст на порядок читабельнее.
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 29 Январь 2009, 12:23:32 от burgua »

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
Re: помогите с программой
« Ответ #2 : 29 Январь 2009, 12:22:33 »
не понял? что такое ide я новичек и в c++ тоже плохо соображая объясните пожалуйста

burgua

  • Гость
Re: помогите с программой
« Ответ #3 : 29 Январь 2009, 12:24:45 »
ok.

Цитировать
float dicrete void () {
    float x[8]={20,40,6

IDE = http://ru.wikipedia.org/wiki/Среда_разработки_программного_обеспечения

P.S.
А вообще, есть еще стандартная функция random(). Не помню где подключатся, но найти не трудно.
« Последнее редактирование: 29 Январь 2009, 12:29:09 от burgua »

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
Re: помогите с программой
« Ответ #4 : 29 Январь 2009, 12:29:51 »
сделал как вы сказали теперь одна ошибка

3.cpp:26: ошибка: expected initializer before ‘void’

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
Re: помогите с программой
« Ответ #5 : 29 Январь 2009, 12:36:34 »
вот изначальная программа я ее хотел запустить на g++ :

# include <iostream.h>
# include <math.h>
# include <conio.h>
# include <values.h>
#include <limits.h>
# define T (24*60*30ul)      //period modelirovaniya
# define Cmax 100            //max. chislo odnovr. podkl.
# define RON discrete uniform() //dlit. podkl.
# define RIN uniform (1,10)  //interval vremeni mejdu podklucheniyami
# define RPT uniform (100,1000)  //energopotreblenie podklucheniy
# define C (125*125*125*125*5)
# define tax (8.0/10)

/*====================================*/


float rand(void)
{
 static unsigned long int u=C;

 u*=C;

 return float (u)/0xFFFFFFFF;
}

/*====================================*/
float discrete (void)
{
 float x[8]={20,40,60,100};
 float P[8]={0 ,1; 0,2;0,3; 0,4},S,r;
 int k=0;
 S=P[0];
 r=rand();
  while (S<=r)
 {
   k++;
   S+=P[k];
 }
 return x[k];
}

/*====================================*/

float gauss (float m,float sigma)
{
return sqrt(-2*log(rand()))*sin(2*M_PI*rand())*sigma+m;
}

/*====================================*/
float uniform (float a, float b)
{
return rand()*(b-a)+a;
}
/*====================================*/
void main (void)
{
 
  unsigned long int i,j,l,nEvent,ton[Cmax],tin,nOtkaz,t_on;
  float nagr, pot[Cmax],nPotrTotal,potr,MinEnergiya,MaxEnergiya;;                           // inizializaciya

  nEvent=0; nPotrTotal=0; nOtkaz=0; t_on=0; potr=0;
  for(i=0;i<Cmax;i++) { ton[i]=-1; pot[i]=0; }
  MinEnergiya=ULONG_MAX,MaxEnergiya=0;

  tin=RIN;

  // osnovnoy cikl
  for(i=0;i<T;i++)
  {
     // obrabotka zavershenniya
     for(j=0;j<Cmax;j++) if(ton[j]==i)
     {
       nEvent++;
       ton[j]=-1;

     }

     // obrabotka ocherednogo vhod. sob

     if(i==tin)
     {
  j=0; while((ton[j]!=-1) && (j<Cmax)) j++;
  if(j!=Cmax)
  {
      t_on=RON;
      ton[j]=t_on+i;

      potr=RPT;
      nPotrTotal+=potr*t_on/60;

      pot[j]=potr;

      // opredelyaem pikovyu i minimalnyu nagruzki
      nagr=0;
      for(l=0;l<Cmax;l++) nagr+=pot[l];

      if(nagr>MaxEnergiya)  MaxEnergiya=nagr;
      if(nagr<MinEnergiya)  MinEnergiya=nagr;

  } else nOtkaz++;

  tin=RIN+i;
      }
   }

   cout<<"........................ Rezultati modelirovaniya ..............................";
   cout<<"Obshiy ob'em potrebleniya energii za period modelirovaniya:"<<nPotrTotal/1000<<" kVt"<<endl;
   cout<<"2. Obshiy ob'em potrebleniya energii za period modelirovaniya \n   v stoimostnom viragenii :  "<<nPotrTotal/1000*tax<<" rub"<<endl;
   cout<<"3. Chislo obrabotannih trebovaniy: "<<nEvent<<endl;
   cout<<"4. Chislo otkazov: "<<nOtkaz<<endl;
   cout<<"5. Pikovaya nagruzka v sisteme:  "<<MaxEnergiya/1000<<" kVt"<<endl;
   cout<<"6. Minimalnaya nagruzka v sisteme:  "<<MinEnergiya<<" Vt"<<endl;
   //getch();
}


Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
Re: помогите с программой
« Ответ #6 : 29 Январь 2009, 12:50:18 »
Это Имитационное моделирование локальной системы энергоснабжения цель одна выходные данные вывести и построить на exsel график изменений

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
Re: помогите с программой
« Ответ #7 : 29 Январь 2009, 12:51:37 »
программа работает на Borland C+ спасибо за помощь что нибудь надумаю)

burgua

  • Гость
Re: помогите с программой
« Ответ #8 : 29 Январь 2009, 12:55:21 »
Что за прога - это не так уж и важно.
Разберись с 92-ой строкой.
Без нее запускается.

Удачи.

P.S. А то, что написана  под Борланд и так видно.

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
Re: помогите с программой
« Ответ #9 : 29 Январь 2009, 12:58:30 »
92 у меня компилятор не жалуеться ведь на 92 строку ???  проблема с /*====================================*/

float discrete (void){
 float x[8]={20,40,60,100};
« Последнее редактирование: 29 Январь 2009, 13:00:47 от Sharabdin »

burgua

  • Гость
Re: помогите с программой
« Ответ #10 : 29 Январь 2009, 13:04:47 »
ОМГ

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
Re: помогите с программой
« Ответ #11 : 29 Январь 2009, 13:09:45 »
СПАСИБО!!!

burgua

  • Гость
Re: помогите с программой
« Ответ #12 : 29 Январь 2009, 13:13:30 »
Не забудь что 92-ая строка просто закомментирована.
Утренний мозг слабо соображает, там я не разбирался.

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
Re: помогите с программой
« Ответ #13 : 29 Январь 2009, 13:22:14 »
Большое спасибо тебе burgua ,нечего так сойдет!:)

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
Re: помогите с программой
« Ответ #14 : 29 Январь 2009, 13:42:30 »
проблема была  тут #define RON discrete uniform() //Длительность Подключений сделал так заработало видимо непонимает подключенную функцию discrete define RON uniform(1,10)
незнаю вроде работает верно

 

Страница сгенерирована за 0.055 секунд. Запросов: 24.