Среди четырёхугольников, заданных своими сторонами: a1, b1, c1, d1 : a2, b2, c2, d2 : … :...

0 голосов
105 просмотров

Среди четырёхугольников, заданных своими сторонами: a1, b1, c1, d1 : a2, b2, c2, d2 : … : a7, b7, c7, d7 найти количество четырёхугольников, у которых периметры одинаковы с периметром последнего четырёхугольника.
Задача по программированию в Паскале.
Помогите решить, пожалуйста, с подобными типами задач я ещё ни разу не сталкивалась.


Информатика (106 баллов) | 105 просмотров
0

Ну так в ней нет ничего особенного. Периметр - это сумма длин четырех отрезков. Получаем ряд из 7 значений. Идем от от предпоследнего к началу и считаем сколько раз встретится значение, равное последнему.

0

Сведения о сторонах можно ранить в четырех одномерных массивах длины 7 (a,b,c,d) или одном двумерном 4х7 также из 7 элементов. А еще можно описать собственный тип из четырех длин и хранить данные в массиве этого типа.

0

Ну и последнее. Если длины сторон хранить не надо, достаточно иметь четыре переменные для чтения данных и один массив для хранения периметра

0

Спасибо большое за объяснения и решение!

0

Год не было программирования в школе — и я уже растеряла все навыки. Не знаю, что бы без Вас делала)

Дан 1 ответ
0 голосов

Const
  n=7;

type
  V=array[1..n] of real;

var
  P:V;
  i,k:integer;
  a,b,c,d:real;

begin
  Writeln('Вводите длины сторон четырехугольника через пробел');
  for i:=1 to n do begin
    Write(i,': '); Read(a,b,c,d);
    P[i]:=a+b+c+d;
    end;
  k:=0;
  for i:=n-1 downto 1 do
    if P[i]=P[n] then k:=k+1;
  Writeln('Четырехугольников с периметром, как у последнего: ',k)
end.

Пример
Вводите длины сторон четырехугольника через пробел
1: 5 7 3 8
2: 3 7 3 6
3: 5 8 5 2
4: 6 8 4 1.9
5: 8 3 5 9
6: 7 3 7 2
7: 5 5 5 4
Четырехугольников с периметром, как у последнего: 2

(142k баллов)