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

Thông tin cơ bản

Tiêu đề Bài tập lớn cấu trúc dữ liệu và giải thuật
Tác giả Vũ Đức Thắng
Trường học Trường Đại Học Sư Phạm Kỹ Thuật TP. HCM
Chuyên ngành Cấu Trúc Dữ Liệu Và Giải Thuật
Thể loại Bài tập lớn
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 28
Dung lượng 4,29 MB

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