Заданы матрица порядка n и число k. разделить элементы k-й строки на диагональный элемент, расположенный в этой строке. исходную и полученную матрицы вывести на экран.
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('n='); var k:=ReadInteger('Введите 1<k<=n:'); if (k>n) or (k<1) then exit; var a:=MatrRandomReal(n,n,1,20); a.Println(7,2); k-=1; var d:=a[k,k]; Writeln(n*7*'-'); for var j:=0 to n-1 do a[k,j]/=d; a.Println(7,2) end.
2. А пока в школах учат писать вот так. Хорошо видно, насколько школа отстает от современных технологий.
const nn=20; var a:array[1..nn,1..nn] of real; i,j,n,k:integer; d:real; begin Write('n= '); Read(n); Write('Введите 1<k<=n: '); Read(k); if (k>n) or (k<1) then exit; randomize; for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=19*random+1; Write(a[i,j]:7:2) end; Writeln end; d:=a[k,k]; for i:=1 to 7*n do Write('-'); Writeln; for j:=1 to n do a[k,j]:=a[k,j]/d; for i:=1 to n do begin for j:=1 to n do Write(a[i,j]:7:2); Writeln end end.
Var a: string; words, nums, chars, i, sen: integer; begin readln(a); words := 1; For i := 1 to Length(a) do begin If (a[i] = ' ') then inc(words); if (a[i] in ['0'..'9']) then inc(nums); if (a[i] = #13) then inc(sen); if (a[i] in ['a'..'z', 'A'..'Z', 'а'..'я', 'А'..'Я']) then inc(chars); end; writeln(Words, ' words', #13, Chars, ' chars (', Nums, ' Numbers)', #13, Sen, ' sentences'); end.
Разве что на строки проверить не могу, т.к. у меня только PascalABC, но должно работать =)
А вот так понятнее: 1001110= 1) проставь над каждой цифрой числа справо на лево двойки со степенями т.о. чтобы над первым нулем (справа) стояла 2 в нулевой степени, над единицей - 2 в первой степени, над следующей единицей - 2 во второй степени, и т.д. Т.О над последней единицей (слево) будет 2 в седьмой степени. а теперь смотри как получается число в десятичной: надо сложить произведения этиз двоек на те числа, которые стоят под ними соответственно. итак: 1001110=2в шестой* 1+2в пятой*0+2 в четвертой*0+2 в третьей*1+2 во второй*1+2 впервой*1+2 в нулевой*0 = 64+8+4+2=78
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
var k:=ReadInteger('Введите 1<k<=n:');
if (k>n) or (k<1) then exit;
var a:=MatrRandomReal(n,n,1,20); a.Println(7,2);
k-=1;
var d:=a[k,k];
Writeln(n*7*'-');
for var j:=0 to n-1 do a[k,j]/=d; a.Println(7,2)
end.
Пример
n= 5
Введите 1<k<=n: 2
15.11 1.07 2.01 6.33 8.63
13.26 14.96 13.36 9.87 17.39
14.87 19.89 16.94 10.77 17.86
18.16 19.99 10.16 9.89 5.42
4.78 13.60 6.89 19.56 1.25
15.11 1.07 2.01 6.33 8.63
0.89 1.00 0.89 0.66 1.16
14.87 19.89 16.94 10.77 17.86
18.16 19.99 10.16 9.89 5.42
4.78 13.60 6.89 19.56 1.25
2. А пока в школах учат писать вот так. Хорошо видно, насколько школа отстает от современных технологий.
const
nn=20;
var
a:array[1..nn,1..nn] of real;
i,j,n,k:integer;
d:real;
begin
Write('n= '); Read(n);
Write('Введите 1<k<=n: '); Read(k);
if (k>n) or (k<1) then exit;
randomize;
for i:=1 to n do begin
for j:=1 to n do begin
a[i,j]:=19*random+1;
Write(a[i,j]:7:2)
end;
Writeln
end;
d:=a[k,k];
for i:=1 to 7*n do Write('-');
Writeln;
for j:=1 to n do a[k,j]:=a[k,j]/d;
for i:=1 to n do begin
for j:=1 to n do Write(a[i,j]:7:2);
Writeln
end
end.