Даны два вектора A(15) и B(15). если все элементы первого вектора меньше соответствующих...

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

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


Информатика (68 баллов) | 43 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
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)<br>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
(150k баллов)