Массовый открытый онлайн-курс (сокр.: МООК; англ. Massive open online course, MOOC, произносится примерно, как «мук») — обучающий курс с массовым интерактивным участием c применением технологий электронного обучения и открытым доступом через Интернет[1], одна из форм дистанционного образования. В качестве дополнений к традиционным материалам учебного курса, таким как видео, чтение и домашние задания, массовые открытые онлайн-курсы дают возможность использовать интерактивные форумы пользователей, которые создавать и поддерживать сообщества студентов, преподавателей и ассистентов.
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 procedure MatInput(a:array[,] of integer); begin Writeln('Вводите элементы матрицы построчно, в конце нажимая Enter'); for var i:=0 to Length(a,0)-1 do begin Write(i+1,': '); for var j:=0 to Length(a,1)-1 do Read(a[i,j]); end end;
procedure MatPrint(a:array[,] of integer); begin for var i:=0 to Length(a,0)-1 do begin for var j:=0 to Length(a,1)-1 do Print(a[i,j]); Writeln end end;
function IsEqual(a:array[,] of integer; j1,j2:integer; flag:array of boolean):boolean; // равны ли столбцы с индексами j1 и j2 begin if flag[j2]=False then begin Result:=True; for var i:=0 to Length(a,0)-1 do if a[i,j1]<>a[i,j2] then begin Result:=False; Break end; flag[j2]:=Result end end;
begin var n:=ReadInteger('Задайте число строк (столбцов) матрицы:'); var a:array[,] of integer; var m:=ArrFill(n,False); SetLength(a,n,n); MatInput(a); Writeln('*** Принятая матрица ***'); MatPrint(a); var k:=1; for var i:=0 to n-2 do for var j:=i+1 to n-1 do if IsEqual(a,i,j,m) then Inc(k); if k>1 then Writeln('Количество совпадающих столбцов равно ',k) else Writeln('нет совпадающих столбцов') end.
Тестовое решение Задайте число строк (столбцов) матрицы: 3 Вводите элементы матрицы построчно, в конце нажимая Enter 1: 1 2 2 2: 3 5 5 3: 2 2 2 *** Принятая матрица *** 1 2 2 3 5 5 2 2 2 Количество совпадающих столбцов равно 2
procedure MatInput(a:array[,] of integer);
begin
Writeln('Вводите элементы матрицы построчно, в конце нажимая Enter');
for var i:=0 to Length(a,0)-1 do begin
Write(i+1,': ');
for var j:=0 to Length(a,1)-1 do Read(a[i,j]);
end
end;
procedure MatPrint(a:array[,] of integer);
begin
for var i:=0 to Length(a,0)-1 do begin
for var j:=0 to Length(a,1)-1 do Print(a[i,j]);
Writeln
end
end;
function IsEqual(a:array[,] of integer; j1,j2:integer;
flag:array of boolean):boolean;
// равны ли столбцы с индексами j1 и j2
begin
if flag[j2]=False then begin
Result:=True;
for var i:=0 to Length(a,0)-1 do
if a[i,j1]<>a[i,j2] then begin Result:=False; Break end;
flag[j2]:=Result
end
end;
begin
var n:=ReadInteger('Задайте число строк (столбцов) матрицы:');
var a:array[,] of integer;
var m:=ArrFill(n,False);
SetLength(a,n,n);
MatInput(a);
Writeln('*** Принятая матрица ***');
MatPrint(a);
var k:=1;
for var i:=0 to n-2 do
for var j:=i+1 to n-1 do
if IsEqual(a,i,j,m) then Inc(k);
if k>1 then Writeln('Количество совпадающих столбцов равно ',k)
else Writeln('нет совпадающих столбцов')
end.
Тестовое решение
Задайте число строк (столбцов) матрицы: 3
Вводите элементы матрицы построчно, в конце нажимая Enter
1: 1 2 2
2: 3 5 5
3: 2 2 2
*** Принятая матрица ***
1 2 2
3 5 5
2 2 2
Количество совпадающих столбцов равно 2