Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2015, 19:47   #1
bambaleo
 
Регистрация: 22.10.2015
Сообщений: 8
По умолчанию Помогите написать программу на паскале!

Вычислить количество точек графика функции лежащих внутри кольца с радиусами r1 и r2 центром в точке(x;y)
условие: использовать while и repeat

Код:
var 
  x,y,R1, R2: integer;
  koltoch: byte;

begin
  writeln('Введите внутренний радиус R1');
  readln(R1);
  writeln('Введите внешний радиус R2');
  readln(R2);
  koltoch:= 0;
  for x:= -R2 to R2 do
    for y:= -R2 to R2 do
      if (sqrt(sqr(x) + sqr(y)) > R1)
          and (sqrt(sqr(x) + sqr(y)) < R2) then
      begin
        koltoch:= koltoch + 1;
        writeln (x,' ',y);
     end;
  writeln(koltoch);
  readln
end
Нашел,но решена Forом, надо repeat

Последний раз редактировалось Stilet; 22.10.2015 в 20:28.
bambaleo вне форума Ответить с цитированием
Старый 24.10.2015, 19:40   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
x:=-r2;
while x<=r2 do
begin
y:=-r2;
while y<=r2 do
begin

      if (sqrt(sqr(x) + sqr(y)) > R1)
          and (sqrt(sqr(x) + sqr(y)) < R2) then
      begin
        koltoch:= koltoch + 1;
        writeln (x,' ',y);
     end;
y:=y+dr2;
end;
x:=x+dr2;
end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 24.10.2015 в 19:49.
Mad_Cat вне форума Ответить с цитированием
Старый 24.10.2015, 20:23   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Можно без корней и квадратов
Вместо этого -
Код:
if (sqrt(sqr(x) + sqr(y)) > R1)
вот это -
Код:
if ((x*x + y*y) > (R1*R1))
type_Oleg вне форума Ответить с цитированием
Старый 26.10.2015, 19:54   #4
bambaleo
 
Регистрация: 22.10.2015
Сообщений: 8
По умолчанию

Цитата:
Сообщение от bambaleo Посмотреть сообщение
Вычислить количество точек графика функции,лежащих внутри кольца с радиусами r1 и r2 и центром в точке (x,y).
программа не работает верно(

Последний раз редактировалось Stilet; 26.10.2015 в 20:00.
bambaleo вне форума Ответить с цитированием
Старый 26.10.2015, 20:01   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как ты определил что не верно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.10.2015, 20:08   #6
bambaleo
 
Регистрация: 22.10.2015
Сообщений: 8
По умолчанию

Написал в паскале программу . При любых значениях r1 и r2 она выводит 0
bambaleo вне форума Ответить с цитированием
Старый 26.10.2015, 20:14   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Написал в паскале программу
Ну дык - программу в студию
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.10.2015, 20:37   #8
bambaleo
 
Регистрация: 22.10.2015
Сообщений: 8
По умолчанию

Код:
Var x,y,r1,r1:integer;
 koltoch:byte;
begin
  writeln('Введите внутренний радиус-r1');
  readln(r1);
  writeln('Введите внешный радиус-r2');
  readln(r2);
  x:=-r2;
  while x<=r2 do
    begin 
    y:=-r2;
    while y<=r2 do 
      begin
      If(sqrt(sqr(x)+sqr(y))>r1) and (sqrt(sqr(x)+sqr(y))<r2) then
        begin
          koltoch:=koltoch+1;
          writeln(x,' ',y);
        end;
     y:=y+r2;
     end;
   x:=x+r2;
   end;
  writeln('Кол-во точек=',koltoch)
end.
bambaleo вне форума Ответить с цитированием
Старый 26.10.2015, 21:06   #9
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Во первых, как она вообще скомпилировалась без ошибок?
Код:
 Var x,y,r1,r1:integer;  //  2 раза r1
Во вторых, даже если это исправить, то странное приращение переменных x и y:
Код:
 y:=y+r2;
     end;
   x:=x+r2;
Они у вас -r2,0,r2, и все.
Наверное +1, а не + r2
type_Oleg вне форума Ответить с цитированием
Старый 26.10.2015, 21:12   #10
bambaleo
 
Регистрация: 22.10.2015
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
Код:
x:=-r2;
while x<=r2 do
begin
y:=-r2;
while y<=r2 do
begin

      if (sqrt(sqr(x) + sqr(y)) > R1)
          and (sqrt(sqr(x) + sqr(y)) < R2) then
      begin
        koltoch:= koltoch + 1;
        writeln (x,' ',y);
     end;
y:=y+dr2;
end;
x:=x+dr2
end;
Это приращение я взял отсюда
bambaleo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать программу в паскале майдар Паскаль, Turbo Pascal, PascalABC.NET 1 28.01.2014 10:00
Помогите написать программу в Паскале Dimka0506 Помощь студентам 1 23.09.2013 17:51
Помогите написать программу в Паскале Saaashka Помощь студентам 1 11.06.2008 11:30
помогите написать программу в паскале death Помощь студентам 3 22.10.2007 10:05