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.
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.
// 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.
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