Подсчитать параллелограммы, для которых сумма расстояний 4 вершин от точки (7, 7) больше D - PascalABC.NET

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

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

Помогите,пожалуйста,решить задачу.Совсем не получается Дано множество параллелограммов. Подсчитать параллелограммы, для которых сумма расстояний 4 вершин от точки (7, 7) больше D.
задаются координатами характерных точек(концов,вершин,центров)

Решение задачи: «Подсчитать параллелограммы, для которых сумма расстояний 4 вершин от точки (7, 7) больше D»

textual
Листинг программы
type point=record
           x,y:real;
           end;
      prlg=record
           a,b,c,d:point;
           r:real;
           end;
function v4(a,b,c:point):point;   
var e:point;
begin
e.x:=(a.x+c.x)/2;
e.y:=(a.y+c.y)/2;
result.x:=2*e.x-b.x;
result.y:=2*e.y-b.y;
end;     
function rs(a,b:point):real;
begin
rs:=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));
end;  
var p:array of prlg;
    t:point;  
    n,i,k:integer;
    d:real;
begin
randomize;
repeat
write('Введите количество параллелограммов n>1 n=');
readln(n);
until n>1;
setlength(p,n);
for i:=0 to n-1 do
 begin
  writeln('Параллелограмм ',i+1);
  writeln('Введите координаты двух противоположных вершин');
  readln(p[i].a.x,p[i].a.y,p[i].c.x,p[i].c.y);
  writeln('Введите координаты третьей вершины');
  readln(p[i].b.x,p[i].b.y);
  p[i].d:=v4(p[i].a,p[i].b,p[i].c);//вычислим координаты 4 вершины
 end;
repeat
write('Суммма расстояний от вершин до точки (7,7) d>0 d=');
readln(d);
until d>0;
t.x:=7;
t.y:=7;
k:=0; 
writeln('Параллелограммы');
for i:=0 to n-1 do
 begin
  p[i].r:=rs(p[i].a,t)+rs(p[i].b,t)+rs(p[i].c,t)+rs(p[i].d,t);
  write(i+1:2,' A(',p[i].a.x:0:1,',',p[i].a.y:0:1,') B(',p[i].b.x:0:1,',',p[i].b.y:0:1,')');
  write(' C(',p[i].c.x:0:1,',',p[i].c.y:0:1,') D(',p[i].d.x:0:1,',',p[i].d.y:0:1,')');
  writeln(' сумма расстояний=',p[i].r:0:2);
  if p[i].r>d then inc(k);
 end; 
write('Количество параллелограммов, для которых сумма расстояний 4 вершин до точки (7, 7) больше ',d:0:2,'=',k);
end.

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

В данном коде реализуется подсчет количества параллелограммов, для которых сумма расстояний 4 вершин от точки (7, 7) больше D.

  1. Типы данных:
    • point = record x, y: real;
    • prlg = record a, b, c, d: point; r: real;
    • t: point;
    • n, i, k: integer;
    • d: real;
    • p: array of prlg;
    • функция v4(a, b, c: point): point;
    • функция rs(a, b: point): real;
  2. Ввод данных:
    • Количество параллелограммов n>1.
    • Координаты вершин параллелограмма.
    • Сумма расстояний от вершин до точки (7,7) d>0.
    • Точка (7,7).
  3. Вычисления:
    • Координаты четвертой вершины параллелограмма вычисляются с помощью функции v4(a, b, c: point).
    • Расстояние между двумя точками вычисляется с помощью функции rs(a, b: point).
  4. Организация цикла:
    • Цикл повторяется до тех пор, пока не будет введено корректное значение d.
    • Цикл по i для каждого параллелограмма.
  5. Вывод данных:
    • Координаты вершин параллелограмма.
    • Сумма расстояний от вершин до точки (7,7) для каждого параллелограмма.
    • Если сумма расстояний больше d, то увеличивается счетчик k.
    • В конце выводится количество параллелограммов, для которых сумма расстояний 4 вершин до точки (7, 7) больше d.

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


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

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

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