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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2011, 14:46   #1
KitFolly
 
Регистрация: 14.12.2011
Сообщений: 8
По умолчанию Важно, процедуры в паскале

Помогите пожалуйста с программой, очень надо.
Информатика Задана окружность (x-a)^2+(y-b)^2=R^2 и точки Р(р1,р2) F(f1,f2), M(m1,m2). Выяснить и напечатать сколько точек лежит внутри окружности. Оформить в виде процедуры.
KitFolly вне форума Ответить с цитированием
Старый 14.12.2011, 14:50   #2
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

В чем проблема? Не умеете писать процедуры или не понимаете алгоритма решения?
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 14.12.2011, 14:52   #3
KitFolly
 
Регистрация: 14.12.2011
Сообщений: 8
По умолчанию

Скорее не знаю как записать процедуру
KitFolly вне форума Ответить с цитированием
Старый 14.12.2011, 14:55   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Находим координаты центра окружности. Затем выясняем расстояния между центром и указанными точками. Если расстояние меньше или равно радиусу, значит точка лежит внутри окружности. Иначе нет.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 14.12.2011, 14:57   #5
KitFolly
 
Регистрация: 14.12.2011
Сообщений: 8
По умолчанию

Program p1;
Uses crt;
Var
x,y,a,b,P,F,M,R: real;
Begin
Clrscr;
R:=4;
write ('x=');
read (x);
write ('y=');
read (y);
write ('a=');
read (a);
write ('b=');
read (b);
if (y<=x) and (x<=1) and (y>=0)
then
writeln ('P принадлежит окружности ')
else
writeln ('P не принадлежит окружности ');
Readkey;
End.
Типа того? я правильно поняла?
KitFolly вне форума Ответить с цитированием
Старый 14.12.2011, 14:58   #6
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Код:
var .....
    count:integer;

procedure CountPoints(p1,p2,f1,f2,m1,m2,x,y,r:real; var count:integer);
begin
count:=0;
if (sqr(p1-a)+sqr(p2-b)<sqr(r)) then inc(count);
if (sqr(f1-a)+sqr(f2-b)<sqr(r)) then inc(count);
if (sqr(m1-a)+sqr(m2-b)<sqr(r)) then inc(count);
end;

begin
//здесь нужно ввести точки и параметры x,y,R
CountPoints(p1,p2,f1,f2,m1,m2,a,b,r,count);
writeln ('Vnutri okrujnosti ',count,' tochek');
end.
2 Utkin, можно и так, но можно обойтись без лишних расчетов - просто подставить координаты точки в формулу окружности и проверить, чтобы левая часть была меньше правой (не помню когда именно, но это еще в школе проходилось)
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 14.12.2011, 15:07   #7
KitFolly
 
Регистрация: 14.12.2011
Сообщений: 8
По умолчанию

спасибо за помощь)
KitFolly вне форума Ответить с цитированием
Старый 14.12.2011, 17:19   #8
KitFolly
 
Регистрация: 14.12.2011
Сообщений: 8
По умолчанию

Помогите программа готова не знаю как записать предпоследнюю строку выдает 0 точек или 3 хотя по координатам должно 2 принадлежать
writeln ('P, F, M не принадлежит окружности ');
if sqr(x-a)+sqr(y-b)<sqr(R)
then
writeln ('P, F, M принадлежит окружности ');



begin
writeln('Vvedtie koordinaty tochki p:');
readln(x, y);
writeln('Vvedtie koordinaty tochki f:');
readln(x, y);
writeln('Vvedtie koordinaty tochki m:');
readln(x, y);
n:=0;
if (sqr(x-a)<=2) and (sqr(y-b)<=2) and (x<=y) then n:=n+1;

writeln('Kolichestvo tochek = ', n);
KitFolly вне форума Ответить с цитированием
Старый 14.12.2011, 17:40   #9
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
writeln('Vvedtie koordinaty tochki p:');
readln(x, y);
n:=0;
if (sqr(x-a)<=2) and (sqr(y-b)<=2) and (x<=y) then n:=n+1;
writeln('Vvedtie koordinaty tochki f:');
readln(x, y);
if (sqr(x-a)<=2) and (sqr(y-b)<=2) and (x<=y) then n:=n+1;
writeln('Vvedtie koordinaty tochki m:');
readln(x, y);
if (sqr(x-a)<=2) and (sqr(y-b)<=2) and (x<=y) then n:=n+1;

writeln('Kolichestvo tochek = ', n);
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 14.12.2011, 17:55   #10
KitFolly
 
Регистрация: 14.12.2011
Сообщений: 8
По умолчанию

все равно не дает результата которого хотелось бы 0 точек
посмотрите программу и исправьте меня если что то не правильно

Program l1;
Uses crt;
Var
a,b,x,y,p1,p2,f1,f2,m1,m2,p,f,m,R: real;
n:integer;
Begin
Clrscr;
a:=3;
b:=4;
R:=2;
write ('x=');
read (x);
write ('y=');
read (y);
write ('p1=');
read (p1);
write ('p2=');
read (p2);
write ('f1=');
read (f1);
write ('f2=');
read (f2);
write ('m1=');
read (m1);
write ('m2=');
read (m2);
writeln ('P, F, M íå ïðèíàäëåæàò îêðóæíîñòè ');
if sqr(x-a)+sqr(y-b)<sqr(R)
then
writeln ('P, F, M ïðèíàäëåæàò îêðóæíîñòè ');
begin
writeln('Vvedtie koordinaty tochki p:');
readln(x, y);
n:=0;
if (sqr(x-a)<=2) and (sqr(y-b)<=2) and (x<=y) then n:=n+1;
writeln('Vvedtie koordinaty tochki f:');
readln(x, y);
if (sqr(x-a)<=2) and (sqr(y-b)<=2) and (x<=y) then n:=n+1;
writeln('Vvedtie koordinaty tochki m:');
readln(x, y);
if (sqr(x-a)<=2) and (sqr(y-b)<=2) and (x<=y) then n:=n+1;
writeln('Kolichestvo tochek = ', n);
end;
end.
KitFolly вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры в паскале sys*.12 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 27.11.2011 14:45
Процедуры в Паскале venomdanger Помощь студентам 5 05.07.2010 09:20
Процедуры в паскале swedalena Помощь студентам 3 02.06.2010 23:06
Срочно и очень важно!!! Время поджимает!!!Помогите решить задачу в Паскале на зарплату lenok113 Фриланс 7 24.05.2009 22:22