Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 07.09.2012
Сообщений: 4

Определить сколько треугольников лежит внутри окружности радиуса R с центром в начале координат

07.09.2012, 18:57. Показов 4311. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток) хочу попросить о спасении своей никчемной жизни)
Буду очень признателен если не откажете. Мне нужно написать программу, осуществляющую заданные вычисления с использованием процедур. Вид используемых процедур определить самостоятельно ( я уже в шоке)
Заданы координаты вершин трех треугольников. Определить сколько треугольников лежит внутри окружности радиуса R с центром в начале координат.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.09.2012, 18:57
Ответы с готовыми решениями:

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

Найти координаты точек пересечения прямой и окружности с центром в начале координат
Пожалуйста,помогите решить ,никак не выходит Найти координаты точек пересечения прямой y=kx+b и окружности радиуса R с центром в начале...

Определить какая из точек лежит на окружности, какая внутри окружности, а какая вне окружности
Не могу не как понять какую формулу писать Вот задания Заданы координаты двух точек А(х,у) и В(х,у) и радиус окружности r. Определить...

15
07.09.2012, 18:58
 Комментарий администратора 
Алексей 358, называйте темы информативно, коротку описывайте условие задачи в названии темы.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
07.09.2012, 20:42
Visual Basic
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
Option Explicit
Dim NumTrng  As Integer, Radius As Double, Vertex() As Double   '
 
Private Sub Command1_Click()
    GetData
    MsgBox "Внутри окружности радиусом " & Radius & vbCrLf & _
           " находятся " & CntTrng(Vertex, NumTrng, Radius) & _
           " треугольников из " & NumTrng, _
             vbInformation, "Done!"
End Sub
 
Private Sub GetData()
    Dim i As Integer, j As Integer
    Randomize ' для получения случайных данных "по умолчанию"
    NumTrng = InputBox("Введите количество треугольников", "Ввод данных", Int(Rnd * 5 + 1))
    Radius = InputBox("Введите радиус окружности", "Ввод данных", Int(Rnd * 20 + 1))
    ReDim Vertex(1 To NumTrng, 1 To 3, 1 To 2)
    For i = 1 To NumTrng
        For j = 1 To 3
          Vertex(i, j, 1) = InputBox("Введите координату  Х  " & j & "-ой вершины  " & i & "-го треугольника", "Ввод данных", Int(Rnd * 20))
          Vertex(i, j, 2) = InputBox("Введите координату  Y  " & j & "-ой вершины  " & i & "-го треугольника", "Ввод данных", Int(Rnd * 20))
        Next j
    Next i
End Sub
 
Private Function CntTrng(V() As Double, n As Integer, r As Double) As Integer
    Dim i As Integer
    For i = 1 To n
       If Sqr(V(i, 1, 1) ^ 2 + V(i, 1, 2) ^ 2) < r And _
          Sqr(V(i, 2, 1) ^ 2 + V(i, 2, 2) ^ 2) < r And _
          Sqr(V(i, 3, 1) ^ 2 + V(i, 3, 2) ^ 2) < r Then CntTrng = CntTrng + 1
    Next i
End Function
2
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
08.09.2012, 00:56
Цитата Сообщение от SoftIce Посмотреть сообщение
Когда не знаешь, что именно ты делаешь, делай это тщательно.
Ах вот как рождаются сообщения компьютера типа
Внутри окружности радиусом 10
находятся 1 треугольников...
Легко же учесть, что их максимум 3.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
08.09.2012, 05:17
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
Легко же учесть, что их максимум 3.
Что за ерунда? Почему?
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
08.09.2012, 05:30
Например может быть так:
0
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
08.09.2012, 16:59
Хорошо; расширив заданную в теме задачу до N треугольников, мы с успехом используем ваш код, это да.

Я лишь подметил, что, например, при N=1 результат («1 треугольников»)... ну это как 1 секунд! Для самоудовлетворения сойдёт, но детям лучше не показывать — примут как образец.

Добавлено через 36 минут
Правильно согласованный количественный оборот здесь: Проверить количество вхождений слова в строку (с развитием в ответах)
2
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
08.09.2012, 20:07
Лучший ответ Сообщение было отмечено как решение

Решение

Visual Basic
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
34
35
36
37
38
39
40
41
42
43
Option Explicit
Dim NumTrng  As Integer, Radius As Double, a As Integer
Dim Vertex() As Double, TrngInside As Integer   '
 
Private Sub Command1_Click()
    GetData
    TrngInside = CntTrng(Vertex, NumTrng, Radius)
    MsgBox "Внутри окружности радиусом " & Radius & vbCrLf & _
           " находятся " & TrngInside & _
           " треугольник" & EndOfWord(TrngInside) & " из " & NumTrng, _
             vbInformation, "Done!"
End Sub
 
Private Sub GetData()
    Dim i As Integer, j As Integer
    Randomize ' для получения случайных данных "по умолчанию"
    NumTrng = InputBox("Введите количество треугольников", "Ввод данных", Int(Rnd * 5 + 1))
    Radius = InputBox("Введите радиус окружности", "Ввод данных", Int(Rnd * 20 + 1))
    ReDim Vertex(1 To NumTrng, 1 To 3, 1 To 2)
    For i = 1 To NumTrng
        For j = 1 To 3
          Vertex(i, j, 1) = InputBox("Введите координату  Х  " & j & "-ой вершины  " & i & "-го треугольника", "Ввод данных", Int(Rnd * 20))
          Vertex(i, j, 2) = InputBox("Введите координату  Y  " & j & "-ой вершины  " & i & "-го треугольника", "Ввод данных", Int(Rnd * 20))
        Next j
    Next i
End Sub
 
Private Function CntTrng(V() As Double, n As Integer, r As Double) As Integer
    Dim i As Integer
    For i = 1 To n
       If Sqr(V(i, 1, 1) ^ 2 + V(i, 1, 2) ^ 2) < r And _
          Sqr(V(i, 2, 1) ^ 2 + V(i, 2, 2) ^ 2) < r And _
          Sqr(V(i, 3, 1) ^ 2 + V(i, 3, 2) ^ 2) < r Then CntTrng = CntTrng + 1
    Next i
End Function
 
Private Function EndOfWord(a As Integer) As String
    Select Case a Mod 10
        Case 2, 3, 4: EndOfWord = "а"
        Case 5, 6, 7, 8, 9, 0: EndOfWord = "ов"
    End Select
    If a > 10 And a < 15 Then EndOfWord = "ов"
End Function
Блин, теперь "находится" и "находятся" надо делать
Лучше написать так : "Количество треугольников внутри окружности равно ......."
И всё...
Цитата Сообщение от Алексей 358 Посмотреть сообщение
хочу попросить о спасении своей никчемной жизни
Жизнь спасена.

Добавлено через 9 минут
Цитата Сообщение от Алексей 358 Посмотреть сообщение
Заданы координаты вершин трех треугольников
Только что заметил
1
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
08.09.2012, 22:12
Visual Basic
1
If a Mod 100 > 10 And a Mod 100 < 15 Then EndOfWord = "ов"
Цитата Сообщение от SoftIce Посмотреть сообщение
Блин, теперь "находится" и "находятся" надо делать...
Ну это где-нибудь на более поэтическом форуме: здесь не оценят:
Миниатюры
Определить сколько треугольников лежит внутри окружности радиуса R с центром в начале координат  
1
08.09.2012, 23:11

Не по теме:

Sasha_Smirnov, что за хня на скриншоте? =-O Установи http://adblockplus.org/ru/chrome 8-)

0
08.09.2012, 23:39

Не по теме:

Казанский, Вы думаете Хром напишет "Через 1 секунду?:D

0
09.09.2012, 00:48

Не по теме:

А между прочим, я так и понял!

0
0 / 0 / 0
Регистрация: 07.09.2012
Сообщений: 4
09.09.2012, 16:43  [ТС]
большое вам человеческое спасибо)
Очень признателен. Всем удачи)
0
 Аватар для Какбысапиенс
81 / 143 / 1
Регистрация: 03.12.2013
Сообщений: 1,155
Записей в блоге: 1
03.10.2014, 21:26
Не являясь программистом, рискну добавить свои три копейки (лучше поздно, чем никогда). если сначала чисто геометрический подход, то сначала планиметрия:
Вопрос поставлен так: "Сколько треугольников лежит...?". Треугольников вообще, или треугольников из числа трёх заданных? Если последнее, то от трёх до ноля, дальше сами вычисляйте. Но, не зная координат вершин, можно предположить (имеем право), что треугольники могут ведь накладываться друг на друга, и их стороны могут пересекаться. Тогда больше, чем три. (Считать лень, конечно, в школе подобные задачки надоели.).
Корректоно вопрос должен быть поставлен так:
первый вариант: "сколько треугольников из числа трёх треугольников, заданных координатами их вершин....?
второй вариант: "сколько треугольников, образованных сторонами трёх треугольников, заданных координатами их вершин...?" Причём стороны не обязательно пересекаются, они могут выходить из одной общей точки(например), тогда основания трёх треугольников образуют четвёртый треугольник. Ну и другие варианты. Дальше уже идёт программирование. Иначе не очень понятно, что вообще ищут.
Теперь я понимаю, почему инструкции к электронике невозможно понять нормальному человеку, для которого эти инструкции и пишутся.
0
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
05.10.2014, 12:09
И тут очень кстати сказала Elena!
Цитата Сообщение от ElenaRib Посмотреть сообщение
у нас информатика для гуманитариев...
А с речью туго-туго!
0
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
08.03.2015, 18:39
Цитата Сообщение от Памирыч Посмотреть сообщение

Не по теме:

Казанский, Вы думаете Хром напишет "Через 1 секунду"? :D

Супермодератор напишет.

Добавлено через 2 часа 1 минуту
Или Dragokas, между прочими: Проверить количество вхождений слова в строку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.03.2015, 18:39
Помогаю со студенческими работами здесь

Определить лежит ли точка внутри, на или за пределами окружности радиусом R и центром в начале координат
Точка на плоскости задана своими координатами (x,y). Определить лежит ли она внутри, на или за пределами окружности радиусом R и центром в...

Определить, лежат ли точки на окружности радиуса r с центром в начале координат
заданы координаты 2 точек x1,y1.x2,y2. Определить лежат ли они на окружности радиуса r с центром в начале координат. и вывести...

Заданы координаты вершин трех треугольников.Определить сколько треугольников лежит внутри окружности
Заданы координаты вершин трех треугольников. Определить сколько треугольников лежит внутри окружности радиусом R с центром в начале...

Определить, сколько точек с целочисленными координатами попадают в круг заданного радиуса с центром в начале координат
Вводится радиус круга R. Определить, сколько точек с целочисленными координатами попадают в круг заданного радиуса с центром в начале...

определить,сколько точек пересечения имеет окружность радиуса R с центром в начале координат и произвольная прямая y=kx+b.
Написать программу, которая сможет определить,сколько точек пересечения имеет окружность радиуса R с центром в начале координат и...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru