Определить среднюю абсциссу и ординату,иначе распечатать номера точек,не попавших в заданный круг. - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Если все точки плоскости,заданные своими координатами,попадают в круг радиусом Р и центром в начале координат, определить их среднюю абсциссу и ординату,иначе распечатать номера точек,не попавших в заданный круг. Надо написать программу с процедурами..всего 3 процедуры,но никак не могу собрать все!напишите полностью код.

Решение задачи: «Определить среднюю абсциссу и ординату,иначе распечатать номера точек,не попавших в заданный круг.»

textual
Листинг программы
uses crt;
const nmax=20;
type mas=array[1..nmax,1..2] of real;
procedure Vvod(var a:mas; var n:byte);
var i:byte;
begin
repeat
write('Количество точек до ',nmax,' n=');
readln(n);
until n in [1..nmax];
for i:=1 to n do
 begin
  a[i,1]:=-20+50*random;
  a[i,2]:=-10+50*random;
 end;
end;
 
procedure Vyvod(a:mas;n:byte);
var i:byte;
begin
writeln('Координаты:');
for i:=1 to n do
write('(',a[i,1]:6:1,';',a[i,2]:6:1,') ');
writeln
end;
 
function Vnutri(x,y,r:real):boolean;
begin
Vnutri:=x*x+y*y<=r*r;
end;
 
procedure Result(a:mas;n:byte;r:real; var xsr,ysr:real);
var i,k:byte;
begin
k:=0;
for i:=1 to n do
if Vnutri(a[i,1],a[i,2],r) then k:=k+1;
if k=n then
begin
 writeln('Все точки внутри круга');
 xsr:=0;
 ysr:=0;
 for i:=1 to n do
  begin
   xsr:=xsr+a[i,1];
   ysr:=ysr+a[i,2];
  end;
 writeln('Средняя абцисса точек=',xsr/n:0:2);
 writeln('Средняя ордината точек=',ysr/n:0:2);
end
else
 begin
  writeln('Не попали в круг следующие точки:');
  for i:=1 to n do
  if not Vnutri(a[i,1],a[i,2],r) then
  writeln(i:2,' ',a[i,1]:6:1,';',a[i,2]:6:1);
 end;
end;
var a:mas;
    n:byte;
    r,xsr,ysr:real;
begin
clrscr;
Vvod(a,n);
Vyvod(a,n);
write('Введите радиус круга r=');
readln(r);
Result(a,n,r,xsr,ysr);
readln
end.

Объяснение кода листинга программы

  1. В первой строке используется библиотека crt, которая предоставляет функции для работы с консолью.
  2. Константа nmax определяет максимальное количество точек, которое может быть введено пользователем.
  3. Тип mas представляет собой массив из 2 элементов типа real, то есть массив из 2 чисел с плавающей точкой.
  4. Функция Vvod считывает от пользователя количество точек (n), которые он хочет ввести, и сохраняет его в переменной n.
  5. Процесс ввода точек повторяется до тех пор, пока количество точек (n) не станет равным 0.
  6. Для каждой точки вводятся координаты (x,y) с помощью функции readln.
  7. Функция Vyvod выводит координаты точек на экран.
  8. Функция Vnutri проверяет, находится ли точка внутри заданного круга.
  9. Процесс вывода результатов начинается с проверки условия, что все точки находятся внутри круга.
  10. Если все точки находятся внутри круга, вычисляются средние значения координат (xsr,ysr).
  11. Если хотя бы одна точка не находится внутри круга, выводится сообщение о том, какие точки не попали в круг.
  12. В конце программы с помощью функции readln считывается радиус круга (r).
  13. Функция Result выводит результаты в зависимости от значения радиуса круга.
  14. Программа завершается после ввода любого символа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5
Похожие ответы