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

Даны две матрицы а(nxn) и b(nxn), а также два вектора х = (x1, xn) и y = (y1, y2, yn). написать программу нахождения скалярного произведения (ах)*(ву).

👇
Ответ:
danilstal14
danilstal14
28.10.2022
Const
  n = 5;

type
  tM = array[1..n, 1..n] of integer;
  tV = array[1..n] of integer;

procedure ProdMV(a: tM; b: tV; var c: tV);
var
  i, j, s: integer;
begin
  for i := 1 to n do
  begin
    s := 0;
    for j := 1 to n do s := s + a[i, j] * b[j];
    c[i] := s;
  end
end;

procedure SumV(a, b: tV; var c: tV);
var
  i: integer;
begin
  for i := 1 to n do c[i] := a[i] + b[i]
end;

procedure InitMatrix(var a: tM; p, q: integer);
{ Инициализация элементов случайными числами на [p;q]}
var
  i, j, k: integer;
begin
  k := q - p + 1;
  for i := 1 to n do
    for j := 1 to n do
      a[i, j] := Random(k) + p
end;

procedure InitVector(var a: tV; p, q: integer);
{ Инициализация элементов случайными числами на [p;q]}
var
  i, k: integer;
begin
  k := q - p + 1;
  for i := 1 to n do
    a[i] := Random(k) + p
end;

procedure DisplayMatrix(a: tM; s: string);
var
  i, j: integer;
begin
  Writeln(s);
  for i := 1 to n do
  begin
    for j := 1 to n do Write(a[i, j]:5);
    Writeln
  end
end;

procedure DisplayVector(a: tV; s: string);
var
  i: integer;
begin
  Writeln(s);
  for i := 1 to n do Write(a[i]:5);
  Writeln
end;

var
  A, B: tM;
  x, y, r, r1, r2: tV;

begin
  Randomize;
  InitMatrix(A, -50, 50);
  DisplayMatrix(A, 'Матрица А');
  InitMatrix(B, -20, 65);
  DisplayMatrix(B, 'Матрица B');
  InitVector(x, -10, 14);
  DisplayVector(x, 'Вектор x');
  InitVector(y, 5, 40);
  DisplayVector(y, 'Вектор y');
  ProdMV(A, x, r1);
  ProdMV(B, y, r2);
    { Для отладки раскомментарить две нижележащие строчки }
  { DisplayVector(r1,'Вектор r1');
    DisplayVector(r2,'Вектор r2'); }
  SumV(r1, r2, r);
  DisplayVector(r, 'Вектор результата')
end.

Тестовое решение:
Матрица А
  -19   27   30   25  -14
   32  -35    9  -38   16
  -39  -36   13   41  -37
    7  -18   -8   35  -10
    1  -48    1  -19   -2
Матрица B
  -15   62  -18   58   62
   32   58   43    3   12
   15   11   39  -20  -16
   47  -10   24   16   55
   -8   46   10    0   45
Вектор x
    2   -6   10    0   -3
Вектор y
   15   14   22   14   15
Вектор результата
 2131 2776 1096 2214 1725
4,4(75 оценок)
Открыть все ответы
Ответ:
gamer0072
gamer0072
28.10.2022
1. Program A1;
var
s,m:integer;
begin
Writeln('Vvedi vozrast SASHI :');
Read(s);
Writeln('Vvedi vozrast MASHI :');
 Read(m);
If s>m then writeln('SASHA starshe MASHI') else writeln('MASHA starshe SASHI');
end.

2.
Program A1;
var
s,m:integer;
begin
Writeln('Vvedi vozrast SASHI :');
Read(s);
Writeln('Vvedi vozrast MASHI :'); 
Read(m);
If s=m then writeln('SASHA i MASHA rovestniki') else
If s>m then writeln('SASHA starshe MASHI') else writeln('MASHA starshe SASHI');
end.

3.
Program A1;
var
a,b,c,d:real;
begin
Readln(a);
Readln(b);
Readln(c);
If ((b<a) and (b<c)) then begin d:=a; a:=b; b:=d; end;
If ((c<a) and (c<b)) then begin d:=a; a:=c; c:=d; end;
If ((a>b) and (a<c)) then begin d:=b; b:=a; a:=d; end;
If ((c<b) and (c>a)) then begin d:=b; b:=c; c:=d; end;
If ((a>c) and (a>b)) then begin d:=c; c:=a; a:=d; end;
If ((b>c) and (b>a)) then begin d:=c; c:=b; b:=d; end;
writeln(a,'<',b,'<',c);
end.
4,6(71 оценок)
Ответ:
лоартем1
лоартем1
28.10.2022
Const n=3;
var    a: array[1..n] of integer;  
  i, j, k: integer; 
begin  
  randomize;   
  write ('Исходный массив: ');  
  for i := 1 to n do begin  
      a[i] := random(256);     
   write (a[i]:4);    end;    
writeln; writeln;    
  for i := 1 to n-1 do   
     for j := 1 to n-i do   
         if a[j] > a[j+1] then begin     
           k := a[j];            
    a[j] := a[j+1];        
        a[j+1] := k        
    end;    
 write ('массив по возрастанию: '); 
   for i := 1 to n do  
     write(а[i]:4);   
  writeln;
 readln;
end.
4,4(72 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ