







Preview text:
NỘI DUNG
Trường Đại học Thủ Dầu Một • Một số khái niệm Mục M 1 CƠ SỞ LẬP TRÌNH
• Giải thuật và biểu diễn giải thuật Mục M 2
• Các bước giải quyết bài toán Mục M 3 CHƯƠNG I. • Bài tập Mục M 4 TỔNG QUAN 2
Chương I: Tổng quan Cơ sở lập trình
1.1 Biểu diễn thông tin trong 1. Khái niệm máy tính • Máy tính?
– Biểu diễn các ký tự trong máy tính bằng một
– Làm theo “lệnh” của con người. bộ mã.
• Các ký tự khác nhau sẽ được đặc trưng bởi một
– Điểm mạnh là tính toán với tốc độ cao (hàng
nhóm bit duy nhất khác nhau, tỷ phép tính trên giây).
– Ví dụ dãy bit sau là biểu diễn của chuỗi ký tự
• Làm thế nào để “ra lệnh” cho máy tính? "Hi Sue "
– Lập ra những chương trình cho máy tính. • Chương trình?
– Chương trình (Phần mềm) là ra lệnh cho máy
tính biết phải làm gì, như thế nào,… 3 4
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình 1 1.2 Ngôn ngữ lập trình Các ngôn ngữ lập trình
• Muốn “ra lệnh” cho máy tính:
– Ngôn ngữ lập trình C
• http://vi.wikipedia.org/wiki/C_(ngôn_ngữ_lập_trình)
– Sử dụng một “ngôn ngữ” chung ngôn ngữ lập
– Ngôn ngữ lập trình C++ trình
• http://vi.wikipedia.org/wiki/C%2B%2B
– Ngôn ngữ lập trình Java
• Ngôn ngữ lập trình (programming language):
• http://vi.wikipedia.org/wiki/Java_(ngôn ngữ_lập_trình)
– Ngôn ngữ lập trình PHP
– Là một hệ thống được ký hiệu hóa để miêu tả
• http://vi.wikipedia.org/wiki/PHP
những tính toán (qua máy tính) trong một dạng
– Ngôn ngữ lập trình ASP.Net
mà cả con người và máy đều có thể đọc và hiểu
• http://vi.wikipedia.org/wiki/ASP.NET được.
– Ngôn ngữ lập trình Visual Basic.Net
• http://vi.wikipedia.org/wiki/Visual_Basic_.NET
– http://vi.wikipedia.org/wiki/Ngôn_ngữ_lập_trình.
– Ngôn ngữ lập trình C#
• http://vi.wikipedia.org/wiki/C_thăng – … 5 6
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình
1.3 Lập trình và Lập trình viên
Lập trình và Lập trình viên
• Lập trình (programming)
• Các nhân tố cần thiết cho lập trình viên:
– Dùng ngôn ngữ lập trình lập nên chương trình
1. Khả năng suy nghĩ một cách Logic.
nhằm điều khiển máy tính làm việc.
2. Khả năng làm việc nhóm và một mình trong một khoảng thời gian.
• Lập trình viên (programmer) 3. Tính kiên nhẫn.
– Là người viết ra các chương trình máy tính. 4. Khả năng tự học cao.
Còn được gọi là người phát triển phần mềm (software developer). 7 8
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình 2
2. Giải thuật và biểu diễn giải thuật
2.1 Yêu cầu đối với giải thuật
• Giải thuật, thuật giải, thuật toán đều dùng • Tính dừng:
để chỉ một thuật ngữ tiếng Anh có tên là
– Một giải thuật bất kỳ phải đảm bảo dừng sau một ALGORITHM. số hữu hạn bước. • Tính đúng đắn:
• Là một dãy các câu lệnh chặt chẽ và rõ
– Giải thuật phải đảm bảo giải quyết bài toán một
ràng, xác định một trình tự thao tác trên
cách đúng đắn, cho kết quả “chính xác” và “đầy đủ” theo yêu cầu.
một đối tượng nào đó sao cho sau một số
• Tính đơn giản và hiệu quả:
bước hữu hạn thực hiện, ta thu được kết
– Đơn giản: Dễ hiểu, dễ lập trình. quả mong muốn.
– Hiệu quả: Tiêu tốn ít thời gian và tài nguyên máy tính 9 10
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình
2.2 Biểu diễn giải thuật
Phương pháp liệt kê từng bước • Liệt kê từng bước
• Tại mỗi bước, sử dụng ngôn ngữ tự nhiên
để diễn tả công việc phải làm.
• Sử dụng giả ngôn ngữ • Ưu nhược điểm: – Dễ hiểu, dễ làm • Sơ đồ khối
– Phụ thuộc vào “cách hành văn” của người diễn đạt
– Với những giải thuật phức tạp, cách diễn đạt này trở nên rườm rà. 11 12
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình 3
Phương pháp liệt kê từng bước (tt)
Diễn đạt giải thuật bằng giả ngôn ngữ
• Ví dụ: Giải phương trình bậc nhất
• Dựa trên ngôn ngữ lập trình bậc cao ax+b=0
• Gần với ngôn ngữ tự nhiên của con người Bước 1. Nhập a,b. • Ví dụ:
– Ngôn ngữ giả Pascal (tựa Pascal) có các ký pháp
Bước 2. Nếu a=0 và b=0 thì viết “Phương trình
khá giống với ngôn ngữ lập trình Pascal, được rút
nghiệm đúng với mọi x” rồi sang Bước 5.
gọn sao cho dễ diễn đạt.
Bước 3. Nếu a=0 và b # 0 thì viết “Phương trình
– Giả ngôn ngữ được đưa ra với mục đích diễn đạt
vô nghiệm” rồi sang Bước 5.
các giải thuật sao cho gần với ngôn ngữ lập trình và ngôn ngữ tự nhiên.
Bước 4. Nếu a # 0 thì tính x=-b/a rồi viết x là
– Sử dụng giả ngôn ngữ khiến việc chuyển từ giải nghiệm.
thuật sang chương trình dễ dàng hơn. Bước 5. Kết thúc 13 14
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình
Diễn đạt giải thuật bằng giả ngôn ngữ
Diễn đạt giải thuật bằng sơ đồ khối
• Ví dụ: Giải thuật tính tổng N số tự nhiên
• Sử dụng các hình khối để minh họa cho các đầu tiên lệnh hay thao tác.
• Sử dụng mũi tên để diễn đạt thứ tự thực hiện – Nhập N;
• Đây là cách diễn đạt khoa học, có tính nhất – i:=0; quán cao. – S:=0;
• Các hình khối cơ bản: – Lặp
– Khối bắt đầu và kết thúc • S:=S+i ;
– Khối thao tác cụ thể • i:=i+1;
– Khối kiểm tra điều kiện
– Đến khi (i>N); – Khối vào/ra dữ liệu – In S; 15 16
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình 4
Diễn đạt giải thuật bằng sơ đồ khối
Diễn đạt giải thuật bằng sơ đồ khối
– Khối bắt đầu và kết
Khối thực hiện công việc
• Ví dụ 1: Giải phương trình bậc nhất ax+b=0 thúc A Bắt đầu Phương pháp liệt kê Sơ đồ khối Bắt đầu Kết A thúc Bước 1. Nhập a,b. Nhập a, b
Bước 2. Nếu a=0 và b=0 thì viết “Phương trình nghiệm Sai a=0 Khối vào/ra dữ liệu
Khối kiểm tra điều kiện
đúng với mọi x” rồi sang Bước 5. Đúng
Bước 3. Nếu a=0 và b # 0 thì Đúng b=0 x:=-b/a viết “Phương trình vô Sai Điều Sai nghiệm” rồi sang Bước 5. kiện Pt vsn Pt vn Pt có nghiệm x
Bước 4. Nếu a # 0 thì tính x=-b/a Đúng rồi viết x là nghiệm. Bước 5. Kết thúc Kết thúc 17 18
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình
Diễn đạt giải thuật bằng sơ đồ khối
3. Các bước giải quyết bài toán
• Ví dụ 2: Giải thuật tính tổng N số tự nhiên đầu tiên • Thiết kế Bắt đầu Phương pháp giả mã Sơ đồ khối
– Phân tích, diễn đạt giải thuật để giải quyết vấn đề • Viết mã Nhập N; Nhập N i:=1;
– Viết đặc tả giải thuật bằng cú pháp của ngôn ngữ i:=0; lập trình S:=0; S:=0; Lặp
• Kiểm tra, thực thi, phát hiện lỗi Đúng i>N S:=S+i ;
– Tìm tất cả những lỗi phát sinh và chỉnh sửa lại Sai i:=i+1; S:=S+i; chương trình
Đến khi (i>N); i:=i+1; • Bảo trì In S; In S
– Cập nhật, sửa đổi theo yêu cầu sử dụng Kết thúc 19 20
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình 5 3.1 Phân tích bài toán 3.1 Phân tích bài toán • Vấn đề:
• Diễn đạt giải thuật: Sử dụng một trong 3 phương
pháp đã trình bày để diễn đạt.
• Ví dụ: Phương pháp liệt kê
– Giải phương trình bậc nhất: ax+b=0 Bước 1. Nhập a,b.
Bước 2. Nếu a=0 và b=0 thì viết “Phương trình ?
nghiệm đúng với mọi x” rồi sang Bước 5. ? ?
Bước 3. Nếu a=0 và b # 0 thì viết “Phương trình
vô nghiệm” rồi sang Bước 5.
Bước 4. Nếu a # 0 thì tính x=-b/a rồi viết x là Phương trình Phương trình có Phương trình nghiệm. có 1 nghiệm vô số nghiệm vô nghiệm Bước 5. Kết thúc 21 22
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình 3.2. Viết mã 3.2. Viết mã (tt)
• Chọn ngôn ngữ lập trình.
• Tạo khung chương trình trong ngôn ngữ lập trình C:
• Tạo khung chương trình: Sườn tổng
quát cho một chương trình.
• Chuyển đổi từng bước giải thuật thành mã lệnh tương ứng. 23 24
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình 6 3.2. Viết mã (tt)
3.3. Kiểm tra, thực thi, phát hiện lỗi
• Viết mã lệnh tương ứng với giải thuật:
• Chạy thử chương trình • Phát hiện lỗi
– Lỗi cú pháp: Vi phạm các quy tắc của ngôn ngữ lập trình
– Lỗi thời gian thực thi: Xảy ra lúc thực thi chương trình
– Lỗi logic: Lỗi do thiết kế giải thuật • Sửa lỗi 25 26
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình
3.3. Kiểm tra, thực thi, phát hiện lỗi (tt)
3.3. Kiểm tra, thực thi, phát hiện lỗi (tt) • Lỗi cú pháp:
• Lỗi thời gian thực thi:
– Đây là lỗi thường gặp nhất.
– Không được phát hiện cho đến khi chương
– Thông thường trình biên dịch đưa ra thông trình thực thi
báo lỗi để người lập trình xác định vị trí và sửa – Ví dụ: lại chương trình nguồn.
• Chia cho 0 sẽ làm cho chương trình dừng – Ví dụ: ? Lỗi
• Tính căn bậc hai của số âm float a,b,x – Cách khắc phục:
printf(“Nhap a,b: “);
• Dùng Debug để xác định vị trí lỗi. Declaration syntax error. 27 28
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình 7
3.3. Kiểm tra, thực thi, phát hiện lỗi (tt) 3.4. Bảo trì • Lỗi logic:
• Các chương trình trong thực tế được sử
– Chương trình được dịch và được thực thi nhưng cho kết quả không đúng. dụng nhiều năm.
– Đây là lỗi khó phát hiện nhất. – Nguyên nhân:
• Hiện tại chương trình đang thực thi tốt.
• Dùng dấu chấm phẩy sau: if, else, for, while, do…while
mà chưa thực hiện lệnh;
• Tuy nhiên, đến một thời điểm nào đó
• Không dùng cặp dấu ngoặc {} để bao khối lệnh;
chương trình sẽ không còn phù hợp do
• Khai báo sai kiểu dữ liệu;
• Phân tích thuật toán thiếu (chưa xét hết các trường
những yêu cầu mới phát sinh trong quá hợp) hoặc sai; – Cách khắc phục:
trình sử dụng chương trình.
• Có thể sử dụng dữ liệu mẫu và tính bằng tay rồi so sánh
với kết quả của chương trình.
• Phải cập nhật lại chương trình “bảo trì”
• Dùng Debug để xác định vị trí lỗi. 29 30
Chương I: Tổng quan Cơ sở lập trình
Chương I: Tổng quan Cơ sở lập trình 4. Bài tập
1. Xây dựng giải thuật bằng giả mã và sơ đồ khối để tìm
ước số chung lớn nhất của hai số nguyên dương a và b.
2. Xây dựng giải thuật bằng ngôn ngữ tự nhiên để tìm số
lớn nhất trong hai số nguyên dương a và b.
3. Xây dựng giải thuật giải phương trình bậc hai: ax2 + bx + c = 0
4. Xây dựng lưu đồ thuật toán tính chu vi, diện tích HCN biết 2 cạnh.
5. Xây dựng lưu đồ thuật toán tính chu vi, diện tích tam giác
(có kiểm tra điều kiện của 3 cạnh).
6. Xây dựng lưu đồ thuật toán tìm giá trị lớn nhất trong dãy số. 31
Chương I: Tổng quan Cơ sở lập trình 8