Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 8

Посчитать количество точек, что находятся в каждом из треугольников

19.05.2014, 17:05. Показов 1203. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана случайное множество точек и диагонали экрана. Посчитать количество точек, что находятся в каждом из треугольников, получившийся на пересечении диагоналей.
Прошу помочь, так как уже вообще не знаю что с ней делать(((
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.05.2014, 17:05
Ответы с готовыми решениями:

Просуммировать количество точек в наборе домино, где количество точек на каждом конце может быть от 1 до n
Посмотрев на ряд костяшек, расположенный в лексикографическом порядке, видна формула этой суммы: 2*n*сумма(от 1 до n): 1 1 1 2 2 2 3 3 3 ...

Подсчитать количество точек, которые находятся в кругу радиусом R с центром в начале координат. Координаты точек заданы массивами X (100), Y (100)
Подсчитать количество точек, которые находятся в кругу радиусом R с центром в начале координат. Координаты точек заданы массивами X (100),...

Посчитать количество треугольников
Пусть n треугольников заданы координатами своих вершин. Посчитайте количество треугольников, лежащих в каждой координатной четверти и не...

11
159 / 104 / 124
Регистрация: 01.04.2014
Сообщений: 466
Записей в блоге: 7
20.05.2014, 08:47
Вот код, решающий вашу задачу
Диагонали образуют 4 треугольника
Число точек распределяется так: k1 - верхний треугольник
k2 - нижний, k3 - правый, k4 - левый, k5 - точка на диагонали
(этот случай маловероятен, то есть k5=0)
(программа проверена)
QBasic/QuickBASIC Скопировано
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
DEFSNG X-Y
DEFINT I-K
OPTION BASE 1
RANDOMIZE TIMER
CLS
INPUT "Vvedite N"; n
DIM x(n)
DIM y(n)
 
FOR i = 1 TO n
   x(i) = 20 * RND - 10
   y(i) = 20 * RND - 10
NEXT i
 
k0 = 0
k1 = 0
k2 = 0
k3 = 0
k4 = 0
FOR i = 1 TO n
   IF ABS(x(i)) < y(i) THEN k1 = k1 + 1
   IF ABS(x(i)) < -y(i) THEN k2 = k2 + 1
   IF ABS(y(i)) < x(i) THEN k3 = k3 + 1
   IF ABS(y(i)) < -x(i) THEN k4 = k4 + 1
   IF ABS(y(i)) = ABS(x(i)) THEN k5 = k5 + 1
NEXT i
 
PRINT "k1 = "; k1
PRINT "k2 = "; k2
PRINT "k3 = "; k3
PRINT "k4 = "; k4
PRINT "k5 = "; k5
END
Удачи вам!
1
 Аватар для Апострофф
9894 / 3905 / 738
Регистрация: 11.10.2011
Сообщений: 5,878
20.05.2014, 08:52
gehh, а где сказано, что экран квадратный?
1
159 / 104 / 124
Регистрация: 01.04.2014
Сообщений: 466
Записей в блоге: 7
20.05.2014, 09:29
Спасибо!
В программу, где условия надо только добавить коэффициент.
Например, если ширина экрана вдвое больше высоты, то при
X надо поставить множитель два (во всех 5-ти условиях)
Ещё раз вам Спасибо. Я полагал, что такую мелочь знает каждый.
(точнее, я даже не думал об этом)
Спасибо!
0
 Аватар для Апострофф
9894 / 3905 / 738
Регистрация: 11.10.2011
Сообщений: 5,878
20.05.2014, 09:52
Цитата Сообщение от Karagen Посмотреть сообщение
Дана случайное множество точек и диагонали экрана
Экранная система координат не похожа на декартову (начало координат в левом верхнем углу, ось Y смотрит вниз)
Цитата Сообщение от gehh Посмотреть сообщение
если ширина экрана вдвое больше высоты, то при
X надо поставить множитель два
Или при Y?
1
159 / 104 / 124
Регистрация: 01.04.2014
Сообщений: 466
Записей в блоге: 7
20.05.2014, 14:43
Вы ещё раз правы. Надо было просто взять размеры
экрана 640*480. Насчёт коэффициента тоже верно
(при y!!). Основа программы та же.
Спасибо вам ещё раз!
0
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 8
08.06.2014, 15:14  [ТС]
Можно попросить еще у вас объяснение как работает программа по шагам, а то мне немного не понятно, заранее спасибо.

Добавлено через 32 минуты
И если можно программу с графическим режимом, надо бы что б она точки, которые посчитала, показывала, как прямоугольник сделать и диагонали я знаю, а вот точки оно почему то показывать не хочет.
Если можно, объясните что означает эта строка
FOR i = 1 TO n
x(i) = 20 * RND - 10
y(i) = 20 * RND - 10
0
159 / 104 / 124
Регистрация: 01.04.2014
Сообщений: 466
Записей в блоге: 7
08.06.2014, 15:15
Я выделил из программы самую сложную часть. Итак
Предположив, что экран квадратный я сразу получил уравнения
диагоналей: y=x и y=-x.
Рассмотрим для примера самый правый треугольник.
Чтобы точка лежала в этом треугольнике, она должна быть выше
Главной диагонали (левый верхний угол - правый нижний угол) и ниже
второй диагонали, тоесть должны выполняться неравенство x > |y|
Аналогично составляются и остальные неравенства. В каждом из
четырёх основных условий идёт свой подсчет точек, независимо от
других. Ну а сама программа простая
1) объявляются массивы для координат точек
2) массивы заполняются случайными точками (инициализируются)
3) точки подсчитыватся
4) выдается результат

QBasic/QuickBASIC Скопировано
1
2
3
4
5
6
7
FOR i = 1 TO n
* *IF ABS(x(i)) < y(i) THEN k1 = k1 + 1 ' верхний
* *IF ABS(x(i)) < -y(i) THEN k2 = k2 + 1 ' это левый треугольник
* *IF ABS(y(i)) < x(i) THEN k3 = k3 + 1 ' правый
* *IF ABS(y(i)) < -x(i) THEN k4 = k4 + 1 ' нижний
* *IF ABS(y(i)) = ABS(x(i)) THEN k5 = k5 + 1 ' точка на диагонали
NEXT i
Удачи вам!
0
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 8
08.06.2014, 15:57  [ТС]
Большое спасибо, понял.
Но мне нужно еще графически это показать, все получилось, только точки оно показывать не хочет!
QBasic/QuickBASIC Скопировано
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
CLS
DEFSNG X-Y
DEFINT I-K
OPTION BASE 1
INPUT "Vvedite N"; n
xmin = 10
xmax = 400
ymin = 10
ymax = 400
SCREEN 12
RANDOMIZE TIMER
VIEW (10, 10)-(400, 400), , 2
WINDOW (xmin, ymin)-(xmax, ymax)
DIM x(N)
DIM y(N)
FOR i = 1 TO n
    x(I) = xmin * RND - xmax
    y(I) = ymin * RND - ymax
NEXT i
FOR i= 1 TO n
    PSET (x(i), y(i)), 1
NEXT i
LINE(10, 10)-(400, 400),2
LINE(10, 400)-(400, 10),2
k0 = 0
Я немного ее переделал, можете сказать что здесь сделать что б точки показывало?
И что значит вот это
DEFSNG X-Y
DEFINT I-K
OPTION BASE 1
???
0
159 / 104 / 124
Регистрация: 01.04.2014
Сообщений: 466
Записей в блоге: 7
08.06.2014, 17:16
Я посмотрел вашу программу. Вот мой комментарий.
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
Кормпилятор
 Аватар для Quiet Snow
5040 / 1714 / 409
Регистрация: 25.04.2010
Сообщений: 4,823
Записей в блоге: 2
08.06.2014, 18:06
Но это не всегда удобно.
С вами бы много кто поспорил. Конечно стиль каждого кодера индивидуален, но
грубо распределять тип по диапазонам алфавита как вы делаете в КАЖДОЙ
своей проге - это ппц как печально. Можно работать без венгерской нотации, но
оно будет полезно только для вас, это если что-то крупнее 50 строк.

Касательно постфиксов - это очень удобно как раз в мелких прогах, потому что
не требуется переопределять тип переменной. А вот в больших прогах это уже
становится не очень читабельным и лучше декларить самым обычным способом,
т.к. меньше мусора и частое переопределение типа не проблема. Впрочем есть
такая фишка редактора как change, можно и с постфиксом поменять тип если
очень захотеть.
1
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 8
09.06.2014, 22:35  [ТС]
Большое спасибо, очень помогли.
Просто преподователь не примет без графического режима, нужно было показать))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2014, 22:35
Помогаю со студенческими работами здесь

Задать n точек. Найти m=3,4... точек и построить на них m-угольник такой что, количество точек , лежащих внутри и вне m-угольника , минимально различа
Задать n точек. Найти m=3,4... точек и построить на них m-угольник такой что, количество точек , лежащих внутри и вне m-угольника ,...

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

Посчитать количество нулевых битов в каждом элементе массива и вывести общее количество
дан массив из 8 байт. Посчитать кол-во нулевых битов в каждом байте и вывести общее кол-во.

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Работа с объемным DOM в javascript
Htext 04.04.2025
Сегодня прочитал статью тут о расходах памяти в JS, ее утечках и т. п. И вот что вспомнил из своей недавней практики. Может, кому пригодится. Хотя, в той статье об этом тоже есть. Дело в том, что я. . .
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер