- Phứộng th c tr vếầ true nếếu mang là ma tr n đôếi x ng, ngươứảậứượ ạc l i tr vếầ ảfalse.Mã giả: Vòng lập i Vòng lập jNếu mang[i,j] != mang[j,i]Chỉ cần 1 giá trị của mảng không đúng mản
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM
Trang 2Bài 1: Viếết phương th c mang.DoiXung( ) nh sau: - mang là m t ma tr n vuông, môỗi phầần t ứưộậửch a m t sôế nguyến - Phứộng th c tr vếầ true nếếu mang là ma tr n đôếi x ng, ngươứảậứượ ạc l i tr vếầ ảfalse.
Mã giả: Vòng lập i Vòng lập j
Nếu mang[i,j] != mang[j,i]
Chỉ cần 1 giá trị của mảng không đúng mảng không đối xứng Ngược lại là đối xứng
Kết quả:
Trang 3Mảng là [ 3 2 3 1 2 3 4 3
2 3 1 2 3 2 3 4]
Kết quả là không đối xứng vậy kết quả thuật toán là đúng.
Bài 2: Viếết phương th c mang.TamGiacTren( ) nh sau: - mang là m t ma tr n vuông, môỗi ứưộậphầần t ch a m t sôế nguyến - Phửứộương th c tr vếầ true nếếu mang là ma tr n tam giác trến, ngứảậượcl i tr vếầ false.ạả
Mã giả: Vòng lập i Vòng lập j
Nếui > j && mang[i,j] != 0
Chỉ cần 1 giá trị của mảng không đúng mảng không phải là ma trận tam giác trên
Ngược lại là là ma trận tam giác trên Code:
Trang 4Kết quả:
Trang 5Bài 3: Viếết phương th c mang.TrungHang( ) nh sau: - mang là m t ma tr n vuông, môỗi phầần ứưộật ch a m t sôế nguyến - Phửứộng th c tr vếầ true nếếu mang có ít nhầết hai hàng giôếng nhau, ươứả Chạy vòng lập k để lập qua từng giá trị
Nếu mang[I,k] != mang[j , k]
Thì hàng đó không trùng và tiếp với j+1
Trang 6Kết quả:
Mảng = [2 3 2 3 1 2 1 2
Trang 72 3 2 3 4 4 3 4]
Ta thấy hàng 1 và hàng 3 trùng nhau nên đáp án là có ít nhất 2 hàng trùng nhau nên thuật toán đúng.
Bài 4: Viếết phương th c mang.NhomHang( ) nh sau: - mang là m t ma tr n vuông, môỗi phầần ứưộật ch a m t sôế nguyến - Phửứộương th c in ra nhóm ch m c hàng c a các hàng giôếng nhau, môỗi ứỉụủnhóm đc bắết đầầu in đầầu hàng màn hình.ượở
So sánh hàng này lần lượt với các hàng khác Nếu mang[i,k] != mang[j,k]
Thì không trùng hàng Ngược lại thì trùng hàng Code:
Trang 8Kết quả:
Trang 9Mảng [2 2 2 2 1 2 1 2 2 2 2 2 1 2 1 2]
Hàng 1 3 trùng nhau và hàng 2 4 trùng nhau nên kết quả đúng
Bài 5: Viếết phương th c a.Cong(b) nh sau: - a và b là các sôế nguyến không dầếu đứưược ch a ứtrong m ng m t chiếầu, môỗi phầần t ch a m t ký sôế - Phảộửứộng th c tr vếầ m t sôế nguyến là kếết ươứảộqu c a a + b nếếu kếết qu không b tràn ho c tr vếầ m ng gôầm các sôế -1 nếếu kếết qu b tràn.ả ủảịặảảả ị
Trang 10Bài 6: Viếết phương th c a.Tru(b) nh sau: ứư
- a và b là các sôế nguyến không dầếu đc ch a trong m ng m t chiếầu, môỗi phầần t ch a m t ký sôếượứảộửứộvà a ≥ b
- Phng th c tr vếầ m t sôế nguyến là kếết qu c a a - b.ươứảộả ủ
Mã giả:
Trang 13Ngược lại là là ma trận tam giác dưới.
Trang 14Kết quả không là ma trận tam giác dưới nên kết quả đúng.
Bai 9: Viếết phương th c mang.TrungCot( ) nh sau: ứư- mang là m t ma tr n vuông, môỗi phầần t ch a m t sôế nguyến ộậửứộ
- Phng th c tr vếầ true nếếu mang có ít nhầết hai c t giôếng nhau, ngươứảộượ ạc l i tr vếầ falseả
So sánh cột này lần lượt với các cột khác Nếu mang[k,i] != mang[j,j]
Thì không trùng cột Ngược lại thì trùng cột
Code:
Trang 15Kết quả:
Trang 16Bài 10: Viếết phương th c mang.NhomCot( ) nh sau: - mang là m t ma tr n vuông, môỗi phầần ứưộật ch a m t sôế nguyến - Phửứộương th c in ra nhóm ch m c c t c a các c t giôếng nhau, môỗi nhóm ứỉụộủộđc bắết đầầu in đầầu hàng màn hình.ượở
Mã giả:
Trang 17Đặt một biến Boolean để xét cột đó đã xét chưa
Trang 18Và kết quả đưa ra của thuật toán là đúng.
Bài 11: Viếết phương th c a.Cong(b) nh sau: - a và b là các sôế nguyến (ầm, 0 ho c dứưặương) baogôầm hai phầần: phầần dầếu được ch a trong m t sôế nguyến (0 bi u diếỗn sôế dứộểương và 1 bi u diếỗn cho ểsôế ầm) và phầần sôế đc ch a trong m ng m t chiếầu (môỗi phầần t ch a m t ký sôế) - Phượứảộửứộương th cứtr vếầ m t sôế nguyến là kếết qu c a a + b nếếu kếết qu không b tràn ho c tr vếầ m ng gôầm các sôế -1ảộả ủảịặảả
Trang 19Thì trả về d = mang[1] nếu là 0 ngược lại là d = -mang[1] Tương tự với c đối với mảng 2
Trang 20Ta có 2 mảng a = [0 , 3] Mảng b = [ 0, 5 ]
Do số đầu của 2 mảng là 0 nên ta được kết quả là 3 +5 = 8 Kết quả này nhỏ hơn 10 nên in ra 8
Ngược lại nếu lớn hơn 10 thì:
Trả về mảng -1 -1
Bài 12: Viếết phương th c a.Tru(b) nh sau: - a và b là các sốế nguyến (âm, 0 ho c dứ ư ặ ươ ng) bao gốồm hai phâồn: phâồn dâếu đ c ch a trong m t sốế nguyến (0 bi u diếễn sốế dượ ứ ộ ể ương và 1 bi u diếễn cho sốếể âm) và phâồn sốế đ c ch a trong m ng m t chiếồu (mốễi phâồn t ch a m t ký sốế) - Phượ ứ ả ộ ử ứ ộ ươ ng th c tr ứ ả vếồ m t sốế nguyến là kếết qu c a a – b nếếu kếết qu khống b tràn ho c tr vếồ m ng gốồm các sốế -1 nếếu ộ ả ủ ả ị ặ ả ả kếết qu b tràn.ả ị
Mã giả:
Cộng hai mảng.
Nếu phần tử đầu của mảng là 0 hoặc 1 (mang[0] = 0 || 1) Thì trả về d = mang[1] nếu là 0 ngược lại là d = -mang[1] Tương tự với c đối với mảng 2
Trang 21Kết quả:
Nếu a [0;3] b = [0; 3] kết quả là 0 đúng với thuật toán Nếu kết quả < 0 thì trả về mảng -1
Trang 22Bài 13: Viếết phương th c a.Nhan(b) nh sau: - a và b là các sôế nguyến (ầm, 0 ho c dứưặương) bao gôầm hai phầần: phầần dầếu được ch a trong m t sôế nguyến (0 bi u diếỗn sôế dứộểương và 1 bi u diếỗnểcho sôế ầm) và phầần sôế đc ch a trong m ng m t chiếầu (môỗi phầần t ch a m t ký sôế) - Phượứảộửứộương th c tr vếầ m t sôế nguyến là kếết qu c a a × b nếếu kếết qu không b tràn ho c tr vếầ m ng gôầm cácứảộả ủảịặảảsôế -1 nếếu kếết qu b tràn.ả ị
Mã giả:
Cộng hai mảng.
Nếu phần tử đầu của mảng là 0 hoặc 1 (mang[0] = 0 || 1) Thì trả về d = mang[1] nếu là 0 ngược lại là d = -mang[1] Tương tự với c đối với mảng 2
Trang 23Kết quả
Hai mảng a= [0;2] và b = [0;3]
Do số đầu của cả 2 mảng bằng 0 nên kết quả bằng 2*3 =6 Kết quả này nhỏ hơn < 10 nên in ra 6
Trang 24Ngược lại nếu lớn hơn 10:
Trả về mảng -1 -1
Bài 14: Viếết phương th c a.DayConDauTien(b) nh sau: - a, b là hai m ng m t chiếầu, môỗi ứưảộphầần t ch a m t sôế nguyến - Phửứộng th c tr vếầ m t m ng c ch a dãy con (bao gôầm các sôế liến ươứảộảứtếếp nhau trong m ng) c a lầần g p đầầu tến (đi t trái qua ph i) mà dãy con này đôầng th i có trongảủặừảờ
Trang 26Vì vậy kết quả trả về của thuật toán là đúng theo yêu cầu.
Bài 15: Viếết phương th c a.DayConDaiNhat(b) nh sau: - a, b là hai m ng m t chiếầu, môỗi ứưảộphầần t ch a m t sôế nguyến - Phửứộng th c tr vếầ m t m ng c ch a dãy con (bao gôầm các sôế liến ươứảộảứtếếp nhau trong m ng) c a lầần g p đầầu tến (đi t trái qua ph i) có chiếầu dài (sôế lảủặừảượng phầần t ) ửl n nhầết mà dãy con này đôầng th i có trong m ng a và m ng b - Ví d : m ng a ch a các sôế 1, 6, 2, ớờảảụảứ
Trang 27Bài 16: Viếết phương th c mang.Dao( ) nh sau: - mang là m t ma tr n vuông, môỗi phầần t ứưộậửch a m t sôế nguyến: sôế 0 bi u diếỗn ô nứộểc, sôế 1 bi u diếỗn ô đầết Đ o là m t vùng bao gôầm các ô ướểảộđầết kếầ c nh (không kếầ góc) - Phạng th c in ra di n tch l n nhầết (sôế ô đầết) c a các đ o có d ng ươứệớủảạhình ch nh t (k c hình vuông).ữậể ả
Mã giả:
Cho 2 vòng lập i và j để chọc vào giá trị của mảng
Thuật toán sẽ chọc vào từng giá trị theo row và col nếu row = 1 và col = 1 thì
Thì giá trị k ++
Nếu ô tiếp theo có row và col = 1 thì k++ Cho đến khi lọc qua hết mảng thì diện tích là k^2 Code:
Trang 28Kết quả:
Ứng với mảng: