Tin học Pascal

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
241
19
Quảng Trị
Trường TH&THCS Hải Ba
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

tìm phần tử "Yên Ngựa" trong ma trận

Một phần tử được gọi là Yên Ngựa khi và chỉ khi nó lớn nhất trên dòng và nhỏ nhất trên cột

Dữ liệu vào:m,n
các phần tử trong mảng
Dữ liệu ra :chứa các pt yên ngựa, nếu ko có thì ghi *
VD:
yn.inp: 3 3
1 5 3
2 9 6
3 6 3
yn.out:5
HELP ME
 

trà nguyễn hữu nghĩa

Cựu Mod Vật Lí |Cây bút Thơ|Thần tượng VH
Thành viên
14 Tháng năm 2017
3,974
7,623
744
22
Phú Yên
Trường THPT Lương Văn Chánh
tìm phần tử "Yên Ngựa" trong ma trận

Một phần tử được gọi là Yên Ngựa khi và chỉ khi nó lớn nhất trên dòng và nhỏ nhất trên cột

Dữ liệu vào:m,n
các phần tử trong mảng
Dữ liệu ra :chứa các pt yên ngựa, nếu ko có thì ghi *
VD:
yn.inp: 3 3
1 5 3
2 9 6
3 6 3
yn.out:5
HELP ME
cái này chỉ việc tìm kiếm xem trong hàng có số nào lớn hơn nó và trong cột có số nào nhỏ hơn nó hay không rồi khẳng định thôi e
đây là code của a e xem thử rồi viết lại nha
Mã:
uses crt;
 var x,y,hang,cot: integer;
     a: array[1..50,1..50] of integer;

 function YenNgua(x,y: integer): Boolean;
 var k: integer;
 Begin
        for k := 1 to cot do
        if a[k,y] > a[x,y] then exit(false);
        for k := 1 to hang do
        if a[x,k] < a[x,y] then exit(false);
        exit(True);
 End;

 BEGIN
        clrscr;
        hang := 2;
        cot := 3;
        for y := 1 to hang do
        begin
                writeln('nhap hang ',y,': ');
                for x := 1 to cot do readln(a[x,y]);
        end;

        for x := 1 to cot do
                for y := 1 to hang do
                if YenNgua(x,y) then writeln(x,',',y);
        readln;
 END.
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
241
19
Quảng Trị
Trường TH&THCS Hải Ba

cái này chỉ việc tìm kiếm xem trong hàng có số nào lớn hơn nó và trong cột có số nào nhỏ hơn nó hay không rồi khẳng định thôi e
đây là code của a e xem thử rồi viết lại nha
Mã:
uses crt;
 var x,y,hang,cot: integer;
     a: array[1..50,1..50] of integer;

 function YenNgua(x,y: integer): Boolean;
 var k: integer;
 Begin
        for k := 1 to cot do
        if a[k,y] > a[x,y] then exit(false);
        for k := 1 to hang do
        if a[x,k] < a[x,y] then exit(false);
        exit(True);
 End;

 BEGIN
        clrscr;
        hang := 2;
        cot := 3;
        for y := 1 to hang do
        begin
                writeln('nhap hang ',y,': ');
                for x := 1 to cot do readln(a[x,y]);
        end;

        for x := 1 to cot do
                for y := 1 to hang do
                if YenNgua(x,y) then writeln(x,',',y);
        readln;
 END.
CODE :


type
mang=aray[1..30,1..30]of integer;
var
a:mang;
i,j,m,n,d:integer;
fi,fo:text;
function minc(a:mang;n,j:integer):integer;
var i,t:integer;
begin
t:=a[1,j];
for i:=2 to n do if t>a[i,j]then t:=a[i,j];
minc:=t;
end;

function maxh(a:mang;n,i:integer):integer;
var j,t:integer;
begin
t:=a[i,1];
for j:=2 to n do if t<a[i,j]then t:=a[i,j];
maxh:=t;
end;
Begin
assign(fi,'yn.inp');reset(fi);
assign(fo,'yn.out');rewrite(fo);
For i:=1 to m do
for j:=1 to n do
read(fi,a[i,j]);
for i:=1 to m do
for j:=1 to n do
if minc(a,n,i)=maxh(a,n,j) then
Begin
write(fo,minc(a,n,i));
d:=d+1;
end;
if d=0 then write(fo,'*');
close(fi);close(fo);
end.
 
Top Bottom