Алина1564
?>

Даны два вектора b = (b1, b2, bn), x = (x1, x2, xn) и матрица а(nxn написать программу вычисления длины вектора ах + b.

Информатика

Ответы

bhg50
Const
   N = 4;
Var
   A:array[1..N,1..N] of real;
   B,X,AX:array[1..N] of real;
   i,j:integer;
   S:real;
Begin
Randomize;
Write('B(',N,'):');
For i:= 1 to N do
    Begin
    B[i]:=random(721)-360;
    Write(' ',B[i]:4)
    End;
WriteLn;
Write('X(',N,'):');
For i:= 1 to N do
    Begin
    X[i]:=random(721)-360;
    Write(' ',X[i]:4)
    End;
WriteLn;
WriteLn('A(',N,',',N,'):');
For i:= 1 to N do
    Begin
    Write('     ');
    For j:= 1 to N do
        Begin
        A[i,j]:=random(721)-360;
        Write(' ',A[i,j]:4)
        End;
    WriteLn;
    End;
WriteLn;
Write('AX:');
For i:= 1 to N do
    Begin
    AX[i]:=0;
    For j:= 1 to N do
        Begin
        AX[i]:=AX[i]+A[i,j]*X[j];
        End;
    Write(' ',AX[i])
    End;
WriteLn;
Write('AX+B:');
For i:= 1 to N do
    Begin
    X[i]:=AX[i]+B[i];
    Write(' ',X[i])
    End;
WriteLn;
Write('|Ax+b| = ');
S:=0;
For i:= 1 to N do
    Begin
    S:=S+X[i]*X[i];
    End;
WriteLn(Sqrt(S))
End.

Пример:
B(4):  -51  179  276 -273
X(4): -272 -261  -57  304
A(4,4):
      -169  -94  245 -346
      -351 -176  280    1
      -193 -330  219  -54
       338  -57  -44 -328

AX: -48647 125752 109727 -174263
AX+B: -48698 125931 110003 -174536
|Ax+b| = 246563.556248688
siyaniemoskva
1. В "реальном мире" это решается примерно так:

// PascalABC.NET 3.1, сборка 1198 от 11.03.2016
begin
  var a:=ArrRandom(ReadInteger('n='),0,2); a.Println;
  a.Sorted.Println
end.

Тестовое решение:
n= 15
1 2 0 2 2 0 2 0 2 0 0 1 0 0 2
0 0 0 0 0 0 0 1 1 2 2 2 2 2 2

2. Но, поскольку считается, что школьникам больше заняться нечем, их заставляют писать примерно в таком стиле (и время займет, и ощибок понаделают):

// PascalABC.NET 3.1, сборка 1198 от 11.03.2016
const
  nn=100;
var
  i,j,n,t:integer;
  a:array[1..nn] of integer;
begin
  Write('n='); Read(n);
  Randomize;
  for i:=1 to n do begin
    a[i]:=Random(3);
    Write(a[i],' ')
    end;
  Writeln;
  for i:=1 to n-1 do
    for j:=1 to n-1 do
      if a[j]>a[j+1] then begin
        t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t
        end;
  for i:=1 to n do Write(a[i],' ');
  Writeln;
end.

Тестовое решение:
n=15
0 1 1 0 2 1 0 2 1 2 1 0 0 2 0
0 0 0 0 0 0 1 1 1 1 1 2 2 2 2
oyunabaduraeva
// PascalABC.Net 3.0, сборка 1052
const
  Rus=['А'..'Я'];
var
  s:string;
  i,k,t:integer;
  c,c1,tc,sc:char;
  f:array['А'..'а'] of byte; // 'а' - это для 'Ё'
  ch:array['А'..'а'] of char;
begin
  Write('Введите строку: '); Readln(s);
  for c:='А' to 'а' do begin f[c]:=0; ch[c]:=c end;
  k:=0;
  for i:=1 to Length(s) do begin
    c:=UpCase(s[i]);
    if c in Rus then begin Inc(f[c]); Inc(k) end
    else
      if c='Ё' then begin Inc(f['а']); Inc(k) end;
  end;
  Writeln('Количество русских букв равно ',k);
  { сортировка массива со счетчиком количества букв }
  for c1:='А' to Pred('а') do
  for c:='А' to Pred('а') do
    if f[c]<f[Succ(c)] then begin
      t:=f[c]; tc:=ch[c]; sc:=Succ(c);
      f[c]:=f[sc]; ch[c]:=ch[sc];
      f[sc]:=t; ch[sc]:=tc
    end;
  Writeln('Частота встретившихся букв');
  c:='А';
  while (c<='а') and (f[c]>0) do begin
    if ch[c]='а' then ch[c]:='Ё';
    Writeln(ch[c],' - ',f[c]);
    Inc(c)
  end;
end.

Тестовое решение:
Введите строку: Когда я был парнишкой, носил я брюки клёш
Количество русских букв равно 33
Частота встретившихся букв
К - 4
И - 3
Л - 3
О - 3
А - 2
Б - 2
Н - 2
Р - 2
Ш - 2
Я - 2
Г - 1
Д - 1
Й - 1
П - 1
С - 1
Ы - 1
Ю - 1
Ё - 1

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

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

Даны два вектора b = (b1, b2, bn), x = (x1, x2, xn) и матрица а(nxn написать программу вычисления длины вектора ах + b.
Ваше имя (никнейм)*
Email*
Комментарий*

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

Гарик383
Марина
Морозов
ekaterinaorl1998
ЕВ1873
Барскова1943
Вера1072
metrikajulia
mez-omts-d5
impulsmc715
ktatarinova
NIKOLAEVNA
char40
Дмитрий Бундин
alexey