Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
0 / 0 / 1
Регистрация: 24.09.2014
Сообщений: 29
1

Найти ближайшую точку к началу координат

24.09.2014, 19:13. Показов 5250. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите с заданием пожалуйста!
Даны действительные числа x0, y0, x1, y1, x2, y2, x3, y3 . На плоскости заданы точки A(x1, y1), B(x2,y2) и C(x3, y3) . Определить, какая из этих точек является ближайшей к началу координат.

Вот мои попытки, что то не получается.. выводиться только точка С

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            double x0, y0, x1, y1, x2, y2, x3, y3, r1, r2, r3, minR;
            string min;
            x0 = 0;
            y0 = 0;
            Console.WriteLine("Точка А");
            Console.WriteLine("Введите значение x1");
            x1 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Введите значение y1");
            y1 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Точка B");
            Console.WriteLine("Введите значение x2");
            x2 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Введите значение y2");
            y2 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Точка C");
            Console.WriteLine("Введите значение x3");
            x3 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Введите значение y3");
            y3 = Convert.ToDouble(Console.ReadLine());
            r1 = Math.Pow((Math.Pow((x0 - x1), 2) + Math.Pow((y0 - y1), 2)), 0.5);
            r2 = Math.Pow((Math.Pow((x0 - x2), 2) + Math.Pow((y0 - y2), 2)), 0.5);
            r3 = Math.Pow((Math.Pow((x0 - x3), 2) + Math.Pow((y0 - y3), 2)), 0.5);
            minR = 0;
            min = "0";
 
            if (r1 > minR)
            {
                min = "A";
            }
            if (r2 > minR)
            {
                min = "B";
            }
            if (r3 > minR)
            {
                min = "C";
            }
            if ((r1 == r2) && (r1 == minR))
            {
                min = "A,B";
            }
            if ((r2 == r3) && (r2 == minR))
            {
                min = "B,C";
            }
            if ((r1 == r3) && (r1 == minR))
            {
                min = "A,C";
            }
            if ((r1 == r2) && (r2 == r3) && (r1 == minR))
            {
                min = "A,B,C";
            }
            Console.WriteLine("Ответ:");
            Console.WriteLine("Наименьшее расстояние до начала координат от точки " + min);
            Console.ReadKey();
        }
    }
}
Visual studio c# 2010 express
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2014, 19:13
Ответы с готовыми решениями:

Найти точку среди точек данного множества, лежащих в первой четверти, наиболее близкую к началу координат
Дано множество A из N точек на плоскости. Найти точку (вывести её номер и значение) среди всех...

Найти точку среди всех точек этого множества, лежащих в первой четверти, наиболее близкую к началу координат
помогите решить задачу если можно то скоментариями зарание спасибо. Дано множество A из N точек...

Найти ближайшую к началу координат точку
#include<stdio.h> int main(void) { char A,B; int x1,y1,x2,y2; printf("Input...

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

6
9 / 10 / 2
Регистрация: 18.06.2013
Сообщений: 119
24.09.2014, 19:50 2
а указатели не проще использовать, либо в массив засунуть???
0
0 / 0 / 1
Регистрация: 24.09.2014
Сообщений: 29
24.09.2014, 19:54  [ТС] 3
У нас была по программированию 1 лекция только) я еще мало чего знаю.
Если не сложно напиши код, а я уже буду разбирать
0
1150 / 742 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
25.09.2014, 01:54 4
Лучший ответ Сообщение было отмечено Влад Я как решение

Решение

Если по максимуму сохранить ваш код, то так:
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
    class Program
    {
        static void Main(string[] args)
        {
            double x0, y0, x1, y1, x2, y2, x3, y3, r1, r2, r3, minR;
            string min;
            x0 = 0;
            y0 = 0;
            Console.WriteLine("Точка А");
            Console.WriteLine("Введите значение x1");
            x1 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Введите значение y1");
            y1 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Точка B");
            Console.WriteLine("Введите значение x2");
            x2 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Введите значение y2");
            y2 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Точка C");
            Console.WriteLine("Введите значение x3");
            x3 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Введите значение y3");
            y3 = Convert.ToDouble(Console.ReadLine());
            r1 = Math.Pow((Math.Pow((x0 - x1), 2) + Math.Pow((y0 - y1), 2)), 0.5);
            r2 = Math.Pow((Math.Pow((x0 - x2), 2) + Math.Pow((y0 - y2), 2)), 0.5);
            r3 = Math.Pow((Math.Pow((x0 - x3), 2) + Math.Pow((y0 - y3), 2)), 0.5);
 
            minR = r1;
            min = "A";
            if (r2 < minR)
            {
                minR = r2;
                min = "B";
            }
            if (r3 < minR)
            {
                minR = r3;
                min = "C";
            }
            if (r1 == minR && r2 == minR)
                min = "A, B";
            if (r2 == minR && r3 == minR)
                min = "B, C";
            if (r1 == minR && r3 == minR)
                min = "A, C";
            if (r1 == minR && r2 == minR && r3 == minR)
                min = "A, B, C";
            Console.WriteLine("Ответ:");
            Console.WriteLine("Наименьшее расстояние до начала координат от точки " + min);
            Console.ReadKey();
        }
    }
1
0 / 0 / 1
Регистрация: 24.09.2014
Сообщений: 29
25.09.2014, 21:20  [ТС] 5
спасибо
0
870 / 720 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
25.09.2014, 21:46 6
Влад Я,
Почему бы не использовать массивы и цикл?
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
26.09.2014, 15:05 7
Влад Я,
C#
1
2
3
4
5
6
7
 private static double D(double x,double y)
{
     return x*x+y*y;
}
//...
double minR = Math.Min(D(x1,y1), Math.Min(D(x2,y2), D(x3,y3));
minR = Math.Sqrt(minR);
0
26.09.2014, 15:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2014, 15:05
Помогаю со студенческими работами здесь

Найти точку ближайшую к началу координат.
На правой ветви квадратичной гиперболы y=\frac{4\sqrt{2}}{x^2} найти точку C ближайшую к началу...

Определить ближайшую точку к началу координат из трех заданных
Помогите решить задачу: Определить ближайшую точку к началу координат из трех заданных. Заранее...

Определить ближайшую к началу координат точку плоскости из трех заданных
млин..кто может хелп ми!!! дали задачу...-определить ближайшую к началу координат точку плоскости...

Среди точек множества, лежащих в первой или третьей четверти, найти точку, наиболее близкую к началу координат
Дано множество A из N точек (точки заданы своими координатами x, y). Среди всех точек этого...


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

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