Tải bản đầy đủ (.pdf) (29 trang)

Bài giảng tin học đại cương chương 4 lê thị ngọc thảo

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 (674.75 KB, 29 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>CHƯƠNG 4: </b>

<b>CHƯƠNG TRÌNH & GIẢI THUẬT</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>Các khái niệm (1)</b>

<small>z</small>

Thuật tốn

Cách hiểu đơn giản

<small>Tập các hướng dẫn thực hiện một cơng việc.</small>

<small>Tập hữu hạn các hướng dẫn rõ ràng để người giải tốn có thể theo đó mà giải quyết được vấn đề.</small>

<small>Một phương pháp thể hiện lời giải của vấn đề.</small>

Algorithm: nhà tốn học Trung Á

<b><small>Muhammad Bin Musa Al-Khwarizmi</small></b>

<b><small> class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>Các khái niệm (2)</b>

<small>z</small>

Thuật tốn (tt)

Trong khoa học máy tính

<i><b><small>Một dãy hữu hạn các bước rõ ràng và thực thi được.</small></b></i>

<i><b><small>Q trình hành động theo các bước này phải dừng và </small></b></i>

<i><b><small>cho được kết quả như mong muốn.</small></b></i>

Tính xác định

<b><small>Hướng dẫn giải rõ ràng và đúng </small></b>

Tính hữu hạn

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<small>1.Lập danh sách các mơn học theo tên, số đvht</small>

<small>2.Sắp thứ tự các mơn học giảm dần theo số đvht</small>

<small>3.Chọn ra một mơn học có nhiều đvht nhất</small>

Câu hỏi???

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>Các khái niệm (5)</b>

<small>z</small>

Tính mập mờ (tt):

<i>Phân biệt mập mờ và chọn lựa có quyết định. </i>

<i><b><small>Mập mờ là thiếu thơng tin hoặc có nhiều chọn lựa nhưng khơng đủ điều kiện để quyết định. </small></b></i>

<i><b><small>Chọn lựa có quyết định là hoàn toàn xác định duy nhất</small></b></i>

<small>trong điều kiện cụ thể của vấn đề</small>

Sửa lại:

<small>3.Chọn ra một mơn học có nhiều đvht nhất. </small>

<small>3.1 Nếu chỉ có một mơn học nhiều đvht nhất: chọn một</small>

<small>3.2 Nếu có nhiều mơn học cùng số đvht: sắp xếp tăng dần theo tên môn học trong thứ tự từ điển rối chọn môn đầu tiên.</small>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>Các khái niệm (6)</b>

<small>z</small>

Tính thực thi được:

Hiển nhiên

Chỉ xét trong điều kiện hiện tại của bài tốn

Cho ví dụ về điều kiện hiện tại:???

<small>z</small>

Tính dừng:

Khơng dừng: Lặp vơ tận, bị quẫn

Dễ vi phạm nhất

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>Các khái niệm (7)</b>

<small>z</small>

Tính dừng -Ví dụ:

Tính tổng các số ngun dương lẻ trong khoảng từ 1 đến n ta có thuật tốn sau :

<small>B1. Hỏi giá trị của n. </small>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>Các khái niệm (8)</b>

<small>z</small>

Tính dừng -Ví dụ:

Chỉ dừng khi n chẵn

Khi n lẻ phải thay B4 bằng:

<small>B4. Nếu i >= n+1 thì sang bước B8, ngược lại sang bước B5</small>

<small>z</small>

Tính đúng:

Chứng minh thuật tốn đúng!!!

Khó đạt được nhất

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>Các khái niệm (10)</b>

<small>z</small>

Các đặc trưng khác của thuật tốn

Ðầu vào và đầu ra (input/output) .

Tính hiệu quả (effectiveness): theo tiêu chuẩn

<small>Khối lượng tính tốn, khơng gian và thời gian thi hành. </small>

<small>Là yếu tố quyết định để đánh giá, chọn lựa</small>

<small>Nhiều phương pháp để đánh giá tính hiệu quả của thuật tốn. </small>

Tính tổng qt (generalliness) :

<small>Áp dụng được cho mọi trường hợp của bài tốn </small>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>Các khái niệm - Ví dụ (2)</b>

<small>3. Trường hợp a khác 0 thì</small>

<small>3.1. Tính giá trị D = b2-4ac</small>

<small>3.2. Nếu D > 0 thì</small>

<small>3.2.1. Phương trình có hai nghiệm phân biệt x1,x2</small>

<small>3.2.2. Giá trị của hai nghiệm được tính theo cơng thức </small>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>Các khái niệm - Ví dụ (4)</b>

<small>z</small>

Bài toán : Cho hai số nguyên dương a và b. Tìm ước số chung lớn nhất của a và b.

<small>z</small>

<b>Thuật tốn Euclid</b>

1. u cầu cho biết giá trị của a, b.

2. a0 = a

3. b0 = b

4. i = 0

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>Các khái niệm - Ví dụ (5)</b>

5. Nếu ai khác bi thì thực hiện các thao tác sau, ngược lại qua bước 7.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>Các phương pháp biểu diễn</b>

<small>z</small>

Thuật tốn:

Một phương pháp thể hiện lời giải bài tốn

Phải tn theo một số quy tắc nhất định

<small>z</small>

Có 3 phương pháp biểu diễn thuật tốn :

<b>Dùng ngơn ngữ tự nhiên. </b>

<b>Dùng lưu đồ-sơ đồ khối (flowchart).</b>

<b>Dùng mã giả (pseudocode).</b>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>Ngôn ngữ tự nhiên </b>

<small>z</small>

Ngơn ngữ thường ngày:

Liệt kê các bước của thuật tốn, q trình thực hiện lần lượt (trừ khi có u cầu nhảy_

Khơng thể hiện rõ cấu trúc của thuật tốn

Dài dịng, có thể gây hiểu lầm hoặc khó hiểu

<i><b>Khơng u cầu người viết hay đọc nắm quy tắc. </b></i>

<small>Khơng có một quy tắc cố định </small>

Tính dễ đọc:

<small>viết các bước con lùi vào bên phải </small>

<small>đánh số bước theo quy tắc phân cấp như 1, 1.1, ... </small>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>Lưu đồ - sơ đồ khối (1)</b>

<small>z</small>

Cơng cụ trực quan diễn đạt thuật tốn.

Biểu diễn bằng mơ hình – hình vẽ

<small>z</small>

Theo dõi được:

sự phân cấp các trường hợp

q trình xử lý của thuật toán

<small>z</small>

Được dùng trong những thuật tốn

rắc rối

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>Lưu đồ - sơ đồ khối (2)</b>

<small>z</small>

Phân biệt hai loại thao tác:

<i><b>Chọn lựa theo một điều kiện nào đó</b></i>

<i><b>Xử lý, hành động</b></i>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>Lưu đồ - sơ đồ khối (3)</b>

<small>z</small>

<i><b>Chọn lựa theo một điều kiện nào đó</b></i>

<b>Decision</b>

Biểu diễn bằng một hình thoi, bên trong chứa biểu thức điều kiện.

<i>Ví dụ: thao tác "nếu a = b thì thực hiện thao </i>

<i>tác B2, ngược lại thực hiện B4" là thao tác </i>

chọn lựa

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>Lưu đồ - sơ đồ khối (4)</b>

<small>z</small>

<i><b>Xử lý, hành động. </b></i>

<b>Process </b>

Biểu diễn bằng một hình chữ nhật, bên trong chứa nội dung xử lý.

<i>Ví dụ: "Chọn một mơn học và in ra." là một </i>

thao tác thuộc loại hành động.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>Lưu đồ - sơ đồ khối (5)</b>

<small>z</small>

Q trình thực hiện các thao tác:

<b>Đường đi – route </b>

Biểu diễn bằng cung có hướng

<small>nối giữa 2 thao tác: thực hiện lần lượt</small>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>Lưu đồ - sơ đồ khối (6)</b>

<small>z</small>

Thao tác chọn lựa: có thể có hai hướng đi

một hướng ứng với điều kiện thỏa

một hướng ứng với điều kiện khơng thỏa.

2 cung có nhãn

<small>Đ/Đúng,Y/Yes </small>

<small>S/Sai,N/No</small>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>Lưu đồ - sơ đồ khối (7)</b>

<small>z</small>

Ðiểm cuối (terminator)

Biểu diễn bằng hình ovan

Điểm khởi đầu

<small>chỉ có cung đi ra</small>

<small>bên trong ovan ghi chữ: bắt đầu/start/begin</small>

Điểm kết thúc

<small>Chỉ có cung đi vào</small>

<small>bên trong ovan ghi chữ: kết thúc/end</small>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<small>Phương trình thuật toán giải pt bậc 2. Đường chấm ứng với trường hợp nghiệm kép, ví dụ: a=1,b=2,c=1</small>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<b>Lưu đồ - sơ đồ khối (8)</b>

<small>z</small>

Điểm nối (connector)

Nối các phần khác nhau của

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<b>Mã giả (pseudo code) (1)</b>

<small>z</small> <i><b>Vay mượn các cú pháp của một ngơn ngữ lập </b></i>

trình

<small>dùng một phần ngơn ngữ tự nhiên</small>

<small>bị phụ thuộc vào ngơn ngữ lập trình.</small>

<small>z</small> Mọi ngơn ngữ lập trình đều có những thao tác

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<b>Mã giả (2)</b>

<i><b><small>Một đoạn mã giả của thuật toán giải pt bậc hai</small></b></i>

<b><small>if Delta > 0 then begin</small></b>

</div>

×