Даны два вектора a(15) и b(15). если все элементы первого вектора меньше соответствующих элементов второгт вектора, то элементы первого вектора домножить на 10, а элементы второго вектора разделить на 2. в протмвном случае оставить векторы без изменения выполнить в среде разработки паскаль через подпрограммы (procedure)

taya99191 taya99191    3   22.09.2019 19:20    4

Ответы
ПростоРадмир001 ПростоРадмир001  08.10.2020 10:33
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!

procedure LT(p,q:array of integer; var r:boolean);
begin
  r:=p.Zip(q,(i,j)->i-j).All(t->t<0)
end;

begin
  var a:=ArrRandom(15,-50,10); Print('a:'); a.Println;
  var b:=ArrRandom(15,-10,50); Print('b:'); b.Println;
  var less:boolean;
  LT(a,b,less);
  if less then begin
    a.Transform(t->t*10); Print('a:'); a.Println;
    b.Transform(t->t div 2); Print('b:'); b.Println
    end
  else Writeln('Векторы не менялись')
end.

Примеры
a: -1 -32 -32 6 -27 -19 -31 -24 -38 -7 -23 -20 -32 -32 2
b: -7 -8 4 -3 31 12 49 42 -9 3 -1 46 9 45 49
Векторы не менялись

a: -15 9 -43 -6 -27 -41 -37 4 -37 -22 -41 -34 -12 -5 -32
b: -1 21 -9 38 5 33 38 45 27 12 25 -7 40 38 9
a: -150 90 -430 -60 -270 -410 -370 40 -370 -220 -410 -340 -120 -50 -320
b: 0 10 -4 19 2 16 19 22 13 6 12 -3 20 19 4
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика