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

TIN HỌC ĐẠI CƯƠNG - CHƯƠNG 3: THUẬT TOÁN

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 (1.09 MB, 46 trang )

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

TIN HỌC ĐẠI CƯƠNG

<small>Chương 3: THUẬT TỐN</small>

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

Nội dung

<small>1.</small>

Khái niệm thuật tốn

<small>2.</small>

Tính chất của thuật tốn

<small>3.</small>

Các cách biểu diễn thuật toán

<small>4.</small>

Cấu trúc cơ bản của thuật toán

<small>5.</small>

Một số thuật toán cơ bản

<small>6.</small>

Bài tập

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

Nội dung

<b><small>1.</small></b>

<b>Khái niệm thuật tốn</b>

<small>2.</small>

Tính chất của thuật tốn

<small>3.</small>

Các cách biểu diễn thuật toán

<small>4.</small>

Cấu trúc cơ bản của thuật toán

<small>5.</small>

Một số thuật toán cơ bản

<small>6.</small>

Bài tập

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

1. Khái niệm thuật toán

<b>Thuật toán là một tập hữu hạn các bước, các phép toán cơ bản</b>

được sắp xếp theo một trình tự nhất định để từ thơng tin đầu vào của bài tốn sau một tập hữu hạn các bước đó sẽ đạt được kết quả ở đầu ra như mong muốn.

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

1. Khái niệm thuật tốn

Thơng thường, thuật tốn dùng để giải một lớp các bài toán cụ thế. Gồm 2 thành phần chính:

<small>•</small> Input : Thơng tin bài tốn đã cho

<small>•</small> Output : Thơng tin cần tìm hoặc trả lời câu hỏi cần thiết

Ví dụ:

S = a *b

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

1. Khái niệm thuật tốn

<i><b>Ví dụ : Giải phương trình bậc nhất P(x): ax + b = 0, (a, b là các số</b></i>

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

1. Khái niệm thuật tốn

Ví dụ 2 : Kiểm tra một số nguyên X có chia hết cho 5 khơng ?

<small>•</small> Input : X

<small>•</small> <i>Output : Kết quả kiểm tra Result</i>

<small>o</small> Mơ tả thuật tốn:

<small>o</small> Bước 1: Tìm số dư r của phép chia x cho 5 <small>o</small> Bước 2: Kiểm tra

<small></small> <i><b><small>Nếu r = 0 thì result = True</small></b></i>

<small></small> <i><b><small>Nếu r <> 0 thì result = False</small></b></i>

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

Nội dung

<small>1.</small>

Khái niệm thuật tốn

<b><small>2.</small></b>

<b>Tính chất của thuật toán</b>

<small>3.</small>

Các cách biểu diễn thuật toán

<small>4.</small>

Cấu trúc cơ bản của thuật toán

<small>5.</small>

Một số thuật tốn cơ bản

<small>6.</small>

Bài tập

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

2. Tính chất của thuật tốn

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

2. Tính chất của thuật tốn

<small>■</small> Tính dừng : Thuật tốn phải bao đảm được kết thúc sau một số hữu hạn bước.

<small>■</small> Tính dừng là tính dễ bị vi phạm, thường là do sai sót khi trình bày

<i><b>thuật tốn dẫn đến “Lặp vơ tận”.</b></i>

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

2. Tính chất của thuật tốn

 <i><b>Thuật tốn phải có tính xác định: các bước trong thuật toán phải</b></i>

được xác định rõ ràng, có thể thực thi được, khơng gây mập mờ, nhập nhằng, tùy chọn.

 <i><b>Thuật tốn phải có Tính đúng đắn: để đảm bảo kết quả tính tốn</b></i>

hay các thao tác mà máy tính thực hiện được là chính xác.

<i> Trongmột kỳ thi kiểm tra không phải tất cả các học sinh điều đưara<b>được lời giải “đúng”.</b></i>

<i> Khithiết kế thuật toán cần kiểm nghiệm và chỉnh sửa nhiều lần để</i>

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

2. Tính chất của thuật tốn

<small>o</small> <i><b>Ðầu vào và đầu ra (input/output): Mọi thuật tốn đều có đại</b></i>

lượng vào và ra.

<small>o</small> <i><b>Tínhhiệu quả: Một bài tốn có thể có nhiều thuật tốn khác nhau</b></i>

để giải, một thuật tốn tốt thì nó phải hiệu quả, tính hiệu quả của thuật toán được đánh giá dựa trên một số tiêu chuẩn như khối lượng tính tốn, khơng gian và thời gian khi thuật tốn được thi hành.

<small>o</small> <i><b>Tínhtổng qt: Thuật tốn có tính tổng qt là thuật tốn phải áp</b></i>

dụng được cho mọi trường hợp của bài toán chứ không phải chỉ áp dụng được cho một số trường hợp riêng lẻ nào đó.

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

Nội dung

<small>1.</small>

Khái niệm thuật tốn

<small>2.</small>

Tính chất của thuật tốn

<b><small>3.</small></b>

<b>Các cách biểu diễn thuật toán</b>

<small>4.</small>

Cấu trúc cơ bản của thuật toán

<small>5.</small>

Một số thuật toán cơ bản

<small>6.</small>

Bài tập

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

3. Các cách biểu diễn của thuật toán

Sơ đồ khối Liệt kê

Mã giả

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

3. Các cách biểu diễn của thuật toán

<b>Phương pháp liệt kê</b>

<small>oTại mỗi bước sử dụng ngôn ngữ tự nhiên để diễn tả công việc phảilàm.</small>

<small>oCác bước được đánh số thứ tự, bước có số thứ tự nhỏ hơn được thực hiện trước.</small>

<small>o</small> <i><b><small>Ưu điểm: Dễ hiểu, dễ thực hiện.</small></b></i>

<small>o</small> <i><b><small>Khuyết điểm: Phụ thuộc cách trình bày của người thiết kế, khó áp dụng</small></b></i>

<small>chonhững thuật tốn có tính phức tạp.</small>

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

3. Các cách biểu diễn của thuật tốn

Ví dụ : Giải phương trình bậc nhất P(x): ax +b = 0:

<small>■ Input: a,b</small>

<small>■ Output: Kết quả giải phương trình.</small>

<i><b><small>■ Bước 1: Nhập vào 2 số thực a, b</small></b></i>

<i><b><small>■ Bước 2: Kiểm tra nếu a = 0 thực hiện:</small></b></i>

<i><b><small>■ Bước 2.1: Nếu b = 0 thì phương trình vơ số nghiệm■ Bước 2.2: Nếu b <> 0 thì phương trình vơ nghiệm■ Bước 3: Khi a <> 0 phương trình có nghiệm x=-b/a</small></b></i>

<i><b><small>■ Bước 4: Kết thúc thuật toán</small></b></i>

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

3. Các cách biểu diễn của thuật toán

<b>Phương pháp sơ đồ khối</b>

<small>oSử dụng các hình khối để biểu diễn các lệnh hay thao tác.</small>

<small>oSử dụng mũi tên để biểu diễn thứ tự thực hiện.</small>

<small>o</small> <i><b><small>Ưu điểm: Diễn đạt khoa học, có tính nhất qn, dễ hiểu và dễ kiểm tra.</small></b></i>

<small>o</small> <i><b><small>Khuyết điểm: Phải vẽ nhiều hình, cồng kềnh, khơng phù hợp với các </small></b></i>

<small>thuật toán phức tạp.</small>

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

3. Các cách biểu diễn của thuật toán

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

3. Các cách biểu diễn của thuật toán

<small>Câulệnh rẽ nhánh</small>

<small>-Nếu đúng thì thực hiện nhánh Đ-Nếu sai thì thực hiện nhánh S</small>

<small>Biểu diễn thực hiện công việc A</small>

<small>Biểu diễn việc gọi chương trình con A</small>

<small>Hướng của thuật tốn</small>

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

3. Các cách biểu diễn của thuật toán

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

3. Các cách biểu diễn của thuật toán

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

3. Các cách biểu diễn của thuật tốn

<b>Phương pháp mã giả</b>

<small>oDựa trên các ngơn ngữ bậc cao (Pascal, C...)</small>

<small>oSử dụng ngôn ngữ tự nhiên con người</small>

<small>o</small> <i><b><small>Ưu điểm: Tương tự ngơn ngơn ngữ lập trình và ngơn ngữ tự nhiên,</small></b></i>

<small>chuyển từ thuật tốn sang chương trình dễ dàng.</small>

<small>o</small> <i><b><small>Khuyết điểm: Viết như cách biểu diễn liệt kê, khó bao qt với những</small></b></i>

<small>bài tốnnhiều chương trình. Phải làm quen với những ngôn ngữ mới.</small>

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

3. Các cách biểu diễn của thuật tốn

Ví dụ: Tính tổng n số tự nhiên đầu tiên

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

Nội dung

<small>1.</small>

Khái niệm thuật tốn

<small>2.</small>

Tính chất của thuật toán

<small>3.</small>

Các cách biểu diễn thuật toán

<b><small>4.</small></b>

<b>Cấu trúc cơ bản của thuật toán</b>

<small>5.</small>

Một số thuật toán cơ bản

<small>6.</small>

Bài tập

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

3. Các cấu trúc cơ bản của thuật toán

Rẽ nhánh Tuần tự

Lặp

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

4. Các cấu trúc cơ bản của thuật toán

<b>Cấu trúc tuần tự:</b>

<small>•</small> Gồm nhiều bước, sắp xếp theo trình tự nhất định, chương trình được thực hiện theo các bước đã tạo sẵn.

<small>•</small> Trong biểu diễn thuật tốn bằng phương pháp liệt kê từng bước cấu trúc tuần tự được thể hiện ở việc mô tả cụ thể bước thứ i thực

<i>hiện: Bước 1, Bước 2, Bước 2.1, ….. </i>

<small>•</small> Khi dùng sơ đồ khối ta sử dụng để biểu diễn thứ tự thực hiện của thuật toán.

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

4. Các cấu trúc cơ bản của thuật toán

<b>Cấu trúc rẽ nhánh:</b>

o Là cấu trúc kiểm tra một điều kiện, khi điều kiện đúng chương trình sẽ thực hiện theo nhánh đúng, khi điều kiện sai chương trình sẽ thực hiện theo nhánh sai.

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

4. Các cấu trúc cơ bản của thuật toán

<b>Cấu trúc lặp:</b>

o Là cấu trúc lặp đi lặp lại một hành động nhiều lần: <small>o</small> <i><small>Số lần lặp xác định trước.</small></i>

<small>o</small> <i><small>Số lần lặp không xác định trước.</small></i>

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

Nội dung

<small>1.</small>

Khái niệm thuật toán

<small>2.</small>

Tính chất của thuật tốn

<small>3.</small>

Các cách biểu diễn thuật toán

<small>4.</small>

Cấu trúc cơ bản của thuật toán

<b><small>5.</small></b>

<b>Một số thuật toán cơ bản</b>

<small>6.</small>

Bài tập

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

4. Một số thuật tốn cơ bản

<small>■</small> Tính chu vi và diện tích hình trịn

<small>■</small> Cho 3 số a,b,c. In ra màn hình 3 số sau khi đã cộng thêm 1

<small>■</small> Nhập n. Nếu n>0, in ra màn hình n sau khi bình phương

<small>■</small> Tính tổng dãy số p = 1+2+3+...+n

<small>■</small> Tính tích dãy số p = 1x2x3x...xn

<small>■</small> Tìm n min thỏa mãn S = 1 + ½ + 1/3 + ... + 1/n >= 3

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

4. Một số thuật tốn cơ bản

Kiểm tra xem N có phải là 1 số nguyên tố không ? Ý tưởng :

<small>-</small> Nếu N=1 -> N không là số nguyên tố

<small>-</small> Nếu 1<N>4 -> N là số nguyên tố

<small>-</small> Nếu N >= 4 : Tìm ước i > 1 của N

+ Nếu i <N -> N không phải số nguyên tố ( vì N có ít nhất 3 ước N, i, 1)

+ Nếu i=N -> N là số nguyên tố

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

4. Một số thuật toán cơ bản

o Tính tổng dãy số

o Tính tích dãy số

o Tìm kiếm một số có trong dãy hay khơng

o Đếm số lượng phần tử thỏa mãn điều kiện

o Tìm giá trị max, min

o Sắp xếp tăng, giảm dãy số

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

4. Một số thuật tốn cơ bản

o Tính tổng: Cho dãy n phần tử a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>....a<sub>n</sub> Hãy tính tổng ra dãy số trên

o <i><b>Ýtưởng:</b></i>

- Sử dụng một biến để tính tổng các phần tử. Ban đầu biến này bằng 0. - Duyệt từng phần tử và cộng phần tử vào biến tổng.

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

4. Một số thuật toán cơ bản

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

4. Một số thuật toán cơ bản

o Tính tổng: Cho dãy n phần tử a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>....a<sub>n</sub> Hãy tính tích ra dãy số trên

o <i><b>Ý tưởng: tương tự như thuật tốn tính tổng</b></i>

- Sử dụng một biến để tính tích các phần tử. Ban đầu biến này bằng 1

(nếu biến ban đầu bằng 0 thí tích sẽ bằng 0  sai). - Duyệt từng phần tử và nhân phần tử vào biến tích.

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

4. Một số thuật tốn cơ bản

o Tính tổng: Cho dãy n phần tử a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>....a<sub>n</sub> Kiểm tra số X có nằm trên dãy trên hay không ?

o <i><b>Ýtưởng:</b></i>

■ Sử dụng một biến để đánh đánh dấu xem có tìm thấy phần tử X hay không. Ban đầu biến đánh dấu có giá trị là FALSE.

■ Duyệt từng phần tử, nếu phần tử thứ i có giá trị bằng X thì gán biến đánh dấu là TRUE.

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

4. Một số thuật toán cơ bản

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

4. Một số thuật tốn cơ bản

o Tính tổng: Cho dãy n phần tử a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>....a<sub>n</sub> Đếm xem trong dãy có bao nhiêu phần tử thỏa mãn điều kiện nào đó.

o <i><b>Ýtưởng:</b></i>

■ Sử dụng một biến đếm số lượng phần tử ■ Duyệt từng phần tử.

■ Kiểm tra phần tử đó có thỏa điều kiện hay khơng, nếu thỏa điều kiện thì tăng biến đếm lên 1.

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

4. Một số thuật toán cơ bản

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

4. Một số thuật toán cơ bản

Đếm số chẵn

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

4. Một số thuật toán cơ bản

o Tính tổng: Cho dãy n phần tử a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>....a<sub>n</sub> Tìm phần tử Max – Min trong dãy số.

o <i><b>Ýtưởng:</b></i>

■ Sử dụng một biến lưu giá trị max (min), ban đầu max = a<sub>1</sub> ■ Duyệt từng phần tử.

■ Kiểm tra phần tử đó có lớn hơn biến giá trị max (nhỏ hơn giá trị min) nếu thỏa điều kiện biến max bằng phần tử đó.

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

4. Một số thuật tốn cơ bản

Tìm max

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

4. Một số thuật tốn cơ bản

o Tính tổng: Cho dãy n phần tử a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>....a<sub>n</sub> Sắp xếp dãy số tăng giảm

o <i><b>Ýtưởng:</b></i>

- Duyệt từng phần tử:

- <i>Phần tử đang duyệt được gọi là phần tử hiện tại</i>

- <i>Thực hiện một vòng lặp con, duyệt các phần tử còn lại. Nếu giá trịcủa phần tử được duyệt trong vòng lặp con bé hơn phần tử hiện tại</i>

 <i>thực hiện việc đổi chỗ 2 phần tử.</i>

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

4. Một số thuật toán cơ bản

Tăng dần

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

Nội dung

<small>1.</small>

Khái niệm thuật tốn

<small>2.</small>

Tính chất của thuật tốn

<small>3.</small>

Các cách biểu diễn thuật toán

<small>4.</small>

Cấu trúc cơ bản của thuật toán

<small>5.</small>

Một số thuật toán cơ bản

<b><small>6.</small></b>

<b>Bài tập</b>

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

4. Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>,….,a<sub>n</sub> , in ra màn hình dãy số theo chiều ngược lại.

5. Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>,….,a<sub>n</sub> , xuất ra màn hình 3 số âm lớn nhất trong dãy.

6. Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a ,a ,a ,….,a , tìm

</div>

×