Да се създаде библиотека за работа с точки (с файлове tochki.h и tochki.cpp), който съдържа следните функции:
- четене на координатите на точка от клавиатурата
- извеждане на координатите на точка на екрана
- проверка дали две точки съвпадат
- проверка дали дадена точка е на някоя от осите
- проверка в кой квадрант е дадена точка
Напишете програма, която демонстрира тази библиотека.
По желание: Добавете и други функции за работа с точки.


Програмата:
#include <iostream> #include <stdlib.h> #include "tochki.h" using namespace std; int main(int argc, char** argv) { int x, y; //четене на координатите на точка от клавиатурата chetene(x, y); //извеждане на координатите на точка на екрана izvejdane(x, y); //проверка дали две точки съвпадат cout<<"Dali savpadat: "<<savpadat(2,3, 3,2)<<endl; cout<<"Dali savpadat: "<<savpadat(3,2, 3,2)<<endl; //проверка дали дадена точка е на някоя от осите cout<<"Dali e na nqkoq ot osite: "<<na_osite(2,3)<<endl; cout<<"Dali e na nqkoq ot osite: "<<na_osite(0,3)<<endl; cout<<"Dali e na nqkoq ot osite: "<<na_osite(2,0)<<endl; //проверка в кой квадрант е дадена точка cout<<"Kvadrant "<<kvadrant( 2, 3)<<endl; cout<<"Kvadrant "<<kvadrant(-2, 3)<<endl; cout<<"Kvadrant "<<kvadrant(-2,-3)<<endl; cout<<"Kvadrant "<<kvadrant( 2,-3)<<endl; //проверка дали две точки са огледални cout<<"Dali sa ogledalni: "<<ogledalni( 2, 3, 2, 3)<<endl; cout<<"Dali sa ogledalni: "<<ogledalni( 2, 3, 2,-3)<<endl; cout<<"Dali sa ogledalni: "<<ogledalni( 2, 3, -2, 3)<<endl; system("pause"); return 0; }tochki.cpp
#include <iostream> #include <stdlib.h> using namespace std; //четене на координатите на точка от клавиатурата void chetene(int &x, int &y){ cout<<"Vavedete koordinatite na tochka: "; cin>>x>>y; } //извеждане на координатите на точка на екрана void izvejdane(int x, int y){ cout<<"("<<x<<";"<<y<<")"<<endl; } //проверка дали две точки съвпадат bool savpadat(int x1, int y1, int x2, int y2){ if((x1==x2) && (y1==y2)) return true; else return false; } //проверка дали дадена точка е на някоя от осите bool na_osite(int x, int y){ if((x==0) || (y==0)) return true; else return false; } //проверка в кой квадрант е дадена точка int kvadrant(int x, int y){ if((x>0) && (y>0)) return 1; else if((x<0) && (y>0)) return 2; else if((x<0) && (y<0)) return 3; else if((x>0) && (y<0)) return 4; else return 0; } //проверка дали две точки са огледални bool ogledalni(int x1, int y1, int x2, int y2){ if((x1==-x2) || (y1==-y2)) return true; else return false; }tochki.h
Вярно! За функциите, които връщат булева стойност, по принцип може да връщаш и директно условието на if-а, но и така, както си го направил става, и е по-прегледно. Хареса ми и това, че за тестването на функциите си пробвал всички възможни варианти, за да се види резултата от изпълнението им в тях. Това си е известен подход в програмирането, виж статията Разработка чрез тестове в Уикипедия.