0 / 0 / 0
Регистрация: 21.02.2019
Сообщений: 1
1

На плоскости N различных точек заданы своими координатами. Найти уравнение прямой

21.02.2019, 20:39. Показов 1540. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, если кто может помочь то буду рад очень, надеюсь на помощь, не работает должным образом при определенных точках 0,0,1,0,1,1,0,1 возможно и с другими точками так же не правильно, вот условие: На плоскости N различных точек заданы своими координатами. Найти уравнение прямой, делящей это множество точек на 2 равномощных подмножества (т.е. на подмножества с одинаковым количеством элементов).
Вот прога:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int countPo;
 
            while (true)
            {
                Console.WriteLine("Введите число (только чётное):");
                countPo = Convert.ToInt32(Console.ReadLine());
                if ((countPo % 2) == 0)
                {
                    break;
                }
            }
 
            var points = new List<Tuple<int, int>>();
            
 
            for (var i = 0; i < countPo; i++)
            {
                Console.WriteLine("Введите X координату {0} точки ", i + 1);
                var x = int.Parse(Console.ReadLine());
                Console.WriteLine("Введите У координаты {0} точки", i + 1);
                var y = int.Parse(Console.ReadLine());
                points.Add(new Tuple<int, int>(x, y));
            }
 
            points.Sort();
            foreach (var point in points)
            {
                Console.Write(string.Join(string.Empty, "[", point.Item1, ";", point.Item2, "]", "\t"));
            }
            Console.WriteLine(); if (points[0].Item1 != points[countPo / 2].Item1)
            {
 
                if (points[0].Item2 - (points[countPo / 2].Item2 - points[0].Item2) / (points[countPo / 2].Item1 - points[0].Item1) < 0 && countPo % 2 == 0)
                {
                    Console.Write("y + " + (Math.Abs(points[0].Item2 - (points[countPo / 2].Item2 - points[0].Item2) / (points[countPo / 2].Item1 - points[0].Item1))));
                }
                else
                {
                    Console.Write("y - " + (points[0].Item2 - (points[countPo / 2].Item2 - points[0].Item2) / (points[countPo / 2].Item1 - points[0].Item1)));
                }
                Console.Write(" * (x ");
                if (points[0].Item1 < 0)
                    Console.Write("+ {0})) = 0", Math.Abs(points[0].Item1));
                else
                    Console.Write("- {0})) = 0", points[0].Item1);
            }
 
            else
            {
                Console.WriteLine("Составить уравнение невозможно");
            }
            Console.WriteLine(); Console.ReadLine();
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2019, 20:39
Ответы с готовыми решениями:

На плоскости заданы своими координатами n точек
На плоскости заданы своими координатами n точек.Создать массив размером n(n-1) элементами которого...

На плоскости заданы своими координатами n точек. Определить расстояния от каждой из точек до другой
На плоскости заданы своими координатами n точек.Создать массив размером n(n-1), элементами которого...

На плоскости заданы своими координатами n точек. Создать массив размером n(n-1), элементами которого является расстояние от каждой из точек до n-1 др.
Помогите пожалуйста решить! Пожалуйста! На плоскости заданы своими координатами n точек. Создать...

На плоскости заданы N различных точек с целочисленными координатами.Нужно найти максимальную площадь треугольника
На плоскости заданы N различных точек с целочисленными координатами.Нужно найти треугольник с...

1
172 / 118 / 57
Регистрация: 08.01.2013
Сообщений: 652
21.02.2019, 22:17 2
Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace App1
{
    class Program
    {
        static void Main(string[] args)
        {
            int countPo;
            int x1, x2, y1, y2, x0=0, y0,k,b,rez;
            while (true)
            {
                Console.WriteLine("Введите число (только чётное):");
                countPo = Convert.ToInt32(Console.ReadLine());
                if ((countPo % 2) == 0)
                {
                    break;
                }
            }
 
            var points = new List<Tuple<int, int>>();
 
 
            for (var i = 0; i < countPo; i++)
            {
                Console.WriteLine("Введите X координату {0} точки ", i + 1);
                var x = int.Parse(Console.ReadLine());
                Console.WriteLine("Введите У координаты {0} точки", i + 1);
                var y = int.Parse(Console.ReadLine());
                points.Add(new Tuple<int, int>(x, y));
            }
 
            points.Sort();
            foreach (var point in points)
            {
                Console.Write(string.Join(string.Empty, "[", point.Item1, ";", point.Item2, "]", "\t"));
            }
            Console.WriteLine();
            countPo = 0;
            x1 = points[0].Item1;
            y1 = points[0].Item2;
            x2 = points[points.Count - 1].Item1;
            y2 = points[points.Count - 1].Item2;
            for (int i = 1; i < (points.Count-1); i++)
            {
                x0 = points[i].Item1;
                y0 = points[i].Item2;
                if (((x0 - x1) / (x2 - x1)) == ((y0 - y1) / (y2 - y1))) { }
                else
                {
                    countPo = 1;
                }
            }
            if(countPo!=1)
            {
                k = (y2 - y1) / (x2 - x1);
                b = -(x1 * y2 - x2 * y1) / (x2 - x1);
                if(b<0) {Console.WriteLine($"y={k}*x{b}");}
                else {Console.WriteLine($"y={k}*x+{b}");}
            }
            else
            {
                Console.WriteLine("Составить уравнение невозможно");
            }
            Console.WriteLine(); Console.ReadLine();
        }
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2019, 22:17
Помогаю со студенческими работами здесь

На плоскости заданы своими координатами п точек. Составить программу, определяющую, между какими из пар точек самое большое расстояние
Помогите пожалуйста На плоскости заданы своими координатами п точек. Составить программу,...

На плоскости n точек заданы своими координатами. Выявить множества треугольников по заданию
На плоскости n точек заданы своими координатами, и также дана окружность радиуса R с центром в...

На плоскости заданы N различных точек с целочисленными координатами.Нужно найти кол-во треугольников, площадь которых является целым числом
На плоскости заданы N различных точек с целочисленными координатами.Нужно найти кол-во...

На плоскости заданы своими целочисленными координатоми n точек. Найти все возможные группы...
решите в Borland C++ на плоскости заданы своими целочисленными координатоми n точек .найти все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru