Вычислить площадь четырехугольника - QBasic

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

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

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

Решение задачи: «Вычислить площадь четырехугольника»

textual
Листинг программы
  1. CLS
  2.  
  3. 10 INPUT "Wedit kilkist tochok N="; N
  4.  
  5. IF N < 4 OR N > 100 THEN 10
  6.  
  7. IF N <> INT(N) THEN 10
  8.  
  9. Xmin = 0
  10.  
  11. Xmax = 1000
  12.  
  13. Ymin = 0
  14.  
  15. Ymax = 1000
  16.  
  17. DIM X(1 TO N)
  18.  
  19. DIM Y(1 TO N)
  20.  
  21. RANDOMIZE TIMER
  22.  
  23. SCREEN 12
  24.  
  25. VIEW (20, 20)-(460, 460), , 2
  26.  
  27. WINDOW (Xmin, Ymin)-(Xmax, Ymax)
  28.  
  29. FOR i = 1 TO N
  30.  
  31. X(i) = INT(Xmin + RND * (Xmax - Xmin))
  32.  
  33. Y(i) = INT(Ymin + RND * (Ymax - Ymin))
  34.  
  35. PSET (X(i), Y(i)), 3
  36.  
  37. NEXT
  38. FOR i = 1 TO N
  39.     FOR j = 1 TO N
  40.  
  41.         A = SQR((Xmax - X(i)) ^ 2 + (Ymax - Y(i)) ^ 2)
  42.         B = SQR((Xmax - X(j)) ^ 2 + (Ymax - Y(j)) ^ 2)
  43.  
  44.         IF A < B THEN SWAP X(i), X(j): SWAP Y(i), Y(j)
  45.  
  46.     NEXT j
  47. NEXT i
  48.  
  49. FOR i = 1 TO 3
  50.     FOR j = 1 TO 3
  51.  
  52.         ugol1 = (Ymax - Y(i)) / (Xmax - X(i))
  53.         ugol2 = (Ymax - Y(j)) / (Xmax - X(j))
  54.  
  55.  
  56.         IF ugol1 < ugol2 THEN SWAP X(i), X(j): SWAP Y(i), Y(j)
  57.  
  58.     NEXT
  59. NEXT
  60.  
  61. LINE (Xmax, Ymax)-(X(1), Y(1)), 1
  62. LINE (X(1), Y(1))-(X(2), Y(2)), 2
  63. LINE (X(2), Y(2))-(X(3), Y(3)), 3
  64. LINE (X(3), Y(3))-(Xmax, Ymax), 4
  65.  
  66. L1a = SQR((X(1) - X(2)) ^ 2 + (Y(1) - Y(2)) ^ 2)
  67. L2a = SQR((X(2) - Xmax) ^ 2 + (Y(2) - Ymax) ^ 2)
  68. L3a = SQR((Xmax - X(1)) ^ 2 + (Ymax - Y(1)) ^ 2)
  69. Pa = (L1a + L2a + L3a) / 2
  70. PloschaA = SQR(Pa * (Pa - L1a) * (Pa - L2a) * (Pa - L3a))
  71.  
  72. L1b = SQR((X(3) - X(2)) ^ 2 + (Y(3) - Y(2)) ^ 2)
  73. L2b = SQR((X(2) - Xmax) ^ 2 + (Y(2) - Ymax) ^ 2)
  74. L3b = SQR((Xmax - X(3)) ^ 2 + (Ymax - Y(3)) ^ 2)
  75. Pb = (L1b + L2b + L3b) / 2
  76. PloschaB = SQR(Pb * (Pb - L1b) * (Pb - L2b) * (Pb - L3b))
  77. PRINT "Ploscha = "; PloschaA + PloschaB
  78.  
  79.  
  80. END

Объяснение кода листинга программы

Вот что делает код:

  1. Считывает число N, которое представляет собой количество вершин четырехугольника.
  2. Проверяет, что N находится в допустимом диапазоне (от 4 до 100).
  3. Генерирует случайные координаты для каждой вершины четырехугольника.
  4. Рисовает четырехугольник на экране.
  5. Проводит три диагонали для четырехугольника и вычисляет длины этих диагоналей.
  6. Вычисляет площадь четырехугольника, используя формулу площади четырехугольника по длинам его диагоналей.
  7. Выводит общую площадь четырехугольника.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы