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


#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)); }#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; }Вярно! Резултатът от функцията може да бъде проверен и така:
if(os(x1,y1)) cout<<"leji na os"<<endl; else cout<<"NE leji na os"<<endl; if(suv(x1,x2,y1,y2)) cout<<"dvata parametura suvpadat"<<endl; else cout<<"ne suvpadat"<<endl;