Выведите одно целое число — координату точки, в которой лучше всего построить школу - VB

Узнай цену своей работы

Формулировка задачи:

В деревне Интернетовка все дома расположены вдоль одной улицы по одну сторону от нее. По другую сторону от этой улицы пока ничего нет, но скоро все будет – школы, магазины, кинотеатры и т.д. Для начала в этой деревне решили построить школу. Место для строительства школы решили выбрать так, чтобы суммарное расстояние, которое проезжают ученики от своих домов до школы, было минимально. План деревни можно представить в виде прямой, в некоторых целочисленных точках которой находятся дома учеников. Школу также разрешается строить только в целочисленной точке этой прямой (в том числе разрешается строить школу в точке, где расположен один из домов – ведь школа будет расположена с другой стороны улицы). Напишите программу, которая по известным координатам домов учеников поможет определить координаты места строительства школы. Входные данные Сначала вводится число N — количество учеников (1 ≤ N ≤ 100000). Далее идут в строго возрастающем порядке координаты домов учеников — целые числа, не превосходящие 2∙109 по модулю. Выходные данные Выведите одно целое число — координату точки, в которой лучше всего построить школу. Если ответов несколько, выведите любой из них. ПРИМЕР Z_3.in

4

'количество учеников' 1 2 3 4 'координаты домов учеников'

3

-1 0 1 Z_3.out 2 0

Пожалуйста напишите программу с комментариями.

Решение задачи: «Выведите одно целое число — координату точки, в которой лучше всего построить школу»

textual
Листинг программы
Private Sub Command1_Click()
   Dim n As Long                         'количество учеников
   Dim Coord, s As String                'координаты домов учеников'
   Open "c:\111\Z_3.in" For Input As #1
     Open "c:\111\Z_3.out" For Output As #2
         Do While Not EOF(1)
               Line Input #1, s: n = CInt(Trim(s))
               Line Input #1, s: Coord = Split(Trim(s))
               Write #2, vasy(Coord)
         Loop
      Close #1
    Close #2
End Sub
 
Private Function vasy(ByRef C) As String
    Dim i As Long, n As Long, sum As Long
    n = UBound(C)
    'Здесь должно быть вычисление  координаты точки, в которой лучше всего построить школу
    'Алгоритм предлагаю продумать самому, а пока функция возвращает округленное среднее арифметическое адресов
    For i = 0 To n
        sum = sum + C(i)
    Next i
    vasy = CStr(sum \ (n + 1))
End Function

Оцени полезность:

8   голосов , оценка 3.5 из 5
Похожие ответы