Vua Tên Miền chuyên cung cấp tên miền đẹp, giá rẻ! Hãy liên hệ kỹ thuật: 0914205579 - Kinh doanh: 0912191357 để được tư vấn, hướng dẫn miễn phí, Cảm ơn quý khách đã ủng hộ trong thời gian qua!
kinh doanh, bán hàng, tư vấn, bảo hiểm Những cá nhân, tổ chức, đại lý,muốn bán, hợp đồng bảo hiểm
Wednesday, January 16, 2019




BÀI TP 2
Tìm phn t nh nht, ln nht ca mt mng (cn ch ra c v trí ca phn t).
HƯỚNG DN
Gi s phn t min cn tìm là phn t k. Ban đầu ta cho k=1. Sau đó cho i chy t 2 đến n, nếu a[k] > a[i] thì rõ ràng a[i] bé hơn, ta gán k bng i. Sau khi duyt toàn b dãy thì k s là ch s ca phn t min. (Cách tìm min này đơn gin vì t v trí ta cũng suy ra được giá tr).
pro­ce­dure tim­min;
var i, k : in­te­ger;
be­gin
            k := 1;
            for i := 2 to n do
                        if a[k] > a[i] then k := i;
            writeln('Phan tu nho nhat la a[',k,']=',a[k]);
end;
Tìm max cũng tương t, ch thay du so sánh.
pro­ce­dure tim­max;
var i, k : in­te­ger;
be­gin
            k := 1;
            for i := 2 to n do
                        if a[k] < a[i] then k := i;
            writeln('Phan tu lon nhat la a[',k,']=',a[k]);
end;
Chú ý:
1. Nếu áp dng vi mng 2 chiu thì cũng tương t, ch khác là để duyt qua mi phn t ca mng 2 chiu thì ta phi dùng 2 vòng for. Và v trí mt phn t cũng gm c dòng và ct.
Ví d 1. Tìm phn t nh nht và ln nht ca mng 2 chiu và đổi ch chúng cho nhau:
pro­ce­dure ex­change;
var i,j,i1,j1,i2,j2,tg : in­te­ger;
be­gin
            i1 := 1; j1 := 1; {i1,j1 là v trí phn t min}
            i2 := 1; j2 := 1; {i2,j2 là v trí phn t max}
            for i := 1 to m do
                        for j := 1 to n do be­gin
                                    if a[i1,j1] > a[i,j] then be­gin {so sánh tìm min}
                                                i1 := i; j1 := j;     {ghi nhn v trí min mi}
                                    end;
                                    if a[i2,j2] < a[i,j] then be­gin {so sánh tìm max}
                                                i2 := i; j2 := j; {ghi nhn v trí max mi}
                                    end;
                        end;
            tg := a[i1,j1]; a[i1,j1] := a[i2,j2]; a[i2,j2] := tg; {đổi ch}
end;
2. Nếu cn tìm phn t ln nht / nh nht hoc sp xếp 1 dòng (1 ct) ca mng 2 chiu thì ta cũng coi dòng (ct) đó như 1 mng 1 chiu. Chng hn tt c các phn t trên dòng k đều có dng ch s là a[k,i] vi i chy t 1 đến n (n là s ct).
Ví d 2. Tìm phn t ln nht ca dòng k và đổi ch nó v phn t đầu dòng.
pro­ce­dure tim­max(k : in­te­ger);
var i, vt, tg : in­te­ger;
be­gin
            vt := 1; {vt là v trí ca phn t min dòng k}
            for i := 1 to n do
                        if a[k,i] > a[k,vt] then vt := i; {các phn t dòng k có dng a[k,i]}
            tg := a[k,1]; a[k,1] := a[k,vt]; a[k,vt] := tg;
end;
Ví d 3. Sp xếp gim dn ct th k.
pro­ce­dure sapx­ep(k: in­te­ger);
var i,j,tg : in­te­ger;
be­gin
            for i := 1 to m-1 do {mi ct có m phn t, vì bng có m dòng}
                        for j := i+1 to m do
                                    if a[i,k] > a[j,k] then be­gin {các phn t ct k có dng a[i,k]}
                                                tg := a[i,k]; a[i,k] := a[j,k]; a[j,k] := tg;
                                    end;
end;

0 comments:

Post a Comment

domain, domain name, premium domain name for sales

Popular Posts