Tin học Tây Sơn

sắp xếp ma trận

Go down

sắp xếp ma trận

Bài gửi by Admin on Thu Nov 29, 2018 11:49 am

Cho mảng 2 chiều A cấp mxn. Viết chương trình sắp xếp lại mảng A theo yêu cầu sau:
            a/ Các phần tử trên mỗi dòng được sắp xếp theo thứ tự giảm dần.
            b/ Các dòng được sắp xếp lại theo thứ tự giảm dần của tổng các phần tử trên mỗi dòng.


sxmt.inpsxmt.out
3 5
5 9 4 8 2
1 -9 8 7 4
6 -1 -8 9 10
 
9 8 5 4 2
10 9 6 -1 -8
8 7 4 1 -9
avatar
Admin
Admin
Admin

Posts : 658
Reputation : -39
Join date : 16/11/2015
Age : 29

Xem lý lịch thành viên http://tinhocts.forumvi.com

Về Đầu Trang Go down

Re: sắp xếp ma trận

Bài gửi by Nguyễn Văn Biên on Thu Nov 29, 2018 4:42 pm

CODE:
program SXMT;
var fi,fo:text;
i,j,m,n,x,k:integer;
A:array[1..1000,1..1000] of integer;

procedure sxep;
begin
for i:=1 to m do
for j:=1 to n-1 do
for k:=j+1 to n do
if A[i,j]<A[i,k] then
begin
x:=A[i,j];
A[i,j]:=A[i,k];
A[i,k]:=x
end
end;

procedure sxeptong;
begin
for i:=1 to m do
for j:=1 to n do
A[i,n+1]:=A[i,n+1]+A[i,j];
for i:=1 to m-1 do
for j:=i+1 to m do
if A[i,n+1]<A[j,n+1] then
begin
x:=A[i,n+1]; A[i,n+1]:=A[j,n+1]; A[j,n+1]:=x;
for k:=1 to n do
begin
x:=A[i,k];
A[i,k]:=A[j,k];
A[j,k]:=x
end;
end;
end;

begin
assign(fi,'sxmt.inp'); reset(fi);
readln(fi,m,n);
for i:=1 to m do
for j:=1 to n do
read(fi,A[i,j]); close(fi);
sxep; sxeptong;
assign(fo,'sxmt.out'); rewrite(fo);
for i:=1 to m do
for j:=1 to n do
if j<>n then write(fo,A[i,j],#32)
else writeln(fo,A[i,j],#32);
close(fo)
end.
avatar
Nguyễn Văn Biên
S-mod
S-mod

Posts : 186
Reputation : 21
Join date : 18/06/2018
Age : 14
Location : ?

Xem lý lịch thành viên https://bien2004official.blogspot.com

Về Đầu Trang Go down

Re: sắp xếp ma trận

Bài gửi by mainhatthong2004 on Thu Nov 29, 2018 4:42 pm

Code:
program bai6;
uses crt;
type mang2c=array[1..50,1..50] of integer;
var fi,fo:text;
tg,m,n,i,j,t,y:integer;
a:mang2c;
//----------------------------------------
function th(b:mang2c;z,k:integer):integer;
var i:integer;
begin
th:=0;
for i:=1 to z do
th:=th+a[k,i];
end;
//-------------------------------------------
procedure doc;
begin
        assign(fi,'sxmt.inp');
        reset(fi);
        readln(fi,m,n);
        for i:=1 to m do
                begin
                        for j:=1 to n do
                                read(fi,a[i,j]);
                        readln(fi);
                end;
        close(fi);
end;
//---------------------------------------
procedure xl1;
begin
assign(fo,'sxmt.out');
rewrite(fo);
for i:=1 to m do
for y:=1 to n-1 do
for t:=y+1 to n do
if a[i,y]<a[i,t] then
begin
tg:=a[i,t];
a[i,t]:=a[i,y];
a[i,y]:=tg;
end;
for i:=1 to m-1 do
for j:=i+1 to m do
if th(a,n,i)<th(a,n,j) then
for t:=1 to n do
begin
a[m+1,t]:=a[i,t];
a[i,t]:=a[j,t];
a[j,t]:=a[m+1,t];
end;
for i:=1 to m do
begin
for j:=1 to n do
write(fo,a[i,j],' ');
writeln(fo);
end;
close(fo);
end;
//----------------------------------------
begin
clrscr;
doc;
xl1;
readln;
end.


Thong va Nguyen
avatar
mainhatthong2004
Teen cá tính
Teen cá tính

Posts : 76
Reputation : -25
Join date : 18/06/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: sắp xếp ma trận

Bài gửi by Tạ Thúy Phượng on Thu Nov 29, 2018 4:43 pm

CODE:
program bt3;
uses crt;
var
fi,fo:text;
n,m,i,j,k,tg:integer;
a:array[1..50,1..50] of integer;
tong,vt:array[1..100]of integer;
//-------------------------------
procedure nhap;
begin
assign(fi,'SXMT.INP');
reset(fi);
read(fi,n,m);
for i:=1 to n do
begin
for j:=1 to m do read(fi,a[i,j]);
readln(fi);
end;
close(fi);
end;
//--------------------------------------------
procedure sx;
begin
assign(fo,'SXMT.OUT');
rewrite(fo);
for i:=1 to n do
for j:=1 to m do
for k:=j+1 to m do
if a[i,j]<a[i,k] then
begin
tg:=a[i,j];
a[i,j]:=a[i,k];
a[i,k]:=tg;
end;
for i:=1 to n do
for j:=1 to m do tong[i]:=tong[i]+a[i,j];
for i:=1 to n do vt[i]:=i;
for i:=1 to n-1 do
for j:=i+1 to n do
if tong[i]<tong[j] then
begin
tg:=vt[i];
vt[i]:=vt[j];
vt[j]:=tg;
end;
for i:=1 to n do
begin
for j:=1 to m do
write(fo,a[vt[i],j],#32);
writeln(fo);
end;
close(fo);
end;
//------------------------------------
begin
clrscr;
nhap;
sx;
readln;
end.
avatar
Tạ Thúy Phượng
Năng động
Năng động

Posts : 63
Reputation : -19
Join date : 18/06/2018
Location : Binh Thuan-Tay Son-Binh Dinh

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: sắp xếp ma trận

Bài gửi by huynhtanluc on Thu Nov 29, 2018 10:48 pm

Code:
Program sxmt;
uses crt;
var a:array[1..100,1..100] of integer;
    b:array[1..100] of integer;
    t1,t2:text;i,j,m,n,k,x:integer;


Procedure sx;
begin
for i:=1 to m do
 for j:=1 to n-1 do
  for k:=j+1 to n do
  if a[i,j]<a[i,k] then
  begin
        x:=a[i,j];
        a[i,j]:=a[i,k];
        a[i,k]:=x;
  end;
end;

Procedure sxt;
begin
for i:=1 to m do
for j:=1 to n do
b[i]:=b[i]+a[i,j];
for i:=1 to m-1 do
for j:=i+1 to m do
if b[i]<b[j] then
begin
x:=b[i]; b[i]:=b[j]; b[j]:=x;
for k:=1 to n do
begin
x:=A[i,k];
a[i,k]:=a[j,k];
a[j,k]:=x;
end;
end;
end;

Begin
clrscr;
assign(t1,'sxmt.inp');
reset(t1);
readln(t1,m,n);
for i:=1 to m do
for j:=1 to n do
read(t1,a[i,j]);
close(t1);
sx; sxt;
assign(t2,'sxmt.out'); rewrite(t2);
for i:=1 to m do
for j:=1 to n do
if j<>n then write(t2,a[i,j],#32)
else writeln(t2,a[i,j],#32);
close(t2);
readln;
End.
avatar
huynhtanluc
Năng động
Năng động

Posts : 61
Reputation : -14
Join date : 18/06/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: sắp xếp ma trận

Bài gửi by quantran on Sat Dec 01, 2018 2:06 pm

code cua em:
program baitap;
var
a:array[1..50,1..50] of integer;
t,so:array[1..100]of integer;
fi,fo:text;
n,m,i,j,k,tg:integer;
//-------------------------------
procedure nhap;
begin
assign(fi,'sxmt.INP');
reset(fi);
read(fi,n,m);
for i:=1 to n do
begin
for j:=1 to m do
read(fi,a[i,j]);
readln(fi);
end;
close(fi);
end;
//------------------------------------
begin
nhap;
assign(fo,'SXMT.OUT');
rewrite(fo);
for i:=1 to n do
for j:=1 to m do
for k:=j+1 to m do
if a[i,j]<a[i,k] then
begin
tg:=a[i,j];
a[i,j]:=a[i,k];
a[i,k]:=tg;
end;
for i:=1 to n do
for j:=1 to m do
t[i]:=t[i]+a[i,j];
for i:=1 to n do
so[i]:=i;
for i:=1 to n-1 do
for j:=i+1 to n do
if t[i]<t[j] then
begin
tg:=so[i];
so[i]:=so[j];
so[j]:=tg;
end;
for i:=1 to n do
begin
for j:=1 to m do
write(fo,a[so[i],j],' ');
writeln(fo);
end;
close(fo);
readln;
end.
avatar
quantran
Teen cá tính
Teen cá tính

Posts : 73
Reputation : -20
Join date : 18/06/2018
Age : 14
Location : Binh Thuan-Tay Son-Binh Dinh

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: sắp xếp ma trận

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết