Классы в С++
"Сложные объекты в классах."
Задача про точкиТочка на плоскости задана своими координатами (x,y) - целые числа.

Требуется написать класс, который позволяет:
- устанавливать координаты точки
- сравнивать две точки
- перемещать точку по X или Y
- вычислять разницу между двумя точками по X или Y

// Начало мантры #include <iostream> #include <cstdlib> using namespace std; // Конец мантры class Point{ // Закрытая область int x,y; // public: // открытая область Point(); // конструктор по-умолчанию Point(x1); // точка на оси X Point(int x1, int y1);// коструктор со значениями int isEqual(Point a); // точки совпадают? (да -1 , нет -0) int diffX(Point a); // на сколько нужно подвинуть по X int diffY(Point a); // на сколько нужно подвинуть по X void move (int x1); // перемещать вдоль оси X void move(int x1, int y1); //перемещать на x1 по X и на y1 по Y void print(); } Point::Point(){ // Здесь нужен код }; Point::Point(int x1){ // Здесь нужен код }; Point::Point(int x1, int y1){ // Здесь нужен код }; int Point::isEqual(Point a){ // Здесь нужен код }; int Point::diffX(Point a){ // Здесь нужен код }; int Point::diffY(Point a){ // Здесь нужен код }; void Point::move (int x1){ // Здесь нужен код }; void Point::move(int x1, int y1){ // Здесь нужен код }; void Point::print(){ cout<<'('<<x<<','<<y<<')'; }; int main(){ // Здесь нужно проверить ВСЕ функции return 1; }
Задача 1.
Написать и проверить код для ВСЕХ функций класса Point
Задача про квадрат
Квадрат задается двумя точками: левой верхней и правой нижней.
- задавать точки - координаты
- проверять совпадают ли квадраты.
- вычислять чья площадь больше и на сколько
- передвигать квадрат в заданную точку
/ Начало мантры #include <iostream> #include <cstdlib> using namespace std; // Конец мантры class Point{ // вставить из прошлой задачи }; class Square{ // Закрытая область Point p1, p2 // две точки - сложные объекты int ln; // длина стороны public: // открытая область Square(); // конструктор по-умолчанию Square(Point a, int len); // точка а (верхняя левая) и длина стороны Square(Point a, Point b);// коструктор со значениями // совпадают ли квадраты int isSame(Square a); // сравнить площади, если наш квадрат больше, то возвращаем число >0 // если квадрат *a* больше, то число <0, если равны - 0 int cmpS(Square a); void moveToPoint (Point a); // перемещать верхний левый угол в точку *a* void move(int x1, int y1); //перемещать на x1 по X и на y1 по Y int isEqual(Square a); // квадраты равны (да -1 , нет -0) void print(); }; Square::Square(){ // здесь нужен код }; Square::Square(Point a, int len){ // Мы не можем обращаться к a.x и a.y // Поэтому сделаем сначала две одинаковые точки // и одну подвинем на len по X и Y p1 = a; p2 = a; p2.move(len,-len); ln = len; }; Square::Square(Point a, Point b){ // Здесь нужен код // ln - вычислить. функция diff() }; int Square::cmpS(Square a){ // Здесь нужен код // сравниваем площади }; int Square::isSame(Square a){ // если совпадают вершины, // то совпадают квадраты }; int Square::isEqual(Square a){ // здесь нужен код // }; void Square::moveToPoint (Point a){ // здесь нужен код // подвинуть обе точки }; void Square::move(int x1, int y1){ // здесь нужен код // подвинуть обе точки }; void Square::print(){ p1.print(); p2.print(); cout<<endl; }
Задача 2.
Написать и проверить код для ВСЕХ функций класса Square
Задача 3.
Два квадрата a и b заданы координатами своих вершин.
Требуется написать программу, которая вычисляет сколько квадратов b поместится в квадрат a. Для решения использоват класс Square
-- TatyanaOvsyannikova2011 - 08 Oct 2015