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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2011, 19:05   #1
zipwind
Пользователь
 
Регистрация: 06.04.2011
Сообщений: 26
По умолчанию Программа после выхода из функции прыгает на другую строчку.

Попытаюсь вкратце описать ситуацию, чтобы было понятно что происходит.
Есть класс Cars. В нем две функции: move() и turn(). Первая двигает объект по заданной траектории(по параболе, параметры которой лежат в файле и оттуда считываются), вторая меняет траекторию движения объекта если тот приближается к определенной точке. Ф-ции класса вызываются из ф-ции CarsCI. x и y - координаты объекта. num_rd - номер файла с траекторией движения.
Проблема следующая: после того как заканчивает работу ф-ция turn программа прыгает на строчку, там где стоит комментарий, пропуская немаленький кусок кода и поэтому работает неправильно. Помогите пожалуйста. Программа написана в Borland C++ 3.1(я новичок, Visual С++ не знаю, а в старых интерпретаторах все предельно просто и понятно). Заранее спасибо.
Код:
void CarsCI()
{
 int a,i,x,y,crs;
 cleardevice();
 a=3;
 Cars *car=new Cars[a];
 while(1)
 {
    car[1].move();
 }
 
void Cars::move()
{
 int cmp,cases,n,z,l;
 float p;
 char numstr[10];
 num_rd=0;

 setcolor(BLACK);
 setfillstyle(SOLID_FILL,BLACK);
 fillellipse(x,y,10,10);
 strcpy(typec,"\\par_");
 n=strcmp("\\par_",typec);
 if(!n) cases=0;
 switch (cases)
  {
  case 0:  strcpy(roadc,"C:\\BC\\BIN\\CARS");
	     strcat(roadc,typec);
	     itoa(num_rd,numstr,10);
	     strcat(roadc,numstr);
	     strcat(roadc,".txt");
	     ifstream in(roadc);    //сюда идет программа
	     {
	      in>>p;
	      in>>z;
	      in>>l;
	     }
	     y=p*(x-z)*(x-z)+l;
  }
 setcolor(RED);
 setfillstyle(SOLID_FILL,RED);
 fillellipse(x,y,10,10);
 delay(40);
 x++;
 turn();
}

void Cars::turn()
{
 char path[20];
 int xl,yl;
 
 strcpy(path,"C:\\BC\\BIN\\CARS\\LIGHT_0.txt");
 ifstream in(path);
 {
   in>>xl;
   in>>yl;
 }
 if (x>xl-40 & x<xl+40 & y>yl-40 & y<yl+40) 
  {
    num_rd=1; 
    cout<<num_rd;
  }
}
zipwind вне форума Ответить с цитированием
Старый 09.05.2011, 18:46   #2
zipwind
Пользователь
 
Регистрация: 06.04.2011
Сообщений: 26
По умолчанию

А все, сам разобрался. Можно закрыть тему?
zipwind вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запоминание Checked после выхода из проги в MainMenu NuR1k Общие вопросы Delphi 2 24.08.2010 19:26
Как передать значение пременной из одной функции в другую? mr.-parker Общие вопросы C/C++ 2 27.03.2010 15:01
Отключается звук после выхода из ждущего режима Костян Пират Операционные системы общие вопросы 4 18.12.2009 14:23
Перенос на другую строчку Vladya Помощь студентам 3 30.06.2009 23:20
После копирования в другую директорию программа не работает Terikon Общие вопросы Delphi 8 31.03.2009 00:19