Номер четверти плоскости с координатами

Уровень сложности:

Определить номер четверти плоскости, в которой находится точка с координатами X и Y , причем XY != 0. Координаты вводить с клавиатуры.

С этой задачей, думаю всем все понятно. Нас ещё в пятом классе научили, как работать с координатной плоскостью. Дам одну подсказку: «Обратите внимание на знаки координат».

CppStudio.com
		Номер четверти плоскости с координатами

Введите координату X:  -2

Ведите координату Y:  5

II четверть плоскости
#include <iostream>

using namespace std;

int main()
{
    cout << "\t\tНомер четверти плоскости с координатами\n" << endl;

    int x, y;

    cout << "Введите координату X:  ";
    cin >> x;

    cout << "\n\nВедите координату Y:  ";
    cin >> y;

    if (x != 0 && y != 0)
    {
        if (x > 0 && y > 0)
        {
            cout << "\n\nI четверть плоскости\n\n";
        }
            if (x < 0 && y > 0)
            {
                cout << "\n\nII четверть плоскости\n\n";
            }
                if (x < 0 && y < 0)
                {
                    cout << "\n\nIII четверть плоскости\n\n";
                }
                    if (x > 0 && y < 0)
                    {
                        cout << "\n\nIV четверть плоскости\n\n";
                    }
    }
    else
    cout << "\n\nПроизведение координат не должно равнять 0!!!\n\n";
    return 0;
}

Ниже смотрим второй способ решения данной задачи. Это решение нам предоставил пользователь нашего сайта — Dred. Как всегда, его исходный код сопровождается многочисленными комментариями, прочитав которые, код становится достаточно понятным, даже начинающим программистам.

// определение принадлежности координат квадрантам коорд. плоскости
#include <iostream> // подключаем заголовочный файл с объектами  ввода/вывода
#include <locale> // подключаем заголовочный файл для локализации
using std::cout; // определяем в стандартном пространстве имен объекты  ввода и вывода
using std::cin;

int main()
{
    setlocale(LC_ALL, "Russian");/* функция установки локали
    int x(0),y(0); // вводимые координаты
    char ch='y'; // переменная цикла
    while(ch=='y') // цикл ввода
    {
        cout<<"\n Введите координаты (2-х значные натуральные числа) точки";
        cout<<"\n X= ";
        cin>>x;
        cout<<"\n Y= ";
        cin>>y;
        if (x*y>0) // определяемся с парами квадрантов
           {
                 if (x>0) cout << "\n Координаты принадлежат 1-му квадранту"; //  определяемся конкретно с квадрантом
                 else cout << "\n Координаты принадлежат 3-му квадранту";
           }
           else
               {
                if (x > 0) cout << "\n Координаты принадлежат 4-му квадранту";
                   else
                    cout << "\n Координаты принадлежат 2-му квадранту";
               }
                    cout<<"\n Повторить ввод y/n ";
                    cin>>ch;
    }
return 0;
}

Логика решение немного отличается от первого исходника, исходник простой, так что все должно быть понятно. Также в программе использовалась функция настройка локали, цитирую автора (Dred) программы: «Функция установки локали подробно расписана на этом же сайте в разделе: справочник->cтандартные заголовочные файлы из Си в С++». Результат работы программы смотрим ниже.

CppStudio.com
 Введите координаты (2-х значные натуральные числа) точки
 X= -6 

 Y= 10           

 Координаты принадлежат 2-му квадранту
 Повторить ввод y/n y
den@AR2-D2:~$ '/home/den/prog/Qt_SDK/tt-build-desktop-Qt___PATH______/tt' 

 Введите координаты (2-х значные натуральные числа) точки
 X= -6

 Y= 10

 Координаты принадлежат 2-му квадранту
 Повторить ввод y/n y

 Введите координаты (2-х значные натуральные числа) точки
 X= 11

 Y= 12

 Координаты принадлежат 1-му квадранту
 Повторить ввод y/n n

 

Следующие статьи помогут вам в решении данной задачи:
Автор: Marienko L.
Дата: 01.10.2012
Поделиться:

Комментарии

  1. Graf_Men9999

    #include <stdio.h>
    #include <stdlib.h>
    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int X, Y;
    	char c;
    	g:
    	do
    	{
    		system("cls");
    		cout << "Inputs X(Not equal to 0) and Y(Not equal to 0):\nX = "; cin >> X;
    	}while(X == 0);
    	do
    	{
    		system("cls");
    		cout << "Inputs X(Not equal to 0) and Y(Not equal to 0):\nX = " << X << "\nY = "; cin >> Y;
    	}while(Y == 0);
    	
    	if (X > 0 && Y > 0) cout << "I Quarter plane" << endl;
    	else if (X < 0 && Y > 0) cout << "II Quarter plane" << endl;
    	else if (X < 0 && Y < 0) cout << "III Quarter plane" << endl;
    	else cout << "IV Quarter plane" << endl;
    	cout << "Retry? (y) ";
    	fflush(stdin);
    	scanf("%c", &c);
    	switch(c)
    	{
    		case 'y': case 'Y': goto g;
    	}
    	return 0;
    }
  2. odto11

    odto11

    #include <iostream>
    using namespace std;
    
    void vPlane(int X, int Y);
    
    int main()
    {
        int iX = 0; //координата X
        int iY = 0; //координата Y
    
        cout << "\t\tНомер четверти плоскости с координатами\n";
        cout << "Введите координату X: ";
        cin >> iX;
        cout << "Введите координату Y: ";
        cin >> iY;
    
        vPlane(iX, iY);
    
        return 0;
    }
    
    void vPlane(int X, int Y)
    {
        if(X > 0 && Y > 0)
        {
            cout << "I четверть плоскости";
        }
        if(X < 0 && Y > 0)
        {
            cout << "II четверть плоскости";
        }
        if(X < 0 && Y < 0)
        {
            cout << "III четверть плоскости";
        }
        if(X > 0 && Y < 0)
        {
            cout << "IV четверть плоскости";
        } else
        {
            cout << "Вы ввели нулевые координаты X и Y.";
        }
    }
  3. colt

    #include "stdafx.h"
    #include "iostream"
    #include "windows.h"
    #include "string"
    
    
    using namespace std;
    
    int iX, iY, iId;
    string sP[4]={"I", "II", "III", "IV"};
    
    int _tmain(int argc, _TCHAR* argv[])
    {	
    	SetConsoleCP(1251);
    	SetConsoleOutputCP(1251);
    	
    	while(true)
    	{
    		system("CLS");
    		cout<<"\t\t\tНомер четверти плоскости с координатами\n\n";
    		cout<<"Введите координату X: ";
    		cin>>iX;
    		cout<<"\n";
    		cout<<"Введите координату Y: ";
    		cin>>iY;
    		cout<<"\n";
    
    		if ((iX*iY)!=0) 
    			{ 
    				if (iX>0)
    				{
    					if (iY>0) iId=0;
    					else iId=3;
    				}
    				else 
    				{
    					if (iY>0) iId=1;
    					else iId=2;
    				}
    				cout<<sP[iId]<<" четверть плоскости\n\n";
    			}
    		else cout<<"Не возможно определить четверть\n\n";
    
    		system("PAUSE");
    	}
    	
    	return 0;
    }
  4. Albert Iost

    #include <iostream>
    #include <clocale>
    
    using namespace std;
    
    int main() {
    	setlocale(LC_CTYPE, "rus");
    	int x, y;
    	int *ptrx = &x;
    	int *ptry = &y;
    
    	cout << "Введите координату Х: ";
    	cin >> *ptrx;
    
    	cout << "Введите координату Y: ";
    	cin >> *ptry;
    
    	if (*ptrx == 0 || *ptry == 0) {
    		cout << "Значение координат не может быть равно 0." << endl;
    	}
    	else
    		if (*ptrx > 0 && *ptry > 0) {
    			cout << "I четверть плоскости." << endl;
    		}
    		else
    			if (*ptrx < 0 && *ptry > 0) {
    				cout << "II четверть плоскости." << endl;
    			}
    			else
    				if (*ptrx < 0 && *ptry < 0) {
    					cout << "III четверть плоскости." << endl;
    				}
    				else
    					if (*ptrx > 0 && *ptry < 0) {
    						cout << "IV четверть плоскости." << endl;
    					}
    
    
    
    
    	system("pause");
    	return 0;
    }
  5. Mr_X

    New_Coder

    Решил — было бы неплохо сделать меню что бы усложнить задачу.

    #include <iostream>
    #include <conio.h>
    #include <cstdlib>
    using namespace std;
    void fancy_menu(char* a, int n, int nn)
    {
        cout<<"\t\t\t\t";
        if (n == nn) cout << ">>";
        else cout<<"  ";
        cout << a << endl;
    }
    void n_of_q()
    {
        int x;
        int y;
        for (;;)
        {
            system ("cls");
            cout << "\t\t\tНомер четверти плоскости "<<endl<<"Для выхода в меню x == 0 , y == 0" << endl;
            cout << "Введите x: ";
            cin >> x;
            cout << "Введите y: ";
            cin >> y;
            if ( x == 0 || y == 0)break;
            else if ( x > 0 && y > 0) cout << "I четверть" << endl;
            else if ( x < 0 && y > 0) cout << "II четверть" << endl;
            else if ( x < 0 && y < 0) cout << "III четверть" << endl;
            else if ( x > 0 && y < 0) cout << "IV четверть" << endl;
            _getch();
        }
    
    }
    int main()
    {
        setlocale (LC_ALL, "Russian");
    
        int u = 1;
        char i;
        for (;;)
        {
            system ("cls");
            cout << "\t\t\tНомер четверти плоскости" << endl;
            fancy_menu ("Вычислить", u, 1);
            fancy_menu ("Авторы", u, 2);
            fancy_menu ("Выйти", u, 3);
            i = _getch();
            cout<<i;
            if (i == 'w') u--;
            if (i == 's') u++;
            else;
            if (i == 13 && u == 1) n_of_q();
            if (i == 13 && u == 2)
            {
                system ("cls");
                cout<< "\t\t\tГлавный программист\n\t\t\t  New_Coder\n\t\t\t    Дизайн\n\t\t\t  New_Coder\nОтдельная благодарность сайту cppstudio.com";
                _getch();
            }
            if (i == 13 && u == 3) break;
            if ( u > 3) u = 1;
            if ( u < 1) u = 3;
        }
    }

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.