Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Десять точек заданы на плоскости своими координатами xi, yi (i=1,..,10), окружность уравнением (x - x0 )2 + (y - y0 )2 = r2, где x0 и y0 - координаты её центра, а r - радиус. Определить число точек, лежащих внутри окружности.
Алгоритм главной программы
Алгоритм подпрограммы
program example98;
type c = array [1..10] of real;
var x, y: c;
i, j: integer;
x0, y0, r: real;
function kkk(x, y: c; a, b, r:real):integer;
var
z: real;
begin
z:=sqrt (sqr (x - a) + sqr (y - b)) - r;
if z <= 0 then kkk:= 1 else kkk:= 0
end;
begin
readln(x0, y0, r);
for j:=1 to 10 do readln (x [ j ], y [ j ]);
i:=0;
for j:=1 to 10 do i:= i + kkk (x [ j ],y [ j ], x0, y0, r);
write ('i= ', i:2)
end.
Взаимодействие между двумя программными единицами - главной программой и функцией kkk осуществляется следующим образом. Главная программа из тела своего цикла вызывает функцию (таких вызовов 10 - по числу пар точек), каждый раз передавая ей в качестве фактических параметров координаты xi, yi очередной точки, координаты x0, y0 центра окружности и значение её радиуса r. Функция вычисляет разность z между радиусом окружности и расстоянием от её центра до очередной точки. Если z ≤ 0, что свидетельствует о нахождении точки внутри окружности, то имени функции присваивается значение равное 1, в противном случае 0. Эти значения после их возврата в главную программу учитываются счётчиком количества точек, попавших внутрь окружности-переменной i.
Дата публикования: 2015-01-24; Прочитано: 164 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!