1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn cấu trúc dữ liệu và giải thuật

28 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

- 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 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM

Trang 2

Bà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 3

Mả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 4

Kết quả:

Trang 5

Bà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 6

Kết quả:

Mảng = [2 3 2 3 1 2 1 2

Trang 7

2 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 8

Kết quả:

Trang 9

Mả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 10

Bà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 13

Ngược lại là là ma trận tam giác dưới.

Trang 14

Kế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 15

Kết quả:

Trang 16

Bà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 18

Và 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 19

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 20

Ta 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 21

Kế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 22

Bà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 23

Kế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 24

Ngượ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 26

Vì 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 27

Bà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 28

Kết quả:

Ứng với mảng:

Ngày đăng: 16/04/2024, 16:29

TỪ KHÓA LIÊN QUAN

w