Số tín chỉ: 3
Giảng viên: Ths. Đinh Thị Hà
Bộ môn Tin học
Email:
Phone: 0947830983
7-2010 Cơ sở lập trình
1
Chương 1: Kỹ thuật lập trình cơ bản
Chương 2: Lập trình căn bản trên C
Chương 3: Mảng, xâu và con trỏ
Chương 4: Hàm và macro
Chương 5: Kiểu dữ liệu có cấu trúc
7-2010 Cơ sở lập trình
2
[1] Đỗ Xuân Lôi – Cấu trúc dữ liệu và giải thuật – Nhà xuất bản
Khoa học và Kỹ thuật.
[2] Nguyễn Minh San – Cẩm nang lập trình, tập 1 & 2 – Nhà xuất
bản Giáo dục, 1996.
[3] Quách Tuấn Ngọc – Ngôn ngữ lập trình C – Nhà xuất bản
Thống kê, 2003.
[4] Bùi Thế Tâm – Giáo trình TURBO C/C++ – Nhà xuất bản Giao
thông vận tải, 2003.
[5] Phạm Văn Ất – Lập trình C, Nhà xuất bản Giáo dục, 2007.
7-2010 Cơ sở lập trình
3
1.1 Thuật toán
1.2 Sơ đồ khối
1.3 Chương trình và ngôn ngữ lập trình
1.4 Các phương pháp lập trình
1.5 Kỹ thuật thiết kế chương trình
7-2010 Cơ sở lập trình
4
1.1.1 Khái niệm
1.1.2 Tính chất của thuật toán
1.1.3 Ví dụ
7-2010 Cơ sở lập trình
5
Khái niệm 1: Thuật toán là một dãy hữu hạn các bước được
sắp xếp theo một trật tự xác định, mỗi bước mô tả chính xác
các phép toán hoặc hành động cần thực hiện, để giải quyết
một vấn đề.
Khái niệm 2: Thuật toán là một dãy hữu hạn các thao tác,
sắp xếp theo một trật tự xác định, sau khi thực hiện, từ Input
ta nhận được Output cần tìm.
7-2010 Cơ sở lập trình
6
Tính vào (input)
Tính ra (output)
Tính đơn định (xác định / đơn nghĩa)
Tính đúng đắn
Tính dừng (tính kết thúc / tính đóng)
Tính phổ dụng
Tính khả thi/hiệu quả
7-2010 Cơ sở lập trình
7
Tìm UCLN của 2 số nguyên dương
Kiểm tra tính nguyên tố của một số nguyên dương
Tìm giá trị lớn nhất của một dãy số nguyên
7-2010 Cơ sở lập trình
8
1.2.1 Khái niệm
1.2.2 Các cấu trúc điều khiển
1.2.3 Ví dụ
7-2010 Cơ sở lập trình
9
Khái niệm 1: Sơ đồ khối là tập hợp các ký hiệu và quy tắc
dùng để biểu diễn thuật toán
Khái niệm 2: Sơ đồ khối là cách thể hiện thuật toán bằng các
hình khối hình học nối với nhau bằng đường đi có hướng
Các thành phần:
−
Hình thoi: thể hiện thao tác so sánh
−
Hình chữ nhật: thể hiện các phép tính toán
−
Hình bình hành: thể hiện thao tác nhập xuất dữ liệu
−
Hình oval: thể hiện sự bắt đầu/kết thúc của thuật toán.
−
Các mũi tên: thể hiện trình tự thực hiện các thao tác
7-2010 Cơ sở lập trình
10
Các khối
7-2010 Cơ sở lập trình
11
Khối Vào/Ra
Vào/ra a
Hướng thực hiện.
KT
Khối kết thúc
X=-b/a
Khối tính toán
Khối bắt đầu
BĐ
a=0
Khối kiểm tra điều kiện
Sơ đồ khối dạng tuần tự: Là sơ đồ khối thể hiện thuật toán gồm n
khối mà khi thực hiện thuật toán với một bộ dữ liệu cụ thể sẽ lần
lượt thực hiện từ khối đầu tiên đến khối cuối cùng theo thứ tự viết
của nó.
Sơ đồ khối dạng rẽ nhánh: Là sơ đồ khối thể hiện thuật toán gồm n
nhánh mà khi thực hiện thuật toán với một bộ dữ liệu cụ thể sẽ
thực hiện một trong n nhánh mà thôi.
Sơ đồ khối dạng chu trình: Là sơ đồ khối thể hiện thuật toán gồm n
khối mà khi thực hiện thuật toán với một bộ dữ liệu cụ thể sẽ có
một số khối lặp đi lặp lại nhiều lần phụ thuộc vào một điều kiện nào
đó vẫn thỏa mãn.
7-2010 Cơ sở lập trình
12
Làm việc với dãy số nguyên:
Tìm giá trị lớn nhất của dãy
Tính tổng các phầns tử của dãy mà chia hết cho 3
7-2010 Cơ sở lập trình
13
1.3.1 Chương trình
1.3.2 Ngôn ngữ lập trình
1.3.3 Trình tự giải bài toán trên MTĐT
1.3.4 Đánh giá chương trình MTĐT
7-2010 Cơ sở lập trình
14
Khái niệm: Chương trình là một tập hợp các lệnh để thể hiện
một thuật toán giải quyết một bài toán hay một nhiệm vụ
nào đó. Trong đó:
Lệnh: là một chỉ thị để máy tính có thể thực hiện một cách
tự động.
7-2010 Cơ sở lập trình
15
Khái niệm: Ngôn ngữ lập trình là ngôn ngữ để viết chương
trình.
Phân loại: (phụ thuộc vào kiến trúc và hoạt động của máy
tính)
Ngôn ngữ máy (ngôn ngữ bậc thấp)
Ngôn ngữ hợp ngữ
Ngôn ngữ bậc cao
7-2010 Cơ sở lập trình
16
Bước 1: Xác định bài toán
Bước 2: Tìm cấu trúc biểu diễn bài toán
Bước 3: Chọn phương pháp giải
Bước 4: Lập trình giải bài toán
Bước 5: Thử nghiệm chương trình
Bước 6: Tối ưu chương trình (bảo trì)
7-2010 Cơ sở lập trình
17
Mục tiêu: xây dựng chương trình tốt, có chất lượng
Tiêu chuẩn đánh giá:
Tính đúng đắn: chương trình phải thực hiện đúng và đầy
đủ các nhiệm vụ mà bài toán đặt ra.
Tính bền vững: có khả năng hoạt động tốt ngay cả trong
những điều kiện bất bình thường.(khi đặc tả hệ thống
không lường hết các tình huống)
7-2010 Cơ sở lập trình
18
Tính sử dụng lại: các thành phần của nó có thể sử dụng lại
trong các chương trình khác.
Tính có thể mở rộng (thích nghi): chương trình dễ sửa đổi,
bổ sung để thích nghi với những thay đổi của bài toán
theo yêu cầu của người dùng.
Tính tương thích: có thể dễ dàng kết hợp, trao đổi với
nhiều chương trình hệ thống phần mềm khác
Tính hiệu quả: chi phí thấp (xây dựng, vận hành,…, đào
tạo, huấn luyện sử dụng, tài nguyên máy tính: không gian
và thời gian)
7-2010 Cơ sở lập trình
19
Tính dễ chuyển đổi: có thể chuyển sang thực hiện trên
phần cứng mới hoặc môi trường phần mềm (hệ điều
hành) khác.
Tính an toàn: bảo vệ được quyền truy cập, đảm bảo
không cho người không được phép truy cập, sửa đổi và
làm hư hại thông tin
Thân thiện với người sử dụng: tin cậy và trình độ sử dụng
tỉ lệ thuận với những công sức đầu tư học và sử dụng nó
trong thực tế.
7-2010 Cơ sở lập trình
20
1.3.4 Đánh giá chương trình MTĐT
1.4.1 Lập trình hướng thủ tục
1.4.2 Lập trình hướng đối tượng
7-2010 Cơ sở lập trình
21
Tư tưởng: Chia nhỏ bài toán cho đến khi không còn chia
nhỏ được nữa từ đó xây dựng cấu trúc dữ liệu và các
hàm, thủ tục để giải các bài toán con.
Tổ chức chương trình thành các chương trình con (hàm
và thủ tục).
Trong đó: hàm là một đơn vị chương trình độc lập dùng để
thực hiện một phần việc nào đó như: nhập số liệu, in kết
quả hoặc thực hiện một số tính toán. Hàm có thể có biến
và tham số của nó.
Ví dụ: C, Pascal, Foxpro
7-2010 Cơ sở lập trình
22
7-2010 Cơ sở lập trình
23
Chương trình chính
Hàm_1
Hàm_2
Hàm_3
Hàm_4 Hàm_5
Hàm_6
Hàm_7
Hàm_8
Hàm_9
Ví dụ: sơ đồ tổ chức chức năng của nhà cơ quan, Bài toán
về dãy sốchức năng/hàm?
7-2010 Cơ sở lập trình
24
Đặc điểm:
Tập trung vào công việc cần thực hiện (thuật toán)
Chương trình lớn được chia thành các hàm nhỏ hơn.
Phần lớn các hàm sử dụng dữ liệu chung
Các hàm (thủ tục) truyền thông tin cho nhau thông qua
cơ chế truyền tham số.
Dữ liệu trong hệ thống được chuyển động từ hàm này
sang hàm khác.
Đóng gói chức năng (sử dụng hàm/thủ tục mà không
cần biết nội dung cụ thể)
Chương trình được thiết kế theo cách tiếp cận từ trên
xuống (top - down)
7-2010 Cơ sở lập trình
25