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

Найти номера двух точек, расстояние между которыми наибольшее

16.04.2011, 17:36. Показов 2392. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача:

Даны координаты n-точек на плоскости (x;y.....Xn;Yn//n-может находится в диапазоне от 1-20//).
Найти номера двух точек,расстояние между которыми наибольшее.(Считать что такая пара точек единственная)

пожалуйста помогите решить(((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
16.04.2011, 17:36
Ответы с готовыми решениями:

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

Найти номера двух точек, расстояние между которыми наибольшее
Даны координаты N точек на плоскости x(0),y(0),...x(n),y(n) (N=20). Найти номера двух точек,...

Найти номера двух точек, расстояние между которыми наибольшее
Даны координаты N точек на плоскости x(0), y(0) ,..., x(n), y(n) (N=20). Найти номера двух точек,...

Найти номера двух точек, расстояние между которыми наибольшее
Даны координаты N точек на плоскости x(0), y(0) ,..., x(n), y(n) (N=20). Найти номера двух точек,...

16
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
16.04.2011, 18:40 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int max_1=1;//номера точек расстояние между которыми максимальное
int max_2=2;//номера точек расстояние между которыми максимальное
int max=Math.Sqrt(Math.Pow(mas[0]-mas[2],2)+Math.Pow(mas[1]-mas[3],2));
 
for(int i=4;i<mas.Length-2;i+=2)
    for(int j=i+2;j<mas.Length;j+=2)
    {
        int Temp=Math.Sqrt(Math.Pow(mas[i]-mas[j],2)+Math.Pow(mas[i+1]-mas[j+1],2));
        if(Temp>max)
        {
             max_1=i/2+1;
             max_2=j/2+1;
             max=Temp;
        }
    }
1
0 / 0 / 1
Регистрация: 16.04.2011
Сообщений: 20
16.04.2011, 19:15  [ТС] 3
и куда теперь ету часть вбить?где мне задать этот масив "mas" что бы он запрашивал ввод точек?
0
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
16.04.2011, 19:26 4
где угодно, можете рандомно в цикле заполнить + не известно где вы пишите WindowsForm или ConsoleApplication?
1
0 / 0 / 1
Регистрация: 16.04.2011
Сообщений: 20
16.04.2011, 23:20  [ТС] 5
windows form
0
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
17.04.2011, 01:06 6
ну можете сказать что бы в TextBox ввели числа через пробел потом
C#
1
string[] mas_temp = textBox.Text.Split(' ');
разделяете значения сплитом, после этого
C#
1
2
3
int[] mas=new int[mas_temp.Length];
for(int i=0;i<mas_temp.Length;i++)
       mas[i]=int.Parse(mas_temp[i]);
потом сделать кнопочку к примеру "Анализ" в обработчике клика на кнопку, написать код выше(тот который написан хрен знает когда, самый первый), и вывод результата в MessageBox-е, или на Label на форме.
Или заполнить рандомно
C#
1
2
3
Random rnd=new Random();
for(int i=0;i<n*2;i++)
    mas[i]=rnd.Next(-10;10);
и дальше так же как выше написано
1
0 / 0 / 1
Регистрация: 16.04.2011
Сообщений: 20
17.04.2011, 14:32  [ТС] 7
оува теперь понял спасибо большое!!!
0
nio
17.04.2011, 16:19
  #8
 Комментарий модератора 
Если какой-либо пост на форуме показался вам полезным, нажмите кнопку "Спасибо" внизу самого поста.(Правила п.4.5)
1
0 / 0 / 1
Регистрация: 16.04.2011
Сообщений: 20
18.04.2011, 19:52  [ТС] 9
Ошибка 9 Элемент "mas" не существует в текущем контексте.

я не могу понять почему выдает эту ошибку.....она появляется когда вставляешь первый код в кнопку
0
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
18.04.2011, 23:15 10
mas нужно сделать публичным
C#
1
2
3
public int[] mas;
private void Form1_KeyDown(object sender, KeyEventArgs e)//метод не несет никакой смысловой нагрузки, 
{ ..........................//просто что бы вы поняли где именно надо объявлять массив
0
0 / 0 / 1
Регистрация: 16.04.2011
Сообщений: 20
20.04.2011, 02:37  [ТС] 11
Ошибка 1 Не удается неявно преобразовать тип "double" в "int". Существует явное преобразование (возможно, пропущено приведение типов)

а это что такое?
0
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
20.04.2011, 08:17 12
akosha,
замени строки (тип поменяй)
C#
1
double max=Math.Sqrt(Math.Pow(mas[0]-mas[2],2)+Math.Pow(mas[1]-mas[3],2));
и
C#
1
double Temp=Math.Sqrt(Math.Pow(mas[i]-mas[j],2)+Math.Pow(mas[i+1]-mas[j+1],2));
0
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
20.04.2011, 08:24 13
Цитата Сообщение от akosha Посмотреть сообщение
Ошибка 1 Не удается неявно преобразовать тип "double" в "int". Существует явное преобразование (возможно, пропущено приведение типов)
а это что такое?
akosha, это указание на то, что пора садится читать литературу
C#
1
2
double x = 10;
int z = (int)x;
0
0 / 0 / 1
Регистрация: 16.04.2011
Сообщений: 20
21.04.2011, 18:12  [ТС] 14
а можно ли как то задать ввод точек что бы было типа такого (10;4)

ну чтобы хоть как то красиво?

и еще как зделать вывод результата через Label?
типа чтобы вместо имя label писало наш результат?
0
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
21.04.2011, 18:40 15
C#
1
label.Text=result.ToString();
0
0 / 0 / 1
Регистрация: 16.04.2011
Сообщений: 20
21.04.2011, 23:26  [ТС] 16
а насчет визуального ввода точек?(10ж3)
можно что то сделать?
0
0 / 0 / 1
Регистрация: 16.04.2011
Сообщений: 20
23.05.2011, 18:36  [ТС] 17
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public int [] mas;
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
            string[] mas_temp = textBox1.Text.Split(' ');
            int[] mas = new int[mas_temp.Length];
            for (int i = 0; i < mas_temp.Length; i++)
                mas[i] = int.Parse(mas_temp[i]);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            int max_1 = 1;//номера точек расстояние между которыми максимальное
            int max_2 = 2;//номера точек расстояние между которыми максимальное
            double max = Math.Sqrt(Math.Pow(mas[0] - mas[2], 2) + Math.Pow(mas[1] - mas[3], 2));
 
            for (int i = 4; i < mas.Length - 2; i += 2)
                for (int j = i + 2; j < mas.Length; j += 2)
                {
                    double Temp = Math.Sqrt(Math.Pow(mas[i] - mas[j], 2) + Math.Pow(mas[i + 1] - mas[j + 1], 2));
                    if (Temp > max)
                    {
                        max_1 = i / 2 + 1;
                        max_2 = j / 2 + 1;
                        max = Temp;
                    }
                }
        }
    }
}

на форме кнопка и textbox/


при нажатии на пробел пишет:
C#
1
mas[i] = int.Parse(mas_temp[i]);
--Входная строка имела неверный формат.

или в
C#
1
 double max = Math.Sqrt(Math.Pow(mas[0] - mas[2], 2) + Math.Pow(mas[1] - mas[3], 2));
-------Ссылка на объект не указывает на экземпляр объекта.
0
23.05.2011, 18:36
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
23.05.2011, 18:36
Помогаю со студенческими работами здесь

Найти номера пары точек, расстояние между которыми наибольшее
Даны координаты п точек на плоскости (x1, y1), •••(xn , yn) (n &lt; 30). Найти номера пары то-чек,...

Найти две из трех точек на плоскости расстояние между которыми минимально
Помогите пожалуйста написать задачку )в консольном предложении( // Разработать метод который...

Найти наибольшее расстояние между точками
Дана вещественная матрица М (2х100).Рассматривая элементы массива M как координаты точек на...

Найти минимальное расстояние между множествами точек
Даны множества A и B, состоящие соответственно из N1 и N2 точек. Найти минимальное расстояние между...


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

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