Нужно решить задачу в MS Visual C++.
1. Ввести дату и номер дня недели. Если это пятница, 13, то вывести подходящее текстовое сообщение, иначе - ничего не выводить.
2. Известны координаты трех точек на плоскости. Вывести сообщение о том, какая из точек ближе к началу координат, и все соответствующие расстояния.
Другие языки программирования и технологии
C++ Вывести сообщение о том, какая из точек ближе к началу координат, и все соответствующие расстояния.
#include <iostream>
using namespace std;
#define minimum(a, b, c) (((a) < (b)) ? ((a) < (c)) ? (a) : (c) : ((b) < (c)) ? (b) : (c))
struct point {
point() : x(0), y(0), rv(0) { }
point(double _x, double _y) : x(_x), y(_y), rv(sqrt(_x * _x + _y * _y)) { }
double x;
double y;
double rv;
friend bool operator<(const point & _p1, const point & _p2) { return _p1.rv < _p2.rv; }
friend bool operator>(const point & _p1, const point & _p2) { return _p1.rv > _p2.rv; }
};
int main () {
locale::global(locale(""));
const size_t q = 3;
point pt[q];
double x, y;
for (size_t n = 0; n < q; n++) {
cout << " Введите координаты X, Y " << n + 1 << "-й точки: ";
cin >> x >> y;
point temp(x, y);
pt[n] = temp;
}
point min = minimum(pt[0], pt[1], pt[2]);
cout << "\n Ближайшая точка: (" << min.x << "; " << min.y << ')' << endl;
cout << "\n Расстояния точек от центра: \n\n";
for (size_t n = 0; n < q; n++) cout << " (" << pt[n].x << "; " << pt[n].y << "), r = " << pt[n].rv << endl;
cin.get(); cin.get();
return 0;
}
using namespace std;
#define minimum(a, b, c) (((a) < (b)) ? ((a) < (c)) ? (a) : (c) : ((b) < (c)) ? (b) : (c))
struct point {
point() : x(0), y(0), rv(0) { }
point(double _x, double _y) : x(_x), y(_y), rv(sqrt(_x * _x + _y * _y)) { }
double x;
double y;
double rv;
friend bool operator<(const point & _p1, const point & _p2) { return _p1.rv < _p2.rv; }
friend bool operator>(const point & _p1, const point & _p2) { return _p1.rv > _p2.rv; }
};
int main () {
locale::global(locale(""));
const size_t q = 3;
point pt[q];
double x, y;
for (size_t n = 0; n < q; n++) {
cout << " Введите координаты X, Y " << n + 1 << "-й точки: ";
cin >> x >> y;
point temp(x, y);
pt[n] = temp;
}
point min = minimum(pt[0], pt[1], pt[2]);
cout << "\n Ближайшая точка: (" << min.x << "; " << min.y << ')' << endl;
cout << "\n Расстояния точек от центра: \n\n";
for (size_t n = 0; n < q; n++) cout << " (" << pt[n].x << "; " << pt[n].y << "), r = " << pt[n].rv << endl;
cin.get(); cin.get();
return 0;
}
Ну дык подсказка же! Найди расстояния, а затем сравнивай.
Похожие вопросы
- Как по координатам трех точек треугольника определить - начало координат находится внутри него или за его пределами?
- C++ Вывести сколько выпил каждый из друзей в литрах, сколько выпито всего и ...
- Паскаль. СРОЧНО ;( Выяснить принадлежит ли точка (x;y) кругу единичного радиуса с центром в начале координат
- народ как смещать начало координат при рисовании графика в delphi, компонент paintbox...
- Разработать класс описывающий множество точек на плоскости, реализовать метод который возвращает наименьшее расстояние
- Где найти готовый исходник простенькой операционной системы, которая умеет только-загрузится, вывести сообщение на экран
- Знатокам AutoCAD!!! Не могу ввести вторую координату точки отрезка.
- turbo pascal 7.0 Определить принадлежность к области точек с заданными координатами!!!
- Дано четыре числа, вывести на экран то, которое меньшее и то, которое большее с соответствующим обобщением. В C++
- Pascal. Даны координаты начала и конца отрезка. Определить координаты всех точек этого отрезка.
Только по проще...