Библиотека за работа с точки

Да се създаде библиотека за работа с точки (с файлове tochki.h и tochki.cpp), който съдържа следните функции:

  1. четене на координатите на точка от клавиатурата
  2. извеждане на координатите на точка на екрана
  3. проверка дали две точки съвпадат
  4. проверка дали дадена точка е на някоя от осите
  5. проверка в кой квадрант е дадена точка

Напишете програма, която демонстрира тази библиотека.

По желание: Добавете и други функции за работа с точки.

Публикувано в 12в с етикети . Постоянна връзка.

2 Responses to Библиотека за работа с точки

  1. kaloyan каза:

    Програмата:

    #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

    //четене на координатите на точка от клавиатурата
    void chetene(int &x, int &y);
    
    //извеждане на координатите на точка на екрана
    void izvejdane(int x, int y);
    
    //проверка дали две точки съвпадат
    bool savpadat(int x1, int y1, int x2, int y2);
    
    //проверка дали дадена точка е на някоя от осите
    bool na_osite(int x, int y);
    
    //проверка в кой квадрант е дадена точка
    int kvadrant(int x, int y);
    
    //проверка дали две точки са огледални
    bool ogledalni(int x1, int y1, int x2, int y2);
    • Данаил каза:

      Вярно! За функциите, които връщат булева стойност, по принцип може да връщаш и директно условието на if-а, но и така, както си го направил става, и е по-прегледно. Хареса ми и това, че за тестването на функциите си пробвал всички възможни варианти, за да се види резултата от изпълнението им в тях. Това си е известен подход в програмирането, виж статията Разработка чрез тестове в Уикипедия.

Вашият коментар