Форум программистов, компьютерный форум CyberForum.ru

Передвинуть фигуры класса (исправить код) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция по нахождению совершенных чисел http://www.cyberforum.ru/cpp-beginners/thread685648.html
Ниже код и задание. Можно ли эту функцию написать проще или такой код сойдет? void perfect (int number) { int sum = 0; for (int i=1; i<number; i++) if (number%i == 0) sum += i; if (sum == number)
C++ Циклы с выключателем и ошибка "ссылка на неразрешенный внешний символ" код такой получился main #include <iostream> #include <conio.h> #include <stdio.h> using namespace std; double summa_while(float x, float eps, float& psl, int& num); double summa_do_while(float x,float eps, float& psl, int& num); double summa_for(float x,float eps,float& psl, int& num); http://www.cyberforum.ru/cpp-beginners/thread685643.html
C++ Ввести матрицу, обчислить сумы всех стволбцов и рядков, вывести результат
Написал код, все сделал через функции, и как всегда некомпилируется(( #include<iostream> #include<stdio.h> #include<conio.h> #include<locale.h> using namespace std; const int N=3; int A; int suma1; int suma2;
C++ Локальный указатель на локальный строковый литерал
Здравствуйте. Подскажите, пожалуйста, почему локальный указатель, созданный в функции, не уничтожается после вызова функции? То есть мы через этот указатель сохраняем адрес, по которому хранится наш строковый литерал, созданный в функции, но по идее этот строковый литерал должен удалятся после вызова функции, ведь он хранится в стеке, или тогда, получается, он хранится в другом месте ? #include...
C++ Дано целое число N (> 0). Найти сумму N2 + (N + 1)2+ (N + 2)2+ … + (2*N)2 (целое число) http://www.cyberforum.ru/cpp-beginners/thread685629.html
Дано целое число N (> 0). Найти сумму N2 + (N + 1)2+ (N + 2)2+ … + (2*N)2 (целое число).подскажите как решается или подскажите где можно найти пример подобной задачи
C++ Оператор switch целое число в диапазоне 0 – 9. Вывести строку — название соответствующей цифры на английском языке (0 — "zero", 1 — "one", 2 — "two", ...). через оператор SWITCH подробнее

Показать сообщение отдельно
Marianna22
1 / 1 / 0
Регистрация: 02.11.2011
Сообщений: 14
31.10.2012, 22:23     Передвинуть фигуры класса (исправить код)
Очень помощь нужна. В задаче надо было создать три фигуры: крест, прямую и круг с помощью классов и псевдографики, а еще изменить цвет и организоваить передвижение. Все ничего, а вот с движением проблема. Умные люди, исправьте новичка) пожалуйста


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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x,y;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
// общий класс геометрических фигур
class Figure
{ public:
   int x,y;
 
  //position pol;// текущее положение на плоскости
  int col; // текущй цвет
 
   public:
      void cwet(int cwet) //Задание цвета
        { col=cwet; }
      void move(int nx, int ny) // перемещение к заданному положению
            {x=nx; y=ny; }
   //   void Sokryt() // скрыть фигуры
   //     { cwet(clBlack );
   //       Draw();}
 
      virtual void Draw()=0; // отображение на экране
} ;
 
//---------------------------------------------------------------------------
 
// Крест
 
class Krest:public Figure
{
 public:
 
Krest (int nx, int ny, int c)
   {
    x=nx; y=ny; col=c;
    }
 
 void Draw()
 {   Form1->PaintBox1->Canvas->Font->Size=22;
     Form1->PaintBox1->Canvas->Font->Color=(col);
     Form1->PaintBox1->Canvas->TextOut(x+10,y+5,"*");
    Form1->PaintBox1->Canvas->TextOut(x,y+20,"***");
    Form1->PaintBox1->Canvas->TextOut(x+10,y+35,"*");
     }
}          ;
 // Круг
 
class Krug:public Figure
{
 public:
 
Krug (int nx, int ny, int c)
   {
    x=nx; y=ny; col=c;
    }
 
 void Draw()
 {   Form1->PaintBox1->Canvas->Font->Size=22;
   Form1->PaintBox1->Canvas->Font->Color=(col);
       Form1->PaintBox1->Canvas->TextOut(x+17.5,y+5,"*");
    Form1->PaintBox1->Canvas->TextOut(x,y+20,"*    *");
    Form1->PaintBox1->Canvas->TextOut(x,y+35,"*    *");
    Form1->PaintBox1->Canvas->TextOut(x+17.5,y+50,"*");
     }
}          ;
  // Линия
 class Line:public Figure
{
 public:
 
Line (int nx, int ny, int c)
   {
    x=nx; y=ny; col=c;
    }
 
 void Draw()
 {   Form1->PaintBox1->Canvas->Font->Size=22;
   Form1->PaintBox1->Canvas->Font->Color=(col);
     Form1->PaintBox1->Canvas->TextOut(x,y,"***");
     }
}          ;
 
 
Krest *K1;
Krug *K2;
Line *L1;
//---------------------------------------------------------------------------
void __fastcall TForm1::MoveClick(TObject *Sender)
{
  Form1->Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
      Form1->Timer1->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Otobr(TObject *Sender)
{
  Krest K1(7,5, clMenuHighlight);
 K1.Draw() ;
 
 Krug K2(5,70, clMenuHighlight);
 K2.Draw() ;
 
 Line L1(7,150, clMenuHighlight);
 L1.Draw() ;
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CwetClick(TObject *Sender)
{    Krest K1(7,5, clLime);
Krug K2(5,70, clRed);
 Line L1(7,150, clAqua);
 K1.Draw() ;
 K2.Draw() ;
  L1.Draw() ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{     Krest K1(7,5, clMenuHighlight);
   Krug K2(5,70, clMenuHighlight);
   Line L1(7,150, clMenuHighlight);
    Form1->Timer1->Enabled=false;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 
 for (int i=1; i<100; i++)
  {
    K1.move(i,5);
    K1.Draw() ;
 
    K2.move(i,70);
    K2.Draw();
 
    L1.move(i,150);
    L1.Draw();
 
  }
 
}
//---------------------------------------------------------------------------
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru