Bài giảng Lập trình C - Chương 1: Tổng quan về lập trình - Trần Minh Thái
Các đặc điểm cần có của chương trình
Đúng đắn, chính xác (correctness)
Chắc chắn (robustness)
Thân thiện (user friendliness)
Khả năng thích nghi (adapability): Chương trình có khả năng để phát triển tiến hóa theo yêu cầu
Tính tái sử dụng (reuseability): Chương trình có thể dùng để làm một phần trong một chương trình lớn khác
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình C - Chương 1: Tổng quan về lập trình - Trần Minh Thái", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Lập trình C - Chương 1: Tổng quan về lập trình - Trần Minh Thái
Lập trình C Chương 1. Tổng quan về lập trình(3 tiết) Trần Minh Thái Email: minhthai@huflit.edu.vn Website: www.minhthai.edu.vn Cập nhật: 16/10/2016 1 Mục tiêu Hiểu được quá trình tổng quát để viết một chương trình trên máy tính Nắm được khái niệm cơ bản về tổ chức dữ liệu và giải thuật Biết được các phương pháp để mô tả giải thuật Đọc hiểu các giải thuật cơ bản Có thể sử dụng công cụ hỗ trợ mô tả giải thuật bằng FlowChart Chương trình máy tính? Mục đích? Cần những giai đoạn nào? Những gì cần có để hiện thực chương trình máy tính? Chương trình máy tính? CTDL Giải thuật Ngôn ngữ Lập trình Phân tích, tìm kiếm lời giải Lập trình Thực thi chương trình và kiểm thử Các đặc điểm cần có của chương trình Đúng đắn, chính xác ( correctness ) Chắc chắn ( robustness ) Thân thiện ( user friendliness ) Khả năng thích nghi ( adapability) : Chương trình có khả năng để phát triển tiến hóa theo yêu cầu Tính tái sử dụng ( reuseability ): Chương trình có thể dùng để làm một phần trong một chương trình lớn khác Các đặc điểm cần có của chương trình Tính hiệu quả ( efficiency ) Tính khả chuyển ( porability ): Khả năng chuyển đổi giữa các môi trường Tính an toàn ( security ) Tính dừng ( halt ) Các ngôn ngữ lập trình Fortran Pascal Java C C++ C# F# VB.Net . Các môi trường hỗ trợ lập trình (IDE) Borland C++ Microsoft Visual Basic Microsoft Visual C++ Jbuider Eclipse SDK Visual .Net Xác định bài toán Input -> Process -> Output Input: Giả thiết, thông tin được cung cấp ? Process: Giải quyết vấn đề gì ? Giải quyết như thế nào? Output: Đạt được những yêu cầu nào? Kết quả có đưa vào xử lý tiếp hay không??? Xác định cấu trúc dữ liệu Phải biểu diễn đầy đủ được thông tin nhập và xuất của bài toán Phù hợp với giải thuật (cách giải) được chọn Có thể cài đặt được trên ngôn ngữ lập trình cụ thể Tìm giải thuật T ập hợp hữu hạn của các chỉ thị hay phương cách được định nghĩa rõ ràng cho việc hoàn tất một số sự việc từ một trạng thái ban đầu cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ dẫn đến kết quả sau cùng như đã dự đoán Có thể là công thức, các bước cần phải thực hiện Tính chất quan trọng của giải thuật Tính chính xác: để đảm bảo kết quả tính toán hay các thao tác mà máy tính thực hiện được là chính xác Tính rõ ràng: giải thuật phải được thể hiện bằng các câu lệnh minh bạch; các câu lệnh được sắp xếp theo thứ tự nhất định Tính khách quan: Một giải thuật dù được viết bởi nhiều người trên nhiều máy tính vẫn phải cho kết quả như nhau Tính chất quan trọng của giải thuật Tính phổ dụng: giải thuật không chỉ áp dụng cho một bài toán nhất định mà có thể áp dụng cho một lớp các bài toán có đầu vào tương tự nhau Tính kết thúc: giải thuật phải gồm một số hữu hạn các bước tính toán Các loại giải thuật Xử lý file Đồ họa Đồ thị v.v Tìm kiếm Sắp xếp Đệ quy Xử lý chuỗi ký tự Các phương pháp chính mô tả giải thuật Mã tự nhiên Pseudocode (mã giả) Flowchart (lưu đồ) Khi mô tả giải thuật phải bao gồm : Input - Đầu vào Output - Đầu ra / kết quả Process - Mô tả xử lý của giải thuật Đầu vào : 2 số nguyên dương a và b Đầu ra : USCLN của a và b Cách 1: Dùng mã tự nhiên Bước 1: Nếu a = b thì kết luận a là USCLN và kết thúc Bước 2: Nếu a > b thì a = a – b; Ngược lại thì b = b – a; Bước 3: Quay trở lại Bước 1 Ví dụ: Tìm ước số chung lớn nhất (USCLN) của 2 số nguyên dương a và b Cách 2: Dùng mã giả (Pseudocode) WHILE a ≠ b DO IF a>b THEN a=a-b ELSE b=b-a ENDIF ENDWHILE Ví dụ: Tìm ước số chung lớn nhất (USCLN) của 2 số nguyên dương a và b Là sự lai ghép giữa ngôn ngữ lập trình và ngôn ngữ tự nhiên Cách 3: Dùng lưu đồ (flowchart) Ví dụ: Tìm ước số chung lớn nhất (USCLN) của 2 số nguyên dương a và b Mô tả giải thuật bằng pseudocode Dễ hiểu, không chi tiết đến các kỹ thuật lập trình Ở cấp độ hết sức tổng quát: gần ngôn ngữ tự nhiên Hoặc chi tiết: như dùng ngôn ngữ tựa Pascal, C++, IF THEN ENDIF IF THEN ... ELSE ... ENDIF WHILE DO ENDWHILE DO UNTIL DISPLAY RETURN Mô tả giải thuật bằng lưu đồ (flowchart) Lưu đồ thuật toán là công cụ dùng để biểu diễn thuật toán , việc mô tả nhập (input), dữ liệu xuất (output) và luồng xử lý thông qua các ký hiệu hình học Phương pháp duyệt lưu đồ Duyệt từ trên xuống Duyệt từ trái sang phải Các ký hiệu flowchart Bắt đầu/ kết thúc Điều kiện Điểm nối Rẽ nhánh Luồng xử lý Khối xử lý Nhập/ Xuất Giá trị trả về Bài tập mô tả giải thuật Cho số nguyên n. Tính trị tuyệt đối của n Giải và biện luận phương trình bậc I: ax+b=0 Nhập vào độ dài của a, b và c. Kiểm tra xem a, b, c có tạo thành 3 cạnh của tam giác không? Nhập và số nguyên k (k>0), Xuất ra màn hình k dòng chữ “Xin chào” Tính tổng: với n>0 Tính tổng: với n>0 Đầu vào: Số nguyênn n Đầu ra: |n| Cho số nguyên n. Tính trị tuyệt đối của n Đầu vào: Hai số nguyên a và b Đầu ra: Nghiệm của pt Giải và biện luận phương trình bậc I: ax+b=0 Phần đọc thêm: Hướng dẫn dùng công cụ vẽ lưu đồ giải thuật Microsoft Visio Crocodile Clips 6.05 Cách sử dụng các ký hiệu Chạy từng bước và kiểm tra kết quả Mục tiêu Các công cụ vẽ lưu đồ Giới thiệu Crocodile Clips Các ký hiệu lưu đồ Các kiểu dữ liệu Các biểu thức Các hàm thư viện Minh họa thao tác vẽ Các ví dụ Sử dụng Crocodile Clips ICT EDGE Diagrammer – Pacestar Software Microsoft Visio Crocodile Clips ICT Các công cụ vẽ lưu đồ Được phát triển bởi Crocodile Clips Ltd Bao gồm nhiều phần mềm hỗ trợ mô phỏng phục vụ cho giáo dục: Vật lý Hóa học Toán học Điện – điện tử Tin học Giới thiệu crocodile clips Giao diện chính Hỗ trợ vẽ lưu đồ giải thuật Minh họa từng bước thực hiện của lưu đồ Hỗ trợ nhiều loại kiểu dữ liệu Cung cấp sẵn nhiều hàm thư viện Cho phép mô tả thêm các hàm khác Hướng dẫn, mô tả chi tiết từng thành phần Nhiều ví dụ minh họa Đặc điểm Các ký hiệu lưu đồ Các ký hiệu bắt đầu, kết thúc giải thuật hoặc hàm Các ký hiệu phép gán, gọi thực hiện hàm Ký hiệu kiểm tra điều kiện rẽ nhánh Ký hiệu nhập, xuất Cửa sổ quan sát kết quả từng bước và biến toàn cục Công cụ nhập dữ liệu và hiển thị kết quả Ký hiệu Diễn giải Bắt đầu giải thuật Kết thúc giải thuật Bắt đầu hàm con Trả về giá trị của hàm con, hoặc kết thúc hàm con Các ký hiệu lưu đồ Ký hiệu Diễn giải Gán giá trị vào biến Tăng hoặc giảm giá trị của biến Gọi thực hiện hàm con Kiểm tra điều kiện Các ký hiệu lưu đồ Ký hiệu Diễn giải Nhận giá trị nhập, kết hợp với Edit box để lấy giá trị Xuất giá trị, kết hợp với Text box để hiển thị kết quả Cửa sổ quan sát kết quả thực hiện từng bước của giải thuật Cửa sổ quan sát biến toàn cục Các ký hiệu lưu đồ Number String Boolean Map List Các kiểu dữ liệu Number operations String operations Logical operations Comparison operations Các biểu thức Stt Ký hiệu Mô tả 1 + Cộng 2 - Trừ 3 * Nhân 4 / Chia 5 () Gom nhóm các thành phần Number operations Stt Ký hiệu Mô tả 1 + Nối 2 chuỗi hoặc nối chuỗi và số Ví dụ 1: “abc”+”xyz” “abcxyz” Ví dụ 2: “Tổng =“+ 8 “Tổng =8” String operations Stt Ký hiệu Mô tả 1 Not hoặc ! 2 And hoặc && 3 Or hoặc || 4 Xor hoặc ^^ Logical operations Stt Ký hiệu Mô tả 1 = Bằng 2 > Lớn hơn 3 < Nhỏ hơn 4 >= Lớn hơn hoặc bằng 5 <= Nhỏ hơn hoặc bằng 6 Khác (không bằng) Comparison operations Cung cấp các hàm định nghĩa sẵn, bao gồm: Các hàm lượng giác: sin, cos, tan, Các hàm toán học khác: tính căn, logarit, làm tròn số, tính mũ, Các hàm thư viện Hàm thư viện Hàm thư viện Chọn ký hiệu tương ứng Nhấn chuột trái và kéo rê vào cửa sổ vẽ giải thuật Đưa ký hiệu vào đúng điểm nối cần nối với ký hiệu có trong cửa sổ Di chuyển ký hiệu đến vị trí thích hợp Minh họa thao tác vẽ Điểm nối Chọn đường nối cần xóa Nhấn phím Delete Minh họa thao tác vẽ - tách hai ký hiệu đang nối với nhau Tách Kéo rê ký hiệu (cần nối) vào sơ đồ, sao cho hai điểm nối 1 và 2 khớp nhau, nhả chuột ra và chỉnh lại vị trí ký hiệu Minh họa thao tác vẽ nối nhiều ký hiệu vào một ký hiệu 2 1 Nhấn chuột vào tên biến hoặc giá trị để thay đổi Nhấn chuột phải vào ký hiệu chọn Properties để thay đổi thuộc tính cho ký hiệu Khung thuộc tính sẽ xuất hiện bên trái Minh họa thao tác vẽ Lấy giá trị và hiển thị kết quả trong giải thuật Dùng ký hiệu nhập (get) kết hợp với editbox để nhận giá trị nhập bên ngoài Dùng ký hiệu xuất (set) kết hợp với editbox hoặc textbox để hiển thị kết quả của giải thuật Minh họa thao tác vẽ Xem kết quả cuối cùng – Quick Step Xem tự động kết quả thực hiện từng bước – Auto Step (Có thể chính tốc độ) Xem lần lượt kết quả thực hiện từng bước khi nhấn phím – Manual Step Kiểm tra giải thuật Chỉnh tốc độ Chế độ xem toàn màn hình Chọn chế độ xem kết quả Chọn tốc độ thực hiện Kéo của sổ Monitor box vào cửa sổ vẽ giải thuật để quan sát giá trị từng bước Nhấn vào nút play ở ký hiệu bắt đầu giải thuật để bắt đầu minh họa Kiểm tra giải thuật Nhấn vào để chạy bước tiếp theo (nếu chọn chế độ xem kết quả là Manual step ) Vẽ lưu đồ giải thuật không dùng hàm con Tìm số lớn nhất của hai số nguyên Tính phần nguyên và phần dư của phép chia Vẽ lưu đồ giải thuật có dùng hàm con Tìm kiếm phần tử có giá trị x xuất hiện trong mảng một chiều số nguyên Các ví dụ Tìm số lớn nhất của hai số nguyên Tính phần nguyên và phần dư của phép chia Hàm tìm x trong mảng 1 chiều a Tìm kiếm phần tử có giá trị x xuất hiện trong mảng một chiều Q&A
File đính kèm:
- bai_giang_lap_trinh_c_chuong_1_tong_quan_ve_lap_trinh_tran_m.pptx