Tỡm “phần tửỷ yẽn ngửùa” cuỷa maỷn g2 chiề u:

Một phần của tài liệu Giáo án bồi dưỡng học sinh giỏi tin học (Trang 58 - 61)

II. XUẤT NHẬP TRấN DỮ LIỆU KIỂU MẢNG

6.Tỡm “phần tửỷ yẽn ngửùa” cuỷa maỷn g2 chiề u:

Phần tửỷ A[i,j] ủửụùc gói laứ “yẽn ngửùa” cuỷa maỷng 2 chiều neỏu noự ủồng thụứi laứ phần tửỷ nhoỷ nhaỏt caỷ doứng i vaứ laứ phần tửỷ lụựn nhaỏt cuỷa coọt j, hoaởc A[i,j] phaỷi laứ phần tửỷ lụựn nhaỏt cuỷa doứng i vaứ laứ phần tửỷ nhoỷ nhaỏt cuỷa coọt j.

Caựch deĩ nhaỏt laứ ta khai baựo 4 maỷng 1 chiều ủeồ lửu trửừ MinDong{i], MaxDong{i], MinCot[j], MaxCot{j] rồi sau ủoự tỡm Yẽn baống thuaọt toaựn ủụn giaỷn sau.

For i:=1 To M Do

For j:=1 To N Do Begin

If (MinDong[i]=MaxCot[j]) Or

(MaxDong[i]=MinCot[j]) Then Begin Writeln('Yen ',A[i,j]); End;

End;

Nhử baứi giaỷi sau ủãy:

Program Tim_cac_phan_tu_yen_ngua_cua_mang_2_chieu; USES CRT; Const DIM=10; TYPE Mang2=Array[1..dim,1..dim] of Integer; VAR m,n,i,j,Max,Min:Integer; A:Mang2; MinCot,MaxCot,MinDong,MaxDong: Array[1..Dim] of Integer; {*****************************}

Procedure PHATSINH(VAR A:Mang2;m,n:Integer); Begin For i:=1 To M Do For j:=1 To n Do A[i,j]:=(Random(100)- Random(100)); End; {*****************************}

Procedure HIENTHI(VAR A:Mang2;m,n:Integer);

Begin

For i:=1 To M Do begin For j:=1 To n Do Write(A[i,j]:4); Writeln; End; End; {*****************************} BEGIN ClrScr; Randomize;

Write('So dong: ');Readln(m); Write('So cot: ');Readln(n); PHATSINH(A,m,n);

HIENTHI(A,m,n); {xac dinh Min cot}

For i:=1 To M Do Begin MinCot[i]:=A[1,i]; For j:=2 To N Do If A[j,i]<MinCot[i] Then MinCot[i]:=A[j,i]; End; For i:=1 To n Do

Writeln('Min cot ',i,' la ',MinCot[i]); {xac dinh Max cot}

For i:=1 To M Do Begin MaxCot[i]:=A[1,i]; For j:=2 To N Do If A[j,i]>MaxCot[i] Then MaxCot[i]:=A[j,i]; End; For i:=1 To n Do

Writeln(' Max cot ',i,' la ',MaxCot[i]); {xac dinh Min dong}

For i:=1 To N Do Begin MinDong[i]:=A[i,1]; For j:=2 To N Do If A[i,j]<MinDong[i] Then MinDong[i]:=A[i,j]; End; For i:=1 To n Do

Writeln('Min dong ',i,' la ',MinDong[i]); {xac dinh Min dong}

For i:=1 To N Do Begin

MaxDong[i]:=A[i,1]; For j:=2 To N Do If A[i,j]>MaxDong[i] Then MaxDong[i]:=A[i,j]; End; For i:=1 To n Do

Writeln(' Max dong ',i,' la ',MaxDong[i]); {Bat dau xac dinh}

For i:=1 To M Do

For j:=1 To N Do Begin

If (MinDong[i]=MaxCot[j]) Or

(MaxDong[i]=MinCot[j]) Then Begin Writeln('Yen ',A[i,j]); End;

End; READLN; END.

Bán haừy tửù nghiẽn cửựu caựch giaỷi baứi toaựn trẽn nhửng vụựi lụứi khai baựo ớt maỷng 1 chiều hụn (xem lái baứi toaựn soỏ 5)

IV. CŨNG CỐ: Nhận xột giờ thực hành V. HƯỚNG DẪN, DẶN Dề (adsbygoogle = window.adsbygoogle || []).push({});

1.Tỡm taỏt caực phần tửỷ A[i,j] > 0 naốm giửừa caực phần tửỷ <=0 trong moọt ma traọn vuõng A[n,n].

2.Tỡm caực phần tửỷ cuỷa 1 ma traọn vuõng laứ MIN hoaởc MAX cuỷa caực phần tửỷ naốm trẽn 2 ủửụứng cheựo.

**********************************************************

Ngày soạn:28/12/2008 Ngày dạy:31/12/2008

Tiết 55-56-57: MỘT SỐ THUẬT TỐN MẢNG HAI CHIỀU

1.Kiến thức: Học sinh nắm được một số thuật toỏn trờn mảng hai chiều 2.Kỹ năng:Cú kỹ năng phõn tớch bài toỏn, giải cỏc dạng toỏn trờn mảng hai

chiều

3.Thỏi độ: Học sinh tớch cực, tự giỏc, hứng thỳ trong giải toỏn bằng mảng

Một phần của tài liệu Giáo án bồi dưỡng học sinh giỏi tin học (Trang 58 - 61)