Nắm được kỹ thuật đệ qui và giải quyết được các bài toán đệ qui.. Phần mềm: là các chương trình được tạo ra nhằm phục vụ cho một yêu cầu nào đó trong thực tế của con người.. Lập t
Trang 2Cung cấp các kiến thức cơ bản về lập trình như:
Nắm vững và thao tác tốt trên hầu hết các dữ liệu cơ sở, kiểu
dữ liệu cấu trúc, các cấu trúc lệnh, ngay cả kiểu con trỏ
Đọc hiểu và thiết kế được các lưu đồ thuật toán.
Thiết kế và cài đặt được các thuật toán cơ bản.
Tổ chức chương trình rõ ràng và hiệu quả nhờ vào các hàm
tự định nghĩa
Nắm được kỹ thuật đệ qui và giải quyết được các bài toán đệ
qui
Xử lý và thao tác tốt trên các tập tin văn bản và nhị phân.
Có tư duy tốt và giải quyết được các bài toán thông qua ngôn
Trang 3 Đã học qua môn Nhập Môn Tin Học.
Kiến thức về cách sử dụng máy tính
Kiến thức về các hàm toán học.
Trang 4Phân bổ thời gian
Ghi Chú
Lý thuyết Thực hành Tự học
Trang 5 Tài liệu tham khảo:
[1] H M Deitel and P J Deitel, C++ How
to Program, Prentice-Hall, 3rd Edition,
2001
[2] GS Phạm Văn Ất, Lập trình C++, NXB
Trang 6Kiểm tra thường xuyên 10% Hằng tuần
Báo cáo tiểu luận 20% Sau mỗi chương
Yêu cầu đối với sinh viên:
• Dự lớp: lý thuyết trên 75% , thực hành bắt buộc 100%
• Bài tập: hoàn thành các bài tập trên lớp và ở nhà
• Tham gia đầy đủ các buổi thảo luận của nhóm và
hoàn thành tiểu luận
Trang 8Các khái niệm cơ bản
Trang 9 Phần mềm: là các chương trình được tạo ra nhằm phục
vụ cho một yêu cầu nào đó trong thực tế của con người.
Các khái niệm cơ bản
Trang 10 Khối Xuất – output.
Khối lưu trữ – storage
Trang 12 Lập trình máy tính
ngữ lập trình để tạo ra một chương trình máy tính
Thuật toán
Là tập hợp (dãy) hữu hạn các chỉ thị (hành động)
toán cụ thể nào đó
Trang 13• Phương trình có nghiệm duy nhất x = -b/a
Trang 14 Nhập (input): các giá trị nhập từ một tập hợp nhất định nào đó.
Xuất (output): các giá trị được nhập qua một thuật toán tạo ra
các giá trị xuất thuộc một tập hợp nhất định nào đó thể hiện lời
giải cho bài toán.
Tính xác định (definiteness): các bước trong thuật toán phải
chính xác, rõ ràng.
Tính hữu hạn (finiteness): thuật giải phải cho ra lời giải.
Tính hiệu quả: được đánh giá dựa trên một số tiêu chuẩn như
khối lượng tính toán, không gian và thời gian được sử dụng.
Tính tổng quát: thuật toán áp dụng được cho tất cả các bài
toán có dạng tương tự.
Tính đúng đắn: thuật toán phải cho kết quả đúng như yêu cầu
bài toán đặt ra.
Trang 15sắp xếp theo một trật tự xác định, nhằm giải quyết
yêu cầu của bài toán đặt ra
nào đó
khác nhau phải biên dịch lại dưới dạng mã máy
(object code) mà máy tính có thể hiểu được Việc
này được thực hiện bởi chương trình dịch
Trang 16Có 2 loại chương trình dịch:
sang mã máy và cho thực hiện ngay.
nguồn được dịch sang mã máy (tập tin.obj),
sau đó trình liên kết (linker) sẽ kết nối các
module chương trình để tạo thành tập tin EXE.
Trang 17Lựa chọnphương pháp giải
Cài đặtchương trình
Cài đặtchương trình
Hiệu chỉnhchương trình
Hiệu chỉnhchương trình
Xây dựngthuật toán/ thuật giải
Trang 18Ví dụ 1: Xây dựng giải thuật sau:
Nhập vào hai số.
Tính tổng, hiệu, tích của hai số.
Xuất tổng, hiệu, tích của hai số đó
Trang 19Ví dụ 2: Xây dựng giải thuật sau:
Nhập masv, hoten, điểm toán, lý, hóa của một sinh viên
Tính điểm trung bình = (Toan +Ly +Hoa)/3
Tính XepLoai như sau:
• Nếu Dtb >=8.5 thì xếp loại loại “Giỏi”
• Nếu Dtb<8.5 và Dtb>=7 thì xếp loại “Khá”
• Nếu Dtb<7 và Dtb>=5 thì xếp loại “Trung bình”
• Nếu Dtb<5 thì xếp loại là Yếu
In ra các thông tin của sinh viên đó gồm Masv, Họ tên,
điểm toán, điểm lý, điểm hóa, dtb, xếp loại
Trang 20Ví dụ 2: Xây dựng giải thuật sau:
Bước 1: Nhập masv, hoten, điểm toán, lý, hóa của một
Trang 21Chất lượng của một giải thuật có một số đặc điểm sau:
• Time requirement: thời gian yêu cầu để thực thi
chương trình Thời gian yêu cầu càng ít, giải thuật càng tốt hơn.
• Memory requirement: Yêu cầu bộ nhớ càng ít, giải
thuật càng tốt.
• Accuracy of solution: Giải thuật này có thể cho kết
quả chính xác hơn giải thuật kia.
• Generality: Mỗi giải thuật khái quát hóa có thể giải
quyết nhiều dữ liệu đầu vào khác nhau tốt hơn chỉ
Trang 22Ví dụ 1: Xây dựng giải thuật sau:
Nhập vào hai số.
Tính tổng, hiệu, tích của hai số.
Xuất tổng, hiệu, tích của hai số đó
Bước 3: Kết thúc
Vấn đề:
Tính thêm thương
Trang 23Ví dụ 1: Xây dựng giải thuật sau:
Nhập vào hai số.
Tính tổng, hiệu, tích của hai số.
Xuất tổng, hiệu, tích, thương của hai số đó
Giải thuật:
Bước 1: Nhập a, b Bước 2: Tính tong = a+b hieu = a-b
tich = a*b
thuong =a/b
Bước 3: Xuất tong, hieu, tich, thuong
Nếu b <>0 thì thuong =a/b
Trang 24Ví dụ 1: Xây dựng giải thuật sau:
Nhập vào hai số.
Tính tổng, hiệu, tích của hai số.
Xuất tổng, hiệu, tích, thương của hai số đó
Bước 4: Kết thúc
Trang 25Ví dụ 2: Xây dựng giải thuật sau:
Bước 1: Nhập masv, hoten, điểm toán, lý, hóa của một
Trang 26Ví dụ 2: Xây dựng giải thuật sau:
Bước 1: Nhập masv, hoten, điểm toán, lý, hóa của một
sinh viên
Bước 2: dtb = (Toan +Ly +Hoa)/3
Bước 3:
• Nếu Dtb >=8.5 thì xeploai = “Giỏi”
• Ngược lại Nếu Dtb>=7 thì xeploai= “Khá”
• Ngược lại Nếu Dtb>=5 thì xeploai= “Trung bình”
• Ngược lại thì xeploai=“Yeu”
Bước 4: In ra Masv, Họ tên, điểm toán, điểm lý, điểm hóa,
dtb, xếp loại
Bước 5: Kết thúc
Trang 27Ví dụ 2: Xây dựng giải thuật sau:
Bước 1: Nhập masv, hoten, điểm toán, lý, hóa của một
Trang 31Xuất Tong,Hieu, Tich
Flowchart của giải thuật tính Tổng, Hiệu, Tích của hai số
Trang 32Bắt đầu Nhập a,b
Tong=a+b Hieu=a-b Tich=a*b
Xuất Tong,Hieu,Tich
If (b<>0)
Thuong=a/b Xuất Thuong
Không tính được Thuong
Trang 33Bắt đầu
Nhập Masv, Hoten, Toan, Ly, Hoa Dtb = (Toan +Ly +Hoa)/3
Flowchart của giải thuật tính Tính DTb và xếp loại sinh viên
Trang 34Flowchart của giải thuật tính Tính DTb và xếp loại SV
If (Dtb>=7) XL=“Kha”
Xuất Thuong
If (Dtb>=8.5) XL=“Gioi”
If (Dtb>=5) XL=“TB”
XL=“Yeu”
Trang 35VC
Trang 36VC
Trang 37Xuất Thuong
Không tính được Thuong
Trang 382 Vẽ Flowchart cho giải thuật tính dtb và
xếp loại cho 50 sinh viên
Trang 40BB
Ngôn ngữ lập trình (Programing language): Tập hợp các qui tắc, các lệnh
công cụ giúp con người biểu diễn ý tưởng sao cho máy tính hiểu và
thực thi.
Các thành phần cơ bản của NNLT bao gồm:
Bộ kí tự (character set) gồm bảng chữ cái (a z), chữ số (0 9), ký tự
gạch nối(_), dấu cách dùng để viết chương trình.
Cú pháp (syntax) là bộ quy tắc để viết chương trình.
Ngữ nghĩa (semantic) xác định ý nghĩa các thao tác, hành động cần
phải thực hiện, ngữ cảnh (context) của các câu lệnh trong chương
trình.
Ngôn ngữ lập trình
Trang 41vào bộ nhớ và thực hiện ngay.
Trang 42Phân loại NNLT:
vào loại máy tính cụ thể
bộ kí tự phong phú hơn, và phải được chuyển đổi sang dạng mã máy để máy tính có thể hiểu được bằng chương trình dịch
Pascal, C, C++, Java, Smalltalk, Basic, Ruby, Fortran, Algol, Lisp, Prolog, Cobol, …
Trang 451 Thuật toán là gì? Trình bày các tính chất
quan trọng của một thuật toán?
2 Đặc điểm ngôn ngữ lập trình cấp thấp và
NNLT cấp cao.
3 Trình biên dịch và trình thông dịch là gì?
4 Các bước xây dựng chương trình?
5 Các cách biểu diễn thuật toán? Ưu và
khuyết điểm của từng phương pháp?
Trang 466 Nhập tên sản phẩm, số lượng và đơn giá Tính tiền
và thuế giá trị gia tăng phải trả, biết:
a tiền = số lượng * đơn giá
b thuế giá trị gia tăng = 10% tiền
Xuất Ten sản phẩm, số lượng, dơn giá,
tiền,thuế
Trang 477 Nhập điểm thi và hệ số 3 môn Toán, Lý, Hóa của
một sinh viên Tính điểm trung bình của sinh viên
đó
8 Nhập bán kính của đường tròn Tính chu vi và diện
tích của hình tròn đó
9 Nhập vào số xe (gồm 4 chữ số) của bạn Cho biết
số xe của bạn được mấy nút?
10 Nhập vào 2 số nguyên
Tính min và max của hai số đó
Trang 48Bắt đầu
Nhập năm sinh
Tính Tuổi = 2008 – năm
sinh Xuất Tuổi
Kết thúc
Trang 49Xuất Tổng, Hiệu, Tích, Thương
Trang 50Bắt đầu
Nhập Tên sản phẩm
Số lượng Đơn giá
Tính Tiền = Số lượng * Đơn giá
VAT= Tiền * 0.1
Xuất Tiền và VAT
Trang 51Bắt đầu
Nhập Điểm T, L, H
Hệ số T, Hệ số L, Hệ số H
Tính ĐTB = (T*HsT + L*HsL + H*HsH) /
(HsT + HsL + HsH)
Xuất ĐTB
Trang 52Bắt đầu
Nhập Bán kính R
Tính
PI = 3.1415 Chu vi = 2*PI*R Diện tích = PI*R*R
Xuất Chu vi và Diện tích
Trang 54a min, b max