Форум программистов, компьютерный форум, киберфорум
Наши страницы

Создать абстрактный класс фигур и сделать 2 наследника (треугольник, прямоугольник) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двумерные.Вычесть минимальный элемент http://www.cyberforum.ru/cpp-beginners/thread1013833.html
Ребят, не пойму что не так, почему не хочет работать программа. Задача вот в чем: в двумерном массиве нужно найти мин элемент и вычесть его из той строки и того столбца на пересечении которых он...
C++ Передача в функцию по значению Добрый день. Ответьте мне пожалуйста вот на такой вопрос, читая книжку дошел до момента где разбираются векторы (класс(?) vector) и передачи их в функцию.В примере вектор передавался в функцию по... http://www.cyberforum.ru/cpp-beginners/thread1013829.html
12. Заданы площади круга и квадрата C++
12. Заданы площади круга и квадрата. Определить, поместится ли круг в квадрате. составьте,пожалуйста мне программу))))
C++ Робота со строками. (заменить сокращения на полный текст)
как решить задачу ; Задан русскоязычный текст,в котором есть сокращения (т.к , др. , и.т.п.).Нужно заменить эти сокращения на полный текст. Принцип алгоритма я понял , но как реализовать не знаю....
C++ Сортировка матриц! http://www.cyberforum.ru/cpp-beginners/thread1013796.html
Народ, подскажите что здесь поменять, чтобы матрица сортировалась с конца главной диагонали, а не сначала? void matrixToArr(int arr,int sR, int sS,int tmp2) { int n=0; for(int...
C++ Помогите написать код к формуле Помогите написать код к формуле в С++ подробнее

Показать сообщение отдельно
AlexPhenomenon
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 2

Создать абстрактный класс фигур и сделать 2 наследника (треугольник, прямоугольник) - C++

20.11.2013, 23:40. Просмотров 701. Ответов 2
Метки (Все метки)

Доброго времени суток. Задание такое : создать абстрактный класс фигур и сделать 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
81
82
83
84
85
86
87
88
89
90
91
92
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <math.h>
using namespace std;
struct point
{
       float x;
       float y;
};
 
class Figure
{
      protected:
      point* a;
      int n;
      Figure(void) {n=0;};
      Figure(const int &k) {n=k; a=new point [n]; for(int i=0;i<n;i++) {a[i].x=0; a[i].y=0;}};
      public:
      virtual float sqr(void) = 0;
      void print();
      void move();
      point getpoint(int);
      virtual void read()=0;
      ~Figure() {delete []a; n=0;};
};
class Triangle : public Figure
{
      public:
      Triangle(void):Figure(3) {};
      void read();
      float sqr();  
};
class Rect : public Figure
{
      public:
      Rect(void):Figure(4) {};
      void read();
      float sqr();      
};
bool prov(point p0,point p1,point p2,point p3)
{
     float a1,a2,b1,b2,c1,c2,x,y;
     a1=p1.x-p0.x;
     a2=p1.y-p0.y;
     b1=p2.x-p3.x;
     b2=p2.y-p3.y;
     c1=p2.x-p0.x;
     c2=p2.y-p0.y;
     const double eps=0.0001;
     if(fabs(a1*b2-b1*a2)<eps) return false;
     else
     {
         x=(c1*b2-c2*b1)/(a1*b2-a2*b1);
         y=(a1*c1-a2*c1)/(b2*a1-b1*a2);         
     }
     if (((x+eps)>0)&&((x-eps)<1)&&((y+eps)>0)&&((y-eps)<1)) return true;
     else return false;
}
bool IsIntersect(Figure* f1,Figure* f2){
 
bool a=false;
     int m,l;
     point tr[3],kv[4];
     for(int i=0;i<3;i++)
     tr[i]=f1->getpoint(i);
     kv[0]=f1->getpoint(0);
     kv[2]=f1->getpoint(1);
     kv[1].x=kv[0].x;
     kv[1].y=kv[2].y;
     kv[3].x=kv[2].x;
     kv[3].y=kv[0].y;
     for(int i=0;i<3;i++)  
      for(int j=0;j<4;j++)
      {
              if (i=2) m=0; else m=i+1;
              if (j=3) l=0; else l=j+1;
              if (prov(tr[i],tr[m],kv[j],kv[l])) {a=true; break;}
      }
     return a;
}
 
 
void main()
{
     Figure *f1,*f2;
      f1=new Triangle;
      f2=new Rect;
      cout<<("Vvedite koordinaty treugol'nika")<<endl; f1->read();
      cout<<("Vvedite koordinaty pryamougol'nika")<<endl; f2->read();
      cout<< IsIntersect(f1,f2) <<endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru