Bài giảng Tin học đại cương - Chương 6: Thuật toán và ngôn ngữ lập trình

31 92 0
Bài giảng Tin học đại cương - Chương 6: Thuật toán và ngôn ngữ lập trình

Đ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

Bài giảng cung cấp cho người học các kiến thức: Thuật toán và ngôn ngữ lập trình, phương pháp giải quyết vấn đề bằng máy tính, lịch sử phát triển của ngôn ngữ lập trình,... Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên đang theo học môn dùng làm tài liệu học tập và nghiên cứu. Mời các bạn cùng tham khảo chi tiết nội dung tài liệu.

HỌC VIỆN NÔNG NGHIỆP VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN Chương  6   Thuật  tốn  và  Ngơn  ngữ  lập  trình   Khoa  Cơng  nghệ  thơng  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   NỘI DUNG CHƯƠNG PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ BẰNG MÁY TÍNH THUẬT TỐN 2.1 Khái niệm thuật tốn 2.2 Các tính chất thuật toán 2.3 Độ phức tạp thuật toán 2.4 Các cách diễn đạt thuật tốn NGƠN NGỮ LẬP TRÌNH 3.1 Khái niệm ngơn ngữ lập trình 3.2 Lịch sử phát triển ngơn ngữ lập trình 3.3 Trình biên dịch trình thơng dịch 3.4 Các cơng việc lập trình Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình     Khoa  Cơng  nghệ  thơng  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ BẰNG MÁY TÍNH •  Phương pháp chung để giải vấn đề (bài tốn) máy tính thể theo sơ đồ sau: BÀI  TOÁN   THUẬT  TỐN   CHƯƠNG  TRÌNH   NGƠN  NGỮ  MÁY   Cho  một  bài  toán  nghĩa  là  phải  xác  định  dữ   liệu  cần  nhập  vào  máy  Xnh  và  Ym  đầu  ra     Tìm  ra  cách  xử  lý  dữ  liệu  đầu  vào   Viết  chương  trình  bằng  một  ngơn  ngữ  lập   trình  nào  đó   Biên  dịch  chương  trình  sang  ngôn  ngữ   máy     MÁY  THỰC  HIỆN   Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình     Khoa  Công  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   NỘI DUNG CHƯƠNG PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ BẰNG MÁY TÍNH THUẬT TỐN 2.1 Khái niệm thuật tốn 2.2 Các tính chất thuật toán 2.3 Độ phức tạp thuật toán 2.4 Các cách diễn đạt thuật tốn NGƠN NGỮ LẬP TRÌNH 3.1 Khái niệm ngơn ngữ lập trình 3.2 Lịch sử phát triển ngơn ngữ lập trình 3.3 Trình biên dịch trình thơng dịch 3.4 Các cơng việc lập trình Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình     Khoa  Cơng  nghệ  thơng  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   2.1 Khái niệm thuật toán •  Thuật toán (thuật giải, algorithms): tập hợp hữu hạn thao tác, phép toán thực theo trình tự xác định số đối tượng liệu để đạt kết mong muốn •  Để tìm thuật tốn cho tốn ta cần xác định liệu vào (input) liệu (output) cho tốn •  VD: Bài tốn giải phương trình bậc ax2 + bx + c = –  Dữ liệu vào: Giá trị hệ số a, b, c –  Dữ liệu ra: Là nghiệm phương trình Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình     Khoa  Cơng  nghệ  thơng  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   NỘI DUNG CHƯƠNG PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ BẰNG MÁY TÍNH THUẬT TỐN 2.1 Khái niệm thuật tốn 2.2 Các tính chất thuật tốn 2.3 Độ phức tạp thuật toán 2.4 Các cách diễn đạt thuật toán NGƠN NGỮ LẬP TRÌNH 3.1 Khái niệm ngơn ngữ lập trình 3.2 Lịch sử phát triển ngơn ngữ lập trình 3.3 Trình biên dịch trình thơng dịch 3.4 Các cơng việc lập trình Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình     Khoa  Công  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   2.2  Các  'nh  chất  của  thuật  tốn   •  Tính kết thúc •  Tính thực •  Tính kết •  Tính hiệu •  Tính •  Tính hình thức Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình     Khoa  Cơng  nghệ  thơng  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   NỘI DUNG CHƯƠNG PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ BẰNG MÁY TÍNH THUẬT TỐN 2.1 Khái niệm thuật tốn 2.2 Các tính chất thuật toán 2.3 Độ phức tạp thuật tốn 2.4 Các cách diễn đạt thuật tốn NGƠN NGỮ LẬP TRÌNH 3.1 Khái niệm ngơn ngữ lập trình 3.2 Lịch sử phát triển ngơn ngữ lập trình 3.3 Trình biên dịch trình thơng dịch 3.4 Các cơng việc lập trình Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình     Khoa  Cơng  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   2.3  Độ  phức  tạp  của  thuật  tốn     •  Đánh giá thuật ta dựa vào hai tiêu chí sau: –  Thời gian thực hiện: Đây tiêu chí chủ yếu để đánh giá –  Dung lượng nhớ sử dụng •  Đánh giá thời gian thực thuật tốn người ta dùng “Độ phức tạp tính tốn thuật tốn” => Độ phức tạp tính tốn thuật tốn thời gian thực thuật toán đánh khơng phụ thuộc vào máy tính yếu tố liên quan, phụ thuộc vào kích thước liệu đầu vào Chương 6:  Thuật  toán  và  Ngơn  ngữ  lập  trình     Khoa  Cơng  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   2.3 Độ phức tạp thuật tốn •  Gọi n kích thước liệu vào, thời gian thực T giải thuật biểu diễn hàm n, gọi T(n) •  Nếu T(n) = Cn2 C số, ta nói độ phức tạp tính tốn thuật tốn có cấp n2, kí hiệu là: T(n) = O(n2) •  Tổng qt: –  Hàm f(n) có độ phức tạp tính tốn cấp g(n) hàm f(n) bị chặn Cg(n), với C số Kí hiệu f(n) = O(g(n)) •  Các hàm thể độ phức tập tính tốn giải thuật có dạng sau: nn, n!, 2n, n3, n2, nlog2n, n, log2n Các hàm theo thứ tự ưu tiên giá trị giảm dần Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   10   Khoa  Công  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   2.4  Các  cách  diễn  đạt  thuật  toán   Cách  3:   •  Sử  dụng  giả  ngơn  ngữ  lập  trình  (giả  mã):  Sử  dụng   ngơn  ngữ  tự  nhiên  kết  hợp  với  một  số  từ  khóa  và  cấu   trúc  điều  khiển  trong  ngơn  ngữ  lập  trình  bậc  cao  để   diễn  tả  các  cơng  việc  của  thuật  tốn •  VD:  Viết  thuật  toán  Ym  USCL  của  2  số  ngun  dương Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   17   Khoa  Cơng  nghệ  thơng  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   VD: Viết thuật tốn tìm USCL số nguyên dương Trong  khi  m  ≠  n  thì  lặp  lại  khối  sau:     Nếu  m  >  n  thì             Bớt  m  đi  một  lượng  là  n         Nếu  ngược  lại  thì             Bớt  n  đi  một  lượng  là  m         Cho  tới  khi  m  =  n  thì  kết  luận  USCLN    là  giá  trị  chung  của  m  và  n   read(m,n);   while  m    n  do          if  m>n  then                      m:=m-­‐n          else                              n:=  n-­‐m;   write(m);   Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   Chương  trình    PASCAL     18   Khoa  Công  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   NỘI DUNG CHƯƠNG PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ BẰNG MÁY TÍNH THUẬT TỐN 2.1 Khái niệm thuật tốn 2.2 Các tính chất thuật tốn 2.3 Độ phức tạp thuật toán 2.4 Các cách diễn đạt thuật tốn NGƠN NGỮ LẬP TRÌNH 3.1 Khái niệm ngơn ngữ lập trình 3.2 Lịch sử phát triển ngơn ngữ lập trình 3.3 Trình biên dịch trình thơng dịch 3.4 Các cơng việc lập trình Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   19   Khoa  Công  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   3.1  Khái  niệm  về  ngôn  ngữ  lập  trình   •  Ngơn ngữ lập trình (programming language : Tập hợp ký hiệu quy tắc viết lệnh để thể thuật tốn •  Ngơn ngữ lập trình gồm loại chính: –  Ngơn ngữ lập trình bậc thấp (hợp ngữ, assembly): •  Có cấu trúc lệnh giống với ngôn ngữ máy, khác dùng mã chữ thay cho mã nhị phân •  Ví dụ: Lệnh ADD AX, BX cộng (Addition) nội dung ghi AX BX, kết để AX Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   20   Khoa  Công  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   3.1 Khái niệm ngơn ngữ lập trình –  Ngơn ngữ lập trình bậc cao (ngơn ngữ thuật tốn): •  Là ngơn ngữ có lệnh gần với ngơn ngữ người ngơn ngữ tốn học •  Các ngôn ngữ nhằm vào thể thuật tốn nên người ta cịn gọi ngơn ngữ thuật tốn Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   21   Khoa  Cơng  nghệ  thơng  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   NỘI DUNG CHƯƠNG PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ BẰNG MÁY TÍNH THUẬT TỐN 2.1 Khái niệm thuật tốn 2.2 Các tính chất thuật toán 2.3 Độ phức tạp thuật toán 2.4 Các cách diễn đạt thuật tốn NGƠN NGỮ LẬP TRÌNH 3.1 Khái niệm ngơn ngữ lập trình 3.2 Lịch sử phát triển ngơn ngữ lập trình 3.3 Trình biên dịch trình thơng dịch 3.4 Các cơng việc lập trình Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   22   Khoa  Cơng  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   3.2 Lịch sử phát triển ngơn ngữ lập trình •  Thế hệ (đầu năm 1950): Lập trình mức mã máy điển hình hợp ngữ (assembly) •  Thế hệ (Từ cuối năm 1950 đến hết năm 1960): –  Các lệnh hợp ngữ gộp lại thành câu lệnh có cấu trúc –  Các ngơn ngữ lập trình: FORTRAN, COBOL, ALGOL cao chút BASIC Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   23   Khoa  Công  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   3.2 Lịch sử phát triển ngôn ngữ lập trình •  Thế hệ 3: Đây hệ ngơn ngữ lập trình đại, có tính cấu trúc mạnh mẽ Các ngơn ngữ lập trình hệ chia thành lớp: - Ngôn ngữ lập trình cấp cao vạn năng: Gồm có PL/1, Pascal, Modula-2, C Ada - Ngơn ngữ lập trình hướng đối tượng: Là ngơn ngữ lập trình cài đặt nội dung phương pháp lập trình hướng đối tượng Điển hình C++, Smalltalk Eiffel -  Ngơn ngữ lập trình chun dụng: Là ngơn ngữ có dạng cú pháp bất thường thiết kế riêng cho ứng dụng Ví dụ LISP, PROLOG, APL, FORTH… LISP •  Thế hệ 4: Gồm có Ngơn ngữ hỏi, sinh chương trình Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   24   Khoa  Cơng  nghệ  thơng  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   NỘI DUNG CHƯƠNG PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ BẰNG MÁY TÍNH THUẬT TỐN 2.1 Khái niệm thuật tốn 2.2 Các tính chất thuật tốn 2.3 Độ phức tạp thuật toán 2.4 Các cách diễn đạt thuật toán NGƠN NGỮ LẬP TRÌNH 3.1 Khái niệm ngơn ngữ lập trình 3.2 Lịch sử phát triển ngơn ngữ lập trình 3.3 Trình biên dịch trình thơng dịch 3.4 Các cơng việc lập trình Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   25   Khoa  Công  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   3.3 Trình biên dịch trình thơng dịch •  Máy tính hiểu ngôn ngữ ngôn ngữ máy Bởi vậy, chương trình viết ngơn ngữ lập trình (chương trình nguồn) phải dịch sang ngơn ngữ máy •  Có hai kiểu dịch: thơng dịch biên dịch –  Thông dịch (Interpreter) kiểu dịch lệnh để hiểu công việc phải làm thực không cần tạo đoạn mã tương ứng ngôn ngữ máy Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   26   Khoa  Công  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   3.3 Trình biên dịch trình thơng dịch   •  Biên dịch dịch tồn chương trình nguồn thành chương trình tương ứng ngơn ngữ máy (chương trình đích), sau nạp chương trình đích vào máy tính để thực –  Một chương trình thực việc biên dịch chương trình nguồn sang ngơn ngữ máy gọi trình biên dịch –  Mỗi ngơn ngữ lập trình có trình biên dịch tương ứng Ví dụ ngơn ngữ lập trình có trình biên dịch Pascal, C, C++, Java, C# Chương 6:  Thuật  toán  và  Ngơn  ngữ  lập  trình   27   Khoa  Cơng  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   NỘI DUNG CHƯƠNG PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ BẰNG MÁY TÍNH THUẬT TỐN 2.1 Khái niệm thuật tốn 2.2 Các tính chất thuật tốn 2.3 Độ phức tạp thuật toán 2.4 Các cách diễn đạt thuật tốn NGƠN NGỮ LẬP TRÌNH 3.1 Khái niệm ngơn ngữ lập trình 3.2 Lịch sử phát triển ngơn ngữ lập trình 3.3 Trình biên dịch trình thơng dịch 3.4 Các cơng việc lập trình Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   28   Khoa  Công  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   3.4 Các cơng việc lập trình   •  Soạn thảo: –  Lưu tệp chương trình với phần mở rộng phù hợp với ngơn ngữ lập trình sử dụng, –  ví dụ pas cho Pascal, c cho ngơn ngữ C hay cpp cho ngôn ngữ C++… –  Vd: Notepad++, •  Biên dịch chương trình: –  dịch tồn tệp chương trình nguồn sang tệp mã máy •  Chạy thử chương trình Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   29   Khoa  Cơng  nghệ  thơng  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   Câu hỏi tập 1.  Thuật tốn gì? Cho ví dụ 2.  Xác định input output cho thuật toán sau đây: a. Rút gọn phân số b. Kiểm tra xem ba số cho trước a, b c độ dài ba cạnh tam giác hay không? 3.  Trình bày tính chất xác định thuật tốn nêu rõ nghĩa tính chất 4.  Cho tam giác ABC có góc vng A cho biết cạnh a góc B Hãy viết thuật tốn để tính góc C, cạnh b cạnh c 5.  Hãy phát biểu thuật tốn để giải tốn sau: "Có số táo Dùng cân hai đĩa (khơng có cân) để xác định táo nặng nhất" 6.  Chỉ dùng phép cộng, tính bình phương số Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   30   Khoa  Công  nghệ  thông  ;n  –  Học  viện  Nông  nghiệp  Việt  nam   Bài  giảng  Tin  học  đại  cương   Ví dụ chạy chương trình Pascal •  Bài 1: Tìm USCLN hai số ngun dương •  Bài 2: Sắp xếp dãy số tăng dần •  Bài 3: Tìm vị trí số lớn dãy số Chương 6:  Thuật  tốn  và  Ngơn  ngữ  lập  trình   31   ... việc lập trình Chương 6: ? ?Thuật  tốn ? ?và  Ngơn ? ?ngữ ? ?lập ? ?trình     Khoa  Công  nghệ  thông  ;n  – ? ?Học  viện  Nông  nghiệp  Việt  nam   Bài ? ?giảng ? ?Tin ? ?học ? ?đại ? ?cương   2.1 Khái niệm thuật. .. diễn đạt thuật tốn NGƠN NGỮ LẬP TRÌNH 3.1 Khái niệm ngơn ngữ lập trình 3.2 Lịch sử phát triển ngơn ngữ lập trình 3.3 Trình biên dịch trình thơng dịch 3.4 Các cơng việc lập trình Chương 6: ? ?Thuật. .. diễn đạt thuật tốn NGƠN NGỮ LẬP TRÌNH 3.1 Khái niệm ngơn ngữ lập trình 3.2 Lịch sử phát triển ngơn ngữ lập trình 3.3 Trình biên dịch trình thơng dịch 3.4 Các cơng việc lập trình Chương 6:  Thuật

Ngày đăng: 30/01/2020, 14:17

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan