Сформировать матрицу 5 на 5, вывести номера полностью совпадающих строк.
Unconnected
15.09.2010 22:47
Как пробовал?
mixail_01
15.09.2010 23:05
Дальше создания матрицы дело не идет, не знаю как сравнивать строки
Unconnected
15.09.2010 23:32
const m=5;
var matr:array[1..m,1..m] of byte; i,j:byte; st:set of byte=[];
function check(s1,s2:byte):boolean; var u:byte; begin result:=true; for u:=1 to m do if matr[s1,u]<>matr[s2,u] then begin result:=false; break; end; end;
begin randomize; for i:=1 to m do for j:=1 to m do read(matr[i,j]);
for i:=1 to m do begin if not(i in st) then begin for j:=1 to m do if (i<>j) and (check(i,j)) then begin //убрал одну проверку writeln(i,' ',j); st:=st+[i]+[j]; end; end; end; readln; end.
Попробуй это.
volvo
16.09.2010 17:44
А я бы поправил вот так:
var printed: boolean; { ... } for i := 1 to m do begin printed := false; if not (i in st) then begin for j := i + 1 to m do if check(i, j) then begin if not printed then begin write(i, ' '); printed := true; end; write(j, ' '); st := st + [i, j]; end; end; if printed then writeln; end;
Во-первых, условие (i <> j) тоже оказывается лишним, а во-вторых, более правдоподобный (ну, скажем, более ожидаемый) вывод результата: на матрице 1 2 3 4 5 2 4 6 2 5 1 2 3 4 5 2 4 6 2 5 1 2 3 4 5 выдаст 1 3 5 2 4 , а не 1 3 1 5 2 4 , как первоначальный вариант...
mixail_01
16.09.2010 17:46
Спасибо всем!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.