Симметрия тапсырмасы Берілгені: Многие из вас, вероятно, знакомы с понятием симметрии относительно прямой. Пусть на плоскости расположена прямая L и точка A. Точка B называется симметричной точке A относительно прямой L, если отрезок АВ перпендикулярен прямой L и делится пополам точкой пересечения с ней. В частности, если точка А лежит на прямой L, то точка B совпадает с точкой А.
Задана прямая L, параллельная одной из осей координат, и точка А. Найдите точку В, симметричную А относительно L.
Входные данные
Первая строка входного файла INPUT.TXT содержит 4 числа: x1, y1, x2, y2 – координаты двух различных точек, через которые проходит прямая L. Вторая строка входного файла содержит 2 числа xA и yA – координаты точки А. Все числа во входном файле целые и не превосходят 108 по модулю.
Выходные данные
В выходной файл OUTPUT.TXT выведите числа xB и yB – координаты точки B.
Шығарылу жолы: #include using namespace std;
int main()
{
int long long x1, y1, x2, y2, xa, ya, xb, yb;
cin >> x1 >> y1 >> x2 >> y2 >> xa >> ya;
if (x1 == x2){
xb = 2 * x1 - xa;
yb = ya;
}
if (y1 == y2){
xb = xa;
yb = 2 * y1 - ya;
}
cout << xb << " " << yb;
return 0;
}
#include :бұл жолда деректерді енгізу және шығару үшін стандартты C++ библиотека кітапханасы бар.
using namespace std;: бұл жол STD имен кеңістігіндегі стандартты нысандар мен мүмкіндіктерге қол жеткізуді жеңілдетеді.
Int main () функциясының ішінде код нүктелердің координаттарын сақтау үшін long long сияқты бірнеше бүтін айнымалыларды жариялаудан басталады: x1, y1, x2, y2, xa, ya, xb, және yb
cin >> x1 >> y1 >> x2 >> y2 >> xa >> ya;: бұл оператор пернетақтадан X1, y1, x2, y2, xa және Ya координаталарының мәндерін оқиды. Олар C, A және B нүктелерінің координаттарын білдіреді.
Келесі екі шартты if операторы. Олар X1-x2 және y1-y2 сызықтарының параллель екендігін тексереді.
Егер x1 x2 болса, бұл сегменттің тік (у осіне параллель) екенін білдіреді, бұл жағдайда код В нүктесінің координаттарын А нүктесіне қатысты симметриялы деп есептейді.
Егер y1 Y2 болса, бұл сегменттің көлденең (х осіне параллель) екенін білдіреді, бұл жағдайда код В нүктесінің координаттарын А нүктесіне қатысты симметриялы деп есептейді.
Әрбір шартты оператордың ішінде XB және yb айнымалылары В нүктесінің жаңа координат мәндеріне орнатылады, содан кейін бағдарлама келесі қадамға өтеді.
Соңында, код cout операторының көмегімен есептелген В нүктесінің координаттарын шығарады.
return 0;: Код 0-ді қайтару арқылы аяқталады, бұл бағдарламаның сәтті аяқталуын білдіреді.
Бұл код айнымалы ток сегментіне қатысты симметриялы В нүктесін табу тапсырмасын орындайды.