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

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

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

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





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

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


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

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

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


Профи
****

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

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


Ну так напишите программу в чем проблема? smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

 





- Текстовая версия 28.04.2024 2:06
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name