[C] Điểm Oxy
Tác giả:
- Trần Hán Huy – tranhanhuy.wordpress.com
Sách:
- Bài tập kĩ thuật lập trình C/C++ – Nguyễn Tấn Trần Minh Khang
Đề bài
- Điểm trong mặt phẳng Oxy
540 khai báo dữ liệu điểm OXY
541 Nhập tọa độ điểm trong mặt phẳng
542 Xuất tọa độ điểm trong mặt phẳng
543 Tính khoảng cách giữa 2 điểm
544 Tính khoảng cách 2 điểm theo phương Ox
545 Tính khoảng cách 2 điểm theo phương Oy
546 Tìm tọa độ điểm đối xứng qua gốc tọa độ
547 Tìm điểm đối xứng qua trục hoành
548 Tìm điểm đối xứng qua trục tung
549 Tìm điểm đối xứng qua đường phân giác thứ 1 (y=x)
550 Tìm điểm đối xứng qua đường phân giác thứ 2 (y=-x)
551 Kiểm tra điểm thuộc phần tư thứ 1 ko?
552 Kiểm tra điểm thuộc phần tư thứ 2 ko?
553 Kiểm tra điểm thuộc phần tư thứ 3 ko?
554 Kiểm tra điểm thuộc phần tư thứ 4 ko?
Code
/*Nick yahoo: conloyal*/ /*Soft: visual studio 2008*/ #include <stdio.h> #include <math.h> //540 khai báo dữ liệu điểm OXY struct Diem { float fX; float fY; }; //541 Nhập tọa độ điểm trong mặt phẳng void Nhap(Diem &a) { printf("Nhap X: "); scanf_s("%f",&a.fX); printf("Nhap Y: "); scanf_s("%f",&a.fY); } //542 Xuất tọa độ điểm trong mặt phẳng void Xuat(Diem a) { printf("<%.2f,%.2f>", a.fX,a.fY); } //543 Tính khoảng cách giữa 2 điểm float KhoangCach2Diem(Diem a, Diem b) { float X = pow((b.fX - a.fX),2); float Y = pow((b.fY - a.fY),2); return sqrt(X + Y); } //544 Tính khoảng cách 2 điểm theo phương Ox float KhoangCach2DiemTheoOx(Diem a, Diem b) { return fabs(a.fX - b.fX); } //545 Tính khoảng cách 2 điểm theo phương Oy float KhoangCach2DiemTheoOy(Diem a, Diem b) { return fabs(a.fY - b.fY); } //546 Tìm tọa độ điểm đối xứng qua gốc tọa độ Diem DiemDoiXungQuaO(Diem a) { Diem c; c.fX = -1*a.fX; c.fY = -1*a.fY; return c; } //547 Tìm điểm đối xứng qua trục hoành Diem DiemDoiXungQuaOx(Diem a) { Diem c; c.fX = 1*a.fX; c.fY = -1*a.fY; return c; } //548 Tìm điểm đối xứng qua trục tung Diem DiemDoiXungQuaOy(Diem a) { Diem c; c.fX = -1*a.fX; c.fY = 1*a.fY; return c; } //549 Tìm điểm đối xứng qua đường phân giác thứ 1 (y=x) Diem DiemDoiXungQuaPhanGiac1(Diem a) { Diem c; c.fX = 1*a.fY; c.fY = 1*a.fX; return c; } //550 Tìm điểm đối xứng qua đường phân giác thứ 2 (y=-x) Diem DiemDoiXungQuaPhanGiac2(Diem a) { Diem c; c.fX = -1*a.fY; c.fY = -1*a.fX; return c; } //551 Kiểm tra điểm thuộc phần tư thứ 1 ko? bool KiemTraPhanTu1(Diem a) { if (a.fX > 0 && a.fY >0) return true; return false; } //552 Kiểm tra điểm thuộc phần tư thứ 2 ko? bool KiemTraPhanTu2(Diem a) { if (a.fX < 0 && a.fY >0) return true; return false; } //553 Kiểm tra điểm thuộc phần tư thứ 3 ko? bool KiemTraPhanTu3(Diem a) { if (a.fX < 0 && a.fY <0) return true; return false; } //554 Kiểm tra điểm thuộc phần tư thứ 4 ko? bool KiemTraPhanTu4(Diem a) { if (a.fX > 0 && a.fY <0) return true; return false; } void main() { Diem a, b; Nhap(a); Nhap(b); printf("\nDiem a: "); Xuat(a); printf("\nDiem b: "); Xuat(b); printf("\nKhoang cach 2 diem: %.2f", KhoangCach2Diem(a,b)); printf("\nKhoang cach 2 diem theo Ox: %.2f", KhoangCach2DiemTheoOx(a,b)); printf("\nKhoang cach 2 diem theo Oy: %.2f", KhoangCach2DiemTheoOy(a,b)); Diem c; c = DiemDoiXungQuaO(a); printf("\nDiem doi xung qua O cua a: "); Xuat(c); c = DiemDoiXungQuaOx(a); printf("\nDiem doi xung qua Ox cua a: "); Xuat(c); c = DiemDoiXungQuaOy(a); printf("\nDiem doi xung qua Oy cua a: "); Xuat(c); c = DiemDoiXungQuaPhanGiac1(a); printf("\nDiem doi xung qua phan giac 1 cua a: "); Xuat(c); c = DiemDoiXungQuaPhanGiac2(a); printf("\nDiem doi xung qua phan giac 2 cua a: "); Xuat(c); if (KiemTraPhanTu1(a)) printf("\na thuoc phan tu thu 1"); else printf("\na ko thuoc phan tu thu 1"); if (KiemTraPhanTu2(a)) printf("\na thuoc phan tu thu 2"); else printf("\na ko thuoc phan tu thu 2"); if (KiemTraPhanTu3(a)) printf("\na thuoc phan tu thu 3"); else printf("\na ko thuoc phan tu thu 3"); if (KiemTraPhanTu4(a)) printf("\na thuoc phan tu thu 4"); else printf("\na ko thuoc phan tu thu 4"); }
Link source: