Определить номер четверти плоскости, в которой находится точка с координатами X и Y , причем XY != 0. Координаты вводить с клавиатуры.
С этой задачей, думаю всем все понятно. Нас ещё в пятом классе научили, как работать с координатной плоскостью. Дам одну подсказку: «Обратите внимание на знаки координат».
Номер четверти плоскости с координатами Введите координату 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тандартные заголовочные файлы из Си в С++». Результат работы программы смотрим ниже.
Введите координаты (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
Комментарии
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; }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."; } }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; }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; }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; } }