• 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... Tìm giải thuật• Tập hợp hữu hạn của các
Trang 1Lập trình C
Chương 1 Tổng quan về lập trình
(3 tiết)
Trang 2• 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
Trang 3Chươ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?
Trang 4Chương trình máy tính?
CTDL Giải thuật
Ngôn ngữ Lập trình
ki m th ể ử
Trang 5Cá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
Trang 6Cá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)
Trang 9Xá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?
Trang 10Xá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ể
Trang 11Tì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
Trang 12Tí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
Trang 13Tí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
Trang 15Cá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
Trang 16•Đầu vào: 2 số nguyên dương 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ươ
Trang 17Ví 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
Trang 18Cá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ươ
Trang 19Mô 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
IF <Điều kiện> THEN …ENDIF
IF <Điều kiện> THEN ELSE ENDIF
WHILE <Điều kiện> DO … ENDWHILE
DO … UNTIL <Điều kiện>
DISPLAY …
RETURN …
Trang 20Mô 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
Trang 22Bài tập mô tả giải thuật
1 Cho số nguyên n Tính trị tuyệt đối của n
3 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?
S( ) 1 2 3 4 ( 1 ) 1
Trang 23• Đầu vào: Số nguyênn n
• Đầu ra: |n|
Cho s nguyên n. Tinh tr tuy t đ i c a n ố ị ệ ố ủ
Trang 24Gi i và bi n lu n ph ng trình b c I: ax+b=0ả ệ ậ ươ ậ
Trang 25Ph n đ c thêm: H ng d n dùng công c v ầ ọ ướ ẫ ụ ẽ
l u đ gi i thu t ư ồ ả ậ
Trang 2626
Trang 29•EDGE Diagrammer – Pacestar Software
Trang 30•Đ c phát tri n b i ượ ể ở Crocodile Clips LtdBao g m nhi u ph n m m h tr mô ph ng ph c v cho ồ ề ầ ề ỗ ợ ỏ ụ ụgiáo d c:ụ
Trang 31Giao diện chính
Trang 32•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
Trang 33và biến toàn cục
Trang 34Bắ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 đồ
Trang 35Ký 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
Các ký hiệu lưu đồ
Trang 36Nhậ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 đồ
Trang 43Cung 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
Trang 44Hàm thư viện
Trang 45Hàm thư viện
Trang 46•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
Trang 47•Chọn đường nối cần xóa
Minh họa thao tác vẽ - tách hai ký hiệu đang nối với nhau
Tách
Trang 48Ké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
Trang 49•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 ọ ể ổ ộ
Trang 50Lấ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ẽ
Trang 51•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 độ)
Kiểm tra giải thuật
Chỉnh tốc độ Chế độ xem
toàn màn hình
Trang 52•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 )
Trang 53V l u đ gi i thu t không dùng hàm conẽ ư ồ ả ậ
V l u đ gi i thu t có dùng hàm conẽ ư ồ ả ậ
Các ví dụ
Trang 5454Tìm s l n nh t c a hai s nguyên ố ớ ấ ủ ố
Trang 55Tính ph n nguyên và ph n d c a phép chia ầ ầ ư ủ
Trang 5656Hàm tìm x trong m ng 1 chi u a ả ề
Trang 57Tìm ki m ph n t có giá tr x xu t hi n ế ầ ử ị ấ ệ
trong m ng m t chi u ả ộ ề
Trang 58Q&A