Проверки за точка

Напишете функции и процедури, които по координатите (X, Y) на точка от равнината определят:

  • дали точката лежи на някоя от осите
  • дали съвпада с друга точка, чиито координати също са подадени като параметър
  • в кой квадрант се намира точката

Да се направи главна програма, която тества тези процедури и функции.

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

4 Responses to Проверки за точка

  1. dreanor каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int Proverka_os(int x, int y){
        if ((x==0)||(y==0)) return 1;
        else return 0;
        }
    
    int Suwpadenie(int x, int y, int x1, int y1){
        if ((x==x1)&&(y==y1)) return 1;
        else return 0;
        }
    
    int Kwadrant (int x, int y){
            if (x>0)
               if (y>0) return 1;
               else return 4;
            if (x<0)
               if (y>0) return 2;
               else return 3;
           }
    
    
    
    int main(int argc, char *argv[])
    {
        int x, y, x1, y1;
        cout<<"Purwi koordinati(x, y): ";
        cin>>x>>y;
        if (Proverka_os(x, y)) cout<<"Suwpada s os\n";
           else
           { 
               cout<<"Ne suwpada s os\n";
               cout<<"Tochkata se namira w ";
        
               switch (Kwadrant(x, y))
                {
                   case 1:cout<<"I"; break;
                   case 2:cout<<"II"; break;
                   case 3:cout<<"III"; break;
                   case 4:cout<<"IV"; break;
                }
               
               cout<<" kwadrant\n";
           }
               
        cout<<"Wtori koordinati(x, y): ";
        cin>>x1>>y1;
        if (Suwpadenie(x, y, x1, y1)) cout<<"Suwpadat!!\n";
           else
           {
               cout<<"Ne suwpadat ";
               if (Kwadrant(x, y)==Kwadrant(x1, y1)) cout <<"no lejat w edin kwadrant\n";
               else cout<<"i ne lejat w edin kwadrant\n";
           }
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
    • Данаил каза:

      Интересно решение и добре подредени проверки, браво! Но функцията, връщаща в кой квадрант е точката е добре да съдържа в себе си код за проверка дали точката лежи на оста. В противен случай ще зависи от това за какви стойности е извикана дали ще върне верен резултат или не. Човек, който реши да ползва функцията, ще трябва преди да я извика винаги да се сеща да проверява дали точката не лежи на някоя от осите. А казахме, че функцията трябва да е самостоятелна и да може да се ползва лесно многократно.

      Първите две функции може да връщат тип bool, ето така:

      bool Proverka_os(int x, int y){
          return ((x==0)||(y==0));
          }
       
      bool Suwpadenie(int x, int y, int x1, int y1){
          return ((x==x1)&&(y==y1));
          }
  2. marant каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    bool os(int x, int y){
        bool os=0;
        if(x==0)
           os=1;
        if(y==0)
           os=1;
           return os;
           }
    bool suv(int x1,int x2,int y1, int y2){
     bool suv=0;
         if((x1==x2)&&(y1==y2))
            suv=1;
            return suv;
            }
    int kv(int x,int y){
    
    int kv=0;
       if((x>0)&&(y>0))
        kv=1;
       if((x<0)&&(y>0))
        kv=2;
       if((x<0)&&(y<0))
        kv=3;
       if((x>0)&&(y<0))
        kv=4;
        return kv;
        }
        
    int main(int argc, char *argv[])
    {
        int x1,x2,y1,y2;
        cin>>x1>>x2>>y1>>y2;
        if(os(x1,y1)>0)
                cout<<"leji na os"<<endl;
        else    cout<<"NE leji na os"<<endl;
        if(suv(x1,x2,y1,y2)>0)
        cout<<"dvata parametura suvpadat"<<endl;
        else cout<<"ne suvpadat"<<endl;
        cout<<"Parametura se namira v "<<kv(x1,y1)<<" kvadrant"<<endl;
                 
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

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