Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.29 MB, 28 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>BỘ GIÁO DỤC VÀ ĐÀO TẠO</b>
<b>TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM</b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><b>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.</b>
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ả:
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="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>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.ạả</b>
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:
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">Kết quả:
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><b>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, ươứả</b> 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
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">Kết quả:
Mảng = [2 3 2 3 1 2 1 2
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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>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.ượở</b>
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:
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">Kết quả:
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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>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.ả ủảịặảảả ị</b>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><b>Bài 6: Viếết phương th c a.Tru(b) nh sau: ứư</b>
<b>- 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. </b>
<b>- Phng th c tr vếầ m t sôế nguyến là kếết qu c a a - b.ươứảộả ủ</b>
Mã giả:
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">Ngược lại là là ma trận tam giác dưới.
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">Kết quả không là ma trận tam giác dưới nên kết quả đúng.
<b>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. ộậửứộ</b>
<b>- 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ả</b>
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
<b>Code:</b>
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">Kết quả:
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16"><b>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.ượở</b>
Mã giả:
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">Đặt một biến Boolean để xét cột đó đã xét chưa
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">Và kết quả đưa ra của thuật toán là đúng.
<b>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ảộả ủảịặảả</b>
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="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
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="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>Bài 12:</b> 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
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">Kết quả:
Nếu a [0;3] b = [0; 3] kết quả là 0 đúng với thuật tốn. Nếu kết quả < 0 thì trả về mảng -1
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22"><b>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.ả ị</b>
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
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="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
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Ngược lại nếu lớn hơn 10:
Trả về mảng -1 -1
<b>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ảủặừảờ</b>
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">Vì vậy kết quả trả về của thuật toán là đúng theo yêu cầu.
<b>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, ớờảảụảứ</b>
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27"><b>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 vng).ữậể ả</b>
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:
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28"><b>Kết quả:</b>
Ứng với mảng:
</div>