0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 8
|
|
1 | |
Посчитать количество точек, что находятся в каждом из треугольников19.05.2014, 17:05. Показов 1181. Ответов 11
Метки нет (Все метки)
Дана случайное множество точек и диагонали экрана. Посчитать количество точек, что находятся в каждом из треугольников, получившийся на пересечении диагоналей.
Прошу помочь, так как уже вообще не знаю что с ней делать(((
0
|
19.05.2014, 17:05 | |
Ответы с готовыми решениями:
11
Просуммировать количество точек в наборе домино, где количество точек на каждом конце может быть от 1 до n Подсчитать количество точек, которые находятся в кругу радиусом R с центром в начале координат. Координаты точек заданы массивами X (100), Y (100) Посчитать количество треугольников Задать n точек. Найти m=3,4... точек и построить на них m-угольник такой что, количество точек , лежащих внутри и вне m-угольника , минимально различа |
Заблокирован
|
||||||
20.05.2014, 08:47 | 2 | |||||
Вот код, решающий вашу задачу
Диагонали образуют 4 треугольника Число точек распределяется так: k1 - верхний треугольник k2 - нижний, k3 - правый, k4 - левый, k5 - точка на диагонали (этот случай маловероятен, то есть k5=0) (программа проверена)
1
|
Заблокирован
|
|
20.05.2014, 09:29 | 4 |
Спасибо!
В программу, где условия надо только добавить коэффициент. Например, если ширина экрана вдвое больше высоты, то при X надо поставить множитель два (во всех 5-ти условиях) Ещё раз вам Спасибо. Я полагал, что такую мелочь знает каждый. (точнее, я даже не думал об этом) Спасибо!
0
|
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 8
|
|
08.06.2014, 15:14 [ТС] | 7 |
Можно попросить еще у вас объяснение как работает программа по шагам, а то мне немного не понятно, заранее спасибо.
Добавлено через 32 минуты И если можно программу с графическим режимом, надо бы что б она точки, которые посчитала, показывала, как прямоугольник сделать и диагонали я знаю, а вот точки оно почему то показывать не хочет. Если можно, объясните что означает эта строка FOR i = 1 TO n x(i) = 20 * RND - 10 y(i) = 20 * RND - 10
0
|
Заблокирован
|
||||||
08.06.2014, 15:15 | 8 | |||||
Я выделил из программы самую сложную часть. Итак
Предположив, что экран квадратный я сразу получил уравнения диагоналей: y=x и y=-x. Рассмотрим для примера самый правый треугольник. Чтобы точка лежала в этом треугольнике, она должна быть выше Главной диагонали (левый верхний угол - правый нижний угол) и ниже второй диагонали, тоесть должны выполняться неравенство x > |y| Аналогично составляются и остальные неравенства. В каждом из четырёх основных условий идёт свой подсчет точек, независимо от других. Ну а сама программа простая 1) объявляются массивы для координат точек 2) массивы заполняются случайными точками (инициализируются) 3) точки подсчитыватся 4) выдается результат
0
|
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 8
|
||||||
08.06.2014, 15:57 [ТС] | 9 | |||||
Большое спасибо, понял.
Но мне нужно еще графически это показать, все получилось, только точки оно показывать не хочет!
И что значит вот это DEFSNG X-Y DEFINT I-K OPTION BASE 1 ???
0
|
Заблокирован
|
|
08.06.2014, 17:16 | 10 |
Я посмотрел вашу программу. Вот мой комментарий.
1) в программе две крупные ошибки (потому и точки не рисуются). Надо две строки писать так: x(i)=xmin+RND*(xmax-xmin) y(i)=ymin+RND*(ymax-ymin) 2) OPTION BASE 1 - означает, что в массивах минимальный номер равен 1. А по умолчанию отсчет идёт с нуля. Конечно массив можно определить иначе, например DIM x(1 TO N). 3) DEFSNG X-Y - означает, что все переменные начинающие на букву x или y имеют тип SINGLE. Конечно можно в данном случае использовать суффиксы и записать переменную x в виде "x!". Но это не всегда удобно. 4) DEFINT I-K - указывает на переменные типа INTEGER 5) И ещё (!!) Вы ввели в программе не симметричную систему координат. Ошибки нет. Есть две диагонали, для которых надо написать уравнения в вашей системе координат. Написать все можно, но зачем усложнять себе жизнь. Мой совет: выбирайте такую систему координат в которой линии описываются самыми простыми уравнениями Моя программа тому пример. Вот пожалуй и все. Удачи вам!
0
|
Кормпилятор
|
|
08.06.2014, 18:06 | 11 |
грубо распределять тип по диапазонам алфавита как вы делаете в КАЖДОЙ своей проге - это ппц как печально. Можно работать без венгерской нотации, но оно будет полезно только для вас, это если что-то крупнее 50 строк. Касательно постфиксов - это очень удобно как раз в мелких прогах, потому что не требуется переопределять тип переменной. А вот в больших прогах это уже становится не очень читабельным и лучше декларить самым обычным способом, т.к. меньше мусора и частое переопределение типа не проблема. Впрочем есть такая фишка редактора как change, можно и с постфиксом поменять тип если очень захотеть.
1
|
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 8
|
|
09.06.2014, 22:35 [ТС] | 12 |
Большое спасибо, очень помогли.
Просто преподователь не примет без графического режима, нужно было показать))
0
|
09.06.2014, 22:35 | |
09.06.2014, 22:35 | |
Помогаю со студенческими работами здесь
12
Подсчитать количество точек, которые находятся внутри шара Посчитать количество нулевых битов в каждом элементе массива и вывести общее количество Подсчитать количество равносторонних треугольников с вершинами в заданном множестве точек на плоскости Подсчитать количество равносторонних треугольников с вершинами в заданном множестве точек на плоскости Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |