0 / 0 / 0
Регистрация: 03.04.2015
Сообщений: 1
1

Определить количество точек с целочисленными координатами, нахадящихся на поверхности шара

02.11.2008, 18:39. Показов 3094. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемы програмеры этого форума...Больше не к кому обратиться(Даже мой учиетль информатики не чем не смог мне помочь)

Дан шар радиуса R, центр которогонаходится в центре координат.Определить колличество точек с целочисленными координатами, нахадящихся на его поверхности.
ПРограмма должна
1)Запросить целое число R(0<R<=1000)-радиус шара
2)Подсчитать и сообщить число точек с целочисленными координатами, лежащих на поверхности шара.
ПРимер1.
Если R=13, то К=78
Пример 2
Если R=16,то К=6
Самое главное условие-программа должна выполниться за 20 секунд...

Написал я программу, но паскаль, вместо колличества найденых значений выдаёт мне ноль....В чём дело не пойму...
Код:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program S1;
USES CRT;
var R,b,x,y,z,k,a,c,f:longint;
begin
CLRSCR;
Writeln('Vvedite Radius=');
Readln(R);
For x:=0 to R do
    b:=sqr(x);
    For y:=0 to R do
        c:=sqr(y);
        For z:=0 to R do
            f:=sqr(z);
            a:=b+c+f;
            b:=sqr(R);
IF a=b THEN k:=k+1;
WRITELN(k);
 
Readln;
end.
Намекните пожайлуста, в чём ошибка?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2008, 18:39
Ответы с готовыми решениями:

Найти количество точек плоскости с целочисленными координатами, попадающие в кольцо
Помогите с задачкой пожалуйста=) Найти количество точек плоскости с целочисленными координатами,...

Вычислить количество точек с целочисленными координатами, находящихся в круге радиуса R (R>0)
Вычислить количество точек с целочисленными координатами, находящихся в круге радиуса R (R&gt;0) ...

Кол-во точек с целочисленными координатами
Здравствуйте! Помогите с задачей, нужно до завтра, :gsorry: Вычислите n кол-во точек с...

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

6
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
02.11.2008, 19:26 2
Я тут подправил чуток, но 13-78 не выполняется:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var R,b,x,y,z,k,a,c,f:longint;
begin
Writeln('Vvedite Radius=');
Readln(R);
k:=0;
For x:=0 to R do
    For y:=0 to R do
        For z:=0 to R do
          begin
              b:=sqr(x);
              c:=sqr(y);
              f:=sqr(z);
              a:=b+c+f;
              b:=sqr(R);
             IF a=b THEN k:=k+1;
          end;
WriteLn(k);
Readln;
end.
Да и как ты так подсчитал что 13-78 а 16-6. По какому принципу.Я чёт не соображу как это так.
0
4 / 4 / 0
Регистрация: 16.09.2008
Сообщений: 45
02.11.2008, 19:33 3
я тоже ничё непойму ???
0
0 / 0 / 0
Регистрация: 03.04.2015
Сообщений: 1
02.11.2008, 19:37  [ТС] 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
var x,y,z,r,k,y_n,z_n:integer;
 
BEGIN
  readln(r);
  k := 6; {"нулевые"}
  for x:= 1 to r-1 do
   begin
    y_n := trunc(sqrt(r*r - x*x));
    for y:= 0 to y_n do
    begin
     z_n:= trunc(sqrt(r*r - x*x - y*y));
     for z:= 0 to z_n do
      if r*r = ( x*x + z*z + y*y ) then
       if z=0 then
        begin
         if y=0 then k:=k+2
         else k:=k+4;
        end
       else k:=k+8;
    end;
   end;
  writeln(k);
  readln;
end.
Но при вводе больших значений ака 178 выдаёт 207 ошибку...
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
02.11.2008, 19:37 5
Задача не очень сложная, если не учитывать время. Просто пребираешь
k:=0;
for x:=-r do r do
for y:=-r do r do
for z:=-r do r do
if x*x+y*y+z*z=r*r then k:=k+1;
Но программа работает около минуты. Есть алгоритм, один товарищ умный придумал, считает за 10 секунд, но я в нем сам толком не разобрался, и вряд ли кто-то поверит, что Вы при своих знаниях до такого додумались.
Конечно переменные, которые участвуют в умножении должны быть Longint.
0
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
02.11.2008, 19:45 6
у меня при значении 1000 работает 23 секунды.но с моими параметрами компа не мудрено.

Добавлено через 2 минуты 21 секунду
В моей програмке нуно поставить только циклы от -r до r и тогда прально работат.
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
02.11.2008, 19:49 7
Вот последовательность для проверки, правда чисел немного.

http://www.research.att.com/~n... &go=Search
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2008, 19:49
Помогаю со студенческими работами здесь

Вычислить количестиво точек с целочисленными координатами, попадающих в круг радиуса R
вычислить количестиво точек с целочисленными координатами, попадающих в круг радиуса R с центром в...

Подсчет количества точек с целочисленными координатами, находящихся внутри круга заданного радиуса
Напишите программу для подсчета числа точек с целочисленными координатами, находящихся внутри круга...

На плоскости заданы N различных точек с целочисленными координатами.Нужно найти максимальную площадь треугольника
На плоскости заданы N различных точек с целочисленными координатами.Нужно найти треугольник с...

На плоскости заданы N различных точек с целочисленными координатами.Нужно найти кол-во треугольников, площадь которых является целым числом
На плоскости заданы N различных точек с целочисленными координатами.Нужно найти кол-во...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru