Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 18.05.2020
Сообщений: 4

Разработка подпрограммы для вычисления расстояния двумя между точками

18.05.2020, 06:31. Показов 2385. Ответов 2

Студворк — интернет-сервис помощи студентам
Ребят,нужна помощью. Только начал кодить на С#, а сдача задания в притык. Пытался быстро написать но больше себя запутал.

Если в кратце то задание звучит так:
1.Разработать подпрограмму для вычисления расстояния двумя между точками,
заданными своими координатами и подпрограмму, вычисляющую периметр
выпуклого многоугольника, заданного координатами своих вершин.
2 Вычислить периметр многоугольника, заданного координатами своих вершин,
используя созданную подпрограмму. Координаты вершин прочитать из
текстового файла.
При всем при этом нужно сделать это все в Form С#.
Наработки

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
73
74
75
76
77
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
        }
        Double x1 = 0;
        Double x2 = 0;
        Double y1 = 0;
        Double y2 = 0;
        Double rasst;
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            
            x1 = Convert.ToDouble(Console.ReadLine());
        }
 
        private void textBox3_TextChanged(object sender, EventArgs e)
        {
            
            y1 = Convert.ToDouble(Console.ReadLine());
        }
 
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            
            x2 = Convert.ToDouble(Console.ReadLine());
        }
 
        private void textBox4_TextChanged(object sender, EventArgs e)
        {
            
            y2 = Convert.ToDouble(Console.ReadLine());
        }
 
 
        private void label1_Click(object sender, EventArgs e)
        {
            
            rasst = Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));
            label1.Text = rasst;
        }
 
        private void label1_Click_1(object sender, EventArgs e)
        {
 
        }
        private void button1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void label5_Click(object sender, EventArgs e)
        {
 
        }
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.05.2020, 06:31
Ответы с готовыми решениями:

Составить программу для вычисления расстояния между двумя точками
Составить программу для вычисления расстояния между двумя точками А (x1,y1) и В (x2,y2).

Функция вычисления расстояния между двумя точками
Написать функцию вычисления евклидового расстояния между двумя точками на плоскости.

Функция вычисления расстояния между двумя точками на плоскости
Составить функцию вычисления расстояния между двумя точками на плоскости. С ее помощью вычислить расстояния между точками (2,3), (7,5) и...

2
sleep
 Аватар для I can
4934 / 4599 / 841
Регистрация: 13.04.2015
Сообщений: 9,770
18.05.2020, 06:51
Цитата Сообщение от Gogored Посмотреть сообщение
Разработка подпрограммы
Я думаю имеется в виду разработка отдельной функции, вычисляющей расстояние между точками.
То есть, скармливаешь ей параметры-координаты точек, а на выходе получаешь расстояние между точками.
1
sleep
 Аватар для I can
4934 / 4599 / 841
Регистрация: 13.04.2015
Сообщений: 9,770
18.05.2020, 07:58
Лучший ответ Сообщение было отмечено Gogored как решение

Решение

Например.
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
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;
using System.IO;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
          {
            InitializeComponent();
          }
 
        private void button1_Click(object sender, EventArgs e)
          { label1.Text = Convert.ToString(Dist(1, 1, 4, 5));}
 
        private void button2_Click(object sender, EventArgs e)
          { // координаты точек многоугольника, задаются последовательно x1,y1,x2,y2,x3,y3... и так далее
            // минимум три пары координат ( для треугольника)
            int[] arr = new int[6] { 1, 1, 9, 8, 8, 1 };
            label4.Text = Convert.ToString(PolygonPerimeter(arr));}
 
 
        private void button3_Click(object sender, EventArgs e)// вычисление периметра из файла
        { // координаты точек многоугольника из файла, в одну строку через пробел, задаются последовательно x1 y1 x2 y2 x3 y3... и так далее, минимум три пары координат ( для треугольника)
            string[] arr = File.ReadAllText(Application.StartupPath+"\\1.txt").Split();
            label6.Text = Convert.ToString( PolygonPerimeter(arr));
        }
 
        private double Dist(int x1, int y1, int x2, int y2) // функция возвращает расстояние между точками
            {return Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));}
 
        private double Dist(string x1, string y1, string x2, string y2) // функция возвращает расстояние между точками
        { return Math.Sqrt(Math.Pow(Convert.ToInt32(x2) - Convert.ToInt32(x1), 2) + Math.Pow(Convert.ToInt32(y2) - Convert.ToInt32(y1), 2)); }
 
        private double PolygonPerimeter(int[] arr) //функция возвращает периметр многоугольника
            {double sum = 0;
            for (int i = 0; i < arr.Length-3; i += 2)
               sum += Dist(arr[i], arr[i + 1], arr[i + 2], arr[i + 3]);
               sum += Dist(arr[arr.Length - 2], arr[arr.Length - 1], arr[0], arr[1]);//"Замыкаем" фигуру
            return sum;}
 
        private double  PolygonPerimeter(string[] arr) //функция возвращает периметр многоугольника
           {double sum = 0;
            for (int i = 0; i < arr.Length - 3; i += 2)
                sum +=  Dist(arr[i], arr[i + 1], arr[i + 2], arr[i + 3]);
                sum +=  Dist(arr[arr.Length - 2], arr[arr.Length - 1], arr[0], arr[1]);//"Замыкаем" фигуру
            return sum;}
 
        
 
    }
}
Миниатюры
Разработка подпрограммы для вычисления расстояния двумя между точками  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.05.2020, 07:58
Помогаю со студенческими работами здесь

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

Программа вычисления расстояния между двумя точками с заданными координатами
Напишите программу вычисления расстояния между двумя точками с заданными координатами X1,Y1, X2,Y2, с использованием подпрограммы-...

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

Определить процедуру вычисления расстояния между двумя точками, заданными координатами
даны действительные числа икс1,икс2,игрик1,игрик2..икс10,игрик10.Найти периметр десятиугольника,вершины которого имеют...

Исправить ошибки в коде вычисления расстояния между двумя точками на плоскости
Создать вспомогательный класс, кроме класса Program. Этот класс должен содержать метод, в котором находится алгоритм вычисления расстояния...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru