Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
кдз / кдз программирование черновик.docx
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
64.23 Кб
Скачать

Int main() {

Point first;

Point second(2.0, 5.0);

first.print();

second.print();

return 0;

}

b) Теперь добавим метод distanceTo(), который будет принимать второй объект класса Point в качестве параметра и будет вычислять расстояние между двумя объектами. Учитывая две точки (a1, b1) и (a2, b2), расстояние между ними можно вычислить следующим образом: sqrt ((a1 - a2) * (a1 - a2) + (b1 - b2) * (b1 - b2)).

Следующая программа:

Int main () {

Point first;

Point second (2.0, 5.0);

first.print ();

second.print ();

std::cout << "Distance between two points: " <<

first.distanceTo (second) << '\n';

return 0;

}

Должна выдавать следующий результат:

Point (0, 0)

Point (2, 5)

Distance between two points: 5.38516

Ответ:

#include <iostream>

#include <math.h>

using namespace std;

class Point {

private:

double a_m, b_m;

public:

Point() {

a_m = 0.0;

b_m = 0.0;

}

Point(double a, double b) {

a_m = a;

b_m = b;

}

~Point() {};

void print() {

cout << "Point (" << a_m << "," << b_m << ")" << endl;

}

double distanceTo(Point& other) {

return sqrt((a_m - other.a_m) * (a_m - other.a_m) + (b_m - other.b_m) * (b_m - other.b_m));

}

};

Int main() {

Point first;

Point second(2.0, 5.0);

first.print();

second.print();

cout << "Distance between two points: " << first.distanceTo(second) << '\n';

return 0;

}

c) Измените функцию distanceTo () из метода класса в дружественную функцию, которая будет принимать два объекта класса Point в качестве параметров. Переименуйте эту функцию на distanceFrom ().

Следующая программа:

Int main () {

Point first;

Point second (2.0, 5.0);

first.print ();

second.print ();

std::cout << "Distance between two points: " << distanceFrom (first, second) << '\n';

return 0;

}

Должна выдавать следующий результат:

Point (0, 0)

Point (2, 5)

Distance between two points: 5.38516

Ответ:

#include <iostream>

#include <math.h>

using namespace std;

class Point {

friend double distanceFrom(Point& A, Point& B);

private:

double a_m, b_m;

public:

Point() {

a_m = 0.0;

b_m = 0.0;

}

Point(double a, double b) {

a_m = a;

b_m = b;

}

~Point() {};

void print() {

cout << "Point (" << a_m << "," << b_m << ")" << endl;

}

};

double distanceFrom(Point& A, Point& B) {

return sqrt((A.a_m - A.a_m) * (A.a_m - A.a_m) + (B.b_m - B.b_m) * (B.b_m - B.b_m));

}

Int main() {

Point first;

Point second(2.0, 5.0);

first.print();

second.print();

std::cout << "Distance between two points: " << distanceFrom(first, second) << '\n';

return 0;

}

Задание №2

Напишите деструктор для следующего класса:

#include <iostream>

class Welcome {

private:

char *m_data;

public:

Welcome () {

m_data = new char [14];

const char *init = "Hello, World!";

for (int i = 0; i < 14; ++i)

m_data [i] = init [i];

}

~Welcome () {

// Реализация деструктора

}

void print () const {

std::cout << m_data;

}

};

Соседние файлы в папке кдз