intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Tin học đại cương: Phần 2 (Chương 1) - TS.Nguyễn Bá Ngọc

Chia sẻ: Codon_02 Codon_02 | Ngày: | Loại File: PPT | Số trang:30

77
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nối tiếp phần 1 bộ bài giảng Tin học đại cương mời các bạn cùng tìm hiểu phần 2 (Chương 1) với các nội dung chính như: Giải quyết bài toán bằng máy tính: Khái niệm về bài toán; quá trình giải quyết bài toán bằng máy tính; các phương pháp giải quyết bài toán bằng máy tính; phân loại bài toán;...

Chủ đề:
Lưu

Nội dung Text: Bài giảng Tin học đại cương: Phần 2 (Chương 1) - TS.Nguyễn Bá Ngọc

  1. IT1110 Tin học đại cương Phần II Giải quyết bài toán Nguyễn Bá Ngọc 1
  2. Ôn tập nội dung phần I  Phần I: TIN HỌC CĂN BẢN  Thông tin  Biểu diễn dữ liệu trong máy tính  Máy tính và mạng máy tính  Hệ điều hành và các hệ thống ứng dụng
  3. Nội dung phần II  Chương 1: Giải quyết bài toán bằng máy tính  Khái niệm về bài toán  Quá trình giải quyết bài toán bằng máy tính  Các phương pháp giải quyết bài toán bằng máy tính  Phân loại bài toán  Chương 2: Thuật toán  Định nghĩa thuật toán  Biểu diễn thuật toán  Một số thuật toán thông dụng  Thuật toán đệ quy  Thuật giải heuristic 3
  4. Nội dung phần II  Chương 1: Giải quyết bài toán bằng máy tính  Khái niệm về bài toán  Quá trình giải quyết bài toán bằng máy tính  Các phương pháp giải quyết bài toán bằng máy tính  Phân loại bài toán  Chương 2: Thuật toán  Định nghĩa thuật toán  Biểu diễn thuật toán  Một số thuật toán thông dụng  Thuật toán đệ quy  Thuật giải heuristic 4
  5. 1.1. Khái niệm về vấn đề và bài toán  Vấn đề rộng hơn bài toán?  Pitago chia vấn đề ra:  Theorema là vấn đề cần được khẳng định đúng­sai  Problema là vấn đề cần tìm giải pháp để đạt được một  mục tiêu xác định từ những điều kiện ban đầu.  Diễn đạt bằng sơ đồ: A   B  A là giả thiết, điều kiện ban đầu  B là kết luận, mục tiêu cần đạt   là suy luận, giải pháp cần xác định 5
  6. 1.2. Các bước giải quyết bài toán bằng  máy tính  Bước 1: Xác định vấn đề­bài toán  Bước 2: Lựa chọn phương pháp giải  Bước 3: Xây dựng thuật toán hoặc thuật  giải  Bước 4: Cài đặt chương trình  Bước 5: Hiệu chỉnh chương trình  Bước 6: Thực hiện chương trình 6
  7. 1.3. Các phương pháp giải quyết vấn đề  bằng máy tính  Giải quyết vấn đề theo hướng xác định trực tiếp  lời giải  xác định trực tiếp lời giải qua thủ tục tính toán hoặc thủ  tục bao gồm một số hữu hạn các thao tác sơ cấp.  Giải quyết vấn đề theo hướng tìm kiếm lời giải  nguyên lý "thử và sai"  các phương pháp  liệt kê hay vét cạn  thử ngẫu nhiên  quay lui  chia để trị 7
  8. 1.4. Phân loại bài toán  Bài toán đa thức  Bài toán không đa thức  NP Problems 8
  9. Nội dung phần II  Chương 1: Giải quyết bài toán bằng máy tính  Khái niệm về bài toán  Quá trình giải quyết bài toán bằng máy tính  Các phương pháp giải quyết bài toán bằng máy tính  Phân loại bài toán  Chương 2: Thuật toán  Định nghĩa thuật toán  Biểu diễn thuật toán  Một số thuật toán thông dụng  Thuật toán đệ quy  Thuật giải heuristic 9
  10. 2.1. Định nghĩa thuật toán  Là một khái niệm cơ sở của toán học và tin  học.  Bao gồm một dãy hữu hạn các lệnh/chỉ thị  rõ ràng và có thể thi hành được để hướng  dẫn thực hiện một hành động nhằm đạt  được mục tiêu đề ra.  Thuật toán là sự thể hiện của một phương  pháp để giải quyết một vấn đề. 10
  11. Ví dụ 1: Thuật toán tìm phần tử lớn nhất  của một dãy hữu hạn các số nguyên  Các bước:  1. Đặt giá trị lớn nhất tạm thời là số nguyên đầu tiên.  2. So sánh số nguyên kế tiếp trong dãy với giá trị lớn  nhất tạm thời, nếu số nguyên này lớn hơn giá trị lớn  nhất tạm thời thì đặt giá trị lớn nhất tạm thời bằng số  nguyên này.  3. Lặp lại bước 2 nếu còn số nguyên trong dãy chưa  được xét.  4. Dừng nếu không còn số nguyên nào trong dãy chưa  được xét. Giá trị lớn nhất tạm thời lúc này chính là giá  trị lớn nhất trong dãy số. 11
  12. Ví dụ 2: Thuật toán giải phương trình bậc  hai: ax2 + bx + c = 0 (a 0)  1. Nhập 3 hệ số a, b, c  2. Tính giá trị Δ = b2 ­ 4*a*c  3. Xét dấu Δ. Nếu Δ>0 thì thực hiện các thao tác  sau đây:  3.1. Tính các nghiệm theo các công thức:  x1 = (­b­sqrt(Δ))/(2*a)  x2 = (­b+sqrt(Δ))/(2*a)   3.2. Xuất kết quả: phương trình có hai nghiệm x1 và x2.   4. Nếu Δ là 0 thì xuất kết quả: phương trình có  nghiệm kép là ­b/(2*a)  5. Nếu Δ
  13. Các đặc trưng của thuật toán  Nhập  (input):  có  các  giá  trị  nhập  từ  một  tập  hợp  nhất  định.  Xuất (output):  từ mỗi giá trị của tập hợp nhập, tạo ra giá  trị xuất thuộc một tập hợp nhất định.  Tính  xác  định  (definiteness):  các  bước  chính  xác,  rõ  ràng.  Tính hữu hạn (finiteness): cho ra kết quả sau một số hữu  hạn bước.  Tính  hiệu  quả  (effectiveness):  được  đánh  giá  dựa  trên  một số tiêu chuẩn (khối lượng tính toán, không gian, thời  gian sử dụng).  Tính tổng quát (generaliness):  áp dụng  được cho tất cả  các bài toán có dạng như mong muốn 13
  14. 2.2. Biểu diễn thuật toán  Sử dụng các ngôn ngữ:  Ngôn ngữ tự nhiên  Ngôn ngữ lưu đồ (sơ đồ khối)  Ngôn ngữ tựa ngôn ngữ lập trình (mã giả)  Ngôn ngữ lập trình 14
  15. Ngôn ngữ lưu đồ  Các thành phần:  Nút giới hạn: được biểu diễn bởi hình ôvan có  ghi chữ bên trong, gồm có nút đầu và nút cuối: BẮT ĐẦU KẾT THÚC  Nút thao tác: là một hình chữ nhật có ghi các  lệnh cần thực hiện: tăng k  Nút nhập/xuất dữ liệu: Đọc a và b 15
  16. Ngôn ngữ lưu đồ (2)  Nút điều kiện: là một hình thoi có ghi điều kiện  cần kiểm tra, thường có 1 cung đi vào và 2 cung đi  ra (tương ứng với 2 trường hợp đúng/sai) Đúng Sai a
  17. Ví dụ: lưu đồ biểu diễn thuật toán giải  phương trình bậc 2 Bắt đầu Nhập a, b, c sai đúng a 0 Δ = b2 ­ 4ac Xuất: : Không  phải  đúng sai phương trình bậc  Δ>0 2 đúng sai x1 = (­b­sqrt(Δ))/(2*a) Δ=0 x2 = (­b+sqrt(Δ))/(2*a) x=­b/(2a) Xuấtphương  Xuất: phương trình  Xuất: phương trình  trình vô  có 2 nghiệm x1, x2 có nghiệm kép x nghiệm Kết thúc 17
  18. Mã giả  Sử dụng mệnh đề có cấu trúc chuẩn hóa và  vẫn dùng ngôn ngữ tự nhiên.  Sử dụng các ký hiệu toán học, các biến,  cấu trúc kiểu thủ tục.  Hành động gán:   i  i+1  Tiện lợi, đơn giản, vẫn dễ hiểu. 18
  19. Mã giả (2)  Các cấu trúc thường gặp:  Cấu trúc chọn:  if (điều kiện) then (hành động) end if  if (điều kiện) then (hành động 1)    else (hành động 2)    end if  Cấu trúc lặp  while (điều kiện) do (hành động) end while  repeat (hành động) until (điều kiện)   for (biến)=(giá trị đầu) to (giá trị cuối) do (hành động) end for  for (biến)=(giá trị cuối) downto (giá trị đầu) do (hành động) end  for  Cấu trúc nhảy  goto nhãn x; 19
  20. Ví dụ: thuật toán giải phương trình bậc 2  Nhập: các hệ số a, b, c  Xuất: kết luận về nghiệm của phương trình bậc hai  Thuật toán:  if a = 0 then   Xuất: Không phải phương trình bậc hai, Dừng       end if  delta  b*b­4*a*c  if delta > 0 then  x1  (­b­sqrt(Δ))/(2*a)  x2  (­b+sqrt(Δ))/(2*a)  Xuất: x1 và x2, Dừng  else if delta = 0 then x12   ­b/(2*a), Xuất: nghiệm kép x12  else Xuất: phương trình vô nghiệm   end if 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0