Задача: Вводится массив 4*6. Найти две строки, в которых элементы одинаковы но могут стоять в разной последовательности.
program abc ;
var ar : array [1..4,1..6] of integer ; i,j,n6 : integer ;
function cmpstr (n1,n2 : integer) : boolean ;
var k,k1 : integer ; tmp : array [1..6] of boolean ;
begin
for k := 1 to 6 do
tmp[k] := True ;
n6 := 0 ;
for k := 1 to 6 do
for k1 := 1 to 6 do
if ( (ar[n1,k]=ar[n2,k1]) and tmp[k1] ) then
begin
n6:=n6+1 ;
tmp[k1] := False ;
end ;
if n6=6 then cmpstr := True else cmpstr := False ;
end ;
begin
for i := 1 to 4 do
for j := 1 to 6 do
Read (ar[i,j]) ;
Writeln ('---') ;
for i := 1 to 4 do
begin
for j := 1 to 6 do Write (' ',ar[i,j]) ;
Writeln (' -');
end ;
for i := 1 to 3 do
for j := i+1 to 4 do
if cmpstr(i,j) then Writeln ( 'Matching rows i=',i,' j=',j) ;
Writeln ('---') ;
end.
Другие языки программирования и технологии
Помогите переписать программу без функции.
program abc ;
var ar : array [1..4,1..6] of integer; i,j,n6,k,k1:integer; tmp:array [1..6] of boolean;
begin
for i := 1 to 4 do begin
for j := 1 to 6 do Read (ar[i,j]);
writeln;
end;
Writeln ('---') ;
for i := 1 to 4 do
begin
for j := 1 to 6 do Write (' ',ar[i,j]) ;
Writeln (' -');
end ;
for i := 1 to 3 do
for j := i+1 to 4 do
begin
for k := 1 to 6 do
tmp[k] := True ;
n6 := 0 ;
for k := 1 to 6 do
for k1 := 1 to 6 do
if ((ar[i,k]=ar[j,k1]) and tmp[k1] ) then
begin
n6:=n6+1 ;
tmp[k1] := False ;
end;
if n6=6 then Writeln ( 'Matching rows i=',i,' j=',j);
end;
Writeln ('---') ;
end.
var ar : array [1..4,1..6] of integer; i,j,n6,k,k1:integer; tmp:array [1..6] of boolean;
begin
for i := 1 to 4 do begin
for j := 1 to 6 do Read (ar[i,j]);
writeln;
end;
Writeln ('---') ;
for i := 1 to 4 do
begin
for j := 1 to 6 do Write (' ',ar[i,j]) ;
Writeln (' -');
end ;
for i := 1 to 3 do
for j := i+1 to 4 do
begin
for k := 1 to 6 do
tmp[k] := True ;
n6 := 0 ;
for k := 1 to 6 do
for k1 := 1 to 6 do
if ((ar[i,k]=ar[j,k1]) and tmp[k1] ) then
begin
n6:=n6+1 ;
tmp[k1] := False ;
end;
if n6=6 then Writeln ( 'Matching rows i=',i,' j=',j);
end;
Writeln ('---') ;
end.
type mas = array [1..100] of integer;
var i, j, n, m, c: integer;
a: array [1..100] of mas;
begin
n:=4; m:=6;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random (5);
write (a[i,j]:4);
end;
writeln;
end;
writeln;
for j:=1 to m do a[n+1]:=a[1];
for i:=1 to n do
begin
c:=0;
for j:=1 to m do
if a[i,j] in a[i+1] then inc(c);
if c=j then
if i=n then writeln ('строка ',i, ' и ',1)
else writeln ('строка ',i, ' и ',i+1);
end;
end.
var i, j, n, m, c: integer;
a: array [1..100] of mas;
begin
n:=4; m:=6;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random (5);
write (a[i,j]:4);
end;
writeln;
end;
writeln;
for j:=1 to m do a[n+1]:=a[1];
for i:=1 to n do
begin
c:=0;
for j:=1 to m do
if a[i,j] in a[i+1] then inc(c);
if c=j then
if i=n then writeln ('строка ',i, ' и ',1)
else writeln ('строка ',i, ' и ',i+1);
end;
end.
Похожие вопросы
- Помогите переписать программу
- Пожалуйста, помогите написать программу через функции в Си++
- Помогите найти в чем дело перепишите программу.
- Помогите переделать программу в Delphi через "Процедуры, функции, модули".
- Помогите написать программу на c++ С использованием функций
- Переписать программу из Pascal в С++
- Помогите написать программу со switch в СИ
- помогите переписать код с паскаля на c++
- Помогите составить программу С++ "Процедуры и функции"
- Помогите составить программу. тема "Процедуры и функции" при помощи Паскаль