kotikdmytriy11
?>

Напишите программу, размещающую в памяти два вектора и вычисляющую их скалярное произведение.

Информатика

Ответы

dimalihachew
{ Free Pascal - fpc 2.6.4 }
var
  i,n:integer;
  A,B:array of integer;
  p:longint;
begin
  Write('Число элементов в векторах='); Read(n);
  Randomize;
  SetLength(A,n);
  Writeln('Вектор A');
  for i:=0 to n-1 do begin A[i]:=Random(51)-25; Write(A[i],' ') end;
  Writeln;
  SetLength(B,n);
  p:=0;
  Writeln('Вектор B');
  for i:=0 to n-1 do begin
    B[i]:=Random(51)-25;
    Write(B[i],' ');
    p:=p+A[i]*B[i]
    end;
  Writeln;
  Writeln('Скалярное произведение равно ',p);
end.

Тестовое решение:
Число элементов в векторах=15
Вектор A
-16 -6 -1 6 -6 7 22 4 16 19 3 -21 19 22 7
Вектор B
21 21 -2 -8 -3 25 -4 20 6 -11 8 10 -16 -16 19
Скалярное произведение равно -1145
Станиславович1830
Const
  n = 11;

var
  x: array[1..n] of integer;
  i, k, d, s: integer;

begin
  Randomize;
  Writeln('Элементы массива');
  k := 0; s := 0;
  for i := 1 to n do
  begin
    d := Random(11) - 5;
    Write(d:3);
    if (i mod 2) = 0 then begin { четное место }
      if d = 1 then Inc(k);
      x[i] := d
    end
    else begin
      if d < 0 then s := s + d;
      x[i] := sqr(d)
    end
  end;
  Writeln;
  Writeln('Результирующий массив');
  for i := 1 to n do Write(x[i]:3);
  Writeln;
  Writeln('Количество единиц на четных местах равно ', k);
  Writeln('Сумма отрицательных элементов на нечетных местах равна ', s)
end.

Тестовое решение:
Элементы массива
 -3  0 -5  1  5  1 -3 -4  5 -3 -2
Результирующий массив
  9  0 25  1 25  1  9 -4 25 -3  4
Количество единиц на четных местах равно 2
Сумма отрицательных элементов на нечетных местах равна -13
dovgash2
№1

var x, F: real;
begin
write('Введите х: ');
readln(x);
if ( x > -2.4 ) AND ( x < 5.7 ) then F := sqr(x)
else F := 4;
writeln('F = ', F);
end.

№2

var x, F: real;
begin
write('Введите х: ');
readln(x);
if ( x > 0.2 ) AND ( x < 0.9 ) then F := sin(x)
else F := 1;
writeln('F = ', F);
end.

№3

var a,b,c: real;
begin
write('Введите а: ');
readln(a);
write('Введите b: ');
readln(b);
write('Введите c: ');
readln(c);
if ( a < b ) AND ( b < c ) then writeln('a < b < c')
else
if ( b > a ) AND ( a > c ) then writeln('b > a > c')
else
writeln('Неравенства не выполняются');
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите программу, размещающую в памяти два вектора и вычисляющую их скалярное произведение.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

timsch12
манукян29
gorsimonyan4
mashumi2170
extremhunter
kronid12
Александровна1742
narkimry134
art-03857
makscska22879
Vetroff-11
libirishka7910
smalltalkcoffee5
Tatyana_Minullina
Apresov