Выполни Выполни задания
Задание I.
1.Почему блоки раскрашены в разные цвета?
2.Во время конструирования блоки должны соответствовать друг другу. Объясните причину.
3.Почему сгруппированы блоки?
Задание II.
1.Дайте краткое описание функций каждого блока
===== PascalABC.NET =====
begin
var (m, n) := ReadInteger2('Число строк и столбцов массива:');
var a := MatrRandom(m, n, -99, 99);
a.Println(4);
var k := ReadInteger('Сколько первых элементов обработать?');
if not k.InRange(1, m * n) then
Println('Введено недопустимое значение')
else
begin // замена построчно
var r := k div n; // число полных строк
if r > 0 then
for var i := 0 to r - 1 do
for var j := 0 to n - 1 do
a[i,j] := -a[i,j];
for var j := 0 to k - r * n - 1 do
a[r,j] := -a[r,j];
a.Println(4)
end
end.
Второй вариант использует более продвинутые возможности PascalABC.NET. Замена выполняется единственным оператором.
begin
var (m, n) := ReadInteger2('Число строк и столбцов массива:');
var a := MatrRandom(m, n, -99, 99);
a.Println(4);
var k := ReadInteger('Сколько первых элементов обработать?');
if not k.InRange(1, m * n) then
Println('Введено недопустимое значение')
else
begin // замена построчно
a.Transform((p, i, j) -> n * i + j < k ? -p : p);
a.Println(4)
end
end.
===== C++ 17 =====
#include <iostream>
using namespace std;
int main()
{
srand(time(NULL));
int n = 12, k = 3;
int a[k][n];
for(int i = 0; i < k; i++)
{
for(int j = 0; j < n; j++)
{
a[i][j] = (rand() % 35 + 25) * 1000;
cout << a[i][j] << " ";
}
cout << endl;
}
cout << "\nОбщая сумма, выплаченная всем работникам: ";
int s = 0;
for(int i = 0; i < k; i++)
for(int j = 0; j < n; j++)
s += a[i][j];
cout << s << "\nЗарплаты каждого работника за квартал:\n";
s = 0;
for(int j = 0; j < n; j++)
{
s = 0;
for(int i = 0; i < k; i++)
{
s += a[i][j];
}
cout << s << " ";
}
cout << "\nОбщие зарплаты всех работников по месяцам: ";
for(int i = 0; i < k; i++)
{
s = 0;
for(int j = 0; j < n; j++)
{
s += a[i][j];
}
cout << s << " ";
}
cout << endl;
return 0;
}