C01-Cac khai niem co ban ve lap trinh tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các...
Chương CÁC KHÁI NIỆM CƠ BẢN VỀ LẬP TRÌNH Hà Nội – 2014 Nội dung 12/12/17 Các khái niệm Các bước xây dựng chương trình Thuật tốn chương trình Giới thiệu ngơn ngữ lập trình C Chương 1-Các khái niệm lập trình 2/27 Các khái niệm Lập trình (programming) Nghệ thuật cài đặt nhiều thuật tốn trừu tượng có liên quan với ngơn ngữ lập trình để tạo chương trình máy tính Bài tốn Là việc ta muốn máy thực để từ thơng tin đưa vào (INPUT) tìm thơng tin (OUTPUT) Ví dụ: Giải phương trình bậc ax + b = 12/12/17 INPUT: a, b thuộc R OUTPUT: nghiệm phương trình ax + b = Chương 1-Các khái niệm lập trình 3/27 Các khái niệm Thuật toán (Algorithm) Thuật toán để giải toán dãy hữu hạn thao tác xếp theo trình tự xác định cho sau thực dãy thao tác đó, từ Input tốn, ta nhận Output cần tìm Ví dụ: Thuật toán giải pt ax + b = • Nếu a = • b = phương trình có nghiệm • b ≠ phương trình vơ nghiệm • Nếu a ≠ Al-Khwarizmi (780-850) - người • Phương trình có nghiệm có ảnh hưởng lớn đến hình thành thuật ngữ “Algorithm” x = -b/a 12/12/17 Chương 1-Các khái niệm lập trình 4/27 Các đặc trưng thuật toán Input (dữ liệu vào): Mỗi thuật toán cần có số (có thể 0) liệu ban đầu Output (Kết quả):Thuật toán phải cho kết Tính xác định: Các thao tác phải xác định, không nhập nhằng, lẫn lộn, tuỳ tiện Tính khả thi: thuật tốn phải có khả thực thời gian hữu hạn Tính kết thúc (tính dừng): thuật tốn phải dừng sau số hữu hạn bước Tính phổ dụng: áp dụng cho lớp tốn có đầu vào tương tự 12/12/17 Chương 1-Các khái niệm lập trình 5/27 Các bước xây dựng chương trình Biểu diễn bằng: Xác định vấn đề • Ngơn ngữ tự nhiên - tốn • Lưu đồ - Sơ đồ khối Lựa chọn • Ngơn ngữ lập trình phương pháp giải Xây dựng thuật tốn/ thuật giải Cài đặt chương trình Hiệu chỉnh Lỗi cú pháp Lỗi ngữ nghĩa chương trình Thực chương trình 12/12/17 Chương 1-Các khái niệm lập trình 6/27 Thuật tốn chương trình Chương trình tập hợp dãy lệnh điều khiển máy tính thực hiện, hay nói cách khác cách diễn tả thuật tốn ngơn ngữ lập trình để máy tính hiểu Các cách biểu diễn thuật tốn 12/12/17 Sử dụng ngơn ngữ tự nhiên Dùng sơ đồ khối Bằng ngôn ngữ lập trình Chương 1-Các khái niệm lập trình 7/27 Sử dụng ngơn ngữ tự nhiên Bài tốn: Tìm UCLN hai số nguyên a b INPUT: a, b thuộc Z OUTPUT: UCLN a b Bước Nhập số nguyên a b Bước Nếu a = b UCLN = a sang bước Bước Nếu a > b thay a = a - b quay lại Bước Bước Thay b = b - a quay lại Bước Bước kết thúc 12/12/17 Chương 1-Các khái niệm lập trình 8/27 Sử dụng sơ đồ khối Khối giới hạn Chỉ thị bắt đầu kết thúc Khối vào Nhập/Xuất liệu Khối lựa chọn Tùy điều kiện rẽ nhánh Khối thao tác Ghi thao tác cần thực Đường Chỉ hướng thao tác 12/12/17 Chương 1-Các khái niệm lập trình 9/27 Sử dụng sơ đồ khối Bắt đầu Nhập a, b Đúng a=b UCLN = a Xuất UCLN Sai Đúng a=a-b 12/12/17 a>b Sai b=b-a Chương 1-Các khái niệm lập trình Kết thúc 10/27 Ví dụ thuật tốn Kiểm tra tính ngun tố số nguyên dương N INPUT: N nguyên dương OUTPUT: N nguyên tố hay không? Bước Nhập số nguyên dương N; Bước Nếu N = thơng báo N khơng ngun tố kết thúc; Bước Nếu N < thơng báo N nguyên tố kết thúc; Bước Gán i = 2; Bước Nếu i > [ N ] thơng báo N ngun tố kết thúc; [x] kí hiệu phần nguyên x, số nguyên không lớn x gần x Bước Nếu N chia hết cho i thơng báo N không nguyên tố kết thúc Bước Gán i = i + quay lại bước 12/12/17 Chương 1-Các khái niệm lập trình 12/27 Ví dụ thuật tốn (tt) Bắt đầu Sơ đồ khối Nhập N Đúng N=1? Sai Nsqrt(N)? Đúng N nguyên tố Sai Sai Gán i = i + N không nguyên tố N chia hết cho i ? Đúng Kết thúc 12/12/17 Chương 1-Các khái niệm lập trình 13/27 Ví dụ thuật tốn (tt) Bài tốn tìm kiếm Thuật tốn tìm kiếm (Sequential Search) INPUT: Dãy A gồm N số nguyên đôi khác a1, a2,…, an số nguyên k OUTPUT: số i mà = k thông báo khơng có số hạng dãy A có giá trị k Ý tưởng: 12/12/17 Lần lượt so sánh giá trị dãy với k: Nếu có giá trị ai=k đưa i Nếu duyệt hết dãy mà khơng có giá trị k đưa thơng báo khơng tìm thấy Chương 1-Các khái niệm lập trình 14/27 Ví dụ thuật tốn (tt) Sơ đồ khối Bắt đầu Nhập N a1, a2,…, aN k Gán i = = k Đúng Thông báo tìm thấy, đưa i Sai Gán i = i + Sai i>N? Đúng Thơng báo khơng tìm thấy 12/12/17 Chương 1-Các khái niệm lập trình Kết thúc 15/27 Ví dụ thuật tốn (tt) Bài tốn tìm kiếm Thuật tốn tìm kiếm nhị phân (Binary Search) INPUT: Dãy A dãy tăng khác a1, a2,…, an OUTPUT: số i mà = số hạng dãy A có gồm N số nguyên đôi số nguyên k k thông báo khơng có giá trị k Ý tưởng: Chọn số hàng aGiua để so sánh với k, Giua = [(N+1)/2] Nếu aGiua = k Giua số cần tìm Nếu aGiua>k tìm kiếm dãy a1,…, aGiua-1 Nếu aGiua k ? Đưa Giua Đúng Sai Gán Dau = Giua + Gán Cuoi = Giua – Dau>Cuoi? Sai Đúng Kết thúc 12/12/17 Thơng báo khơng tìm thấy Chương 1-Các khái niệm lập trình 17/27 Giới thiệu ngơn ngữ lập trình C Giới thiệu 12/12/17 Ngôn ngữ C Dennis Ritchie sáng chế Bell Telephone (AT&T) năm 1972 nhằm mục đích viết hệ điều hành Unix Tiền thân ngơn ngữ B, KenThompson, Bell Telephone C viện chuẩn hoá Mỹ (ANSI: American National Standard Institute) làm thành tiêu chuẩn với tên gọi ANSI C năm 1983 Là ngơn ngữ lập trình có cấu trúc phân biệt chữ HOA - thường (case sensitive) Chương 1-Các khái niệm lập trình 18/27 Giới thiệu ngơn ngữ lập trình C (tt) Ưu điểm C 12/12/17 Rất mạnh mềm dẻo, có khả thể ý tưởng nào, dùng viết hệ điều hành, trình điều khiển, soạn thảo văn bản,…, chương trình dịch Được sử dụng rộng rãi nhà lập trình chuyên nghiệp Chương trình viết C hiệu (có thể đạt 80% tính chương trình viết mã máy) Có tính khả chuyển, dễ thích nghi, thay đổi hệ thống máy tính khác C có từ khố C có cấu trúc modul, sử dụng chương trình loại hàm, sử dụng nhiều lần Chương 1-Các khái niệm lập trình 19/27 Giới thiệu ngơn ngữ lập trình C (tt) Nhược điểm C Cú pháp lạ khó học Một số kí hiệu C có nhiều nghĩa khác (ví dụ kí hiệu * tốn tử nhân, tốn tử khơng định hướng, thay thế…) C mềm dẻo (truy nhập tự vào liệu, trộn lẫn tốn tử…) C ngơn ngữ bậc trung (medium-level language) 12/12/17 C kết hợp tính ngơn ngữ bậc cao với ngơn ngữ bậc thấp C mạnh xử lí bit, địa ô nhớ Chương 1-Các khái niệm lập trình 20/27 Mơi trường lập trình Turbo C++ for DOS 12/12/17 Thực thi file TC\BIN\TC.EXE Chương 1-Các khái niệm lập trình 21/27 Mơi trường lập trình Dev-C 12/12/17 Dev-C++ 5.0 (http://www.bloodshed.net/dev/devcpp.html) Chương 1-Các khái niệm lập trình 22/27 Mơi trường lập trình Visual Studio 12/12/17 VS 6.0, VS2003, VS2005, VS2008, VS2010… Chương 1-Các khái niệm lập trình 23/27 Bài tập lý thuyết Thuật tốn gì? Trình bày tính chất quan trọng thuật toán? Các bước xây dựng chương trình? Các cách biểu diễn thuật tốn? Ưu khuyết điểm phương pháp? Cho ví dụ minh họa 12/12/17 Chương 1-Các khái niệm lập trình 24/27 Bài tập thực hành Nhập năm sinh người Tính tuổi người Nhập số a b Tính tổng, hiệu, tính thương hai số Nhập tên sản phẩm, số lượng đơn giá Tính tiền thuế giá trị gia tăng phải trả, biết: a b 12/12/17 tiền = số lượng * đơn giá thuế giá trị gia tăng = 10% tiền Chương 1-Các khái niệm lập trình 25/27 Bài tập thực hành Nhập điểm thi hệ số mơn Tốn, Lý, Hóa sinh viên Tính điểm trung bình sinh viên Nhập bán kính đường tròn Tính chu vi diện tích hình tròn Nhập vào số xe (gồm chữ số) bạn Cho biết số xe bạn nước? 10.Nhập vào số nguyên Tính max hai số 12/12/17 Chương 1-Các khái niệm lập trình 26/27 ... trình 4/27 Các đặc trưng thuật tốn Input (dữ liệu vào): Mỗi thuật tốn cần có số (có thể 0) liệu ban đầu Output (Kết quả):Thuật toán phải cho kết Tính xác định: Các thao tác phải xác định,... niệm lập trình Kết thúc 10/27 Cài đặt thuật tốn ngơn ngữ lập trình #include #include int a, b; void main() { clrscr(); printf("Nhap a,b: "); scanf("%d%d",&a, &b); while (a!=b)... tên gọi ANSI C năm 1983 Là ngơn ngữ lập trình có cấu trúc phân biệt chữ HOA - thường (case sensitive) Chương 1-Các khái niệm lập trình 18/27 Giới thiệu ngơn ngữ lập trình C (tt) Ưu điểm C