М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
rjdfy
rjdfy
10.01.2022 23:57 •  Информатика

с программой на паскале(15 задание)


с программой на паскале(15 задание)

👇
Открыть все ответы
Ответ:
artemkafire2005
artemkafire2005
10.01.2022
// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!

type
  Point=(real,real);

function ReadPoint(n:integer):Point;
begin
  var a,b:real;
  Write('Координаты точки ',n,': '); Read(a,b);
  Result:=(a,b)
end;

function GetPoints(n:integer):array of Point;
begin
  Result:=new Point[n];
  for var i:=0 to n-1 do Result[i]:=ReadPoint(i+1)
end;

function Lsqr(a,b:Point):=sqr(b[0]-a[0])+sqr(b[1]-a[1]);

function Diags(a:array of Point; n:integer):array of real;
begin
  Result:=new real[n*(n-3) div 2];
  var k:=0;
  for var i:=0 to n-3 do
    for var j:=i+2 to min(n+i-2,n-1) do begin
      Result[k]:=Lsqr(a[i],a[j]);
      k+=1
      end;
end;

begin
  var n:=ReadInteger('Количество вершин:');
  if n>3 then begin
    var a:=GetPoints(n);
    Writeln('Длина наибольшей диагонали равна ',sqrt(Diags(a,n).Max):0:5)
    end
  else Writeln('Диагонали отсутствуют')
end.

Пример
Количество вершин: 5
Координаты точки 1: -3 2.5
Координаты точки 2: 3 5.2
Координаты точки 3: 6.1 1
Координаты точки 4: 2 -7.3
Координаты точки 5: -5 -7
Длина наибольшей диагонали равна 14.58904
4,4(40 оценок)
Ответ:
Granger341
Granger341
10.01.2022
// PascalABC.NET 3.2, сборка 1437 от 03.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк в массиве:');
  var m:=ReadInteger('Количество колонок в массиве:');
  Writeln('*** Исходный массив [',n,',',m,'] ***');
  var a:=MatrRandom(n,m,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var s:=a.ElementsWithIndexes.Where(x->x[2]<0);
  Writeln(s.Count,' отрицательных элементов с суммой ',s.Select(x->x[2]).Sum);
  Writeln('*** Результирующий массив ***');
  foreach var ijV in s do a[ijV[0],ijV[1]]:=0;
  a.Println(4)
end.

Пример
Количество строк в массиве: 4
Количество колонок в массиве: 7
*** Исходный массив [4,7] ***
  97  -4 -24  49   1  86 -15
 -84 -17 -56 -76 -26 -77  49
  -8  48 -29  60  20  82  90
 -28  -4 -69  32 -63 -35 -72

17 отрицательных элементов с суммой -687
*** Результирующий массив ***
  97   0   0  49   1  86   0
   0   0   0   0   0   0  49
   0  48   0  60  20  82  90
   0   0   0  32   0   0   0
4,6(37 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ