IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Круг на плоскости
qwertyo
сообщение 23.09.2011 17:23
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Напишите программу для подсчета числа точек с целочисленными координатами, находящихся внутри и на границе круга с заданным радиусом r, центр которого расположена произвольной точке плоскости с координатами(x,y).
На вход программе подаются 3 вещественных числа 0<=r<=1000000, x и y.

Выведите количество искомых точек в этом круге.

Пример:
Вход: 1 0.5 0.5
Выход: 4
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Krjuger
сообщение 23.09.2011 17:51
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Ну так напишите программу в чем проблема? smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
qwertyo
сообщение 23.09.2011 18:05
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Программа есть, но когда сдаю тестирующей системе, то на втором тесте неправильный ответ выдает.

var r,x,y:real;
i1,i2,j1,j2,i,j,k:longint;
f:boolean;
begin
readln(r,x,y);
j:=0;
i:=0;
k:=0;
if frac(x-r)=0 then i1:=trunc(x-r) else i1:=trunc(x-r-frac(x-r));
if frac(x+r)=0 then i2:=trunc(x+r) else i2:=trunc(x+r-frac(x+r));
if frac(y-r)=0 then j1:=trunc(x-r) else j1:=trunc(y-r-frac(y-r));
if frac(y+r)=0 then j2:=trunc(x+r) else j2:=trunc(y+r-frac(y+r));
f:=sqr(i-x)+sqr(j-y)<=r*r;
i:=i1;
while (i<=i2)and f do
begin
j:=j1;
while (j<=j2)and f do
begin
k:=k+1;
j:=j+1;
end;
i:=i+1;
end;
write(k);
readln
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 24.09.2011 4:54
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(qwertyo @ 23.09.2011 19:05) *
Программа есть, но когда сдаю тестирующей системе, то на втором тесте неправильный ответ выдает.
Н-да.. хорошо еще, что не выдает ... гм, чего-нибудь еще похлеще )). Уж ты накрутил..

Вот тебе главный цикл. Я тут использую функции Тарасбера, Up и Down. Ты можешь их найти здесь:
Проверка действительного числа на целость

  n:= 0;
for i:= Up(x-r) to Down(x+r) do begin
a:= Sqrt(r*r-i*i);
n:= n + Down(y+a) - Up(y-a) + 1
end;
write(n);


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 10:32
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"