Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите исправить 2 ошибки в коде, срочно 
V
    Опции темы
magg
  Дата 4.7.2009, 23:38 (ссылка)    | (голосов:8) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 7.5.2007

Репутация: нет
Всего: нет



собственно, САБЖ.
нужно исправить 2 ошибки в коде, чтобы его можна было скомпилить и сделать из него ехе-шник.
код немалый, тому залил на sendspace: sendspace.com/file/ubkkh6
времени немного - до утра понедельника..выручайте, народ, пожалуйста
PM MAIL   Вверх
Vaulter
Дата 5.7.2009, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 2
Всего: 22



ой, все бегут, бегут, спотыкаються....

текст ошибок компилятора в студию

хотя бы...
не говоря уже о проблемных участках...

 smile 


--------------------
PM MAIL WWW ICQ   Вверх
magg
Дата 5.7.2009, 03:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 7.5.2007

Репутация: нет
Всего: нет



сорри, имел ввиду 2 ошибки, каторые выводятся при компиляции)))
Использую Turbo C++ 3.0

при запуске программы (Run):
BGI Error: Graphics not initialized (use 'initgraph')

при компиляции программы выводит 2 ошибки:
1-ая в 260 строке: scanf("%d",&pix); getchar();   Code has no effect 
2-ая в 1005 строке: while(del=top->down)          Possibly incorrect assignment


1-ая ошибка ('полный кусок' кода):
Код

// Функция для управления работой графического интерфейса
void Process()
{
    char *fm[]={"Open Image  F3","Save Image  F2","Exit        Esc"};
    char *gm[]={"Function f","Sistem   s ","Mashtab  m"};    //пункти меню
    char *hm[]={"About     F1"};
    char *ss[]={"Decart 2D       ","Decart 3D       ","Polar           "};
    char KEY;

    // рисование кнопок меню
    DrawBtn(&File,"File");
    DrawBtn(&Graphik,"Graphiс");
    DrawBtn(&Help,"Help");
    settextstyle(0,0,0);
    outtextxy(Close.x+7,Close.y+7,"x");



      // рисование окна для выведения графиков
    setfillstyle(0,0);
    bar(a,b,a1,b1);

    Show();

    while(1)
    {
        if(kbhit())
          {
           KEY=getch();
           if(KEY==0)
             {
              KEY=getch();
              if(KEY==0x3b)    //F1
            HELP1();
              if(KEY==0x3c)    //F2
            save_BMP();
              if(KEY==0x3d)   //F3
            open_BMP();
             }
         if(KEY==0x1b) //esc
           break;
         if(KEY==0x66)  //f
           goto Enter_function;
         if(KEY==0x6d)  //m
           goto Enter_mashtab;
         if(KEY==0x73)  //s
           goto Enter_sisc;
        }
        Status();
        if(button==1)
         {
          if(MouseOn(&Close)) break;
          if(MouseOn(&File))
           {
              PullMenuDown(fm,3,&File);
              if(Selection==0)
                open_BMP();
              if(Selection==1)
                save_BMP();
              if(Selection==2)
                break;
           }
          if(MouseOn(&Graphik))
           {
              PullMenuDown(gm,3,&Graphik);
              if(Selection==0)
                {
          Enter_function:Hide();
                 winp(&sfunc,1);
                 gotoxy(27,3);
                 setfillstyle(0,0);
                 bar(sfunc.x+2,sfunc.y+2,sfunc.x1-2,sfunc.y1-2);
                 if(sisc==0)
                   printf("F(x)=");
                 if(sisc==1)
                   printf("F(x,y)=");
                 if(sisc==2)
                   printf("F(b)=");
                 gets(func);
                 topolish();
                 Show();
                }
              if(Selection==1)
               {
         Enter_sisc:PullMenuDown(ss,3,&siscoord);
                if(Selection==0)
                 {
                  sisc=0;
                  ss[0][15]='¦';
                  ss[1][15]=' ';
                  ss[2][15]=' ';
                  bar(200,60,600,99);
                  setcolor(1);
                  outtextxy(250,60,"Decart 2D");
                  outtextxy(250,75,"Varibles: x");
                 }
                if(Selection==1)
                 {
                  sisc=1;
                  ss[0][15]=' ';
                  ss[1][15]='¦';
                  ss[2][15]=' ';
                  bar(200,60,600,99);
                  setcolor(1);
                  outtextxy(250,60,"Decart 3D");
                  outtextxy(250,75,"Varibles: x,y");
                 }
                if(Selection==2)
                 {
                  sisc=2;
                  ss[0][15]=' ';
                  ss[1][15]=' ';
                  ss[2][15]='¦';
                  bar(200,60,600,99);
                  setcolor(1);
                  outtextxy(200,60,"Polar");
                  outtextxy(200,75,"Varibles: b     (b-angle,a-lenth)");
                  outtextxy(200,90,"To Decart: x=a*cos(b),y=a*sin(b)");
                  Selection=NONE;
                 }
               }
              if(Selection==2)
                {
           Enter_mashtab:Hide();
                 setcolor(3);
                 outtextxy(100,60,"pixels:one");
                 gotoxy(14,6);
                 winp(&mashtab,1);
                 setfillstyle(0,0);
                 bar(mashtab.x+2,mashtab.y+2,mashtab.x1-2,mashtab.y1-2);
                 scanf("%d",&pix); getchar();
                 Show();
                }

                  // розметка
                setfillstyle(0,0);
                bar(a,b,a1,b1);
                rozmitka();

                  //
                  // рисование графика в соответствующей системе координат
                  if(sisc==0)
                printgraph_2d();
                  if(sisc==1)
                printgraph_3d();
                  if(sisc==2)
                printgraph_pol();

           }
          if(MouseOn(&Help))
           {
            PullMenuDown(hm,1,&Help);
            if(Selection==0)
             HELP1();
           }
         }
        else
         {
            if(MouseOn(&File))     Hlight(&File);
            if(MouseOn(&Graphik))  Hlight(&Graphik);
            if(MouseOn(&Help))     Hlight(&Help);
            if(MouseOn(&Close))    Hlight(&Close);
         }
     }
}


2-ая ошибка ('полный кусок' кода):
Код

// Функция превращения строки с уравнением в обратную польскую запись
void topolish()
  {
   char *cs,*res,zm1,zm2;
   int i,j;
   struct tstek *now,*del;
   cs=(char *)malloc(11);
   res=(char *)malloc(80);
   res[0]=0;
   i=0;
   if(sisc==0)
     {
      zm1='x';
      zm2='x';
     }
   if(sisc==1)
     {
      zm1='x';
      zm2='y';
     }
   if(sisc==2)
     {
      zm1='b';
      zm2='b';
     }
   while(func[i])
     {
      cs[0]=func[i++];
      cs[1]=' ';
      cs[2]=0;
      j=1;

      if(cs[0]>='0'&&cs[0]<='9')
    {
     while(func[i]&&(func[i]>='0'&&func[i]<='9'||func[i]=='.'))
       cs[j++]=func[i++];
     cs[j++]=' ';
     cs[j]=0;
     strcat(res,cs);
     continue;
    }

      if(cs[0]>='a'&&cs[0]<='z'&&cs[0]!=zm1&&cs[0]!=zm2)
    {
     while(func[i]!='(')
       cs[j++]=func[i++];
     cs[j++]=' ';
     cs[j]=0;
     push(cs);
     continue;
    }

      switch(cs[0])
         {
          case 'x':
        strcat(res,cs);
        break;

          case 'y':
        strcat(res,cs);
        break;

          case 'b':
        strcat(res,cs);
        break;

          case '*':
           now=top->down;
           while(now)
         {
          if(now->data[0]=='(')
            break;
          if(now->data[0]=='*'||now->data[0]=='/')
            {
             del=top->down;
             top->down=top->down->down;
             strcat(res,del->data);
             now=now->down;
             free(del);
             continue;
            }
          now=now->down;
         }
           push(cs);
           break;

          case '/':
        now=top->down;
        while(now)
          {
           if(now->data[0]=='(')
             break;
           if(now->data[0]=='*'||now->data[0]=='/')
             {
              del=top->down;
              top->down=top->down->down;
              strcat(res,del->data);
              now=now->down;
              free(del);
              continue;
             }
           now=now->down;
          }
        push(cs);
        break;

          case '+':
        now=top->down;
        while(now)
          {
           if(now->data[0]=='(')
             break;
           del=top->down;
           top->down=top->down->down;
           strcat(res,del->data);
           now=now->down;
           free(del);
          }
        push(cs);
        break;

          case '-':
        now=top->down;
        while(now)
          {
           if(now->data[0]=='(')
             break;
           del=top->down;
           top->down=top->down->down;
           strcat(res,del->data);
           now=now->down;
           free(del);
           continue;
          }
        push(cs);
        break;

          case '(':
        push(cs);
        break;

          case ')':
        now=top->down;
        while(now)
          {
           if(now->data[0]=='(')
             break;
           del=top->down;
           top->down=top->down->down;
           strcat(res,del->data);
           now=now->down;
           free(del);
          }
        if(now->data[0]=='(')
          {
           del=top->down;
           top->down=top->down->down;
           free(del);
          }
        break;
    }   //switch
     }   //while


   while(del=top->down)
     {
      top->down=top->down->down;
      strcat(res,del->data);
      free(del);
     }
   strcpy(func,res);
   free(cs);
   free(res);
  }

PM MAIL   Вверх
andrew_121
Дата 5.7.2009, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



magg, 
Цитата(magg @  5.7.2009,  03:51 Найти цитируемый пост)
BGI Error: Graphics not initialized (use 'initgraph')

Это значит, что программа не может найти драйвер. Положи его в папку с прогой.

Остальное, не ошибки, а предупреждения.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Леопольд
Дата 5.7.2009, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(magg @ 5.7.2009,  03:51)
сорри, имел ввиду 2 ошибки, каторые выводятся при компиляции)))
Использую Turbo C++ 3.0

при запуске программы (Run):
BGI Error: Graphics not initialized (use 'initgraph')

при компиляции программы выводит 2 ошибки:
1-ая в 260 строке: scanf("%d",&pix); getchar();   Code has no effect 
2-ая в 1005 строке: while(del=top->down)          Possibly incorrect assignment

Компилятор уже всё сказал.

1. Не помню досовскую работу с графикой, но раз компилятор говорит что не инициализировал, значит так и есть. 
    В интернете, возможно, есть мануал по использованию initgraph smile

2. Зачем нужен getchar после scanf? К тому же этот getchar ничего не делает, о чём тебе и сообщил компилятор. И 
    вообще, не стоит два оператора в одной строке писать, нечитабельно. Подозреваю что это не error, а warning.

3. Компилятор говорит что у тебя здесь не сравнение а присваивание...
    while(del==top->down)
    И это тоже warning а не error

Программа не работает потому что надо вызвать initgraph.

Это сообщение отредактировал(а) Леопольд - 5.7.2009, 10:32


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
magg
Дата 5.7.2009, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 7.5.2007

Репутация: нет
Всего: нет



все работает, спасибо
топик можна закрывать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0748 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.