![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
qwertyo |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
Напишите программу для подсчета числа точек с целочисленными координатами, находящихся внутри и на границе круга с заданным радиусом r, центр которого расположена произвольной точке плоскости с координатами(x,y).
На вход программе подаются 3 вещественных числа 0<=r<=1000000, x и y. Выведите количество искомых точек в этом круге. Пример: Вход: 1 0.5 0.5 Выход: 4 |
Krjuger |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Ну так напишите программу в чем проблема?
![]() |
qwertyo |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
Программа есть, но когда сдаю тестирующей системе, то на втором тесте неправильный ответ выдает.
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.
|
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Программа есть, но когда сдаю тестирующей системе, то на втором тесте неправильный ответ выдает. Н-да.. хорошо еще, что не выдает ... гм, чего-нибудь еще похлеще )). Уж ты накрутил..Вот тебе главный цикл. Я тут использую функции Тарасбера, 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);
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 20.04.2025 22:48 |