Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 20.10.2009, 16:45   #1
@lenk@
Пользователь
 
Регистрация: 20.10.2009
Сообщений: 29
По умолчанию Найти количество точек плоскости с целочисленными координатами, попадающими в фигуру [Паскаль]

Даны вещественные b,c. Найти количество точек плоскости с целочисленными координатами, попадающими в фигуру, ограниченную линиями y=x^2 +2bx+c y=b^2+c.

(где ^ обозначает степень в данном случае в квадрате)

Последний раз редактировалось Rembo; 21.10.2009 в 19:09.
@lenk@ вне форума Ответить с цитированием
Старый 21.10.2009, 09:29   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Паскаля нет так что пример на Делфи.
Код:
var a,b,c,x,cnt:integer;y1,y2:double;
begin
 a:=1;b:=10;c:=3;
 x:=-100;        cnt:=0;
 while x<100 do begin
  y1:=sqr(x)+2*x*b+c;
  y2:=sqr(b)+c;
{  Series1.AddXY(x,y1);
  Series2.AddXY(x,y2);
}
  if (Trunc(y2)-trunc(y1))>0 then
   cnt:=cnt+(Trunc(y2)-trunc(y1));
  x:=x+1;
 end;
 {caption:=IntToStr(cnt);}
 write('количество точек = ',cnt);
 readln;
end;
То что в комментах можно убрать это построение графика в Делфи, остальное должно работать

P.S. насчет верности решения не уверен.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2009, 15:33   #3
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
Program p_p;
{модули}
uses crt;
{переменные}
var
  x,y:Integer;{для вывода точек}
  b,c:Integer;{для ввода данных}
  k:integer;{счетчик точек}
  d,x0,y0,x1,x2,y1:Double;{вспомогательные переменные}
{функции}
   {парабола}
function f1 (b,c,x:real):real;
begin
  f1:=x*x+2*b*x+c;
end;
{Прямая}
function f2 (b,c:real):real;
begin
 f2:=b*b+c;
end;
{основная программа}
begin
  Writeln('b=');
  Readln(b);       {считываем b}
  Writeln('c=');
  Readln(c);        {считываем с}
  clrscr;{очистим экран}
  {найдем вершину параболы y:=x^2+2bx+c}
  x0:=-2*b/2;
   k:=0;
  y0:=Sqr(x0)+2*b*x0+c;{<---Нижняя граница по y}

  {найдем точки пересечения прямой и параболы}
  d:=sqr(2*b)+4*1*sqr(b);        {дискриминант}
  x1:=(-2*b+sqrt(d))/2;{<---Верхняя граница по x}
  x2:=(-2*b-sqrt(d))/2;{<---Нижняя граница по x}
  y1:=Sqr(b)+c;{<---Верхняя граница по y прямая y=b^2+c}
  {Вывод результатов на экран}
  Writeln('---Made in programmersforum.ru---');
  {исходные данные}
  Writeln('------Data----------');
  writeln('b=',b); {выводим b}
  Writeln('c=',c);  {выводим c}
  Writeln('----Function--------');
  Writeln('y= x*x+',2*b,'*x+',c); {параболу}
  Writeln('y=',b*b+c);              {прямую}
  {получившиеся точки}
  Writeln('------Answer---------');
  for x:=trunc(x2) to trunc(x1) do 
  For y:=trunc(y0) to trunc(y1)-1 do
    begin
      if (y>f1(b,c,x))  then {если y> значения f1(x)}
        begin
          inc(k);{увеличиваем счетчик}
          writeln(k,'-',' [',x,';',y,']');{выводим точку и ее номер на экран }
        end;   
    end;
  Writeln('number of points =',k);{выводим количество точек}
  Writeln('-------END------------');
  Writeln('Please press Enter to exit!');{жмем Enter для выхода}
  Readln;
end.
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 22.10.2009, 19:46   #4
@lenk@
Пользователь
 
Регистрация: 20.10.2009
Сообщений: 29
По умолчанию

ОДИНОЧЕСТВО В СЕТИ
чем можно заменить inc(k)?
@lenk@ вне форума Ответить с цитированием
Старый 22.10.2009, 21:31   #5
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

inc(k) <=> k:=k+1
Chudo4258 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить принадлежит ли точка с координатами х,у заштрихованной части плоскости. Брутальный М. Паскаль, Turbo Pascal, PascalABC.NET 8 04.04.2011 20:32
геометрические преобразования на плоскости(Графика в Паскале) netbioz Помощь студентам 3 30.05.2009 14:59
точки плоскости, заданные своими координатами, попадают в круг с радиусом R Jondeer Общие вопросы C/C++ 6 16.06.2008 00:06


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS