Лекция: Пример 9.8

 

Десять точек заданы на плоскости своими координатами 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.

 

еще рефераты
Еще работы по информатике