Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2021, 13:24   #1
be1ochka
Новичок
Джуниор
 
Регистрация: 13.12.2021
Сообщений: 4
По умолчанию Подсчитать количество точек

Помогите подсчитать количество точек, попадающих в круг радиуса 4 из центром в начале координат
Нужно доделать программу
k:=0;
for i:=1 to n do begin
Read(x,y); if Sqr(x)+Sqr(y)<=Sqr(4) then Inc(k);
end;
be1ochka вне форума Ответить с цитированием
Старый 13.12.2021, 14:59   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
for x:=1 to 4 do begin
for y:=1 to 4 do begin
if Sqr(x)+Sqr(y)<=Sqr(4) then Inc(k);
end;
end;
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 13.12.2021, 18:18   #3
be1ochka
Новичок
Джуниор
 
Регистрация: 13.12.2021
Сообщений: 4
По умолчанию

Так сверху же нужно добавить описание используемых переменных, begin и ввод количество точек?
У меня с этим проблемы
be1ochka вне форума Ответить с цитированием
Старый 13.12.2021, 19:32   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

В общем случае предполагается, что координаты - случайные числа.
Можно сделать так:
Код:
var x, y, R, R2: real;
        i, k, n: integer;
begin
   randomize();        {инициализация генератора сл. чисел}
   n := 50; R := 4;   {Только 50 точек рассматриваем}
   R2 := R*R;
   k := 0;                 {Ещё нет точек, попавших в круг}
   for i := 1 to n do begin  {Для всех точек}
      x := -4 + random(2*R);         {В диапазоне [-4, 4)}
      y := -4 + random(2*R);
      if x*x + y*y <= R2 then Inc(k); {Есть попадание}
   end;
   writeln(k);          {Результат}
end.
Тут можно провести небольшой эксперимент.
Посмотрите отношение числа попавших точек к общему числу точек.
Сделайте вычисление для, скажем, 10000 точек
Как соотносятся площади квадрата и вписанного круга и общее число точек к числу попавших в круг? (Метод Монте-Карло).

PS: Код не тестировался. Так что пробуйте и, по необходимости, доводите ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 13.12.2021, 20:09   #5
be1ochka
Новичок
Джуниор
 
Регистрация: 13.12.2021
Сообщений: 4
По умолчанию

Но здесь же скорей всего нужно самому вводить кол-во точек а не через рандом
be1ochka вне форума Ответить с цитированием
Старый 13.12.2021, 21:41   #6
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Если вам надо, что бы пользователь вводил число точек, то:
Код:
writeln('Введите число точек');  { попросите}
readln(n);      {и примите}
Если надо, что бы пользователь самостоятельно вводил координаты точек, то снова попросите и примите.
Для пяти - десяти точек это ещё терпимо, а вот больше ...
Я не думаю, что у вас или вашего преподавателя такие наклонности ...
Думаю, что вам знакомы садомазохизм и садизм

PS:
Цитата:
Но здесь же скорей всего нужно самому вводить кол-во точек а не через рандом
Надеюсь, всё же, что вы понимаете что пишите.
Количество точек, в предложенном мной коде, определено (50), и не вводится рандомно.
Рандомно генерируются координаты для этих точек (для пользователя, который вводит их ручками - это 100 чисел).

PSS: А код то хоть рабочий?
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 13.12.2021, 21:56   #7
be1ochka
Новичок
Джуниор
 
Регистрация: 13.12.2021
Сообщений: 4
По умолчанию

А все я понимаю теперь.
Спасибо большое код рабочий.
be1ochka вне форума Ответить с цитированием
Старый 13.12.2021, 22:49   #8
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Цитата:
А все я понимаю теперь.
Это хорошо, ибо всё понять не всем дано.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчитать количество точек пересечения прямых Jenyyy Помощь студентам 11 25.05.2015 13:02
Задано множество прямых на плоскости (коэффициентами своих уравнений). Подсчитать количество точек пересечения этих прямых клепэ C# (си шарп) 3 03.11.2013 23:37
Подсчитать количество равносторонних треугольников с вершинами в заданном множестве точек на плоскости (Delphi) dea_celeste Помощь студентам 4 17.05.2012 15:33
Задаnm n точек. Найти m=3,4... точек и построить на них m-угольник: количество точек , лежащих внутри и вне его мин. различается L.Rain Помощь студентам 0 11.12.2011 22:19
подсчитать количество точек пересечения fallti Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 28.06.2010 13:46