Giáo trình Tin học cơ sở - Chương 6: 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
9 trang |
Chia sẻ: huongthu9 | Lượt xem: 427 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Giáo trình Tin học cơ sở - Chương 6: Giải thuật (Algorithms), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chương 6: Giải thuật (Algorithms)
I-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
Chương 6: Giải thuật (Algorithms)
I-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
II-Khái niệm về giải thuật
1. Khái niệm
2. Các tính chất của giải thuật
Chương 6: Giải thuật (Algorithms)
II-Khái niệm về giải thuật
1. Khái niệm
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:
Chương 6: Giải thuật (Algorithms)
III-Các cách diễn đạt giải thuật
1. Liệt kê các bước bằng lời
2. Lưu đồ giải thuật
3. Giả mã
Chương 6: Giải thuật (Algorithms)
III-Các cách diễn đạt giải thuật
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 là b
B5: Kết thúc
Chương 6: Giải thuật (Algorithms)
III-Các cách diễn đạt giải thuật
2. Lưu đồ giải thuật
Bắt đầu Kết thúc
Vào/ra
dữ liệu
A
Thực hiện
công việc A
B
Đúng
Sai
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
Chương 6: Giải thuật (Algorithms)
III-Các cách diễn đạt giải thuật
3. Dùng giả mã
Chương 6: Giải thuật (Algorithms)
III-Các cách diễn đạt giải thuật
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
Chương 6: Giải thuật (Algorithms)
IV-Một số giải thuật cơ bản
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
Chương 6: Giải thuật (Algorithms)
IV-Một số giải thuật cơ bản
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
Chương 6: 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
Chương 6: Giải thuật (Algorithms)
IV-Một số giải thuật cơ bản
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.
Chương 6: 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
Chương 6: 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
Chương 6: Giải thuật (Algorithms)
IV-Một số giải thuật cơ bản
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?
Chương 6: 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
Các file đính kèm theo tài liệu này:
- giao_trinh_tin_hoc_co_so_chuong_6_giai_thuat_algorithms.pdf