Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Просьба (Borland C++) (https://forum.antichat.xyz/showthread.php?t=41039)

DRON-ANARCHY 28.05.2007 11:16

Просьба (Borland C++)
 
Народ! нужна ваша помощь)
как бы это банально не звучало, но в сдаче сессии(мать ее перемать).
Осталось доделать 2 задачи. Не думаю, что для вас они будут сверхсложными. Но мне, алкоголику и тунеядцу, надо много времени чтобы их осилить.
если не трудно - помогите пенсионеру)

1. Построить систему классов для описания плоской геометр. фигуры - КВАДРАТ.
Предусмотреть методы для создания объектов, перемещения на плоскости, изменения размеров и вращения на заданный угол.
// вобщем нужны координаты вершин только.


2. Подсчитать число максимальных элементов списка.
..никогда не дружил с указателями

всем заранее спасибо. Вы лучшие)

sni4ok 28.05.2007 11:54

2. Подсчитать число максимальных элементов списка.

Код:


#include <list>
#include <algorithm>

template<typename T>
size_t CountMaxElems(const std::list<T> &ll)
{
        std::list<T>::const_iterator it = std::max_element(ll.begin(), ll.end());
        if(it == ll.end()) return 0;
        return std::count(ll.begin(),ll.end(), *it);
}


DRON-ANARCHY 28.05.2007 13:49

Цитата:

sni4ok
плюс поставил. спасибо.
Но список строится при помощи указателей

sni4ok 28.05.2007 14:06

Цитата:

Сообщение от DRON-ANARCHY
Но список строится при помощи указателей

в std::list на каждый узел хранится указатель на предыдущий и последующий элемент, так что указатели там есть, правда скрыты от глаз:)

-n00by- 28.05.2007 14:55

Код:

class rect
{
private:
double a; //сторона
double s; //плосчадь
double p; //периметер

struct pos {double x;
                  double y;} ;
pos rectPos [3];

public:
rect()//конструктеръ
{
  rectPos = {{0,0},{0,0},{0,0},{0,0}}
  a=0;
  p=0;
  s=0;
}

setRect(double x1, double y1, double x2, double y2) //задаем размеры и координаты квадрата( по двум тчк(т.е. коорд левого нижнего и верхнего углов), тк квадрат можетЪ стоять не вертикально)
{
  //a=sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)); вобщем както  так...
  rectPos[0]={x1,y1};
  rectPos[1]={x2,y2};
  rectPos[2]={(y2-y1),(x2-x1)};//могу доказать почему))
  rectPos[3]={(x2+ rectPos[1][1]), (y2+ rectPos[1][2])};
  p=4*a;
  s= a*a;
}

double getS()
{
  return s;
}

double getP()
{
  return p;
}

pos getPos()
{
  return rectPos;
}

void move( double diff_X, double diff_Y)
{
int i =0;

while ( i<4)
 {
  rectPos[i].x=rectPos[i].x + diff_x;
  rectPos[i].y=rectPos[i].y + diff_y;
  i++;
 }
}


void turnPoint (pos a, double corn)
{/*coming soon)))
напишите ктонить, я билеты учу*/}
void turn (double corn)
{int i=0;
 while (i<4)
 {
  turnPoint (rectPos[i],corn);
  i++;
 }
}

чота в этом духе..... тока я синтаксис сишки не помню...короч переделаешь


------------------------------ДОПИСАЛ-------------------------------

DRON-ANARCHY 28.05.2007 15:12

Цитата:

#include <list>
#include <algorithm>
отсутствуют. Надо на дефолтовых все делать(

sni4ok 28.05.2007 16:08

Цитата:

Сообщение от DRON-ANARCHY
отсутствуют. Надо на дефолтовых все делать(

в стандарте есть

Table 11—C++ Library Headers

<algorithm> <iomanip> <list> <queue> <streambuf>
<bitset> <ios> <locale> <set> <string>
<complex> <iosfwd> <map> <sstream> <typeinfo>
<deque> <iostream> <memory> <stack> <utility>
<exception> <istream> <new> <stdexcept> <valarray>
<fstream> <iterator> <numeric> <strstream> <vector>
<functional> <limits> <ostream>

DRON-ANARCHY 29.05.2007 00:09

видимо в моем стандарте нет)

nerezus 29.05.2007 08:37

Цитата:

отсутствуют. Надо на дефолтовых все делать(
Значит юзай нормальный компилер.

Кстати в борланде оно полюбому есть, скачай Bde версию 2007 года.

DRON-ANARCHY 30.05.2007 03:25

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


Время: 17:31