Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Ferrari F1
622 / 519 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
#1

Написать класс "Параллельная прямая" - C++

05.06.2017, 09:46. Просмотров 346. Ответов 24
Метки нет (Все метки)

всем привет, есть такое задание:
Определить класс Point с полями x, y и класс Otrezok с полями Point p1, p2; и полями k, b.
чем являются k и b для прямой? и какими типами лучше их представить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2017, 09:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать класс "Параллельная прямая" (C++):

Класс "Прямая". Перегрузка операторов - C++
Очень нужна ваша помощь, скоро сдавать лабораторную, а у меня затруднения.. Не могу сделать.. Тема: Перегрузка операций Класс:...

Описать класс "Прямая" - C++
класс - прямая члены класса - Координаты двух точек (x1,y1) и (x2,y2) методы - Конструктор, метод вывода уравнения прямой операторы...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс "вентилятор" содержащий в себе классы:...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Реализовать класс родительский класс "Пара чисел" и класс-наследник "Комплексное число" - C++
Ткма работы создать класс pair (пара чисел); определить метод перемножения полей и операцию сложения пар (a,b)+(c,d) =(a+b,c+d)...

24
DrOffset
7387 / 4464 / 1013
Регистрация: 30.01.2014
Сообщений: 7,317
05.06.2017, 10:03 #2
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
чем являются k и b для прямой?
Читать здесь.
1
wk__
10 / 8 / 2
Регистрация: 14.05.2017
Сообщений: 58
05.06.2017, 10:22 #3
У прямых коэффициенты k должны быть равны друг другу, они показывает наклон прямой. Если у 2-х прямых k равны, а b различны, значит прямые параллельны.
1
Ferrari F1
622 / 519 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
05.06.2017, 10:28  [ТС] #4
DrOffset, wk__, отлично, тогда идем далее.
Написать конструктор-инициализатор, после инициализации отрезка конструктор должен определять параметра k и b прямой.
Как вот это понять? Т.е. в к-тор подается координаты двух точек, и в теле к-тора расчитываются k и b?
0
wk__
10 / 8 / 2
Регистрация: 14.05.2017
Сообщений: 58
05.06.2017, 10:38 #5
Ferrari F1, может как то так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Point
{
    double x, y;
    
    Point(double x, double y)
        : x(x), y(y)
    {
    }
    
    Point(const Point p)
    {
        x = p.x;
        y = p.y;
    }
};
 
class Otrezok
{
    Point p1, p2;
    double k, b;
    
    Otrezok(Point p1, Point p2)
        : p1(p1), p2(p2)
    {
        // Здесь посчитать k и b
        k = ...
        b = ...
    }
};
0
Ferrari F1
622 / 519 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
05.06.2017, 10:41  [ТС] #6
wk__, да) верно) но как эти k и b просчитывать? мне не ясно

Добавлено через 48 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
using namespace std;
 
class Point
{
    signed int x, y;
 
public:
 
    Point(signed int _x, signed int _y) : x(_x), y(_y)
    {   };
};
 
class Otrezok
{
    Point p1, p2;
    double k, b;
 
public:
 
    Otrezok(Point _p1, Point _p2) : p1(_p1), p2(_p2)
    {   }
};
 
int main()
{
    system("pause");
}
0
mat_for_c
168 / 163 / 35
Регистрация: 26.04.2013
Сообщений: 742
Завершенные тесты: 3
05.06.2017, 10:47 #7
C++
1
2
k = (p2.x - p1.x)/(p2.y - p1.y);
b = p2.y - k * p2.x;
+ дописать всякие проверки (0./0. = NaN для типа double)
1
Ferrari F1
622 / 519 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
05.06.2017, 10:49  [ТС] #8
mat_for_c, а b как находить? выражать с известным k?
0
mat_for_c
168 / 163 / 35
Регистрация: 26.04.2013
Сообщений: 742
Завершенные тесты: 3
05.06.2017, 10:54 #9
пордон, ошибся.
C++
1
k = (p2.y - p1.y)/(p2.x - p1.x)
0
Ferrari F1
622 / 519 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
05.06.2017, 10:57  [ТС] #10
mat_for_c, т.е. тело к-тора должно быть таким?
C++
1
2
k = (p2.y - p1.y)/(p2.x - p1.x)
b = p2.y - k * p2.x;
0
mat_for_c
168 / 163 / 35
Регистрация: 26.04.2013
Сообщений: 742
Завершенные тесты: 3
05.06.2017, 10:59 #11
Ferrari F1, да, + для k дописать проверки
1
Ferrari F1
622 / 519 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
05.06.2017, 11:04  [ТС] #12
mat_for_c, ок, теперь такое:
написать методы про обработке точек: void PutPoint(int цвет), void PutLine(int цвет) - отобразить точку и отрезок
это както через win api делается?
0
mat_for_c
168 / 163 / 35
Регистрация: 26.04.2013
Сообщений: 742
Завершенные тесты: 3
05.06.2017, 11:07 #13
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
это как-то через win api делается?
думаю да, но с вин апи не работал.

P.s. заметьте, что если k = бесконечности, уравнение прямой выглядит в таком виде x = b
0
Ferrari F1
622 / 519 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
05.06.2017, 13:16  [ТС] #14
mat_for_c, ок) еще парочка методов осталась:
Otrezok Parallel(Point M); - вычисляет и возвращает координаты отрезка, проходящего через точку M и параллельного текущему отрезку L. Обращение L2 = L.Parallel(M);
C этим как поступать?

Добавлено через 2 часа 4 минуты
pls help!)
0
MrGluck
Модератор
Эксперт CЭксперт С++
7510 / 4642 / 700
Регистрация: 29.11.2010
Сообщений: 12,675
05.06.2017, 14:01 #15
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
чем являются k и b для прямой?
Коэффициентами уравнения прямой, заданной уравнением с угловым коэффициентом.
0
05.06.2017, 14:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2017, 14:01
Привет! Вот еще темы с ответами:

Создать класс комплексных чисел и ввести операции: "+", "-", "*", "/". - C++
пожалуйста-помогите написатьпрограмму!!! сижу на экзамене!!! вот само задание: создать класс комплексных чисел и ввести операции: &quot;+&quot;,...

Наследуемым классом для комплексного числа объявить класс "радиус-вектор", имеющий данные "длина" и "угол" - C++
кто то напишите пожалуйста, вот программа: наследуемым классом для комплексного числа объявить класс &quot;радиус-вектор&quot;, имеющий данные...

Класс "Графический объект", от которого будут наследоваться классы "круг" и "квадрат" - C++
Реализовать класс Графический объект от которого будут наследоваться классы &quot;круг&quot; и &quot;квадрат&quot;. Собственно, сам код, который был написан...

Создать иерархию классов: родительский класс "Транспорт", класс-потомок "Техосмотр транспорта" - C++
Помогите пожалуйста написать программу Родительский класс &quot;Транспорт&quot;. Поля класса: тип транспорта, гос.номер, марка, Ф.И.О владельца,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.