Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 3
Регистрация: 18.11.2017
Сообщений: 99

Пересечение точек с прямой

18.02.2018, 15:33. Показов 1034. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Петя нарисовал замкнутую кривую (полилинию) на листе бумаги, используя синие чернила. Он оставил этот лист на столе, а его младший брат Вася нарисовал некоторые пятна в виде кругов, используя красные чернила.
Ваша задача – написать программу, которая определяет, полностью ли Вася испортил фигуру Пети, частично или не испортил абсолютно.

Pascal
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
program pyatna;
var
  xl, yl, xc, yc, rc, xo, yo:array[1..1000] of real;
  i, n, m, kn, km, ko:integer;
begin
  repeat
  read(n);
  read(m);
  if (n>=3) and (n<=1000) and (m<=1000) then
  begin
  for kn:=1 to n do
  begin
  read(xl[kn]);
  read(yl[kn]);
  end;
  for km:=1 to m do
  begin
  read(xc[km]);
  read(yc[km]);
  read(rc[km]);
  end;
  end; 
  until (n=0) and (m=0);
  for ko:=1 to 1000 do
  begin
  for km:=1 to m do
  begin
  while (xo[ko]-xc[km])*(xo[ko]-xc[km])+(yo[ko]-yc[km])*(yo[ko]-yc[km])=rc[km]*rc[km] do
  begin
  for kn:=1 to n do
  begin
  if (xo[ko]=xl[kn]) and (yo[ko]=yl[kn]) then writeln('1') else writeln('0');
  end;
  end;
  end;
  end;
end.

я по задаче выше написал программу. она почему вообще не выводит никакого результата. подскажите, пожалуйста, что я не так сделал и что нужно исправить. уже голову сломал.
я с вводом вроде разобрался, а вот с выводом никак.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.02.2018, 15:33
Ответы с готовыми решениями:

Пересечение прямой и окружности с центром (x, y)
Uses Crt; CONST EPS = 1e-6; Var R , a , b , c , x0 , y0 , ax , ay , bx , by , D , DD , mult : real; Begin Read(R, a...

Найти пересечение и разность заданных множеств точек (составить блок-схему к программе)
условие задачи. Дано два множество точек. Найти пересечение и разность этих множеств. Координаты точек x и y вводить с клавиатуры. uses...

Найти координаты точек пересечения прямой и окружности
1) на цикл if Найти координаты точек пересечения прямой y=kx+b и окружности радиусом R и с центром в начале координат. В каких...

4
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.02.2018, 15:51
Цитата Сообщение от Алексей9912 Посмотреть сообщение
замкнутую кривую (полилинию)
Замкнутая кривая и полилиния это разные вещи, 1 это например окружность или эллипс, а 2 это полигон. Он состоит из отрезков прямых линий.
Вам нужно определить пересекаются ли отрезки с пятнами(кругами). Если все пересекаются, то испорчена полностью, если только некоторые отрезки, частично, если ни один, не испортил.
0
0 / 0 / 3
Регистрация: 18.11.2017
Сообщений: 99
18.02.2018, 16:06  [ТС]
ну я знаю, что такое полилиния. это так написано в условии задачи. я о другом спрашивал.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.02.2018, 16:22
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Ну смысл вроде такой
Pascal
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
type point=record   //точка
           x,y:real;
           end;
     otr=record //отрезок
         a,b:point;
         end;
     krug=record  //пятно
          c:point;
          r:real;
          end;
function peres(ot:otr;kr:krug):boolean;
begin
//здесь пишете функцию
end;
var n:integer;//количество отрезков
    m:integer;//количество пятен
    k,i,j,p:integer;
begin
p:=0;
for i:=1 to n do//все отрезки
 begin
  j:=1;//проверяем на пересечение хоть с 1 кругом
  while(j<=m)and not peres(otr[i],ptn[j]) do inc(j);
  if j<=m then inc(p);//пересекается
 end;
if p=0 then write('не испортил')
else if p<m then write('испортил частично')
else write('испортил полностью')
end.
0
0 / 0 / 3
Регистрация: 18.11.2017
Сообщений: 99
18.02.2018, 16:35  [ТС]
спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.02.2018, 16:35
Помогаю со студенческими работами здесь

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

Найдите уравнение прямой, которой принадлежит наибольшее число данных точек
Доброго времени суток. Прошу помочь разобраться в решении довольно-таки сложной задачи (для кого как) : на плоскости заданы n точек своими...

На прямой поставили X точек, определить, сколько получилось отрезков (через цикл)
Пр. 2 точки 1 отрезок, 3 точки 3 отрезка и т.д. var m,i,s;integer; begin readln(n);

Написать программу для нахождения сумм расстояний от заданных точек до фиксированной прямой (в пространстве)
Программа почему-то не считает сумму..., проверьте пожалуйста... Задание. Написать программу для нахождения сумм расстояний от заданных k...

Найдите уравнение какой-либо прямой, делящей данное множество точек на два подмножества
На плоскости заданы 2n точек своими координатами. Найдите уравнение какой-либо прямой, делящей данное множество точек на два подмножества...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru