Важная информация
Показано с 1 по 4 из 4

Тема: Задача «Треугольник»

  1. #1 Задача «Треугольник» 
    Разбирающийся Аватар для Denis
    Регистрация
    24.10.2011
    Адрес
    РК ВКО Зыряновский район г Серебрянск
    Сообщений
    38
    Сказал(а) спасибо
    3
    Поблагодарили 0 раз(а) в 0 сообщениях
    (Inf_111) Задача «Треугольник»

    Имя входного файла Input.txt
    Имя выходного файла Output.txt

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

    Формат входных данных
    Во входном файле записано сначала N – количество точек (3<=N<=50), а затем Nпар вещественных чисел, задающих координаты точек.
    Формат выходных данных
    В выходной файл выведите три числа – номера точек, которые должны быть вершинами треугольника, чтобы его периметр был минимален. Если решений несколько выведите любое из них.
    Примечание
    Если у вас есть две точки, и координаты одной из них Х1, У1, а другой Х2, У2, то расстояние R между ними можно вычислить по формуле: ; Здесь R должна быть переменной вещественного типа (например, real), а sqrt – стандартная функция, вычислюящая квадратный корень.
    Ответить с цитированием  
     

  2. #2  
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    Что то я задумался и не могу представить себе алгоритм решения, разве что просчитать все возможные треугольники и сравнить их периметры, может кто подскажет что нибудь более эффективное?
    Ответить с цитированием  
     

  3. #3  
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    Уф-ф-ф-ф умаялся...
    Код :
    CLS
    OPEN "input.txt" FOR INPUT AS #1
    INPUT #1, N
    DIM x(N)
    DIM y(N)
    NI = 0
    NJ = 0
    NK = 0
    xmax = 0
    ymax = 0
    FOR I = 1 TO N
        INPUT #1, x(I), y(I)
        IF x(I) > xmax THEN xmax = x(I)
        IF y(I) > ymax THEN ymax = y(I)
    NEXT
    CLOSE 1
    MIN = (xmax + ymax) * 1.5
    FOR I = 1 TO N
        FOR J = 1 TO N
            FOR K = 1 TO N
                IF I <> J AND J <> K AND I <> K THEN
                    X = x(I) - x(J)
                    Y = y(I) - y(J)
                    LIJ = SQR(X * X + Y * Y)
                    X = x(I) - x(K)
                    Y = y(I) - y(K)
                    LIK = SQR(X * X + Y * Y)
                    X = x(K) - x(J)
                    Y = y(K) - y(J)
                    LKJ = SQR(X * X + Y * Y)
                    IF MIN > (LIJ + LIK + LKJ) THEN
                        MIN = (LIJ + LIK + LKJ)
                        NI = I
                        NJ = J
                        NK = K
                    END IF
                END IF
            NEXT
        NEXT
        PRINT I
    NEXT
    OPEN "output.txt" FOR OUTPUT AS #1
    WRITE #1, NI, NJ, NK
    CLOSE 1
    должен искать минимальный треугольник. Не забудте положить файлик "input.txt" в папочку программы.
    Последний раз редактировалось Dimon012; 18.11.2011 в 09:18.
    Ответить с цитированием  
     

  4. Пользователь сказал cпасибо:

    den4ikx (30.09.2013)

  5. #4  
    Разбирающийся Аватар для Denis
    Регистрация
    24.10.2011
    Адрес
    РК ВКО Зыряновский район г Серебрянск
    Сообщений
    38
    Сказал(а) спасибо
    3
    Поблагодарили 0 раз(а) в 0 сообщениях
    вот данные для задачи

    Примеры
    Input Output
    5 1 2 4
    0 0
    1.3 0
    -2 0.1
    1 0
    10 10
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Задача
    от ExTReM13 в разделе C/C++
    Ответов: 1
    Последнее сообщение: 16.01.2013, 22:23
  2. задача на паскале
    от vetal в разделе Turbo Pascal
    Ответов: 3
    Последнее сообщение: 18.04.2012, 17:10
  3. задача каши на QBasic
    от foxiroot в разделе QBasic
    Ответов: 0
    Последнее сообщение: 28.12.2011, 00:38
  4. Задача на множества. Паскаль.
    от Dima в разделе Turbo Pascal
    Ответов: 0
    Последнее сообщение: 10.12.2011, 00:52
  5. Задача с командами повторения
    от sanchez6666 в разделе QBasic
    Ответов: 1
    Последнее сообщение: 09.11.2011, 02:15
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •