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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вывести графику в Borland C++ 3.1 
:(
    Опции темы
K0SHKA
Дата 24.10.2007, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здараствуйте!!!
Вот решила изучать С++ начала с Borland C++ 3.1, и вот первая проблема :(
как мне нарисовть хотябы примитивы(круг,линию,  и т.д)
подключаю #include <graphics.h>
но компелятор ругается, и выдает много ошибок (
пожалуйста помогите ..
PM   Вверх
K0SHKA
Дата 24.10.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот код программы тока почемуто не компелируется (

Код

#include <graphics.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "time.h"

#define PATHTODRIVER "c:\\borland\\bgi\\"

void luzor(int n)
{  int x,y;
   int c;
   time_t t;

   srand((unsigned)time(&t));
   for (int i = 0; i< n;i++)
   {
    x = rand() % 640;
    y = rand() % 480;
    c = rand() % 16;
    setcolor(c);
    lineto(x,y);
   }
}

void main(void)
{ int gdriver = DETECT;
  int gmode;
  int errorcode;

  initgraph(&gdriver, &gmode, PATHTODRIVER);
  errorcode = graphresult();

  if (errorcode != grOk)
  {
   printf("ERROR!");
   exit(1);
  }

luzor(100);
getch();
closegraph();
}



Это сообщение отредактировал(а) K0SHKA - 24.10.2007, 15:12
PM   Вверх
Optimus
Дата 24.10.2007, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(K0SHKA @  24.10.2007,  14:49 Найти цитируемый пост)
но компелятор ругается, и выдает много ошибок (

напишите какие ошибки выдает

удостоверьтесь в том что графический режим подключен:
Options -> Linker -> Libraries...
Код

[] Graphics library

в скобках поставьте X
Код

[X] Graphics library


у меня никаких ошибок не выдает

Это сообщение отредактировал(а) Optimus - 24.10.2007, 15:24
--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
K0SHKA
Дата 24.10.2007, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Большое спасибо! теперь проблем при компеляции нет.
Но на экране появляется надпись ERROR: -3.
PM   Вверх
Optimus
Дата 24.10.2007, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(K0SHKA @  24.10.2007,  15:12 Найти цитируемый пост)
#define PATHTODRIVER "c:\\borland\\bgi\\"

убедитесь в том что путь правильный 
и что в папке BGI есть файл EGAVGA.BGI


--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
K0SHKA
Дата 24.10.2007, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Optimus, Есче раз большое вам спасибо.
Наконец разобралась  smile 

Ещё было бы не плохо какуюнибуть книжечку по этой теме smile 

Это сообщение отредактировал(а) K0SHKA - 24.10.2007, 16:12
PM   Вверх
Optimus
Дата 24.10.2007, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(K0SHKA @  24.10.2007,  15:52 Найти цитируемый пост)
Ещё было бы не плохо какуюнибуть книжечку по этой теме 

книг по графике в Borland C++ я не встречал
почти все нахожу в справке Borland'a C++
здесь есть перевод справки(не проверял если есть все функции, но многие есть)
--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
Dastish_Fantastish
Дата 26.10.2007, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго вам времени суток! У меня та же проблема.
Вот прога, она запускается, но сразу вылетает, не рисуя линии. Уже несколько дней мучаюсь, не знаю, что делать!

Код

#include <conio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream.h>
#include <graphics.h>
#define PATHTODRIVER "c:\\turboc\\bgi\\"
void main()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,PATHTODRIVER);
line(50,60,100,120);
getch();
closegraph();
}

PM MAIL   Вверх
Optimus
Дата 26.10.2007, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



у меня все работает

почему не проверяете если графический режим инициализирован ?
Код

int errorcode = graphresult();

if (errorcode != grOk)  /* an error occurred */
{
   printf("Graphics error: %s\n", grapherrormsg(errorcode));
   printf("Press any key to halt:");
   getch();
   exit(1);             /* return with error code */
}

посмотрите что выведет, и напишите если что то непонятно

Это сообщение отредактировал(а) Optimus - 26.10.2007, 20:05
--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
Dastish_Fantastish
Дата 26.10.2007, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Воткнул ваш текст в программу - то же самое. Запускается и сразу закрывается
Код

#include <conio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream.h>
#include <graphics.h>
#define PATHTODRIVER "c:\\turboc\\bgi\\"
void main()
{
int gdriver=DETECT;
int gmode;
initgraph(&gdriver,&gmode,PATHTODRIVER);
int errorcode = graphresult();    
if (errorcode != grOk)  /* an error occurred */    
{    
   printf("Graphics error: %s\n", grapherrormsg(errorcode));    
   printf("Press any key to halt:");    
   getch();    
   exit(1);             /* return with error code */    
}
setcolor(5);
circle(60,50,40);
getch();
closegraph();
}

PM MAIL   Вверх
Dastish_Fantastish
Дата 27.10.2007, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хотя если запустить exe-шник через командную строку, то отображается просто черный экран
PM MAIL   Вверх
Optimus
Дата 27.10.2007, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Dastish_Fantastish @  26.10.2007,  20:28 Найти цитируемый пост)
Воткнул ваш текст в программу - то же самое.

если ничего из выше перечисленного не помогает, ну я не зна...

интересно, а просто без графики работает ?
что выводит для этого примера
Код

#include <iostream.h>
#include <conio.h>

void main()
{
  cout << "\n\n\t***OK***";  
  
  getch();
}

--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
Dastish_Fantastish
Дата 27.10.2007, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

интересно, а просто без графики работает ?


Без графики работает нормально, уже много прог до этого делал. Кстати, насчет этой: запускается, выводит ***OK***. Неужели графика не работает?! Такого ведь не бывает! Может настройки где-то надо изменить? Если у вас графика работает, то скажите, что вы делали сразу после установки с++. Допустим, options-->directories там у меня какие-то пути прописаны, может и неправильно, или file-->change directory может там что-нибудь поменять надо. На всякий случай скажу: на компе стоит turbo c++ 3.0. Может левый компилятор?
PM MAIL   Вверх
Optimus
Дата 27.10.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Dastish_Fantastish @  27.10.2007,  13:32 Найти цитируемый пост)
options-->directories 

допустим что  turbo c++ находится в папке c:\turboc, тогда:
Include Directories: c:\turboc\include
Library Directories: c:\turboc\lib
Output Directory: любой путь, здесь будет хранится .exe и .obj файл

P.S.пройдите программу с отладчиком, и напишите на какой строке вылетает

--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
Dastish_Fantastish
Дата 27.10.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вылетает на initgraph.
Может из-за win xp не работает?


Это сообщение отредактировал(а) Dastish_Fantastish - 27.10.2007, 17:35

Присоединённый файл ( Кол-во скачиваний: 21 )
Присоединённый файл  666.rar 20,70 Kb
PM MAIL   Вверх
Optimus
Дата 27.10.2007, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



думаю что проблема связана с файлом EGAVGA.BGI.
или путь не правильный или нету файла EGAVGA.BGI в той папке которую указываете.

даже ваш .exe файл работает, ставлю его в ту же папку где есть файл EGAVGA.BGI, запускаю, и выводит круг.
--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
Dastish_Fantastish
Дата 28.10.2007, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ура!!! Наконец-то запустил!!! Оказывается дело было в компе. Пришлось использовать прогу dosbox - реально помогла!
PM MAIL   Вверх
K0SHKA
  Дата 29.10.2007, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уважаемый Optimus, а можно ли circle(шарикsmile) заставить двигатся при на жатии определённой кнопки он двигается вправо или влево, можноли вообше это сделать.
PM   Вверх
Optimus
Дата 29.10.2007, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



что означает
Цитата(K0SHKA @  29.10.2007,  20:00 Найти цитируемый пост)
двигатся

такое устроит
Код

   circle(50, 50, 30);

   char ch;

   ch = getch();  //нажимаем на 'p'

   if (ch == 'p') 
   {
     cleardevice();

     circle(100, 50, 30);
   }


P.S. один топик - один вопрос.
--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
K0SHKA
  Дата 30.10.2007, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Тока учусь smile .

Код


#include<graphics.h>
#include<stdio.h>
#include<dos.h>
#include<conio.h>

#define PATHTODRIVER "c:\\borlandc\\bgi\\"
void rght(int x, int y)
{
  cleardevice();
  circle(x,y,30);
}

void left(int x, int y)
{
  cleardevice();
  circle(x,y,30);
}

void up(int x, int y)
{
  cleardevice();
  circle(x,y,30);
}

void down(int x, int y)
{

 cleardevice();
 circle(x,y,30);
}

void main()
{
 int errorcode;
 int gdriver = DETECT;
 int gmode;
 char ch;
 int x = 50;
 int y = 50;

 initgraph(&gdriver,&gmode,PATHTODRIVER);
 errorcode = graphresult();
 if (errorcode != grOk)
 {
  printf("ERROR: %d",errorcode);
  getch();
 }
while(ch != 'q')
{
  ch = getch();
  if (ch == 'd')
  {
   rght(x = x + 10,y);
  }
  if (ch == 'a')
  {
   left( x = x - 10,y);
  }
  if ( ch == 'w')
  {
   up(x,y = y - 10);
  }
  if (ch == 's')
  {
   down(x, y = y + 10);
  }
}
printf("END PROGRAMM FOR EXIT PRESS <ENTER>");
getch();
closegraph();
}


Есле зделала чтото не так или код можно усовершенствовать пожолуйста напишите.


Это сообщение отредактировал(а) K0SHKA - 30.10.2007, 15:56
PM   Вверх
Optimus
Дата 30.10.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(K0SHKA @  30.10.2007,  15:52 Найти цитируемый пост)
while(ch != 'q')

в этой сточке кроется ошибка:
если изначально в ch будет 'q' то код не выполнится, надо об этом позаботится, на пример до while() присвоить ch = 'R'

а так все работает и это уже радует, единственное что я бы изменил это вместо if-ов поставил бы switch()
Код

 initgraph(&gdriver,&gmode,PATHTODRIVER);
 errorcode = graphresult();
 if (errorcode != grOk)
 {
  printf("ERROR: %d",errorcode);
  getch();
 }

  circle(x,y, 30);
  ch = getch();

  do
  {
    switch (ch)
    {
      case 'w':
        up(x, y -= 10);
        break;
      case 'a':
        left(x -= 10, y);
        break;
      case 'd':
        rght(x += 10, y);
        break;
      case 's':
        down(x, y += 10);
        break;
    }

    ch = getch();
  } while (ch != 'q' && ch != 'Q');

outtext("END PROGRAMM FOR EXIT PRESS <ENTER>");
getch();
closegraph();


Цитата(K0SHKA @  30.10.2007,  15:52 Найти цитируемый пост)
код можно усовершенствовать пожолуйста напишите.

все зависит от задачи

P.S. если только начинаете программировать на C++, обратите больше внимание языку а не графике

Это сообщение отредактировал(а) Optimus - 30.10.2007, 17:59
--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
K0SHKA
Дата 30.10.2007, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо за замечание обезательно уделю больше времени изучению самого языка.
PM   Вверх
Lithium777
Дата 21.7.2008, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А у мя проги с графикой на Turbo_C идут а в Borland C++ выдает ошибку: error BGI graphics not supported under Windows
Я уже дня два парюс с етим  smile , может кто знает в чом проблема?


Это сообщение отредактировал(а) Lithium777 - 23.7.2008, 17:05
PM MAIL   Вверх
Rififi
Дата 23.7.2008, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



может кто знает в чом проблема?
в Windows. нужно её снести и поставить MS-DOS 6.22, тогда всё заработает 
PM MAIL   Вверх
Lithium777
Дата 24.7.2008, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



и как тогда в досе Borland C++ запустить?

PM MAIL   Вверх
reuttorendan
Дата 21.1.2011, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день! В ВС выдает ошибку "NOT an exe  2.LIB"
Такое вылазиет когда <graphics.h> подключаю. 
#include <conio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream.h>
#include <graphics.h>
#define PATHTODRIVER "d:\\BC\\bgi\\"
void main()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,PATHTODRIVER);
line(50,60,100,120);
getch();
closegraph();
}


Подскажи в чем проблема
PM MAIL   Вверх
Modul
Дата 21.1.2011, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(K0SHKA @  24.10.2007,  14:49 Найти цитируемый пост)
решила изучать С++ начала с Borland C++ 3.1


Год выпуска: 1992

А зачем такое старье ?



Цитата(K0SHKA @  24.10.2007,  14:49 Найти цитируемый пост)
как мне нарисовать хотя бы примитивы(круг, линию,  и т.д)



Архангельский - Программирование в С++ Builder 6

c. 384 и дальше
--------------------
I'll be back !
PM MAIL   Вверх
xvr
Дата 24.1.2011, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(reuttorendan @  21.1.2011,  20:38 Найти цитируемый пост)
Подскажи в чем проблема 
В использовании мамонтов для обучения программированию. И еще в полуразложившемся состоянии этих мамонтов - переставьте BC (он у вас слегка побит молью  smile )


PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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