Номер §9 ПМ 3

ГДЗ по информатике 11 класс, Босова 2024, страница 127

§ ПМ Процедура вычисления периметра

Выполните программу на компьютере. Подумайте, каким образом можно модифицировать программу, чтобы вычислять с её помощью периметр n-угольника. Каким образом при решении этой задачи можно использовать массивы?

Решение

Программа примера вычисляет длину каждой стороны треугольника процедурой otrezok, передаёт длину через параметр var d и прибавляет её к периметру p. Для многоугольника повторим такое же действие для каждой пары соседних вершин. Координаты вершин удобно хранить в двух массивах: x[i] и y[i] — координаты вершины с номером i.

Введём вершины по порядку обхода границы. При процедура найдёт длину стороны между вершинами i и i+. Затем отдельно добавим замыкающую сторону от вершины n к вершине . Программа для числа вершин от до :

program PolygonPerimeter;
var
  x, y: array[..] of real;
  n, i: integer;
  d, p: real;

procedure Otrezok(x, y, x, y: real; var length: real);
begin
  length := sqrt(sqr(x - x) + sqr(y - y));
end;

begin
  readln(n);
  if (n < ) or (n > ) then
    writeln('Неверное число вершин')
  else
  begin
    for i :=  to n do
      readln(x[i], y[i]);
    p := ;
    for i :=  to n -  do
    begin
      Otrezok(x[i], y[i], x[i + ], y[i + ], d);
      p := p + d;
    end;
    Otrezok(x[n], y[n], x[], y[], d);
    p := p + d;
    writeln('P = ', p::);
  end;
end.

Формула в процедуре — формула длины отрезка по координатам концов из примера . Цикл суммирует первые сторон, а отдельный вызов замыкает контур. Пример: запустим программу с n = и вершинами , , .

345ABC

Первый вызов процедуры даёт ; после сложения p = .

Второй вызов даёт ; теперь .

Замыкающий вызов даёт ; получаем .

Программа выводит P = .. В среде Pascal вводят текст программы, запускают её и сравнивают вывод с этим контрольным примером.

Ответ

Координаты вершин хранятся в массивах x и y; процедура Otrezok вызывается для каждой пары соседних вершин и для пары . Их длины суммируются.

Помогло?

Нет твоего задания?Сфоткай, и ДЗмэн решит за пару секунд.

Решить по фото