PDA

Просмотр полной версии : Просьба (Borland C++)


DRON-ANARCHY
28.05.2007, 11:16
Народ! нужна ваша помощь)
как бы это банально не звучало, но в сдаче сессии(мать ее перемать).
Осталось доделать 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
Но список строится при помощи указателей

в 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
отсутствуют. Надо на дефолтовых все делать(

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

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
Ды я мож и скачаю.... тока вот админы в универе ленивые как падлы. у них есть старье, оно работает и всем заебис. так что надо писать на старье)

nerezus
30.05.2007, 08:10
Ды я мож и скачаю.... тока вот админы в универе ленивые как падлы. у них есть старье, оно работает и всем заебис. так что надо писать на старье) Поэтому у нас у половины группы ноутбуки ;)

Ща на ноуте(взял на время) у мну вообще лялих )

DRON-ANARCHY
30.05.2007, 12:37
Был бы у меня бук - я бы взял с собой)