1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Tin học cơ sở (Basics of Informatics) - Chương 8: Giải thuật (Algorithms)

18 44 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

Định dạng
Số trang 18
Dung lượng 51,94 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Tin học cơ sở (Basics of Informatics) - Chương 8 trình bày những nội dung: Phương pháp giải quyết vấn đề bằng máy tính; dữ liệu, giải thuật và chương trình; giải thuật; các cách diễn đạt giải thuật; một số giải thuật cơ bản.

Trang 1

Chương 8: Giải thuật (Algorithms)

8.1 Phương pháp giải quyết vấn đề bằng máy tính

8.2 Dữ liệu, giải thuật và chương trình

8.3 Giải thuật

8.3.1 Khái niệm 8.3.2 Các tính chất của giải thuật 8.4 Các cách diễn đạt giải thuật

8.4.1 Liệt kê các bước bằng lời 8.4.2 Lưu đồ giải thuật

8.4.3 Giả mã 8.5 Một số giải thuật cơ bản

1

Trang 2

Chương 8: Giải thuật (Algorithms)

8.1 Phương pháp giải quyết vấn đề bằng máy

tính

Bài toán => Giải thuật => Chương trình =>

Ngôn ngữ máy => Máy thực hiện

Trang 3

Chương 8: Giải thuật (Algorithms)

8.2 Dữ liệu, giải thuật và chương trình

Dữ liệu + Giải thuật = Chương trình

3

Trang 4

Chương 8: Giải thuật (Algorithms)

8.3 Khái niệm về giải thuật

8.3.1 Khái niệm

8.3.2 Các tính chất của giải thuật

- Tính thực hiện được:

- Tính kết thúc:

- Tính kết quả:

- Tính hiệu quả:

- Tính duy nhất:

- Tính tổng quát:

- Tính hình thức:

Trang 5

Chương 8: Giải thuật (Algorithms)

8.4 Các cách diễn đạt giải thuật

8.4.1 Liệt kê các bước bằng lời

8.4.2 Lưu đồ giải thuật

8.4.3 Giả mã

5

Trang 6

Chương 8: Giải thuật (Algorithms)

8.4 Các cách diễn đạt giải thuật

8.4.1 Liệt kê các bước bằng lời

Ví dụ: Giải thuật tìm USCLN(a,b)

B1: Nhập vào hai số nguyên a, b

B2: Đem a chia nguyên cho b, lấy phần dư để trong r.

B3: Nếu r = 0 thì chuyển sang B4 Nếu r ≠ 0 thì a lấy giá trị của b, b lấy giá trị của r và quay lại B2 B4: Đưa ra USCLN ở trong b

B5: Kết thúc

Trang 7

Chương 8: Giải thuật (Algorithms)

8.4 Các cách diễn đạt giải thuật

8.4.2 Lưu đồ giải thuật

Vào/ra

dữ liệu

A

Thực hiện

công việc A

B

Đúng

Sai

7

Trang 8

Bắt đầu

Kết thúc

Nhập a, b

r := a mod b

r = 0

Đưa ra b

Đúng Sai

a := b

b := r

Trang 9

Chương 8: Giải thuật (Algorithms)

8.4 Các cách diễn đạt giải thuật

8.4.3 Dùng giả mã

9

Trang 10

Chương 8: Giải thuật (Algorithms)

8.4 Các cách diễn đạt giải thuật

8.4.3 Dùng giả mã

• Vào: a, b

• Ra: USCLN(a,b)

1) Read(a,b);

2) r := a mod b;

3) While r ≠ 0 do

begin

a := b; b := r; r:=a mod b;

end;

4) Write(b);

5) Kết thúc

Trang 11

Chương 8: Giải thuật (Algorithms)

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

8.5.1 Hoán đổi nội dung 2 ô nhớ (đổi chỗ)

Ví dụ: Hoán đổi nội dung 2 ô nhớ a và b

1) tg := a;

2) a : = b;

3) b := tg;

Sau này, viết gọn là DoiCho(a,b) hoặc a :=: b

hoặc a ↔ b

11

Trang 12

Chương 8: Giải thuật (Algorithms)

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

8.5.2 Tìm giá trị lớn nhất/nhỏ nhất trong 1 dãy số

Ví dụ: Cho dãy số a1, a2,…, an Tìm giá trị lớn

nhất

Trang 13

Chương 8: Giải thuật (Algorithms)

1) read(n);

2) read(a[1], a[2],…, a[n]);

3) max:=a[1];

4) For i:=2 to n do

If a[i] > max then max:=a[i];

5) write(max);

6) Kết thúc

13

Trang 14

Chương 8: Giải thuật (Algorithms)

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

8.5.3 Sắp xếp dãy số tăng/giảm dần

Ví dụ: Cho dãy số a1, a2,…, an Sắp xếp dãy số tăng dần từ trái qua phải

Trang 15

Chương 8: Giải thuật (Algorithms)

Giải thuật 1:

1) Read(n);

2) Read(a[1], a[2],…, a[n]);

3) For i:=1 to n-1 do

For j:=i+1 to n do

If a[j] < a[i] then a[i] ↔ a[j]

4) Write(a[1], a[2],…, a[n]);

5) Kết thúc

15

Trang 16

Chương 8: Giải thuật (Algorithms)

Giải thuật 2:

1) Read(n);

2) Read(a[1], a[2],…, a[n]);

3) For i:=1 to n-1 do

begin

+) k:=i;

+) For j:=i+1 to n do

If a[j] < a[k] then k:=j;

+ If k ≠ i then a[i] ↔ a[k];

end;

4) Write(a[1], a[2],…, a[n]);

5) Kết thúc

Trang 17

Chương 8: Giải thuật (Algorithms)

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

8.5.4 Tìm giá trị x trong dãy số

Ví dụ: Cho dãy số a1, a2,…, an Tìm xem có phần

tử nào bằng x không?

17

Trang 18

Chương 8: Giải thuật (Algorithms)

1) Read(n);

2) Read(a[1], a[2],…, a[n]);

3) Read(x);

4) Co:=FALSE; {Ban dau la khong co}

5) For i:=1 to n do

If a[i] = x Then

begin

Co:=TRUE; break;

end;

6) If Co = TRUE Then write(‘Co phan tu bang x’) Else

write(‘Khong co phan tu bang x’);

7) Kết thúc

Ngày đăng: 02/02/2021, 07:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm