Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для videolord
49 / 15 / 2
Регистрация: 20.02.2011
Сообщений: 152

проблемы с ООП

27.01.2012, 18:04. Показов 762. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет всем! надо было написать рандомно движущийся прямоугольник на Borland C 3.1
1-пример написал без ООП, и все нормально работает, а вот 2-пример с ООП почемуто не двигается,в чем дело ?
пример 1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
#include <graphics.h>
int main()
{
    int driver = DETECT, gmode;
    initgraph(&driver, &gmode, "c:\\bc\\bgi");
    if (grOk != graphresult()) return(1);
 
 
    int x1=450, y1=250, x2=600, y2=400;
    nt dx = 5, dy = 5;
     int maxx = getmaxx(), maxy = getmaxy();
 
    line (0, 0, maxx, 0);
    line (0, 0, 0,maxy);
    line (maxx, maxy, 0,maxy);
    line (maxx, maxy, maxx, 0);
 
    while( !kbhit() )
    {
    delay(15);
 
    if (x1 <= 0 || x2 >= maxx)  dx = -dx;
    if (y1 <= 0 || y2 >= maxy)  dy = -dy;
    setfillstyle (SOLID_FILL, BLACK);
    bar (1,1,maxx-1,maxy-1);
    x1+= dx ;
    y1+= dy ;
    x2+= dx ;
    y2+= dy ;
    setfillstyle (SOLID_FILL, WHITE);
    rectangle(x1,y1,x2,y2);
 
    } 
 
    cleardevice();
    closegraph();
    return 0;
}
пример 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
#include <graphics.h>
 
 
 class MyRectangle{
 public:
  int x1,y1,x2,y2,col;
  MyRectangle();
  MyRectangle(int x1,int y1,int x2,int y2,int col);
  void setCol(int col);
  void hide();
  void show();
  void move(int dx,int dy);
 };
 
 int maxx=600;
 int maxy=500;
 
  MyRectangle::MyRectangle(){x1=450, y1=250, x2=600, y2=400;col=12;}
  MyRectangle::MyRectangle(int x1,int y1,int x2,int y2,int col){
   this->x1=x1;
   this->y1=y1;
   this->x2=x2;
   this->y2=y2;
   this->col=col;
  }
 
 void MyRectangle::setCol(int col){this->col=col;}
 
 void MyRectangle::hide()
 {
  setfillstyle (SOLID_FILL, BLACK);
  bar (1,1,maxx-1,maxy-1);
 }
 void MyRectangle::show()
 {
   setfillstyle (SOLID_FILL,WHITE );
   rectangle(x1,y1,x2,y2);
 }
 void MyRectangle::move(int dx,int dy)
 {
  if (x1 <= 0 || x2 >= maxx)  dx = -dx;
  if (y1 <= 0 || y2 >= maxy)  dy = -dy;
 
   hide();
   x1+= dx ;
   y1+= dy ;
   x2+= dx ;
   y2+= dy ;
 
   show();
 }
 
int main()
{
    int driver = DETECT, gmode;
    initgraph(&driver, &gmode, "c:\\bc\\bgi");
    if (grOk != graphresult()) return(1);
    int x1=450, y1=250, x2=600, y2=400;
    MyRectangle MyRect(x1,y1,x2,y2,12);
    int dx = 5, dy = 5;
    line (0, 0, maxx, 0);
    line (0, 0, 0,maxy);
    line (maxx, maxy, 0,maxy);
    line (maxx, maxy, maxx, 0);
 
  
    while( !kbhit() )
    {
     delay(15);
     MyRect.move(dx,dy);
    }
 
    cleardevice();
    closegraph();
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.01.2012, 18:04
Ответы с готовыми решениями:

Проблемы с ООП
Добрый день! Дали в институте следующую задачу: Программирование с использованием классов в С++. Наследование и композиция. Разработать...

проблемы с ООП(базовый)
Есть структура &quot;Бибилиотека&quot;. Там есть некоторые функций. Так вот. class Library { public: int GetId() int...

ООП. Возникли проблемы с массивом в конструкторе
Имеется класс Работников (Worker), у которого есть подклас (WorkerPrem) работников с премиями. Необходимо создать динамический массив...

2
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
27.01.2012, 22:06
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
#include <graphics.h>
 
 
 class MyRectangle{
 public:
  int x1,y1,x2,y2,col;
  MyRectangle();
  MyRectangle(int x1,int y1,int x2,int y2,int col);
  void setCol(int col);
  void hide();
  void show();
  void move(int dx,int dy);
 };
 
 int maxx=640;
 int maxy=480;
 
  MyRectangle::MyRectangle(){x1=450, y1=250, x2=600, y2=400;col=12;}
  MyRectangle::MyRectangle(int x1,int y1,int x2,int y2,int col){
   this->x1=x1;
   this->y1=y1;
   this->x2=x2;
   this->y2=y2;
   this->col=col;
  }
 
 void MyRectangle::setCol(int col){this->col=col;}
 
 void MyRectangle::hide()
 {
  setfillstyle (SOLID_FILL, BLACK);
  bar (1,1,maxx-1,maxy-1);
 }
 void MyRectangle::show()
 {
   setfillstyle (SOLID_FILL,WHITE );
   rectangle(x1,y1,x2,y2);
 }
 void MyRectangle::move(int dx,int dy)
 {
          while( !kbhit() ){
                  delay(15);
  if (x1 <= 0 || x2 >= maxx)  dx = -dx;
  if (y1 <= 0 || y2 >= maxy)  dy = -dy;
 
   hide();
   x1+= dx ;
   y1+= dy ;
   x2+= dx ;
   y2+= dy ;
 
   show();}
 }
 
int main()
{
    int driver = DETECT, gmode;
    initgraph(&driver, &gmode, "c:\\bc\\bgi");
    if (grOk != graphresult()) return(1);
    int x1=450, y1=250, x2=600, y2=400;
    MyRectangle MyRect(x1,y1,x2,y2,12);
    int dx = 5, dy = 5;
        line (0, 0, maxx, 0);
        line (0, 0, 0,maxy);
        line (maxx, maxy, 0,maxy);
        line (maxx, maxy, maxx, 0);
 
 
//    while( !kbhit() )
 //   {
 //    delay(15);
     MyRect.move(dx,dy);
 //   }
 
    cleardevice();
    closegraph();
    return 0;
}
Добавлено через 3 минуты
videolord, перенес цикл while и задержку в функцию move.

Добавлено через 1 минуту
и работает.
1
 Аватар для videolord
49 / 15 / 2
Регистрация: 20.02.2011
Сообщений: 152
28.01.2012, 11:59  [ТС]
круто! пасибо огромнейшее MrCold
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2012, 11:59
Помогаю со студенческими работами здесь

Проблемы с ООП ошибка Exception thrown: read access violation
Не выдает никаких ошибок при компиляции, но при запуске выскакивает ошибка на строке Instrument-&gt;Get(); Exception thrown: read access...

ООП, проблемы с программой
Сырая программа, скинул проект VS, чтобы смогли посмотреть код. Суть программы в том, что я должен сделать модель работы пассажирского и...

Проблемы с ооп — какие у кого
Несколько дней — грубо говоря, неделю, учу C#. После процедурного программирования на паскале, честно говоря, пару дней чувствовал себя...

Проблемы с переводом строки в число (по книге Лафоре "ООП в С ++ ")
Лафоре &quot;ООП в Си ++ &quot; - проблемы с упражнением 12, глава 7 Условие: Напишите программу, которая будет принимать от пользователя две...

Изучаю Python, сейчас учу основы ООП, где можно найти задачи по ООП
Скиньте пожалуйста источники с задачами(желательно на русском)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru