Sặc.
Đào mộ kinh quá
Sặc.
Đào mộ kinh quá
=))
nghề of tui mà =))
Xin hỏi nếu như ma trận của bạn trên một hàng có 2 vị trí đều MAX nhưng chỉ có một vị trí thõa mãn là Min trên cột thì các bạn nghĩ sao. Thuật toán tìm MIN hoặc MAX mình thấy có vấn đề khi áp dụng cho dạng bài này
ai có lời giải vs mảng lấy từ một tệp cho trước và kết quả ghi vào tệp khác
"Tin học cho không biếu không": Mình "cống cho" bạn code "Phi cấu trúc để bạn thấm nhuần câu châm ngon của người Ý: mọi con đường đều dấn tới thành Rom" hay thấm nhuần câu nói nổi tiếng về tính hiệu quả của công cụ của chính khách nổi tiếng Trung quốc: "mèo trắng mèo đen đều được hết miễn là bắt được chuột"
Program Yen_ngua;
Uses crt;
const mm=4; nn=4;
Label L1,L2;
Var m,n,i,j,io,min,max:integer;tl:char;
a:array[1..mm,1..nn] of integer;
Begin Clrscr;
Repeat
(* Doan ct nhap du lieu *)
Write('m,n=');readln(m,n);
for i:=1 to m Do
for j:=1 to n Do
Begin
Write('A[',i,',',j,']=');readln(a[i,j]);
End; (* ket thuc nhap lieu *)
{ Doan ct in ra mang vua nhap}
for i:=1 to m Do
Begin
for j:=1 to n Do
Write(A[i,j]:3);Writeln;
End; { Het hien thi mang }
{Doan Ct tim diem Yen ngua}
For i:=1 to m do
Begin
For j:=1 to n Do
Begin
If (i>1) and (a[i,j]<=max) then
Goto L1;
If (j=1) or (a[i,j]<min) then
min:=a[i,j];
end;
max:=min;
io:=i;
L1:;
End;
For j:=1 to n do
Begin
for i:=1 to m Do
if a[i,j]>max then goto L2;
Write('Chi so hang va cot co diem Yen ngua: ');
Writeln(io:3,j:3);
Write('Va gia tri cua diem Yen ngua la=');
Writeln(max:3); Readln;
Exit;
L2:;
End;
Writeln('Khong co diem Yen ngua !');
Write('MORE (Y/N)?');readln(tl);
Until (tl='n') or (tl='N');
End.
//Bọ data vào để bạn test:
1 3 5 9
5 4 5 6
7 1 6 2
Như vậy bằng mắt, không dùng program và máy tính bạn và tôi cũng tìm nhanh được điểm yên ngựa của ma trận này là phần tử a[2,2] với trị của nó là 4. (bạn lưu ý: khi nhập liệu bạn phải nhớ và hiểu rõ (đừng "chập mạch") đâu là trị số của a[1,1], đâu là trị số của a[1,2]... đâu là trị số của a[2,1], a[2,2], a[2,3]....
Nhắc lại định ngĩa chính xác (nó có hình ảnh vật lý rất phù hợp) điểm yên ngựa: điểm yên ngựa thuộc ma trận 2_chiều là điểm "có trị nhỏ nhất trên hàng và trị lớn nhất trên cột" và minh cho lại bạn code phi cấu trúc sau (lập trình phi thủ tục, phi hàm). Câu nói nổi tiếng của chính khách Đặng Tiểu Bình về tính hiệu quả của công cụ:"Mèo trắng, mèo đen đều được hết, miễn là giết được chuột". Còn người Ý thì có câu châm ngôn văn hoa hơn: "Mọi con đường đều dẫn tới thành Rom".
1-Bộ Data vào để bạn test:
1 3 5 9
5 4 5 6
7 1 6 2
Bằng mắt (không dùng program +Pc) tôi và bạn đã thấy ngay điểm yên ngựa của ma trận này là a[2,2] với trị là 4.
2-Code:
Program Yen_ngua;
Uses crt;
const mm=4; nn=4;
Label L1,L2;
Var m,n,i,j,io,min,max:integer;tl:char;
a:array[1..mm,1..nn] of integer;
Begin Clrscr;
Repeat
(* Doan ct nhap du lieu *)
Write('m,n=');readln(m,n);
for i:=1 to m Do
for j:=1 to n Do
Begin
Write('A[',i,',',j,']=');readln(a[i,j]);
End; (* ket thuc nhap lieu *)
{ Doan ct in ra mang vua nhap}
for i:=1 to m Do
Begin
for j:=1 to n Do
Write(A[i,j]:3);Writeln;
End; { Het hien thi mang }
{Doan Ct tim diem Yen ngua}
For i:=1 to m do
Begin
For j:=1 to n Do
Begin
If (i>1) and (a[i,j]<=max) then
Goto L1;
If (j=1) or (a[i,j]<min) then
min:=a[i,j];
end;
max:=min;
io:=i;
L1:;
End;
For j:=1 to n do
Begin
for i:=1 to m Do
if a[i,j]>max then goto L2;
Write('Chi so hang va cot co diem Yen ngua: ');
Writeln(io:3,j:3);
Write('Va gia tri cua diem Yen ngua la=');
Writeln(max:3); Readln;
Exit;
L2:;
End;
Writeln('Khong co diem Yen ngua !');
Write('MORE (Y/N)?');readln(tl);
Until (tl='n') or (tl='N');
End.
avatablack: giỏi quá!
Dễ thấy cũng có nhièu ma trận không tồn tại điểm yên ngựa. Ví dụ đơn giản và cực đoan nhất là bạn nhập một ma trận toàn những số như nhau. Hiển nhiên ma trận ấy không có điểm yên ngựa!!!!!
mấy bạn học nhanh wa đi. giai zùm minh bai nay di:
cho day A gồm N số nguyên, mỗi số co trị tuyệt đối không vượt wá 500. tìm số lớn nhì của dãy.
Bookmarks