Презентація підручника Володимира Васильовича Бублика «Об’єктно-орієнтоване програмування»
18 лютого ц.р. о 15 год. в аудиторії 1/223 презентація підручника Володимира Васильовича Бублика «Об’єктно-орієнтоване програмування»
Комплекс одних з найпопулярніших у на факультеті курсів тепер набув довершеної форми підручника! Все, що ви вчили (або вчитимете) на лекціях та практичних з ПП, ООП та МООП, узагальнено, розширено і систематизовано. У книжці розібрано майже 1000 прикладів, що навчать не просто програмувати, а розробляти придатні до нових застосувань безпечні та гнучкі програми, використовуючи весь потенціал мови С++. Якщо ви плануєте робити кар’єру програміста, це видання може стати вашою настільною книжкою на багато років.
Спеціальний гість – спонсор видання, генеральний директор компанії «Інфопульс» Олексій Сігов.
Комплекс одних з найпопулярніших у на факультеті курсів тепер набув довершеної форми підручника! Все, що ви вчили (або вчитимете) на лекціях та практичних з ПП, ООП та МООП, узагальнено, розширено і систематизовано. У книжці розібрано майже 1000 прикладів, що навчать не просто програмувати, а розробляти придатні до нових застосувань безпечні та гнучкі програми, використовуючи весь потенціал мови С++. Якщо ви плануєте робити кар’єру програміста, це видання може стати вашою настільною книжкою на багато років.
Спеціальний гість – спонсор видання, генеральний директор компанії «Інфопульс» Олексій Сігов.

- 0
- 17 лютого 2015, 21:01
- GarfieldUA
- Залишити коментар
Задача: Клас Time
Реалізувати клас Time за наведеною нижче специфікацією.
Увага! Час має нормалізуватися при створенні об'єкта.
Наприклад Time a(8, 75, 210) після створення має мати атрибути Hours = 9, Minutes= 18, Seconds == 30
Зразки виводу:
1) Для Time(1,1,1) — 01:01:01
2) Для Time(23,59,59) — 23:59:59
Увага! Час має нормалізуватися при створенні об'єкта.
Наприклад Time a(8, 75, 210) після створення має мати атрибути Hours = 9, Minutes= 18, Seconds == 30
Зразки виводу:
1) Для Time(1,1,1) — 01:01:01
2) Для Time(23,59,59) — 23:59:59
#include <exception>
#include <iostream>
using namespace std;
class Time
{
public:
struct BadTime;
typedef int Hours;
typedef int Minutes;
typedef int Seconds;
Time (const Hours& h, const Minutes& m, const Seconds& s);
Time (const Seconds &s=0);
Time (const Time&);
~Time(){};
Time& operator=(const Time&);
operator int() const;
const double ToHours() const;
const int ToSeconds() const;
// Selectors
const Hours& getHours() const;
const Minutes& getMinutes() const;
const Seconds& getSeconds() const;
// Modifiers
void setHours(const Hours&);
void setMinutes(const Minutes&);
void setSeconds(const Seconds&);
const Time& operator++();
const Time operator++(int);
const Time& operator--();
const Time operator--(int);
private:
// Mutable attributes in order to allow normalizing in const objects
mutable Hours _hours;
mutable Minutes _minutes;
mutable Seconds _seconds;
void normalizeTime() const;
};
Time& operator+=(Time&, const Time&);
const Time operator+(const Time&, const Time&);
const bool operator==(const Time&, const Time&);
const bool operator!=(const Time&, const Time&);
const bool operator>(const Time&, const Time&);
const bool operator<(const Time&, const Time&);
const bool operator>=(const Time&, const Time&);
const bool operator<=(const Time&, const Time&);
ostream& operator<<(ostream&, const Time&);
struct Time::BadTime
{
Time::Hours _hours;
Time::Minutes _minutes;
Time::Seconds _seconds;
};
- 0
- 01 червня 2013, 14:45
- GarfieldUA
- Залишити коментар
Задача: Комплексні числа (алгебраїчна і тригометрична форми)
Реалізувати два варіанти класу комплексних чисел за доданими специфікаціями:
УВАГА! Період тригонометричних чисел має округлюватися до 2*PI
УВАГА! Період тригонометричних чисел має округлюватися до 2*PI
#include <iostream>
#include <cmath>
using namespace std;
const double PI = 3.141592653589793238462643383279;
class AComplex;
class TComplex
{
private:
double _ro, _phi;
// Зведення по модулю 2PI
void normalizePhi();
public:
TComplex (const double& ro=0, const double& phi=0);
TComplex (const TComplex&);
TComplex (const AComplex&);
~TComplex();
TComplex& operator= (const TComplex&);
double& mod();
double& arg();
const double& mod() const;
const double& arg() const;
const double re() const;
const double im() const;
};
TComplex& operator+=(TComplex&, const TComplex&);
TComplex& operator-=(TComplex&, const TComplex&);
TComplex& operator*=(TComplex&, const TComplex&);
TComplex& operator/=(TComplex&, const TComplex&);
const TComplex operator* (const TComplex&, const TComplex&);
const TComplex operator/ (const TComplex&, const TComplex&);
class TComplex;
class AComplex
{
private:
double _re, _im;
public:
AComplex (const double& re=0, const double& im=0);
AComplex (const TComplex&);
AComplex (const AComplex&);
~AComplex();
AComplex& operator= (const AComplex&);
double& re();
double& im();
const double& re(void) const;
const double& im(void) const;
const double mod() const;
const double arg() const;
// Спряжене до комплексного числа
const AComplex conj() const;
};
AComplex& operator+=(AComplex&, const AComplex&);
AComplex& operator-=(AComplex&, const AComplex&);
AComplex& operator*=(AComplex&, const AComplex&);
AComplex& operator/=(AComplex&, const AComplex&);
const bool operator==(const AComplex &, const AComplex &);
const bool operator!=(const AComplex &, const AComplex &);
const AComplex operator+ (const AComplex&, const AComplex&);
const AComplex operator- (const AComplex&, const AComplex&);
- 0
- 31 травня 2013, 23:13
- GarfieldUA
- Залишити коментар
Задача: Трикутники
Реалізувати клас трикутників за зразком сигнатури:
Вивід трикутників ABC у вигляді (1;2)(1;2)(3;5), де A, B, C — відповідні точки.
Вивід трикутників ABC у вигляді (1;2)(1;2)(3;5), де A, B, C — відповідні точки.
#include <iostream>
using namespace std;
class Point
{
private:
double _x;
double _y;
public:
Point (const double &x = 0, const double &y = 0);
Point (const Point &);
~Point();
Point &operator=(const Point &);
double &x();
double &y();
const double &x()const;
const double &y()const;
const double distance(const Point &p) const;
};
ostream &operator<<(ostream&, const Point &);
const Point operator+ (const Point &, const Point &);
Point &operator+=(Point &, const Point &);
const Point operator- (const Point &, const Point &);
Point &operator-=(Point &, const Point &);
const bool operator==(const Point &, const Point &);
const bool operator!=(const Point &, const Point &);
class Triangle
{
public:
// Segment of triangle
class Segment
{
private:
// Assignment is forbidden in this implementation
Segment &operator=(const Segment &);
const Point &_a;
const Point &_b;
public:
Segment(const Point &start, const Point &end);
Segment(const Segment &);
~Segment();
const Point &start() const;
const Point &end() const;
const double length() const;
// Найближча відстань від точки до відрізка
const Point nearest(const Point &) const;
};
Triangle(const double &x1=0, const double &y1=0,
const double &x2=1, const double &y2=0,
const double &x3=0, const double &y3=1);
Triangle(const Point &a, const Point &b, const Point &c);
Triangle(const Point &a, const Segment &side);
Triangle (const Triangle &);
~Triangle();
Triangle &operator=(const Triangle &);
const double perimeter() const;
const double area() const;
const Point &apexA() const;
const Point &apexB() const;
const Point &apexC() const;
const Segment &side_a() const;
const Segment &side_b() const;
const Segment &side_c() const;
const double length_a() const;
const double length_b() const;
const double length_c() const;
const Segment &height_a() const;
const Segment &height_b() const;
const Segment &height_c() const;
private:
Point _a, _b, _c;
};
- 0
- 29 травня 2013, 21:44
- GarfieldUA
- Залишити коментар
Задача: Сегмент
Реалізувати клас сегментів, який не суперечить наступній сигнатурі:
#include <iostream>
using namespace std;
class Point
{
private:
double _x;
double _y;
public:
Point(const double &x = 0, const double &y = 0);
Point(const Point&);
~Point(void);
Point& operator=(const Point &);
double& x(void);
double& y(void);
const double& x()const;
const double& y()const;
};
//Вивід у вигляді (x; y)
ostream& operator<<(ostream&, const Point&);
const Point operator+(const Point&, const Point&);
Point& operator+=(Point&, const Point&);
const bool operator==(const Point&, const Point&);
const bool operator!=(const Point&, const Point&);
class Segment
{
private:
const unsigned int _myID;
Point _a;
Point _b;
public:
Segment(const double &x1 = 0, const double &y1 = 0,
const double &x2 = 0, const double &y2 = 0);
Segment(const Point &start, const Point &end);
Segment(const Segment &);
~Segment();
Segment& operator=(const Segment &);
const Point& start() const;
const Point& end() const;
Point& start();
Point& end();
const double& startX() const;
const double& startY() const;
const double& endX() const;
const double& endY() const;
double& startX();
double& startY();
double& endX();
double& endY();
// Обчислення довжини відрізка
const double length() const;
// Обчислення відстані від відрізка до точки
const double distance(const Point &) const;
//Ідентифікатор поточного сегменту
const unsigned int getID() const;
};
// Вивід у вигляді [(x1; y1); (x2; y2)]
ostream& operator<<(ostream&, const Segment &);
const bool operator==(const Segment &, const Segment &);
const bool operator!=(const Segment &, const Segment &);
- 0
- 23 березня 2013, 18:26
- GarfieldUA
- Залишити коментар
Задача: Точка
Реалізувати клас точок площини, який не суперечить наступній сигнатурі:
#include <iostream>
using namespace std;
class Point
{
public:
Point(double x = 0, double y = 0);
Point(const Point&);
~Point(void);
Point& operator=(const Point &);
double& x(void);
double& y(void);
double x(void) const;
double y(void) const;
//Ідентифікатор поточної точнки
const unsigned int getID(void) const;
//Кількість точок, які зараз існують в пам’яті
static const unsigned int amount(void);
};
ostream& operator<<(ostream&, const Point&);
const Point operator+(const Point&, const Point&);
Point& operator+=(Point&, const Point&);
bool operator==(const Point&, const Point&);
bool operator!=(const Point&, const Point&);
- 0
- 16 квітня 2012, 20:15
- seagull
- Залишити коментар