Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2011, 20:30   #1
andri
Новичок
Джуниор
 
Аватар для andri
 
Регистрация: 01.12.2011
Сообщений: 2
По умолчанию Проверка/установка параллельности прямых

Дорогие программисты, пожалуйста, помогите с задачей:

Написать по двум определяющим точкам на плоскости класс линия по двум функциональностям:
1. Дающая возможность проверить параллельность себя и другого какого-то объекта;
2. Делать либо себя, либо принимаемый объект параллельным, т.е. либо какого-то объекта параллельным себе, либо себя параллельным какому-то объекту.

Алгоритм:
Угол phi между двумя прямыми, заданными уравнениями: y1=k1x+b1 (первая прямая) и y2=k2x+b2 (вторая прямая), может быть вычислен по формуле phi=(k2-k1)/(1+k1k2).
Прямые параллельные если phi = 0, если phi не = 0 прямые, не параллельные, тогда k1=k2.

Есть такой код:


#include "stdafx.h"
#include <iostream>
using namespace std;
class Line //определение класса Line
{
int m_k1, m_k2, m_b1, m_b2; //объявление прямых
public:
Line(int m_k1, int m_k2, int m_b1, int m_b2); //конструктор
~Line(); //деструктор
void CheckParallel(int phi);
void SetParallel(int k1);
void ShowParallel();
void Setk1(int k1) {m_k1=k1;};
void Setk2(int k2) {m_k2=k2;};
void Setb1(int b1) {m_b1=b1;};
void Setb2(int b2) {m_b2=b2;};
int Getk1() const {return m_k1;}
int Getk2() const {return m_k2;}
int Getb1() const {return m_b1;}
int Getb2() const {return m_b2;}
}; ////конец класса Line

Line::CheckParallel(int phi)hi(0) ////функция проверяющая на параллельность линии
{
int phi;
phi = (m_k2-m_k1)/(1+m_k1*m_k2);
if(myphi == 0) //Проверка параллельности прямых
{
std::cout << "Lines are parallel!" << "\n";
}
return phi;
}
Line::SetParallel(int k1) //функция устанавливающая параллельность линий
{
if(phi != 0)
{
myk1=myk2;
std::cout << "Lines are parallel, will be parallel, if k1=k2:\t" << Line.Getk1() << endl;
}
return k1;
}
Line::ShowParallel() //функция показывающая линии
{
cout << "Первая линия\n \t k1: \t" << Line.Getk1() << "\t b1 \t" << Line.Getb1() << endl;
cout << "Вторая линия\n \t k2: \t" << Line.Getk2() << "\t b2 \t" << Line.Getb2() << endl;
}
Line::Line(int m_k1, int m_k2, int m_b1, int m_b2) //инициализация конструктора
{
m_k1 = 0;
m_k2 = 0;
m_b1 = 0;
m_b2 = 0;
Line.Setk1(20);
Line.Setb1(10);
Line.Setk2(20);
Line.Setb2(10);
}
Line::~Line() //деструктор
{
}
int main() //функция main() начинает исполнение программы
{
Line myLine(20, 10, 20, 10); //инициализация прямых

myLine.ShowParallel();
//ручной ввод прямых в main()
int myk1, myk2, myb1, myb2;
cout<<"\nEnter the first line\n\t myk1:\t"; //ввести первую прямую
cin>>myk1;
cout<<"\tmyb1: \t";
cin>>myb1;
cout<<"\nEnter the second line\n\t myk2:\t"; //ввести первую прямую
cin>>myk2;
cout<<"\tmyb2:\t";
cin>>myb2;
int myphi;
myphi = (myk2-myk1)/(1+myk1*myk2);
if(myphi == 0) //Проверка параллельности прямых
{
std::cout << "Lines are parallel!" << "\n";
}
else //Установка параллельности прямых
{
myk1=myk2;
std::cout << "Lines are parallel, will be parallel, if myk1=myk2:\t" << myk1 << endl;
}
return 0; //показывает успешное завершение
} //конец функции main()
andri вне форума Ответить с цитированием
Старый 03.12.2011, 15:22   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

И с чем помочь?
onewho вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задано множество прямых на плоскости darya17 C++ Builder 1 02.06.2011 06:28
Точка пересечения трех прямых на плоскости QuadroX Помощь студентам 21 16.05.2010 01:10
Найти минимальное множество прямых Inokentiy Помощь студентам 12 11.05.2010 18:00
Построение прямых Aleksandr Общие вопросы Delphi 21 19.06.2007 15:44