PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018 Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк/столбцов в матрице:'); Writeln('*** Исходная матрица ***'); var a:=MatrRandom(n,n,1,50); a.Println(3); Writeln(3*a.ColCount*'-'); // начало расчетов var s:=0; for var i:=0 to n-1 do s+=a[i,n-i-1]; Writeln('1: S=',s); Write('2: Суммы построчно: '); a.Rows.Select(row->row.Sum).PrintLn; Write('3: Произведение элементов: '); a.ElementsByRow.Aggregate(BigInteger(1),(p,q)->p*q).PrintLn; var p:BigInteger:=1; for var i:=0 to n-1 do p*=a[i,i]; Writeln('4: П=',p); end.
Чтобы перевести число из десятичной системы в двоичную надо:
целую часть числа делить на 2 нацело, до тех пор пока получившееся неполное частное не станет меньше 2, а затем, начиная с последнего неполного частого (оно всегда будет 1), записать остатки от каждого деления в порядке, обратном получению.(смотри приложение 1);
дробную часть надо умножить на 2, до тех пор пока в дробной части не получится ноль либо не определится период либо до указанной точности, затем выписываем получившиеся целые части в порядке их получения. следует помнить, что умножаем только дробную часть. (смотрит приложение 2) В примере точность не указана и потому я решала до 12 знака
Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк/столбцов в матрице:');
Writeln('*** Исходная матрица ***');
var a:=MatrRandom(n,n,1,50);
a.Println(3); Writeln(3*a.ColCount*'-');
// начало расчетов
var s:=0;
for var i:=0 to n-1 do s+=a[i,n-i-1];
Writeln('1: S=',s);
Write('2: Суммы построчно: '); a.Rows.Select(row->row.Sum).PrintLn;
Write('3: Произведение элементов: ');
a.ElementsByRow.Aggregate(BigInteger(1),(p,q)->p*q).PrintLn;
var p:BigInteger:=1;
for var i:=0 to n-1 do p*=a[i,i];
Writeln('4: П=',p);
end.
Чтобы перевести число из десятичной системы в двоичную надо:
целую часть числа делить на 2 нацело, до тех пор пока получившееся неполное частное не станет меньше 2, а затем, начиная с последнего неполного частого (оно всегда будет 1), записать остатки от каждого деления в порядке, обратном получению.(смотри приложение 1);
дробную часть надо умножить на 2, до тех пор пока в дробной части не получится ноль либо не определится период либо до указанной точности, затем выписываем получившиеся целые части в порядке их получения. следует помнить, что умножаем только дробную часть. (смотрит приложение 2) В примере точность не указана и потому я решала до 12 знака
54,677≈1001010,101011010101....