Advertisement
Domerk

Лаба_1(3)

Sep 19th, 2012
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.00 KB | None | 0 0
  1. //Программа, определяющая, принадлежит ли точка фигуре, расположенной на координатной плоскости
  2.  
  3. #include <iostream>
  4. using namespace std; // все имена принадлежат пространству имён std
  5.  
  6. int R, x, y; //R - радиус окружности, x1, y1 - координаты точки, описываем их как глобальные переменные - а почему бы нет?
  7. void Fn1 (int R); // объявляем функцию, принимающую целочисленное значение и ничего не возвращающую
  8.  
  9. int main ()
  10. {
  11.     int i=0; // i - переменная для работы с циклом присваиваем нолик
  12.     setlocale(LC_CTYPE,""); // русификатор :)
  13.    
  14.     while (i!=2) // пока переменная не равна 2... (условие выхода из цикла такого, что цикл выполнится хотя бы 1 раз)
  15.     {
  16.         cout << "Введите значение радиуса окружности:"<<endl; //запрос на получение значения радиуса
  17.         cin >> R; //считываем значение радиуса с клавы
  18.         Fn1(R); //передаём его в качестве параметра в функцию
  19.         cout << "Продолжить работу?"<<endl<<"1 - да"<<endl<<"2 - нет"<<endl; //после выполнения функции выводим запрос на продолжение работы
  20.         cin >> i; //считываем ответ в переменную
  21.         system("cls"); // снова некросплатформенно чистим экран
  22.     }
  23.     return 0;
  24. }
  25.  
  26.  
  27.  
  28. void Fn1 (int R) //Тело функции описывается под основной функцией
  29. {
  30.     system("cls"); //чистим экран, увы, некросплатформенно
  31.  
  32.     cout << "Введите координаты точки: х, у"<<endl; //просим ввести координаты точки
  33.     cin >> x; // считываем х
  34.     cout << endl; // спускаемся на строчку ниже, просто для красоты))
  35.     cin >> y; // считываем у
  36.  
  37.     system("cls"); // снова некросплатформенно чистим экран
  38.  
  39.     //=================================================================
  40.  
  41.     if ((y>=0)&&(x>=0)) //Обработка 1-го сегмента - 1-й четверти координатной плоскости; если значения х и у положительны
  42.     {
  43.         if ((y*y+x*x)<=(R*R)) //если сумма квадратов координат точек меньше квадрата радиуса
  44.         {
  45.             cout << "Принадлежит"<<endl; //то принадлежит
  46.         }
  47.         else //если больше
  48.         {
  49.             cout << "Не принадлежит"<<endl; //то не принадлежит
  50.         }
  51.     }
  52.  
  53.     //=================================================================
  54.  
  55.     if ((y<0)&&(x>=0)) //Обработка 2-го сегмента - 2-й четверти координатной плоскости; если значения х положительно, но значение у отрицательно
  56.     {
  57.         if ((y*y+x*x)<=(R*R)) //если сумма квадратов координат точек меньше квадрата радиуса
  58.         {
  59.             cout << "Принадлежит"<<endl; //то принадлежит
  60.         }
  61.         else //если больше
  62.         {
  63.             cout << "Не принадлежит"<<endl; //то не принадлежит
  64.         }
  65.     }
  66.  
  67.     //=================================================================
  68.  
  69.     if ((y<0)&&(x<0)) //Обработка 3-го сегмента - 3-й четверти координатной плоскости; если значения
  70.     {
  71.         if ((y*y+x*x)<=(R*R)) //если сумма квадратов координат точек меньше квадрата радиуса
  72.         {
  73.             cout << "Принадлежит"<<endl; //то принадлежит
  74.         }
  75.         else //если больше
  76.         {
  77.             cout << "Не принадлежит"<<endl; //то не принадлежит
  78.         }
  79.     }
  80.  
  81.     //=================================================================
  82.  
  83.     if ((y>=0)&&(x<0)) //Обработка 4-го сегмента - 4-й четверти координатной плоскости; если значения у положительно, а х - отрицательно
  84.     {
  85.         if (y<x+R) //если координата у данной точки меньше координаты у для точки с аналогичным значением х принадлежащей прямой
  86.         {
  87.             cout << "Принадлежит"<<endl; //то принадлежит
  88.         }
  89.         else //если больше
  90.         {
  91.             cout << "Не принадлежит"<<endl; //то не принадлежит
  92.         }
  93.     }
  94.     cin.sync();
  95.     cin.clear();
  96.     cin.get();
  97.     system("cls"); //снова чистим экран
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement