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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с инициализированием графики под DOS, Вы 
:(
    Опции темы
Brausman
Дата 1.4.2009, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет всем,проблема такая после относительно долгих вычислений стараюсь инициализировать графический режим,но он выдает ошибку - Not enough memory to load driver (не хватает памяти для загрузки драйвера),хотя если закоментить эти вычисления все проходит нормально и gdriver возращает 9(вместо - 5).
В чем проблема подскажите плиз smile  smile  smile 
Уже задолбался,ток эта проблема,ниже приведен код(то что закоментированно и есть долгие вычисления):
Код

//**********************************************************************\\
//************************* ОСНОВНАЯ ПРОГРАММА *************************\\
//**********************************************************************\\

void main(void){   // начало основной программы
  clrscr();

//------- Инициализация глобальных переменных и структур ----------------
  init_const();

  char *s = new char [100];
  double gmin,gmax,gstep,Time_Field,Time_Step;
  matrix cof,kd1,dd1,rd1,p,qq,r;    //Матрица коэффициентов
  int i,j;

  double k,tau;
  matrix kd,dd,rd;//╠рЄЁшЎ√ юс•хъЄр ш тэх°эхую тючьє∙хэш    
  matrix T;//- ьрЄЁшЎр тїюфэ√ї ╥,╥1,╥2 ш Є.ф. ъръющ яюЁ фюъ юс•хъЄр.╥.ъ. хёыш яюЁ фюъ сюы№°х 1 ¤Єю сєфхЄ тхъЄюЁ шч 2-ї ¤ыхьхэЄют
//******************* Загрузка параметров из файла *********************\\
  fi=fopen("config.txt","r");
  if (!fi) {get_par_error(str_e1);}

//считываем переменные настроек объекта
h=get_par();
m=get_par();
int minco=(int)get_par();    //╠шэшьры№э√щ шэфхъё ъю¤ЇЇшЎшэхЄют
maxco=(int)get_par();
cof.n=(int)get_par();
int nn = cof.n;
cof.m =(int)get_par();
por_object = (int)get_par();//╧юЁ фюъ эр°хую юс•хъЄр
int ii = -1;
fgets(s,100,fi);
    do{
        fgets(s,100,fi);
        char *p = s;
        int jj=0;
        ii++;
        do{
            cof.data[ii][jj++]=atof(p);
        }while ((p = strchr(p,' ')) || (p = strchr(p,'//'))  , p++);
    }while (ii!=nn-1);
time_change=(int)get_par();

//переменные настройки графика
gmin=get_par();
gmax=get_par();
gstep=get_par();
Time_Field=get_par();
Time_Step=get_par();
CreatePlotFile=get_par();
//переменные имитации входного воздействия и внешнего возм
u_sim=get_par();
uf_sim=get_par();
ufw=get_par();
ufA=get_par();
randuf=get_par();
fclose(fi);
//------------------------------------------------------------------------

//Если разрешено создавать файл данных графика, то открываем его
if (CreatePlotFile)
{
  Plot=fopen("plot.dat","w");
  if (!Plot){
    fclose(Plot);
    fprintf(Pr,"Файл графика не создан!\n");
  }
}
//---------------------------------------------------------------------
iii = minco - 1;
/*while (iii < maxco) {//─юфхырЄ№ чряюыэхэшх ьрЄЁшЎрьш ъю¤ЇЇшЎшхэЄют

    k=cof.data[0][iii];
  T.n = 1; T.m = por_object + 1;
    T.data[0][0] = 0;//╬сэєы хь яхЁт√щ ¤ыхьхэЄ
    for (j = 0;j < por_object;j++) {
        T.data[0][j + 1] = 1/cof.data[j + 1][iii];
  }
    tau=cof.data[cof.n - 1][iii];
    
    //====================================================================
    //╘юЁьшЁєхь тхъЄюЁр эхяЁхЁ√тэющ ёшёЄхь√ т ЇюЁьх тїюф-т√їюф фы  юс•хъЄр 2-ую яюЁ фър
    //====================================================================

  //p - d - тхъЄюЁ яЁш т√їюфэ√ї яхЁхьхээ√ї фшЇЇхЁ-эюую єЁртэхэш
    PbyRoots(&T,&p);
    
    //qq - k -тхъЄюЁ яЁш  тїюфэ√ї яхЁхьхээ√ї фшЇЇхЁ-эюую єЁртэхэш 
    
    qq.n = 1; qq.m = 1;
    qq.data[0][0] = k;

    //r - тхъЄюЁ яЁш  тэх°эхь тючьє∙хэшш фшЇЇхЁ-эюую єЁртэхэш
    
    r.n=r.m = 1;
    r.data[0][0] = m;

    p = fliplr(p);

    //╧хЁхтюфшь юс•хъЄ шч эхяЁхЁ√тэющ т фшёъЁхЄэє■ ёшёЄхьє
    ToDisk(&p,&qq,&r,h,&dd1,&kd1,&rd1);//Perevod iz
    for (j = 0;j < dd1.m;j++) {
        dd.data[iii][j] = dd1.data[0][j];
        kd.data[iii][j] = kd1.data[0][j];
        rd.data[iii][j] = rd1.data[0][j];
    }
    iii++;
}    */


   G_Init();        // Инициализация графического режима



Ну и сам код инициализации:
Код

void G_Init(){
  int gdriver = Detect, gmode, errorcode;
   gmode=0;
   //gdriver=0;
  initgraph(&gdriver, &gmode, "");
  errorcode = graphresult();
  if (errorcode != grOk)
  {
     printf("Graphics error: %s\n", grapherrormsg(errorcode));
     printf("Press any key to halt:");
     getch();
     exit(1);
  }
}


Очень прошу помочь,3 день не пойму из-за чего все!!!

P.S. до процедуры  G_Init(); - вызовов графического режима не было


Это сообщение отредактировал(а) Brausman - 1.4.2009, 15:48
PM MAIL   Вверх
Dmi3ev
Дата 1.4.2009, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

Ну и сам код инициализации:

Код

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
#include <dos.h>

int main(void)
{
   int gd,gm;
   gd= DETECT;
   int xn, yn;
   int r = 20;
   initgraph(&gd, &gm, "..\\BGI");
   randomize();
   xn = random(getmaxx());
   yn = 0;
   setcolor(getmaxcolor());

   circle(xn, yn, r);

   for (int i=1; i<=getmaxy(); i++)
    {
     setcolor(getmaxcolor());
     circle(xn,yn+i,r);
     sleep(0.1);
     setcolor(1);
     clrscr();
    }
    getch();
   closegraph();
   return 0;
}

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

Это сообщение отредактировал(а) Dmi3ev - 1.4.2009, 17:16


--------------------

PM MAIL   Вверх
Brausman
Дата 1.4.2009, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Dmi3ev @ 1.4.2009,  17:07)
Цитата

Ну и сам код инициализации:

Код

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
#include <dos.h>

int main(void)
{
   int gd,gm;
   gd= DETECT;
   int xn, yn;
   int r = 20;
   initgraph(&gd, &gm, "..\\BGI");
   randomize();
   xn = random(getmaxx());
   yn = 0;
   setcolor(getmaxcolor());

   circle(xn, yn, r);

   for (int i=1; i<=getmaxy(); i++)
    {
     setcolor(getmaxcolor());
     circle(xn,yn+i,r);
     sleep(0.1);
     setcolor(1);
     clrscr();
    }
    getch();
   closegraph();
   return 0;
}

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

У меня инициализация работает,если не проводить сложных вычислений!!!!
Если вычисления коментить все норм!!Я и спрашиваю как решить ету проблему??? smile  smile  smile 
Почему выдается ошибка памяти????Ведь по идее должно же быть без разницы досу когда я инициализирую граф.режим

Это сообщение отредактировал(а) Brausman - 1.4.2009, 21:17
PM MAIL   Вверх
zim22
Дата 1.4.2009, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(Brausman @  1.4.2009,  21:15 Найти цитируемый пост)
Почему выдается ошибка памяти????Ведь по идее должно же быть без разницы досу когда я инициализирую граф.режим

Пишы крупней. Я НИВИЖУ


--------------------
PM MAIL   Вверх
mes
Дата 1.4.2009, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



 smile 
Цитата(zim22 @  1.4.2009,  20:33 Найти цитируемый пост)
Пишы крупней. Я НИВИЖУ 

не так, надо было:
Пишы крупней. Я НИВИЖУ 
 smile 

Это сообщение отредактировал(а) mes - 1.4.2009, 21:43


--------------------
PM MAIL WWW   Вверх
Brausman
Дата 1.4.2009, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



mes и zim22 - если не знаете как помочь,идите вы нах.....(сори модераторы),такие прикалисты как вы,тока спамят темы и бесят людей(в том числе и меня),не принося и 0.0000000000000001% пользы.Так что вон из темы если ни чем не можите помочь  smile  smile  smile 
PM MAIL   Вверх
mes
Дата 1.4.2009, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(Brausman @  1.4.2009,  21:07 Найти цитируемый пост)
такие прикалисты как вы,тока спамят темы и бесят людей(в том числе и меня),не принося и 0.0000000000000001% пользы.Так что вон из темы если ни чем не можите помочь  smile  smile  smile  

a Вы не подумали, что данный прикол, как Вы называете, был вызван Вами, так как  фразы написаные крупным шрифтом воспринимаются как крик или, по крайней мере, как принуждение и сильно раздражают ?
a как Вы думаете прилично ли кричать на тех, кто хочет Вам помочь?  Так что прежде вспомните пословицу про бревно и подбирайте слова в общественном месте.



Это сообщение отредактировал(а) mes - 1.4.2009, 22:35


--------------------
PM MAIL WWW   Вверх
Brausman
Дата 1.4.2009, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(mes @ 1.4.2009,  22:34)
Цитата(Brausman @  1.4.2009,  21:07 Найти цитируемый пост)
такие прикалисты как вы,тока спамят темы и бесят людей(в том числе и меня),не принося и 0.0000000000000001% пользы.Так что вон из темы если ни чем не можите помочь  smile  smile  smile  

a Вы не подумали, что данный прикол, как Вы называете, был вызван Вами, так как  фразы написаные крупным шрифтом воспринимаются как крик или, по крайней мере, как принуждение и сильно раздражают ?
a как Вы думаете прилично ли кричать на тех, кто хочет Вам помочь?  Так что прежде вспомните пословицу про бревно и подбирайте слова в общественном месте.

Я кричу по теме,чтоб сразу бросалось в глаза.
А вы начанаете стеб и флуд smile 
Лучше б хоть одну стоищую мысль предложили,я с этой фигней сижу 2 дня,все написано осталось ток этот гемор smile 
PM MAIL   Вверх
mes
Дата 1.4.2009, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(Brausman @  1.4.2009,  21:41 Найти цитируемый пост)
Лучше б хоть одну стоищую мысль предложили,я с этой фигней сижу 2 дня,все написано осталось ток этот гемор smile  

Лучше бы, чем других учить, писали ясней и тогда возможно уже бы подсказали..
Мне лично не понятно "сложные вычисления" - длительные по времени, объемные по занимаемой памяти или  по другому критерию ?
Искать ответ в  приведенной куче (неразборчивого и  не относящегося к теме) кода  времени нет.
A протестировать, как и многие из форумчан, не могу в следствии отсутствия этого раритетного компилятора. )

Если Вы считаете, что достаточно какой либо ресурсоемкой операции, то легко можно съэмуллировать это тремя строчками цикла,
а если ошибка именно в связи с вышеупомянутом кодом, то тогда методом проб и ошибок выделите кусок, комментирование которого изменяет результат
и покажите именно его.


Цитата(Brausman @  1.4.2009,  21:41 Найти цитируемый пост)
А вы начанаете стеб и флуд 

Обратите внимание что из всего списка активных тем, флуд начался именно в Вашей.. С чего бы это ?! 


Это сообщение отредактировал(а) mes - 1.4.2009, 22:57


--------------------
PM MAIL WWW   Вверх
Brausman
Дата 1.4.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(mes @ 1.4.2009,  22:53)
Цитата(Brausman @  1.4.2009,  21:41 Найти цитируемый пост)
Лучше б хоть одну стоищую мысль предложили,я с этой фигней сижу 2 дня,все написано осталось ток этот гемор smile  

Лучше бы, чем других учить, писали ясней и тогда возможно уже бы подсказали..
Мне лично не понятно "сложные вычисления" - длительные по времени, объемные по занимаемой памяти или  по другому критерию ?
Искать ответ в  приведенной куче (неразборчивого и  не относящегося к теме) кода  времени нет.
A протестировать, как и многие из форумчан, не могу в следствии отсутствия этого раритетного компилятора. )

Если Вы считаете, что достаточно какой либо ресурсоемкой операции, то легко можно съэмуллировать это тремя строчками цикла,
а если ошибка именно в связи с вышеупомянутом кодом, то тогда методом проб и ошибок выделите кусок, комментирование которого изменяет результат
и покажите именно его.


Цитата(Brausman @  1.4.2009,  21:41 Найти цитируемый пост)
А вы начанаете стеб и флуд 

Обратите внимание что из всего списка активных тем, флуд начался именно в Вашей.. С чего бы это ?! 

Долгие по времени если их коментить,то инициализация проходит,если делать вычисления то выдает ошибку приведенную выше.

Это сообщение отредактировал(а) Brausman - 1.4.2009, 23:01
PM MAIL   Вверх
mes
Дата 1.4.2009, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(Brausman @  1.4.2009,  22:01 Найти цитируемый пост)
Долгие по времени если их коментить,то инициализация проходит,если делать вычисления то выдает ошибку приведенную выше.

по времени ? 
Код

int main()
{
 for (int i=0; i<10000; ++i)
 for (int j=0; j<10000; ++j) int a=j*i; // увеличить значения условия, если времени необходимо больше

 G_Init();
 
 return 0;
}
после такого кода тоже дает ошибку ?


Это сообщение отредактировал(а) mes - 1.4.2009, 23:10


--------------------
PM MAIL WWW   Вверх
Brausman
Дата 1.4.2009, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(mes @ 1.4.2009,  23:08)
Цитата(Brausman @  1.4.2009,  22:01 Найти цитируемый пост)
Долгие по времени если их коментить,то инициализация проходит,если делать вычисления то выдает ошибку приведенную выше.

по времени ? 
Код

int main()
{
 for (int i=0; i<10000; ++i)
 for (int j=0; j<10000; ++j) int a=j*i; // увеличить значения условия, если времени необходимо больше

 G_Init();
 
 return 0;
}
после такого кода тоже дает ошибку ?

Хмм,на этом не выкидывает странно((
Ни че не пойму.
PM MAIL   Вверх
mes
Дата 1.4.2009, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(Brausman @  1.4.2009,  22:28 Найти цитируемый пост)
Хмм,на этом не выкидывает странно((
Ни че не пойму. 

потому что ошибка не из сложных вычислений, а из за неправильной работы с памятью ... скорей всего пишите мимо границ массива.
ну теперь, постепенно комментируя, выделяйте фрагмент приводящий к таким результам и исправляйте smile
(отладчик по весьма явным соображениям не предлагаю)

Добавлено через 3 минуты и 56 секунд
посмотрел код - покажите описание структуры matrix . 

Это сообщение отредактировал(а) mes - 1.4.2009, 23:39


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


Эксперт
****


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

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



Код

for (j = 0;j < por_object;j++) {
        T.data[0][j + 1] = 1/cof.data[j + 1][iii];


cof.data[j + 1] вот тут скорее всего. хотя копаться в этом... радости мало.
прежде чем графику инициализировать неплохо бы на консоль вывести чего оно там насчитало  smile 

Это сообщение отредактировал(а) baldina - 2.4.2009, 09:13
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.0611 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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