//week2(problem 4 part 1)
#include<bits/stdc++.h>
using namespace std;
class points
{
public :
float x,y;
} ;
class line
{ public :
points A;
float sum;
float length( points p1,points p2)
{
sum= pow ( ( p1.x - p2.x ) ,2 ) + pow ( ( p1.y - p2.y ) ,2 ) ;
return sqrt ( sum) ;
}
points midpoint( points p1,points p2) //float return dile hobe na
{
A.x = ( p1.x + p2.x ) / 2 ;
A.y = ( p1.y + p2.y ) / 2 ;
/*
// cout<<"Midpoint of the line :"<<"("<<A.x<<" "<<A.y<<")";
if we dont want to return points;
*/
//CAN NOT RETURN 0 BECAUSE ITS POINT TUPE FUNCTION
return A;
}
} ;
int main( )
{ line x;
points a,b,mid;
cout << "Enter coordinate of the first point(x1,y1):" ;
cin >> a.x ;
cin >> a.y ;
cout << "Enter coordinate of the second point(x2,y2):" ;
cin >> b.x ;
cin >> b.y ;
cout << "Length of the line :" << fixed<< setprecision( 2 ) << x.length ( a,b) << endl;
mid= x.midpoint ( a,b) ;
cout << "Midpoint of the line :" << "(" << mid.x << "," << mid.y << ")" << endl;
return 0 ;
}
Ly93ZWVrMihwcm9ibGVtIDQgcGFydCAxKQogCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNsYXNzIHBvaW50cwp7CnB1YmxpYzoKICAgIGZsb2F0IHgseTsKIAogCn07CmNsYXNzIGxpbmUKeyAgIHB1YmxpYzoKICAgIHBvaW50cyBBOwogICAgZmxvYXQgc3VtOwogICAgZmxvYXQgbGVuZ3RoKHBvaW50cyBwMSxwb2ludHMgcDIpCiAgICB7CiAgICAgICAgc3VtPXBvdygocDEueC1wMi54KSwyKStwb3coKHAxLnktcDIueSksMik7CiAgICAgICAgICAgIHJldHVybiBzcXJ0KHN1bSk7CiAKICAgIH0KICAgIHBvaW50cyBtaWRwb2ludChwb2ludHMgcDEscG9pbnRzIHAyKS8vZmxvYXQgcmV0dXJuIGRpbGUgaG9iZSBuYQogICAgewogICAgICAgIEEueD0ocDEueCtwMi54KS8yOwogICAgICAgIEEueT0ocDEueStwMi55KS8yOwogICAgICAvKgogICAgICAvLyBjb3V0PDwiTWlkcG9pbnQgb2YgdGhlIGxpbmUgOiI8PCIoIjw8QS54PDwiICI8PEEueTw8IikiOwogICAgICAgICBpZiB3ZSBkb250IHdhbnQgdG8gcmV0dXJuIHBvaW50czsKIAogICAgICAqLwogICAgICAvL0NBTiBOT1QgUkVUVVJOIDAgQkVDQVVTRSBJVFMgUE9JTlQgVFVQRSBGVU5DVElPTgogICAgIHJldHVybiBBOwogICAgfQogCiAKIAp9OwppbnQgbWFpbigpCnsgICBsaW5lIHg7CiAgICBwb2ludHMgYSxiLG1pZDsKICAgIGNvdXQ8PCJFbnRlciBjb29yZGluYXRlIG9mIHRoZSBmaXJzdCBwb2ludCh4MSx5MSk6IjsKICAgIGNpbj4+YS54OwogICAgY2luPj5hLnk7CiAgICBjb3V0PDwiRW50ZXIgY29vcmRpbmF0ZSBvZiB0aGUgc2Vjb25kIHBvaW50KHgyLHkyKToiOwogICAgY2luPj5iLng7CiAgICBjaW4+PmIueTsKICAgIGNvdXQ8PCJMZW5ndGggb2YgdGhlIGxpbmUgOiI8PGZpeGVkPDxzZXRwcmVjaXNpb24oMik8PHgubGVuZ3RoKGEsYik8PGVuZGw7CiAgICBtaWQ9eC5taWRwb2ludChhLGIpOwogICBjb3V0PDwiTWlkcG9pbnQgb2YgdGhlIGxpbmUgOiI8PCIoIjw8bWlkLng8PCIsIjw8bWlkLnk8PCIpIjw8ZW5kbDsKIAogICAgcmV0dXJuIDA7Cn0=