Upload
others
View
22
Download
0
Embed Size (px)
Citation preview
BỘ NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔN
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ VÀ NÔNG LÂM NAM BỘ
------- -------
BÀI GIẢNG
LẬP TRÌNH CĂN BẢN
Mã số: MĐ 13
NGHỀ: CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ THÔNG TIN Địa chỉ: QL 1K, Phường Bình An, TX. Dĩ An, Tỉnh Bình Dương
Email: [email protected].
[Lưu hành nội bộ]
-2018-
GIỚI THIỆU.
Lập trình căn bản là mô đun cơ sở bắt buộc cho ngành học công nghệ thông tin nói
chung và cho ngành công nghệ thông tin của Trường Cao Đẳng Công Nghệ và Nông
Lâm Nam Bộ nói riêng. Theo phân bổ chương trình đào tạo nghề mô đun được giảng
dạy với thời lượng 60 tiết gồm các phần sau:
- Tổng quan về ngôn ngữ lập trình.
- Các thành phần cơ bản.
- Các lệnh cấu trúc.
- Hàm.
- Kiểu mảng.
- Chuỗi ký tự.
- Biến con trỏ.
- Kiểu cấu trúc (Struct).
- Kiểu tập tin (File)
Học sinh-sinh viên cùng quí đọc giả sẽ nắm bắt được các bước lập trình căn bản,
bản chất của một chương trình giả lập trên máy tính thông qua giải thuật và cấu trúc dữ
liệu. Phần đầu bài giảng thể hiện được các phương tiện xây dựng một giải thuật thông
qua các thành phần cơ bản của trình biên dịch, các lệnh có cấu trúc, các hàm xây dựng
sẵn hoặc do người lập trình định nghĩa. Cấu trúc dữ liệu được trình bày ở phần cuối bao
gồm các bài về mảng, chuỗi ký tự, kiểu con trỏ, kiểu dữ liệu có cấu trúc và kiểu tập tin.
Bài giảng được biên soạn lần đầu tiên nên không tránh khỏi sự thiếu sót và tham
khảo từ nhiều nguồn tài liệu khác. Mọi thắc mắc hoặc đóng góp ý kiến xin liên hệ theo
địa chỉ email: [email protected]; Khoa Công Nghệ Thông Tin, Trường Cao Đẳng
Công Nghệ & Nông Lâm Nam Bộ, địa chỉ: QL 1K, Phường Bình An, TX. Dĩ An,
Tỉnh Bình Dương.
Chân thành cảm ơn !
Bình Dương, ngày 01 tháng 8 năm 2018
Nhóm biên soạn
3
TỪ VIẾT TẮT
BPC Biểu đồ phân cấp chức năng, còn viết là
Functional Hierarchical Decomposition Diagram (FHD)
BFD Mô hình phân rã chức năng (Business Function Diagram)
CNTT Công nghệ thông tin.
CSDL Cơ sở dữ liệu.
DFD Sơ đồ luồng dữ liệu (Data Flow Diagram).
BLD Biểu đồ luồng dữ liệu
DL Dữ liêu.
E-R Thực thể - M ối quan hệ.
HT Hệ thống.
HTTT Hệ thống thông tin.
HSDL Hồ sơ dữ liệu.
K T - X H Kinh tế - xã hội.
LDT Luồng dữ liệu.
NSD Người sử dụng.
P T - T K Phân tích và thiết kế
X L Xử lý.
MỤC LỤC GIỚI THIỆU. .............................................................................................................................. 1
MỤC LỤC ................................................................................................................................... i
Chương 1. ĐẠI CƯƠNG VỀ HỆ THỐNG THÔNG TIN QUẢN LÝ .. Error! Bookmark not
defined.
1.1. HỆ THỐNG THÔNG TIN QUẢN LÝ. ........................ Error! Bookmark not defined.
1.1.1. Khái niệm về thông tin, hệ thống thông tin. ........... Error! Bookmark not defined.
1.1.2. Nhiệm vụ và vai trò của hệ thống thông tin. .......... Error! Bookmark not defined.
1.1.3. Thành phần của Hệ thống thông tin: ...................... Error! Bookmark not defined.
1.1.4. Các đặc trưng của Hệ thống thông tin: .................. Error! Bookmark not defined.
1 2. CÁC HỆ THỐNG THÔNG TIN THÔNG DỤNG. ...... Error! Bookmark not defined.
1.2.1. Hệ xử lý tác nghiệp (TPS: Transaction Processing Systems). .. Error! Bookmark
not defined.
1.2.2. Hệ thống thông tin quản lý (MIS:Management Information Systems). .... Error!
Bookmark not defined.
1.2.3. Hệ hỗ trợ ra quyết định (DSS: Decision Support Systems). .... Error! Bookmark
not defined.
1.2.4. Hệ thống thông tin tổng thể trong tổ chức hoạt động. ....... Error! Bookmark not
defined.
1.2.5. Qúa trình phát triển hệ thống thông tin: ................ Error! Bookmark not defined.
1.3. CÁC THÀNH PHẦN MỘT HỆ THỐNG THÔNG TIN. ............ Error! Bookmark not
defined.
1.3.1. Hệ thống trang thiết bị. ............................................ Error! Bookmark not defined.
1.3.2. Hệ thống phần mềm máy tính. ................................ Error! Bookmark not defined.
1.3.3. Hệ thống dữ liệu. ....................................................... Error! Bookmark not defined.
1.3.4. Sự quản lý vận hành hệ thống. ................................ Error! Bookmark not defined.
1.4. XÂY DỰNG THÀNH CÔNG MỘT DỰ ÁN CNTT. .. Error! Bookmark not defined.
1.4.1. Bước 1: Phát triển kế hoạch sơ khởi, giải thích với những người liên quan về
tầm quan trọng và thảo luận các thành phần trọng điểm của dự án. Error! Bookmark
not defined.
1.4.2. Bước 2: Xác định vai trò và nhiệm vụ .................... Error! Bookmark not defined.
1.4.3. Bước 3: Xác định phát triển phạm vi của dự án .... Error! Bookmark not defined.
1.4.4. Bước 4: Phát triển chi tiết của phạm vi dự án. ...... Error! Bookmark not defined.
1.4.5. Bước 5: Bắt đầu dự án. ............................................ Error! Bookmark not defined.
1.4.6. Bước 6: Phát triển lịch trình dự án. ........................ Error! Bookmark not defined.
1.4.7. Bước 7: Phát triển kế hoạch sử dụng nhân sự. ...... Error! Bookmark not defined.
1.4.8. Bước 8: Phân tích chất lượng và rủi ro cho dự án. Error! Bookmark not defined.
1.4.9. Bước 9: Phát triển kế hoạch truyền thông. ............ Error! Bookmark not defined.
ii
1.4.10. Bước 10: Tạo ra bản baseline cho kế hoạch dự án và truyền thông. ....... Error!
Bookmark not defined.
1.5. MỘT SỐ PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ. . Error! Bookmark not defined.
1.5.1. Phương pháp thiết kế hệ thống cổ điển (thiết kế phi cấu trúc) . Error! Bookmark
not defined.
1.5.2. Phương pháp phân tích thiết kế hệ thống bán cấu trúc. ..... Error! Bookmark not
defined.
1.5.3. Phương pháp phân tích thiết kế hệ thống có cấu trúc. ........ Error! Bookmark not
defined.
1.6.1. Chiến lược và khảo sát. ............................................. Error! Bookmark not defined.
1.6.2. Phân tích hệ thống..................................................... Error! Bookmark not defined.
1.6.3. Thiết kế hệ thống. ...................................................... Error! Bookmark not defined.
1.6.4. Xây dựng. ................................................................... Error! Bookmark not defined.
1.6.5. Kiểm thử và tích hợp hệ thống. ............................... Error! Bookmark not defined.
1.6.6. Cài đặt, vận hành và bảo trì hệ thống. .................... Error! Bookmark not defined.
Chương 2. KHẢO SÁT HIỆN TRẠNG HỆ THỐNG ............. Error! Bookmark not defined.
2.1. PHƯƠNG PHÁP MÔ HÌNH HOÁ HỆ THỐNG. ......... Error! Bookmark not defined.
2.1.1. Các phương pháp mô hình hóa. ............................... Error! Bookmark not defined.
2.1.2. Ba thành phần cơ bản của một phương pháp. ....... Error! Bookmark not defined.
2.1.3. Các phương pháp mô hình hóa. ............................... Error! Bookmark not defined.
2.2. NỘI DUNG NGHIÊN CỨU VÀ ĐÁNH GIÁ HIỆN TRẠNG. .. Error! Bookmark not
defined.
2.2.1. Mục đích..................................................................... Error! Bookmark not defined.
2.2.2. Nội dung nghiên cứu và đánh giá hiện trạng.......... Error! Bookmark not defined.
2.3. CÁC NGUỒN ĐIỀU TRA VÀ MỘT SỐ PHƯƠNG PHÁP KHẢO SÁT THƯỜNG
DÙNG. .................................................................................. Error! Bookmark not defined.
2.3.1. Các nguồn điều tra. ................................................... Error! Bookmark not defined.
2.3.2. Một số phương pháp khảo sát thường dùng. .......... Error! Bookmark not defined.
2.4. XÂY DỰNG DỰ ÁN. ................................................... Error! Bookmark not defined.
2.4.1. Lập hồ sơ về điều tra và xác lập giải pháp.............. Error! Bookmark not defined.
2.4.2. Dự trù về thiết bị. ...................................................... Error! Bookmark not defined.
2.4.3. Kế hoạch triển khai dự án. ....................................... Error! Bookmark not defined.
2.5. GIỚI THIỆU NGHIÊN CỨU HIỆN TRANG MỘT SỐ HỆ THỐNG THÔNG TIN
PHỔ BIẾN. ........................................................................... Error! Bookmark not defined.
2.5.1. Hệ thống thông tin "Quản lý kho hàng"................. Error! Bookmark not defined.
2.5.2. Hệ thống thông tin " Quản lý công chức" .............. Error! Bookmark not defined.
2.5.3. Hệ thống thông tin "Quản lý đào tạo" .................... Error! Bookmark not defined.
Chương 3. PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG ....... Error! Bookmark not defined.
iii
3.1. SƠ ĐỒ CHỨC NĂNG NGHIỆP VỤ. ........................... Error! Bookmark not defined.
3.1.1. Định nghĩa mô hình phân rã chức năng. ................ Error! Bookmark not defined.
3.1.2. Các thành phần của mô hình phân rã chức năng. . Error! Bookmark not defined.
3.2. SƠ ĐỒ DÒNG DỮ LIỆU. ............................................. Error! Bookmark not defined.
3.2.1. Mục đích. ................................................................... Error! Bookmark not defined.
3.2.2. Định nghĩa ................................................................. Error! Bookmark not defined.
3.2.3. Các thành phần của mô hình dòng dữ liệu ............ Error! Bookmark not defined.
3.2.4. Một số quy tắc ........................................................... Error! Bookmark not defined.
3.2.5. Trình tự xây dựng sơ đồ dòng dữ liệu .................... Error! Bookmark not defined.
3.2.6. Chuyển từ mô hình luồng dữ liệu vật lý sang mô hình luồng dữ liệu logic . Error!
Bookmark not defined.
3.2.7. Chuyển từ mô hình luồng dữ liệu của hệ thống cũ sang mô hình luồng dữ liệu
của hệ thống mới ................................................................. Error! Bookmark not defined.
3.2.8. Hoàn chỉnh mô hình dòng dữ liệu............................ Error! Bookmark not defined.
3.3. ĐẶC TẢ TIẾN TRÌNH. ................................................ Error! Bookmark not defined.
3.3.1. Mục đích và yêu cầu đặc tả chức năng ................... Error! Bookmark not defined.
3.3.2. Các phương tiện đặc tả chức năng .......................... Error! Bookmark not defined.
Chương 4. PHÂN TÍCH HỆ THỐNG VỀ DỮ LIỆU .............. Error! Bookmark not defined.
4.1. PHƯƠNG TIỆN MÔ TẢ DỮ LIỆU. ............................ Error! Bookmark not defined.
4.1.1. Mã hóa dữ liệu .......................................................... Error! Bookmark not defined.
4.1.2. Từ điển dữ liệu .......................................................... Error! Bookmark not defined.
4.2. XÂY DỰNG MÔ HÌNH THỰC THỂ LIÊN KẾT. ....... Error! Bookmark not defined.
4.2.1. Các khái niệm ........................................................... Error! Bookmark not defined.
4.2.2. Đặc tả mối quan hệ giữa hai kiểu thực thể ............. Error! Bookmark not defined.
4.2.3. Mô hình thực thể liên kết mở rộng và hạn chế ...... Error! Bookmark not defined.
4.2.4. Các phương pháp xây dựng mô hình ...................... Error! Bookmark not defined.
4.3. CHUYỂN ĐỔI SANG MÔ HÌNH QUAN HỆ DỮ LIỆU. .......... Error! Bookmark not
defined.
4.3.1. Một số khái niệm ...................................................... Error! Bookmark not defined.
4.3.2. Chuẩn hóa quan hệ ................................................... Error! Bookmark not defined.
4.3.3. Phương pháp lập lược đồ dữ liệu theo mô hình ..... Error! Bookmark not defined.
Chương 5. THIẾT KẾ HỆ THỐNG ......................................... Error! Bookmark not defined.
5.1. THIẾT KẾ TỔNG THỂ. ............................................... Error! Bookmark not defined.
5.1.1. Phân định hệ thống máy tính và hệ thống thủ công ............ Error! Bookmark not
defined.
5.1.2. Xác định các hệ thống con máy tính. ...................... Error! Bookmark not defined.
5.1.3. Sơ đồ luồng dữ liệu hệ thống ................................... Error! Bookmark not defined.
iv
5.2. THIẾT KẾ GIAO DIỆN NGƯỜI – MÁY. .................... Error! Bookmark not defined.
5.2.1. Thiết kế giao diện hướng đối thoại .......................... Error! Bookmark not defined.
5.2.2. Thiết kế màn hình ..................................................... Error! Bookmark not defined.
5.2.3. Thiết kế báo cáo......................................................... Error! Bookmark not defined.
5.3. THIẾT KẾ KIỂM SOÁT ............................................... Error! Bookmark not defined.
5.3.1. Kiểm soát dữ liệu vào/ra ........................................... Error! Bookmark not defined.
5.3.2. Kiểm soát các sự cố làm gián đoạn chương trình .. Error! Bookmark not defined.
5.3.3. Kiểm soát xâm phạm từ con người .......................... Error! Bookmark not defined.
5.4. THIẾT KẾ CHƯƠNG TRÌNH ...................................... Error! Bookmark not defined.
5.4.1. Thiết kế cấu trúc chương trình ................................ Error! Bookmark not defined.
5.4.2. Đặc tả modul .............................................................. Error! Bookmark not defined.
TÀI LIỆU THAM KHẢO ......................................................... Error! Bookmark not defined.
THUẬT NGỮ SỬ DỤNG ..................................................................................................... 191
A ......................................................................................................................................... 191
B ......................................................................................................................................... 192
C ......................................................................................................................................... 192
D ......................................................................................................................................... 194
E ......................................................................................................................................... 196
F ......................................................................................................................................... 197
G ......................................................................................................................................... 198
H ......................................................................................................................................... 198
I .......................................................................................................................................... 198
K ......................................................................................................................................... 199
L ......................................................................................................................................... 200
M ........................................................................................................................................ 200
N ......................................................................................................................................... 201
O ......................................................................................................................................... 201
P ......................................................................................................................................... 202
R ......................................................................................................................................... 204
S ......................................................................................................................................... 204
T ......................................................................................................................................... 207
U ......................................................................................................................................... 208
V ......................................................................................................................................... 208
W ........................................................................................................................................ 208
1
NỘI DUNG TỔNG QUÁT VÀ PHÂN BỐ THỜI GIAN MÔ – ĐUN
Số
TT
Tên các bài trong mô đun Thời gian
Tổng
số
Lý
thuyết
Thực
hành
Kiểm
tra*
1 Mở đầu: Giới thiệu mô đun Lập trình căn
bản.
2 Tổng quan về ngôn ngữ lập trình. 2 2
3 Các thành phần cơ bản. 7 2 5
4 Các lệnh cấu trúc. 12 4 7 1
5 Hàm. 10 3 7
6 Kiểu mảng. 10 3 7
7 Chuỗi ký tự. 8 2 5 1
8 Biến con trỏ. 5 2 3
9 Kiểu cấu trúc (Struct). 3 1 2
10 Kiểu tập tin (File) 3 1 2
Cộng 60 20 38 2
* Ghi chú: Thời gian kiểm tra được tích hợp giữa lý thuyết với thực hành được tính vào
giờ thực hành.
2
THIẾT BỊ - DỤNG CỤ - VẬT LIỆU (CỦA MÔ - ĐUN)
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 80
III VẬT LIỆU
1 Các phương thức,
các cấu trúc lệnh, ...
byte
2 Cấu trúc dữ liệu byte
3
Bài 1.
NGÔN NGỮ LẬP TRÌNH VÀ PHƯƠNG PHÁP LẬP TRÌNH
A. MỤC TIÊU.
- Trình bày được các nét cơ bản về ngôn ngữ lập trình, các bước lập trình, kỹ thuật
lập trình.
- Ứng dụng được các kiến thức nói trên vài các bài tập.
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo.
B. DỤNG CỤ - THIẾT BỊ - VẬT LIỆU.
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 3
III VẬT LIỆU
1 Các cấu trúc lệnh, ... byte
2 Cấu trúc dữ liệu byte
4
C. NỘI DUNG.
1.1. NGÔN NGỮ LẬP TRÌNH (ProgrammingLanguage)
- Thuật giải (Algorithm)
Thuật giải là một tập các thao tác hữu hạn trên một đối tượng cụ thể nhằm đạt được
những mục tiêu ban đầu . R.A.Kowalski có nói:
+ Logic: Thể hiện tính thống nhất và liên hệ chặt chẽ giữa các mặt trong một sự
vật, sự việc. Ở đây muốn nói tính logic của một quá trình giải quyết bài toán là bao gồm
các bước thực hiện theo một trình tự hợp lí và tương quan đúng đắn giữa chúng
+ Điều khiển: Các cách thể hiện tính logic ấy của các mặt trong một đối tượng.
- Chương trình (Program)
Là một tập hợp các mô tả, các phát biểu, nằm trong một hệ thống qui ước về ý nghĩa
và thứ tự thực hiện, nhằm điều khiển máy tính làm việc. Theo Niklaus Wirth thì:
- Các loại lệnh trong một chương trình:
+ Tuần tự (Sequential): Các lệnh thực hiện tuần tự chính xác từ trên xuống. Các
lệnh chỉ thực hiện đúng một lần.
+ Chọn lọc (Selection): Chọn một trong hai hay nhiều khối lệnh để thực thi.
+ Lặp lại (Repetition): Một khối lệnh được thực hiện lại một số lần.
- Lập trình viên cần tuân theo các bước sau:
- Ngôn ngữ lập trình (Programming language)
Ngôn ngữ lập trình là hệ thống các ký hiệu tuân thủ các qui ước về ngữ pháp và ngữ
nghĩa, nhằm xây dựng các chương trình trên máy tính.
Thuật giải = Logic + Điều khiển
Chương trình = Thuật giải + Cấu trúc dữ
liệu
5
Chương trình nguồn là chương trình được soạn thảo trên các ngôn ngữ lập trình nhất
định như Pascal, C…Chương trình dịch sẽ biện dịch chương trình nguồn này thành
chương trình thực thi được trên máy.
1.2. CÁC BƯỚC LẬP TRÌNH
Việc lập trình cần tuân theo các bước sau:
Bước 1: Phân tích đối tượng (vấn đề) và xác định được các đặc điểm. (Xác định
Input-Process-Output)
Bước 2: Đưa ra các giải pháp. (các thuật giải)
Bước 3: Cài đặt. (viết chương trình)
Bước 4: Dịch chương trình.
Bước 5: Thực nghiệm (Kiểm chứng) và hoàn thiện chương trình.
1.3. KỸ THUẬT LẬP TRÌNH
- Qúa trình nhập - xử lý - xuất
Qúa trình xử lý của máy tính gồm I-P-O.
+ Input là đầu vào quá trình xử lý (Process).
+ Output kết quả của quá trình xử lý.
Ví dụ 1: Xác định Input, Process, Output của việc làm 1 ly nước chanh nóng
Input : ly, đường, chanh, nước nóng, muỗng.
Process : - Cho hỗn hợp đường, chanh, nước nóng vào ly.
- Dùng muỗng khuấy đều.
Output : ly chanh nóng đã sẵn sàng để dùng.
Trình tự thực hiện:
TT BƯỚC CÔNG VIỆC THỰC HIỆN PHƯƠNG TIỆN
1 Xác định input Ly, đường, chanh, nước nóng,
muỗng.
Cách thức xác
định input.
2 Xác định process - Cho hỗn hợp đường, chanh,
nước nóng vào ly.
- Dùng muỗng khuấy đều.
Cách thức xác
định quá trình xử
lý.
3 Xác định output Ly chanh nóng đã sẵn sàng để
dùng.
Cách thức xác
định output.
Process
6
Ví dụ 2: Xác định Input, Process, Output của chương trình tính tiền lương công nhân
tháng 10/2002 biết rằng lương = lương căn bản * ngày công
Input : lương căn bản, ngày công
Process : nhân lương căn bản với ngày công
Output : lương
Trình tự thực hiện
TT BƯỚC CÔNG VIỆC THỰC HIỆN PHƯƠNG TIỆN
1 Xác định input Lương căn bản, ngày công. Cách thức xác
định input.
2 Xác định process Nhân lương căn bản với ngày
công.
Cách thức xác
định quá trình xử
lý.
3 Xác định output Lương. Cách thức xác
định output.
Ví dụ 3: Xác định Input, Process, Output của chương trình giải phương trình bậc
nhất
ax + b = 0
Input : hệ số a, b
Process : chia - b cho a
Output : nghiệm x
Trình tự thực hiện
TT BƯỚC CÔNG VIỆC THỰC HIỆN PHƯƠNG TIỆN
1 Xác định input Hệ số a, b. Cách thức xác
định input.
2 Xác định process Chia - b cho a. Cách thức xác
định quá trình xử
lý.
3 Xác định output Nghiệm x. Cách thức xác
định output.
Ví dụ 4: Xác định Input, Process, Output của chương trình tìm số lớn nhất của 2 số
a và b.
Input : a, b
7
Process : Nếu a > b thì Output = a lớn nhất
Ngược lại Output = b lớn nhất
Trình tự thực hiện
TT BƯỚC CÔNG VIỆC THỰC HIỆN PHƯƠNG TIỆN
1 Xác định input a, b Cách thức xác
định input.
2 Xác định process Nếu a > b thì Output = a lớn nhất
Ngược lại Output = b lớn nhất
Cách thức xác
định quá trình xử
lý.
3 Xác định output Giá trị lớn nhất. Cách thức xác
định output.
- Sử dụng lưu đồ (Flowchart)
Để dễ hơn về quy trình xử lý, các nhà lập trình đưa ra dạng lưu đồ để minh họa từng
bước quá trình xử lý một vấn đề (bài toán).
9
(*) Chú ý về an toàn.
- Tuân thủ nội quy phòng máy.
- Dữ liệu lưu trữ trên máy tính gọn gàng, khoa học
10
(*) Những sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục
TT Sai hỏng thường gặp Nguyên nhân Biện pháp khắc phục
1 Không nắm rõ yêu cầu
bài toán.
Kĩ năng phân tích bài toán
hạn chế.
Xác định được input,
output và proccessing
2 Không phân biệt được
giải thuật, cấu trúc dữ
liệu.
Cơ sở lí luận, kiến thức toán
học, kiến thức bộ nhớ chính
còn hạn chế.
Củng cố lại kiến thức
toán, kiến thức bộ nhớ
chính máy tính.
3 Nhằm lẫn các kí hiệu
lưu đồ thuật toán.
Tiếp nhận kiến thức không
đầy đủ.
Trao dồi thường xuyên
11
D. TIÊU CHÍ ĐÁNH GIÁ.
TT Nội dung
Điểm
chuẩn
Điểm
đánh
giá
I Điểm thao tác 10
1 Ngôn ngữ lập trình. 3
2 Các bước lập trình. 2
3 Kỹ thuật lập trình. 5
II Điểm cộng sáng tạo 0.5
1 Sáng tạo trong việc thực hiện các thao tác 0.5
III Điểm cộng hoàn thành trước thời gian qui định 0.5
1 Hoàn thành đúng thời gian qui định. 0
2 Hoàn thành trước thời gian qui định từ 10-15 phút. 0.25
3 Hoàn thành trước thời gian qui định từ 16 phút trở lên. 0.5
Tổng điểm 10
12
Bài 2.
LÀM QUEN LẬP TRÌNH C QUA CÁC VÍ DỤ ĐƠN GIẢN
A. MỤC TIÊU.
- Trình bày được các chức năng cơ bản của trình biên dịch C.
- Lập trình được các bài toán đơn giản.
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo.
B. DỤNG CỤ - THIẾT BỊ - VẬT LIỆU.
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 4
III VẬT LIỆU
1 Các cấu trúc lệnh, ... byte
2 Cấu trúc dữ liệu byte
C. NỘI DUNG.
2.1. KHỞI ĐỘNG VÀ THOÁT BORLAND C.
- Khởi động
Ta có thể khởi động Borland C theo các cách sau:
13
Khởi động tại dấu nhắc DOS: Tùy theo tập tin BC.EXE được lưu trữ tại đâu thì ta
có đường dẫn cần nhập tại dấu nhắc DOS tương ứng. Ví dụ tập tin BC.EXE được lưu tại
C:\ BORLANDC\BIN thì để khởi động Borland C ta cần nhập đường dẫn:
C:\BORLANDC\BIN\BC ↵
Khởi động trên Windows: Ta dùng Window Explorer để chọn và mở ổ đĩa có chứa
thư mục BORLANDC và tập tin BC.EXE, rồi khởi chạy tập tin BC.EXE này.
Màn hình sau khi khởi động thành công
Trình tự
TT BƯỚC CÔNG VIỆC THỰC HIỆN PHƯƠNG TIỆN
1 Cách 1: Khởi động thông
qua đường dẫn lệnh. C:\ BORLANDC\BIN Dùng tiện ích
cmd.exe, file
chương trình
2 Cách 2: Kích hoạt icon
chương trình đã cài đặt
hoặc click vào tệp tin chạy.
BC.exe,... File chương trình.
- Thoát
Để thoát chương trình Borland C ta dùng tổ hợp phím tắt Alt – X. Thêm cách nữa
là ta mở menu File rồi chọn Quit.
1. Các ví dụ đơn giản
14
Ví dụ 1
Kết quả in ra màn hình
Cặp dấu /* */ : Dùng bao bọc những chú thích cần thiết trong việc lập trình. Việc
này làm cho chương trình được dễ hiểu và rõ ràng hơn. Khi thông biên dịch chương trình
dòng có cặp dấu này không được thực thi.
#include <stdio.h> Tiền xử lý này buộc phải có bởi đây là thư viện của hàm printf
. Nếu không có thư viện thì chương trình sẽ bị báo lỗi.
Hàng cách dòng: Người lập trình nên viết cách dòng sau một nhóm lệnh nào đó
nhằm làm cho chương trình được thông thoáng và dễ đọc hơn.
void main(void): Đây là hàm chính của các chương trình. Ta có thể viết theo các
cách sau cho hàm chính với ý nghĩa là hàm chính không nhận giá trị trả về, hàm chính
không có bất kì tham số nào: main() hoặc void main() hoặc void main(void)). Hàm main
luôn được thực thi đầu tiên trong chương trình.
Cặp dấu ngoặc móc {}: Bao bọc nhóm lệnh thuộc hàm main().
printf("Xin chào các bạn! Hãy bước vào thế giới lập trình.");:Dòng lệnh có chức
năng xuất chuỗi "Xin chào các bạn! Hãy bước vào thế giới lập trình." ra màn hình. Kết
thúc mỗi câu lệnh ta phải dùng “;”.
15
Để chạy chương trình ta ấn tổ hợp phím Ctrl + F9, nhưng lúc này ta thấy màn hình
màu đen xuất hiện chớp tắt rât nhanh. Thay vào đó ta nên dùng Alt + F5 để xem kết quả.
Kết thúc quá trình chạy ta nhấn phím bất kì để trở về màn hình soạn thảo chương trình.
Nếu dòng lệnh printf có bổ sung thêm “\n” như sau: printf("Xin chào các bạn! Hãy
bước vào thế giới lập trình.\n");
Kết quả in ra màn hình
Vậy “\n” có chức năng xuống dòng cho chuỗi câu trong câu lệnh printf tiếp theo.
Dưới đây là một số kí hiêu với các chức năng khác :
\ n : Chức năng xuống dòng tiếp theo và về cột đầu.
\ t : Canh tab ngang.
\ r : Về đầu dòng và không xuống dòng.
\ a : Phát tiếng kêu beep.
\\ : In ra dấu \
\" : In ra dấu "
\' : In ra dấu '
Thay thế tổ hợp phím Alt + F5 ta viết bằng dòng lệnh getch() như sau:
Chương trình được viết lại có thêm tiền xử lý #include <conio.h> bởi conio.h là thư
viện xác định dòng lệnh getch(). Dĩ nhiên chương trình sẽ bị báo lỗi nếu không có thư
viện này.
17
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Lệnh
xử lý
Lệnh
printf,
lệnh
getch().
Ví dụ 2
int i;: Đây là lệnh khai báo, i gọi là tên biến. Biến là một vị trí nào đó trong bộ nhớ
dùng lưu trữ giá trị và cho chương trình sử dụng đến. Biến phải có kiểu dữ liệu. Ví dụ
trên cho thấy biến i có kiểu dữ liệu số nguyên integer được viết tắt int.
18
Lệnh scanf trong ví dụ dùng để nhận một giá trị từ người nhập. %d và &i là các
đối mục của hàm scanf. Giá trị của người nhập được lưu vào biến i theo kiểu định dạng
số nguyên %d.
Kết quả hiển thị:
Trình tự thực hiện
TT BƯỚC CÔNG
VIỆC THỰC HIỆN
PHƯƠNG
TIỆN
1 Khai báo thư viện
chương trình.
Các file thư
viện.
2 Thân chương trình
Hàm main, từ
khóa void.
3 Lệnh xử lý
Lệnh printf,
scanf, biến i,
lệnh getch().
Ví dụ 3
19
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Lệnh
xử lý
Lệnh
printf,
scanf,
biến N1,
N2, lệnh
getch().
Ví dụ 4
20
#define PI 3.14: Hằng số PI trị là 3.14. Để máy hiểu điều này ta dùng define. Đây
cũng như hình thức định nghĩa hằng số PI khi mã hóa. Không cần dấu “;” phía sau lệnh
này và phía trước là dấu “#”.
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file thư
viện.
2 Khai báo
hằng
Từ khóa
define.
3 Thân
chương
trình
Hàm main,
từ khóa
void.
21
4 Lệnh xử lý
Lệnh printf,
scanf, biến
fR, lệnh
getch().
(*) Chú ý về an toàn.
- Tuân thủ nội quy phòng máy.
- Dữ liệu lưu trữ trên máy tính gọn gàng, khoa học
(*) Những sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục
TT Sai hỏng thường gặp Nguyên nhân Biện pháp khắc phục
1 Không làm chủ được
trình biên dịch C++.
Tần suất sử dụng chương
trình thấp.
Trao dồi nhiều trên
trình biên dịch.
2 Chưa nắm vững bố cục
chương trình thực thi.
Không phân biệt được phần
khai báo thư viện, khai báo dữ
liệu, giải thuật chương trình.
Cần nắm rõ nguyên tắc:
Chương trình= Cấu
trúc dữ liệu+ Giải thuật.
D. TIÊU CHÍ ĐÁNH GIÁ.
TT Nội dung
Điểm
chuẩn
Điểm
đánh
giá
I Điểm thao tác 10
1 Khởi động và thoát Borland C. 2
2 Các ví dụ đơn giản. 8
II Điểm cộng sáng tạo 0.5
1 Sáng tạo trong các bài tập ứng dụng 0.5
III Điểm cộng hoàn thành trước thời gian qui định 0.5
1 Hoàn thành đúng thời gian qui định. 0
2 Hoàn thành trước thời gian qui định từ 10-15 phút. 0.25
3 Hoàn thành trước thời gian qui định từ 16 phút trở lên. 0.5
Tổng điểm 10
22
Bài 3.
CÁC THÀNH PHẦN TRONG NGÔN NGỮ C
A. MỤC TIÊU.
- Trình bày được các từ khóa cơ bản, qui tắc đặt tên, kiểu dữ liệu, cách chú thích,
cách khai báo biến, các phép toán và biểu thức.
- Vận dụng các kiến thức trên để lập trình các bài toán cơ bản.
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo.
B. DỤNG CỤ - THIẾT BỊ - VẬT LIỆU.
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 5
III VẬT LIỆU
1 Các cấu trúc lệnh, ... byte
2 Cấu trúc dữ liệu byte
C. NỘI DUNG.
3.1. TỪ KHÓA
Từ khóa: Từ khóa có ý nghĩa cụ thể liên quan đến việc khai báo dữ liệu, viết
lệnhTừ khóa trong C được viết thường .
23
1. Tên
Tên thể hiện rõ ý nghĩa trong chương trình và được dùng để xác định các đại lượng
khác nhau khi viết chương trình. Tên dùng đặt cho biến, hằng, mảng, nhãn,
hàm(Function) Tên có tối đa 32 ký tự. Tên hợp lệ chỉ gồm: Chữ, số và dấu gạch dưới.
Tên bắt đầu chỉ là kí tự chữ hoặc dấu gạch dưới. Tên và từ khóa không được trùng nhau.
Tên trong C có phân biệt hoa thường.
Ví dụ 1 :
Tên đúng: max, c_2, Num_MIN, If…
Tên sai: 4abc, giai-thua, if, phuong trinh, y(x)….
2. Kiểu dữ liệu
Các kiểu dữ liệu cơ bản trong C là: char, int, float và double.
Mã Ascii
24
- Nhóm mã dành cho kí tự điều khiển
+ Xuống dòng: 10(10)= 00001010(2)
+ Esc : 27(10)= 0001 1011 (2)
- Nhóm mã dành cho kí tự hiển thị
+ Khoảng trống: 32(10)= 00100000 (2)
+ @ : 64(10)= 01000000 (2)
+ “A” : 65(10)= 01000001 (2)
+“Z” : 90(10)= 01011010 (2)
+ “a” = Ascii(“A”) + 32 = 65 +32 =97
+ “z” = Ascii(“Z”) + 32 = 90 +32 =122
3. Ghi chú
Ví dụ 3 :
Kết quả chương trình
25
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file thư
viện.
2 Thân
chương
trình
Hàm main,
từ khóa
void.
3 Lệnh xử lý
Lệnh printf,
câu lệnh if,
biến N1,
N2.
4. Khai báo biến - Tên biến
Việc đặt tên biến như đã nói ở trên 3.2
- Khai báo biến
Khai báo: Kiểu dữ liệu Danh sách tên biến;
Danh sách tên biến là các biến có cùng kiểu dữ liệu, mỗi biến cách nhau bởi dấu
phẩy. Kết thúc câu lệnh khai bao là dấu “;”.
Theo qui tắc khai báo biến kiểu Hungarian Notation thì cần thêm kí tự đầu tiên của
kiểu dữ liệu vào trước tên biến. Điều này giúp cho lập trình viên hiểu được đây là biến
kiểu gì. Cần tuân theo qui tắc này khi đặt tên biến.
Ví dụ 4:
int imax; float fdiem; char ckitu;
Vừa khai báo vừa khởi gán
Trong quá trình khai báo biến ta có thể khởi trị cho biến này thông qua toán tử gán.
Ví dụ 5 :
Khai báo trước, gán giá trị sau:
26
Vừa khai báo vừa gán giá trị:
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file thư
viện.
2 Thân
chương
trình
Hàm main,
từ khóa
void.
27
3 Lệnh xử lý Toán tử gán,
ba biến ia,
ib, ic.
5. Biểu thức Là sự phối hợp của những toán tử và toán hạng.
Ví dụ 1:
a+b
b = 1 + 5 * 2/i
a = 6 % (7 + 1)
x++ * 2/4 + 5 - power(i, 2)
Toán hạng sử dụng trong biểu thức có thể là hằng số, biến, hàm.
6. Phép toán Có 4 nhóm toán tử chính yếu trong C như sau:
Phép toán số học:
+ : cộng
- : trừ
* : nhân
/ : chia
% : lấy phần dư
Áp dụng trên tất cả các toán hạng có kiểu dữ liệu char, int, float, double (kể cả long,
short, unsigned)
Áp dụng trên các toán hạng có kiểu dữ liệu char, int, long cho phép toán %.
Ví dụ 2:
10%4 = 2 (10 chia 4 dư 2)
9%3 = 0 (9 chia 3 dư 0)
3 * 5 + 4 = 19
6+2/2-3=4
-7 + 2 * ((4 + 3) * 4 + 8) = 65
Chỉ sử dụng cặp ngoặc () trong biểu thức, cặp ngoặc đơn được thực hiện theo thứ tự
ưu tiên từ trong ra ngoài.
Phép quan hệ:
> : lớn hơn
28
>= : lớn hơn hoặc bằng
< : nhỏ hơn
<= : nhỏ hơn hoặc bằng
== : bằng
!= : khác
* Thứ tự ưu tiên giảm dần từ trái qua phải > , >= , <, <= , == , !=
Kết quả của phép toán quan hệ là số nguyên kiểu int, bằng 1 nếu đúng, bằng 0 nếu
sai.
* Thứ tự ưu tiên giữa toán tử số học và toán tử quan hệ giảm dần từ trái qua phải:
Toán tử số học, toán tử quan hệ.
- Phép quan hệ
Ví dụ 3:
4 > 10 có giá trị 0 (sai)
4 >= 4 có giá trị 1 (đúng)
3 == 5 có giá trị 0 (sai)
2 <= 1 có giá trị 0 (sai)
6 != 4 có giá trị 1 (đúng)
6-3<4 có giá trị 1 (đúng), tương đương (6 - 3) < 4
- Phép toán luận lý
! : NOT (phép phủ định)
&&: AND (phép và)
|| : OR (phép hoặc)
* Thứ tự ưu tiên giảm dần từ trái qua phải: !, &&, ||.
Ví dụ 4:
- Trời nắng && xe có xăng
- !(5>4)
- Giàu || Nghèo
* Thứ tự ưu tiên giữa các toán tử:
29
- Phép toán trên bit (bitwise)
& : và (AND)
| : hoặc (OR)
^ : hoặc loại trừ (XOR)
>> : dịch phải
<< : dịch trái
~ : đảo
Ví dụ 5:
a = 13 đổi ra hệ nhị phân 1101
b = 10 đổi ra hệ nhị phân 1010
1101 1101 1101
& 1010 | 1010 ^ 1010
= 1000 = 1111 = 0111
= 8 = 15 = 7
- Các phép toán khác
a. Phép toán gán
Phép gán là thay thế giá trị hiện tại của biến bằng một giá trị mới. Các phép gán: =,
+=, -=, *=, /=, %=
Ví dụ 6: ta có giá trị i = 3
i=i+3 i=6
i += 3 i=6 i=i+3
i *= 3 i=9 i=i*3
30
- Phép toán tăng, giảm: ++, --
Toán tử ++ sẽ cộng thêm 1 vào toán hạng của nó, toán tử -- sẽ trừ đi 1.
Ví dụ 7: Ta có giá trị n = 6
+ Sau phép tính ++n hoặc n++, ta có n = 7.
+ Sau phép tính --n hoặc n-- , ta có n = 5.
* Sự khác nhau giữa ++n và n++, --n và n--
+ Sau phép tính x = ++n + 2, ta có x = 9. (n tăng 1 cộng với 2 rồi gán cho x)
+ Sau phép tính x = n++ + 2, ta có x = 8. (n cộng với 2 gán cho x rồi mới tăng 1cho
n. Lúc này n=7 nhưng x vẫn là 8)
(*) Chú ý về an toàn.
- Tuân thủ nội quy phòng máy.
- Dữ liệu lưu trữ trên máy tính gọn gàng, khoa học
(*) Những sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục
TT Sai hỏng thường gặp Nguyên nhân Biện pháp khắc phục
1 Không nắm vững các
từ khóa trình biên dịch
C++ , không phân biệt
rõ các kiểu dữ liệu, qui
tắc đặt tên biến,
hằng,…
Tiếp nhận kiến thức hạn chế. Trao dồi thông qua các
bài tập mẫu.
2 Các qui tắc trên bảng
mã Ascii.
Kiến thức chuyển đổi giữa hệ
thập, nhị phân hạn chế.
Hệ thống lại kiến thức
chuyển đổi giữa hệ
thập, nhị phân. Ghi nhớ
mã Ascii của các kí tự
cơ bản.
A. TIÊU CHÍ ĐÁNH GIÁ.
TT Nội dung
Điểm
chuẩn
Điểm
đánh
giá
I Điểm thao tác 10
1 Từ khóa 1
2 Tên 1
31
3 Kiểu dữ liệu 2
4 Ghi chú 1
5 Khai báo biến 2
6 Biểu thức 1
7 Phép toán 2
II Điểm cộng sáng tạo 0.5
1 Sáng tạo trong các bài tập ứng dụng 0.5
III Điểm cộng hoàn thành trước thời gian qui định 0.5
1 Hoàn thành đúng thời gian qui định. 0
2 Hoàn thành trước thời gian qui định từ 10-15 phút. 0.25
3 Hoàn thành trước thời gian qui định từ 16 phút trở lên. 0.5
Tổng điểm 10
Bài 4
NHẬP / XUẤT DỮ LIỆU
A. MỤC TIÊU.
- Trình bày được lệnh nhập xuất dữ liệu
- Ứng dụng lệnh nhập xuất vào các bài tập.
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo.
B. DỤNG CỤ - THIẾT BỊ - VẬT LIỆU.
32
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 6
III VẬT LIỆU
1 Các cấu trúc lệnh, ... byte
2 Cấu trúc dữ liệu byte
C. NỘI DUNG. 1. Hàm printf
Hàm này có chức năng in ra màn hình chuỗi định dạng
Hàm này để sử dụng cần khai báo tiền xử lý #include <stdio.h>. Các đối mục 1,
là các giá trị cần in ra màn hình. Đối mục có thể là biến, là hằng hoặc biểu thức đã định
trị.
Các đối mục trước khi in ra màn hình cần được định dang. Phần định dạng này được
lòng ghép với chuổi kí tự cần xuất ra màn hình. Đây được gọi là chuổi định dạng và nó
được đặt trong cặp dấu “”
Dưới đây là một số mã định dang cho các đối mục: %c : Định dạng cho ki tự
%s : Định dạng cho chuỗi
%d : Định dạng cho số nguyên có dấu
%f : Định dạng cho số chấm động (Dạng thập phân)
Nếu thêm tiền tố l vào trước %d, %u, %x, %o ta được các số có trị lớn hơn (ví dụ
%ld)
\n : Xuống dòng và trở về cột đầu tiên.
\t : Canh cột tab ngang.
\r : Về đầu dòng và không xuống dòng.
\a : Tiếng kêu bip.
\\ : In dấu \
\" : In dấu "
\' : In dấu '
%%: In dấu %
Ví dụ 1: printf("Vi du ve ki tu dieu khien \n");
Printf(“chuỗi định dạng”, đối mục 1, đối mục 2,…);
33
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm main,
từ khóa
void.
3 Lệnh xử
lý
Lệnh
printf,
getch().
Ví dụ 2: printf("In ra chuoi ki tu, ki tu dieu khien va ki tu dac biet \\\ , \" . \n");
34
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file thư
viện.
2 Thân
chương
trình
Hàm main,
từ khóa
void.
3 Lệnh xử
lý Lệnh
printf,
getch().
Ví dụ 3: Nếu biến i có giá trị là 7, kết quả sẽ như sau khi thực hiện câu lệnh
printf("Gia tri cua bien i la: %d . \n", i);
Kết quả chương trình
35
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file thư
viện.
2 Thân
chương
trình
Hàm main,
từ khóa
void.
3 Lệnh xử lý
Biến i, lệnh
printf,
getch().
Ví dụ 4: printf("Tong cua 2 so %d va %d la %d . \n", a, b, a+b);
Kết quả in ra màn hình:
Trình tự thực hiện
36
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Lệnh
xử lý
Biến a, b,
lệnh
printf,
getch().
Ví dụ 5: printf("Tong cua 2 so %5d va %3d la %1d . \n", a, b, a+b);
Kết quả in ra man hình:
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
Các file
thư viện.
37
chương
trình.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Lệnh
xử lý
Biến a, b,
lệnh
printf,
getch().
Ví dụ 6: printf("Tong cua 2 so %-5d va %-3d la %-1d . \n", a, b, a+b);
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
Các file
thư viện.
38
chương
trình.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Lệnh
xử lý
Biến a, b,
lệnh
printf,
getch().
Ví dụ 7: printf("Tong cua 2 so %02d va %02d la %04d . \n", a, b, a+b);
39
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Lệnh
xử lý
Biến a, b,
lệnh
printf,
getch().
Ví dụ 8: printf("%7d%7d%7d.\n", a, b, c);
printf("%7d%7d%7d.\n", 165, 2, 965);
40
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file thư
viện.
2 Thân
chương
trình
Hàm main,
từ khóa
void.
3 Lệnh xử lý
Biến a, b, c,
lệnh printf,
getch().
2. Hàm scanf
Hàm này có chức năng nhập liệu theo định dạng:
- Cần khai báo tiền xử lý #include <stdio.h>cho hàm scanf.
- Hàm scanf viết thường. Dữ liệu nhập vào cũng cần phải định dạng.
- Dấu “” bao bọc chuỗi định dạng. Các đối mục cách nhau bởi “,”.
- Mỗi đối mục sẽ lưu trữ một giá trị nhập vào.
Ví dụ 11: scanf("%d", &i);
Nếu nhập vào 14xyz, biến i chỉ nhận giá trị 14. Nếu nhập 7.4, i chỉ nhận giá trị
7
scanf(“ chuỗi định dạng”, &đối mục 1, &đối mục 2, …);
41
Ví dụ 12: scanf("%d%d", &a, &b);
Ví dụ 13: scanf("%d/%d/%d", &day, &month, &year);
(*) Chú ý về an toàn.
- Tuân thủ nội quy phòng máy.
- Dữ liệu lưu trữ trên máy tính gọn gàng, khoa học
(*) Những sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục
TT Sai hỏng thường gặp Nguyên nhân Biện pháp khắc phục
1 Không nắm vững
chuỗi định dạng trong
2 câu lệnh printf,
scanf.
Không nắm rõ qui tắc thể hiện
chuỗi định dạng. Chưa phân
biệt được các mã định dạng
cho các kiểu dữ liệu.
Trao dồi thường xuyên.
2 Không phân biệt được
các đối mục trong lệnh
scanf và lệnh printf.
Không phân biệt được các
trường hợp sử dụng toán tử
lấy địa chỉ &.
Cần ghi nhớ toán tử &
luôn có trước 1 biến
trong lệnh scanf.
D. TIÊU CHÍ ĐÁNH GIÁ.
TT Nội dung
Điểm
chuẩn
Điểm
đánh
giá
I Điểm thao tác 10
1 Hàm printf 5
2 Hàm Scanf 5
II Điểm cộng sáng tạo 0.5
1 Sáng tạo trong các bài tập ứng dụng 0.5
III Điểm cộng hoàn thành trước thời gian qui định 0.5
1 Hoàn thành đúng thời gian qui định. 0
2 Hoàn thành trước thời gian qui định từ 10-15 phút. 0.25
3 Hoàn thành trước thời gian qui định từ 16 phút trở lên. 0.5
43
Bài 5
CẤU TRÚC RẼ NHÁNH CÓ ĐIỀU KIỆN
(Cấu trúc chọn)
A. MỤC TIÊU.
- Trình bày được lệnh, khối lệnh, lệnh if, lệnh switch.
- Lập trình các bài toán có các lệnh rẽ nhánh.
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo.
B. DỤNG CỤ - THIẾT BỊ - VẬT LIỆU.
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 10
III VẬT LIỆU
1 Các phương thức,
các cấu trúc lệnh, ...
byte
2 Cấu trúc dữ liệu byte
C. NỘI DUNG.
1. Lệnh và khối lệnh
- Lệnh
Là những tác vụ, biểu thức, hàm, cấu trúc điều khiển
Ví dụ 1:
s + = i ;
printf("Lenh in ra man hinh.\n");
44
- Khối lệnh Là một dãy các câu lệnh được đặt trong cặp dấu { }, nên thụt vào một tab các lệnh
trong khối lệnh so với cặp dấu { } .
Ví dụ 2: {
x= 5;
y = 6;
printf("Tong %d + %d = %d", x, y, x+y);
}
2. Lệnh if Câu lệnh if thể hiện khã năng lựa chọn một trong hai hay nhiều trường hợp tùy thuộc
vào tính đúng sai của biểu thức điều kiện (biểu thức luận lí).
- Dạng 1 (if thiếu) Khối lệnh sẽ được thực hiện hay không phụ thuộc vào trị đúng hoặc sai của biểu
thức luận lí. • Cú pháp lệnh
if được viết thường, biểu thức luận lí thuộc một trong hai chân trị: đúng (≠ 0) hoặc sai
(= 0).
Trước tiên máy kiểm tra trị của biểu thức luận lí. Nếu biểu thức đúng thì khối
lệnh được thực hiện và kết thúc câu lệnh. Ngược lại khi biểu thức luận lí sai thì không
làm gì cả và kết thúc lệnh.
Ví dụ 3:
Viết chương trình nhập vào hai số nguyên. Tìm và xuất số lớn nhất.
45
- Phác họa lời giải
Đầu tiên ta cho giá trị N1 là lớn nhất. Tiếp đó ta so sánh N2 với N1, nếu N2 lớn hơn N1
ta gán N2 cho max Vậy giá trị lớn nhất là max.
- Mô tả quy trình xử lý (giải thuật)
- Mô tả bằng lưu đồ
Viết chương trình
46
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file thư
viện.
2 Thân
chương
trình
Hàm main,
từ khóa
void.
3 Nhập liệu
Biến N1,
N2, hàm
nhập xuất
dữ liệu.
3 Quá trình xử
lý
Lệnh if
4 Xuất kết quả
Lệnh xuất
dữ liệu.
- Dạng 2 (if đủ)
Thực hiện một trong hai khối lệnh cho trước.
48
Trị của biểu thức luận lý phải là đúng ( 0) hoặc sai (= 0) . Khối lệnh chỉ có một
lệnh thì không nhất thiết phải dùng dấu “{}”.
Nếu biểu thức luận lý đúng thì khối lệnh 1 được thực hiện và kết thúc câu lệnh if,
ngược lại hệ thống sẽ thực hiện khối lệnh 2 và kết thúc lệnh if.
Ví dụ 5: Viết chương trình nhập hai số nguyên. Xuât ra màn hình thông báo "N1 bằng
N2" nếu N1 = N2, ngược lại in ra thông báo "N1 khác N2".
- Phác họa lời giải
So sánh hai số N1 và N2, nếu N1 bằng N2 thì in ra câu thông báo "N1 bằng N2" hoặc
ngược lại in ra thông báo "N1 khác N2".
- Mô tả quy trình xử lý (giải thuật)
50
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file thư
viện.
2 Thân
chương
trình
Hàm main,
từ khóa
void.
3 Nhập liệu
Biến N1,
N2, hàm
nhập xuất
dữ liệu.
4 Quá trình xử
lý, xuất kết
quả.
Lệnh if,
printf.
- Cấu trúc else if
Thực hiện 1 trong nhiều khối lệnh cho trước.
Cú pháp lệnh
51
if, else if, else phải viết bằng chữ thường. Biểu thức luận lí 1, 2..n phải có trị đúng hoặc
sai.
- Cấu trúc else if
Lưu đồ
Nếu biểu thức luận lý 1 đúng thì khối lệnh 1 được thực hiện và thoát khỏi lệnh if.
Ngược lại nếu biểu thức luận lý 2 đúng thì khối lệnh 2 được thực hiện và thoát khỏi lệnh
if. Ngược lại nếu biểu thức luận lý n-1 đúng thì thực hiện khối lệnh n-1 và thoát khỏi cấu
trúc if. Ngược lại thì thực hiện khối lệnh n.
- Cấu trúc else if
Ví dụ 6:
Viết chương trình nhập vào kí tự kitu. Kiểm tra xem nếu kí tự nhập vào là kí tự
thường trong khoảng từ 'a' đến 'z' thì đổi sang chữ in hoa và in ra, nếu kí tự in hoa trong
khoảng A đến Z thì đổi sang chữ thường và in ra, nếu kí tự là số từ 0 đến 9 thì in ra câu
"Kí tự bạn vừa nhập là số", còn lại không phải 3 trường hợp trên in ra thông báo "Kí tự
đa nhập là kitu)".
Phác họa lời giải
Nhập kí tự kitut vào, kiểm tra xem nếu kí tự kitu thuộc khoảng 'a' và 'z' đổi kí tự
kitu thành chữ in hoa bằng cách lấy kí tự kitu - 32 rồi gán lại cho chính nó (kitu = kitu -
32, sau khi đổi xong ta in kí tự ra. Ngược lại nếu kí tự kitu thuộc khoảng 'A' và 'Z', đổi
kí tự kitu thành chữ thường và in ra. Ngược lại nếu kí tự kitu thuộc khoảng '0' và '9' thì
52
in ra thông báo "Kí tự bạn vừa nhập là số". Ngược lại, in câu thông báo "Bạn đã nhập
kí tự kitu".
Mô tả quy trình xử lý (giải thuật)
54
Viết chương trình
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
55
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Nhập
liệu
Biến kí tự,
hàm nhập
xuất dữ
liệu.
4 Chuyển
kí tự
thường
sang
hoa
Lệnh if,
printf, qui
tắc bảng
mã
ASCII.
5 Chuyển
hoa
sang
thường.
Lệnh if,
printf, mã
ASCII.
6 Kí tự số
và các
trường
hợp
khác.
Lệnh if,
printf, mã
ASCII.
- Cấu trúc if lồng
Thực hiện 1 trong n khối lệnh cho trước.
Cú pháp lệnh
Cũng là một trong 3 dạng trên, nhưng trong 1 hoặc nhiều khối lệnh bên trong phải
chứa ít nhất một trong 3 dạng trên.
Cấu trúc if lồng nhau càng nhiều thì độ phức tạp càng cao, chương trình chạy càng
chậm và dễ bị nhầm lẫn khi lập trình.
Ví dụ 9: Ta có các dòng lệnh sau:
if (i > 0)
if (N1 >N2)
x = N1;
else
56
x = N2;
Lưu đồ: Tương tự 3 dạng trên.
3. Lệnh switch
Lệnh switch cũng giống cấu trúc else if, nhưng nó mềm dẻo hơn và linh động
hơn nhiều so với cấu trúc lệnh if.
Một bài toán sử dụng lệnh switch thì cũng có thể sử dụng if, nhưng ngược lại còn
tùy thuộc vào giải thuật của bài toán.
- Cấu trúc switchcase (switch thiếu)
Chọn thực hiện 1 trong n lệnh cho trước.
switch, case, break phải viết bằng chữ thường . Lệnh 1, 2n có thể gồm nhiều lệnh,
nhưng không cần đặt trong cặp dấu { }
Lưu đồ
Khi giá trị của biểu thức bằng giá trị i thì lệnh i sẽ được thực hiện. Nếu sau lệnh i
không có lệnh break thì sẽ tiếp tục thực hiện lệnh. i+1Ngược lại thoát khỏi cấu trúc
switch..
58
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Nhập
liệu
Biến
nguyên i,
hàm nhập
xuất dữ
liệu.
4 Xử lý
dữ liệu.
Lệnh
switch,
printf.
5 Xuất
kết quả Lệnh
printf,
getch().
Ví dụ 8: Viết chương trình nhập vào tháng và in ra quý.
Phác họa lời giải
Nhập vào tháng, kiểm tra xem tháng có hợp lệ (trong khoảng 1 đến 12) không.
Nếu hợp lệ in ra quý tương ứng.
Viết chương trình
59
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Nhập
liệu
Biến
nguyên t,
hàm nhập
xuất dữ
liệu.
60
4 Ràng
buộc <
t <=12
Lệnh if
5 Xử lý
dữ liệu
và xuất
kết
quả.
Lệnh
switch,
printf.
- Cấu trúc switchcasedefault (switch đủ)
Chọn thực hiện 1 trong n + 1 lệnh cho trước.
61
switch, case, break, default phải viết bằng chữ.
Lệnh 1, 2n có thể gồm nhiều lệnh, nhưng không cần đặt trong cặp dấu { }
Khi giá trị của biểu thức bằng giá trị i thì lệnh i sẽ được thực hiện. Nếu sau lệnh i
không có lệnh break thì sẽ tiếp tục thực hiện lệnh i + 1Ngược lại thoát khỏi cấu trúc
switch. Nếu giá trị biểu thức không trùng với bất kỳ giá trị i nào thì lệnh tương ứng với
từ khóa default sẽ được thực hiện.
Ví dụ 10: Viết lại chương trình ở ví dụ 8
Viết chương trình
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
62
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Nhập
liệu
Biến
nguyên i,
hàm nhập
xuất dữ
liệu.
4 Xử lý
dữ liệu
và xuất
kết
quả.
Lệnh
switch,
printf, từ
khóa
default.
Ví dụ 11: Viết lại chương trình ở Ví dụ 9
Viết chương trình
63
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Nhập
liệu
Biến
nguyên
ithang,
hàm nhập
xuất dữ
liệu.
4 Xử lý
dữ liệu
và xuất
kết
quả.
Lệnh
switch,
printf, từ
khóa
default,
case,
break.
- Cấu trúc switch lồng
Thực hiện 1 trong n khối lệnh cho trước.
• Cú pháp lệnh
Cú pháp chỉ là một trong 2 dạng trên, nhưng trong 1 hoặc nhiều lệnh bên
trong phải chứa ít nhất một trong 2 dạng trên gọi là cấu trúc switch lồng nhau.
64
Cấu trúc switch lồng nhau càng nhiều cấp thì độ phức tạp càng cao, chương
trình chạy càng chậm và dễ bị nhầm lẫn khi lập trình.
• Lưu đồ
Tương tự 2 dạng switch trên. Nhưng trong mỗi lệnh có thể có một hoặc nhiều
cấu trúc switch ở trên.
Ví dụ 12: Viết chương trình menu có hai cấp Viết chương trình
Viết chương trình
66
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Khai
báo
biến
cục bộ
Biến
nguyên.
4 Tao
menu.
Lệnh
printf.
5 Nhập
liệu Lệnh
scanf.
6 Tạo
menu
con
Lồng lệnh
switch,
lệnh
printf,
scanf,
7 Chọn
menu
con
Lệnh
switch,
printf.
8 Chọn
các
mục
khác
của
menu
Từ khóa
case, lệnh
printf.
(*) Chú ý về an toàn.
67
- Tuân thủ nội quy phòng máy.
- Dữ liệu lưu trữ trên máy tính gọn gàng, khoa học
(*) Những sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục
TT Sai hỏng thường gặp Nguyên nhân Biện pháp khắc phục
1 Khó khăn sử dụng các
dạng mệnh đề if
Không nắm được điểm khác
biệt giữa các dạng lệnh.
Nhận ra điểm khác biệt
giữa các dạng lệnh if
thông qua ví dụ, bài tập
mẫu.
2 Không phân biệt được
trường hợp ứng dụng
giữa lệnh switch với
lệnh if. Không nhớ đầy
đủ các từ khóa trong
lệnh switch.
Chưa rõ phạm vi ứng dụng
giữa switch và if.
Phân biệt thông qua
các bài tập điển hình.
D. TIÊU CHÍ ĐÁNH GIÁ.
TT Nội dung
Điểm
chuẩn
Điểm
đánh
giá
I Điểm thao tác 10
1 Lệnh và khối lệnh. 2
2 Lệnh if. 4
3 Switch 4
II Điểm cộng sáng tạo 0.5
1 Sáng tạo trong các bài tập ứng dụng 0.5
III Điểm cộng hoàn thành trước thời gian qui định 0.5
1 Hoàn thành đúng thời gian qui định. 0
2 Hoàn thành trước thời gian qui định từ 10-15 phút. 0.25
3 Hoàn thành trước thời gian qui định từ 16 phút trở lên. 0.5
69
Bài 6
CẤU TRÚC VÒNG LẶP
A. MỤC TIÊU.
- Trình bày được lệnh for, lệnh break, lệnh continue, lệnh while, lệnh do…while,
vòng lặp lồng nhau.
- Lập trình được các bài toán có các lệnh trên.
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo.
B. DỤNG CỤ - THIẾT BỊ - VẬT LIỆU.
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 7
III VẬT LIỆU
1 Các phương thức,
các cấu trúc lệnh, ...
byte
2 Cấu trúc dữ liệu byte
C. NỘI DUNG.
1. Lệnh for Vòng lặp xác định thực hiện lặp lại một số lần xác định của một khối lệnh (chuỗi
hành động)
Cú pháp lệnh
70
for phải viết bằng chữ thường. Nếu khối lệnh bao gồm từ 2 lệnh trở lên thì
phải đặt trong dấu { }
Lưu đồ
Kiểm tra điều kiện, nếu đúng thì thực hiện khối lệnh và lặp lại kiểm tra điều
kiện nếu sai thoát khỏi vòng lặp.
Biểu thức 1 khởi tạo giá trị ban đầu cho biến điều khiển.
Biểu thức 2 là quan hệ logic thể hiện điều kiện tiếp tục vòng lặp.
Biểu thức 3 là phép gán dùng thay đổi giá trị biến điều khiển.
Biểu thức 1 bao giờ cũng chỉ được tính toán một lần khi gọi thực hiện for. Biểu
thức 2, 3 và thân for có thể thực hiện lặp lại nhiều lần.
Lưu ý:
+ Biểu thức 1, 2, 3 phải phân cách bằng dấu “;”
+ Nếu biểu thức 2 không có, vòng for được xem là luôn luôn đúng. Muốn thoát khỏi vòng
lặp for phải dùng một trong 3 lệnh break, goto hoặc return.
+ Khi gặp lệnh break, cấu trúc lặp sẽ thoát ra.
+ Trong thân for có thể dùng lệnh goto để thoát khỏi vòng lặp đến vị trí mong muốn.
+ Trong thân for có thể sử dụng return để trở về một hàm nào đó.
+ Trong thân for có thể sử dụng lệnh continue để chuyển đến đầu vòng lặp (bỏ qua các
câu lệnh còn lại trong thân).
72
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Thân
chương
trình
Hàm
main, từ
khóa void.
4 Xử lý
dữ liệu
và xuất
kết
quả.
Lệnh for,
printf.
Ví dụ 2: Viết chương trình nhập vào 3 số nguyên. Tính và in ra tổng của chúng.
73
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Khởi
tạo
biến
Các biến
nguyên...
4 Xử lý
dữ liệu.
Lệnh for,
printf,
scanf.
5 Xuất
kết quả Lệnh xuất
printf.
Ví dụ 4: Thay đổi biến điều khiển vòng lặp.
- Thay đổi biến điều khiển từ 1 đến 100, mỗi lần tăng 1:
for(i = 1; i <= 100; i++)
- Thay đổi biến điều khiển từ 100 đến 1, mỗi lần giảm 1:
for(i = 100; i >= 1; i- -)
- Thay đổi biến điều khiển từ 7 đến 77, mỗi lần tăng 7:
for(i = 7; i <= 77; i += 7)
- Thay đổi biến điều khiển từ 20 đến 2, mỗi lần giảm 2:
for(i = 20; i >= 2; i - = 2)
74
Ví dụ 7: Đọc vào một loạt kí tự trên bàn phím, đếm số kí tự nhập vào. Kết thúc khi gặp
“s”.
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define.
3 Thân
chương
trình
Hàm
main, từ
khóa void.
75
4 Khởi
tạo
biến
Các biến
nguyên, kí
tự...
5 Xử lý
dữ liệu.
Lệnh for,
các hàm.
6 Xuất
kết quả
Lệnh xuất
printf.
Ví dụ 8: Nhập vào 1 dãy số nguyên từ bàn phím đến khi gặp số 0 thì dừng. In ra tổng
các số nguyên dương.
76
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Khởi
tạo
biến
Các biến
nguyên...
4 Xử lý
dữ liệu.
Lệnh for,
printf,
scanf, từ
khóa
continue,
break.
5 Xuất
kết quả Lệnh xuất
printf.
2. Lệnh break
Thông thường lệnh break dùng để thoát khỏi vòng lặp không xác định điều
kiện dừng hoặc bạn muốn dừng vòng lặp theo điều kiện do bạn chỉ định. Việc dùng
lệnh break để thoát khỏi vòng lặp thường sử dụng phối hợp với lệnh if. Lệnh break
dùng trong for, while, dowhile, switch. Lệnh break thoát khỏi vòng lặp chứa nó.
Ví dụ 9 : Như ví dụ 7, 8
77
Sử dụng lệnh break trong switch để nhảy bỏ các câu lệnh kế tiếp còn lại.
3. Lệnh continue
Được dùng trong vòng lặp for, while, dowhile. Khi lệnh continue thi hành
quyền điều khiển sẽ trao qua cho biểu thức điều kiện của vòng lặp gần nhất. Nghĩa
là quay ngược lên đầu vòng lặp, tất cả những lệnh đi sau trong vòng lặp chứa
continue sẽ bị bỏ qua không thi hành.
Ví dụ 10 : Như ví dụ 8
4. Lệnh while
Vòng lặp thực hiện lặp lại trong khi biểu thức còn đúng.
• Lưu đồ
Trước tiên biểu thức được kiểm tra, nếu sai thì kết thúc vòng lặp while (khối lệnh
không được thi hành 1 lần nào), nếu đúng thực hiện khối lệnh; lặp lại kiểm tra biểu thức.
+ Trong thân while có thể sử dụng lệnh continue để chuyển đến đầu vòng lặp (bỏ
qua các câu lệnh còn lại trong thân).
+ Muốn thoát khỏi vòng lặp while tùy ý có thể dùng các lệnh break, goto, return
như lệnh for.
79
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define.
3 Thân
chương
trình
Hàm
main, từ
khóa void.
4 Khởi
tạo
biến
Các biến
nguyên...
5 Xử lý
dữ liệu
và xuất
kết
quả.
Lệnh
while,
printf.
5. Lệnh dowhile
Vòng lặp thực hiện lặp lại cho đến khi biểu thức sai.
• Cú pháp lệnh
do, while phải viết bằng chữ thường.Nếu khối lệnh bao gồm từ 2 lệnh trở lên thì không
cần đặt trong dấu { }
80
• Lưu đồ
Kiểm tra biểu thức nếu đúng thì lặp lại việc thực hiện khối lệnh, nếu sai thì kết thúc
vòng lặp (Tại đây khối lệnh được thi hành 1 lần).
+ Trong thân dowhile có thể sử dụng lệnh continue để chuyển đến đầu vòng lặp
(bỏ qua các câu lệnh còn lại trong thân).
+ Muốn thoát khỏi vòng lặp dowhile tùy ý có thể dùng các lệnh break, goto,
return.
Ví dụ 12: Viết chương trình nhập vào năm hiện tại và năm sinh. In ra tuoi.
81
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define.
3 Thân
chương
trình
Hàm
main, từ
khóa void.
4 Khởi
tạo
biến
Các biến
nguyên, kí
tự...
82
5 Xử lý
dữ liệu.
Lệnh do
...while,
printf,
scanf.
6. Vòng lặp lồng nhau
Ví dụ 13: Vẽ hình chữ nhật bằng các dấu '*'
Kết quả in ra màn hình
Trình tự thực hiện
83
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Thân
chương
trình
Hàm
main, từ
khóa void.
3 Nhập
liệu
Các biến
nguyên,
lệnh
printf,
scanf...
4 Xử lý
dữ liệu
và xuất
kết
quả.
2 lệnh for
lồng nhau,
printf.
7. So sánh sự khác nhau của các vòng lặp - Vòng lặp for thường sử dụng khi biết được số lần lặp xác định.
- Vòng lặp while, dowhile sử dụng khi không biết rõ số lần lặp.
- Khi gọi vòng lặp while, dowhile, nếu biểu thức sai vòng lặp while sẽ không được thực
hiện lần nào nhưng vòng lặp dowhile đã thực hiện được 1 lần.
(*) Chú ý về an toàn.
- Tuân thủ nội quy phòng máy.
- Dữ liệu lưu trữ trên máy tính gọn gàng, khoa học
(*) Những sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục
TT Sai hỏng thường gặp Nguyên nhân Biện pháp khắc phục
1 Không phân biệt được
giữa các lệnh lặp như
for, while, do while…
Xác định thời điểm dừng của
vòng lặp chưa chuẩn xác.
Thiết lặp đầy đủ các
biểu thức đi theo vòng
lặp.
2 Không phân biệt được
trường hợp sử dụng
lệnh break, continue,
go to.
Chưa nắm phạm vi ứng dụng
các lệnh.
Trao dồi với các bài tập
có vòng lặp.
84
D. TIÊU CHÍ ĐÁNH GIÁ.
TT Nội dung
Điểm
chuẩn
Điểm
đánh
giá
I Điểm thao tác 10
1 Lệnh for 2
2 Lệnh break 1
3 Lệnh continue 1
4 Lệnh while 2
5 Lệnh do…while 2
6 Vòng lặp lồng nhau 2
II Điểm cộng sáng tạo 0.5
1 Sáng tạo trong các bài tập ứng dụng. 0.5
III Điểm cộng hoàn thành trước thời gian qui định 0.5
1 Hoàn thành đúng thời gian qui định. 0
2 Hoàn thành trước thời gian qui định từ 10-15 phút. 0.25
3 Hoàn thành trước thời gian qui định từ 16 phút trở lên. 0.5
Tổng điểm 10
85
Bài 7
HÀM
A. MỤC TIÊU.
- Trình bày được tham biến, tham trị, biến toàn cục và hàm đệ qui.
- Vận dụng các kiến thức trên để lập trình các bài toán.
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo.
B. DỤNG CỤ - THIẾT BỊ - VẬT LIỆU.
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 5
III VẬT LIỆU
1 Các phương thức,
các cấu trúc lệnh, ...
byte
2 Cấu trúc dữ liệu byte
C. NỘI DUNG. Hàm là một chương trình con thực hiện một khối công việc được lặp đi lặp lại nhiều
lần trong khi chạy chương trình hoặc dùng tách một khối công việc cụ thể để chương
trình đỡ phức tạp.
1. Các ví dụ về hàm
Ví dụ 1:
86
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Khai báo
prototype Từ khóa
void.
3 Định
nghĩa hàm
star_line().
Dùng
vòng lặp
for, lệnh
printf.
4 Thân
chương
trình
Hàm
main, từ
khóa void.
88
Kết quả in ra màn hình
Giải thích chương trình
Hàm ham_mu có hai tham số truyền vào là x, n có kiểu int và kiểu trả về cũng có
kiểu int. Hai tham số x, n của hàm ham_mu là dạng truyền tham trị.
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Khai báo
prototype Từ khóa
int.
3 Định
nghĩa hàm
Dùng
vòng lặp
for.
4 Thân
chương
trình
Hàm
main, từ
khóa void.
5 Sử dụng
hàm.
Lời gọi
hàm.
Ví dụ 3:
89
Kết quả in ra màn hình
Giải thích chương trình
Hàm time có hai tham số truyền vào là h, m có kiểu int. Hai tham số này có toán
tử địa chỉ & đi trước cho biết 2 tham số này là được truyền tham biến.
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Khai báo
prototype
Từ khóa
void.
3 Định
nghĩa hàm
Phép gán,
toán tử &.
90
4 Thân
chương
trình
Hàm
main, từ
khóa void.
5 Nhập liệu
Lệnh nhập
xuất dữ
liệu.
6 Xử lý
chương
trình
Lời gọi
hàm.
7 Xuất kết
quả Lệnh xuất
dữ liệu.
2. Tham số dạng tham biến và tham trị
Ví dụ 4:
Đối với hàm sử dụng lệnh return bạn chỉ có thể trả về duy nhất 1 giá trị mà thôi. Để
có thể trả về nhiều giá trị sau khi gọi hàm bạn sử dụng hàm truyền nhiều tham số dạng
tham biến.
91
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Xây dựng
hàm
tham_trị
Từ khóa
void, các
đối số,
biến.
3 Định
nghĩa hàm
tham_bien
Từ khóa
void, các
đối số,
biến., toán
tử &.
4 Thân
chương
trình
Hàm
main, từ
khóa void.
5 Khởi trị
Biến
nguyên
6 Xử lý
chương
trình và
xuất kết
quả.
Lời gọi
hàm. Lệnh
xuất dữ
liệu.
3. Sử dụng biến toàn cục
Ví dụ 5:
Kết quả in ra màn hình
Giải thích chương trình
92
Chương trình trên gồm 2 hàm chan_le và so_am, 2 hàm này bạn thấy không có
tham số để truyền biến num vào xử lý nhưng vẫn cho kết quả đúng. Do chương trình sử
dụng biến num toàn cục nên biến này có ảnh hưởng đến toàn bộ chương trình mỗi khi gọi
và sử dụng nó.
Xét tình huống sau: Giả sử trong hàm so_am ta khai báo biến num có kiểu int như
sau:
void so_am()
{
int num;
.
}
Khi đó chương trình sẽ cho kết quả không đúng Do các câu lệnh trong hàm so_am
sử dụng biến num sẽ sử dụng biến num khai báo trong hàm so_am và lúc này biến num
toàn cục không có tác dụng đối với các câu lệnh trong hàm này. Biến num khai báo trong
hàm so_am chỉ có ảnh hưởng trong phạm vi hàm và chu trình sống của nó bắt đầu từ lúc
gọi hàm đến khi thực hiện xong hàm.
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Xây dựng
hàm
chan_le.
Từ khóa
void, câu
lệnh if.
3 Định
nghĩa hàm
so_am
Từ khóa
void, câu
lệnh if.
4 Thân
chương
trình
Hàm
main, từ
khóa void.
5 Nhập liệu
Hàm
printf,
scanf
93
6 Xử lý dữ
liệu Lời gọi
hàm. Lệnh
xuất dữ
liệu.
Ví dụ 6:
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Đinh
nghĩa
trước
Từ khóa
define.
3 Khai báo
prototype Kiểu dữ
liệu hàm.
94
4 Khai báo
biến toàn
cục
Biến
5 Định
nghĩa hàm
dientich
Từ khóa
return,
biến,
hằng...
6 Chương
trình
chính
Hàm
main, từ
khóa void.
7 Nhập liệu
Hàm
printf,
scanf
8 Xử lý dữ
liệu và
xuất kết
quả.
Lời gọi
hàm, lệnh
printf.
4. Dùng dẫn hướng #define Sau đây là một vài ví dụ dùng dẫn hướng #define để định nghĩa hàm đơn giản
#define AREA_CIRCLE (rad) (4*PI*rad*rad)
#define SUM (x, y) (x + y)
#define SQR (x) (x*x)
#define MAX(x, y) (x > y) ? x : y
#define ERROR (s) printf("%s.\n", s)
Ví dụ7: Trong ví dụ 6 thêm dòng AREA_CIRCLE (frad) (4*PI+frad*frad).Roi sửa dòng
printf("Dien tich hinh cau: %10.3f.\n", area()) printf("Dien tich hinh cau: %10.3f.\n",
AREA_CIRCLE(frad));. Chạy lại chương trình, quan sát thấy kết quả nhận được
như ở ví dụ 6 trên. Ví dụ 8:
95
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Đinh
nghĩa
trước
Từ khóa
define.
3 Chương
trình
chính
Hàm
main, từ
khóa void.
4 Khởi trị
Biến a, b.
5 Xử lý
dữ liệu
và xuất
kết quả.
Lời gọi
hàm, lệnh
printf.
5. Hàm đệ qui
96
Bất cứ một hàm nào đó có thể triệu gọi hàm khác, nhưng ở đây một hàm nào
đó có thể tự triệu gọi chính mình. Kiểu hàm như thế được gọi là hàm đệ quy.
Phương pháp đệ quy thường dùng phổ biến trong những ứng dụng mà cách
giải quyết có thể được thể hiện bằng việc áp dụng liên tiếp cùng giải pháp cho những
tập hợp con của bài toán.
Ví dụ 1: Tính n!
n! = 1*2*3**(n-2)*(n-1)*n với n >= 1 và 0! = 1.
97
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Khai báo
prototype Tên hàm.
3 Định
nghĩa hàm
giai thừa
Hàm, đối
số hàm,
các lệnh
thực hiện
nhập, xử
lý dữ liệu
và xuất dữ
liệu.
3 Chương
trình
chính
Hàm
main, từ
khóa void.
4 Nhập liệu
Biến n,
lệnh
printf,
scanf.
5 Xử lý dữ
liệu và
xuất kết
quả.
Lời gọi
hàm, lệnh
printf.
Ví dụ 1:
Với n! = 1*2*3**(n-2)*(n-1)*n.Ta viết lại như sau: (1*2*3**(n-2)*(n-
1))*n = n*(n-1)! = n*(n-1)*(n-2)! Ta viết lại hàm giaithua bằng đệ quy như sau:
99
Kết quả in ra màn hình
Giải thích hoạt động của hàm đệ quy giaithua.
Ví dụ giá trị truyền vào hàm giai thua qua biến n bằng 5.
• Thứ tự gọi thực hiện hàm
Khi tham số n = 0 thì return về giá trị 1. Lúc này các giá trị ? bắt đầu định trị
theo thứ tự ngược lại.
• Định trị theo thứ tự ngược lại
Kết quả sau cùng ta có 5! = 120.
100
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Khai báo
prototype
Tên hàm.
3 Định
nghĩa hàm
giai thừa
theo vòng
lặp.
Hàm, đối
số hàm,
các lệnh
thực hiện
nhập, xử
lý dữ liệu
và xuất dữ
liệu, vòng
lặp.
4 Định
nghĩa hàm
giai thừa
theo đệ
qui.
Hàm, đối
số hàm,
các lệnh
thực hiện
nhập, xử
lý dữ liệu
và xuất dữ
liệu, lời
gọi đệ qui.
5 Chương
trình
chính
Hàm
main, từ
khóa void.
101
6 Nhập liệu
Biến n,
lệnh
printf,
scanf.
7 Xử lý dữ
liệu và
xuất kết
quả.
Lời gọi
hàm, lệnh
printf.
Ví dụ 2:
Dãy số Fibonacci 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, Bắt đầu bằng 0 và 1, các số tiếp
theo bằng tổng hai số đi trước.
Dãy Fibonacci được khai báo đệ quy như sau:
102
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Khai báo
prototype
Tên hàm.
3 Định
nghĩa hàm
fibonacci.
Hàm, đối
số hàm,
các lệnh
thực hiện
nhập, xử
lý dữ liệu
và xuất dữ
liệu, lời
gọi hàm.
4 Chương
trình
chính
Hàm
main, từ
khóa void.
5 Nhập liệu
Biến n,
lệnh
printf,
scanf.
6 Xử lý dữ
liệu và
xuất kết
quả.
Lời gọi
hàm, lệnh
printf.
Ưu nhược điểm giữa đệ qui và vòng lặp
Phương pháp đệ quy không phải bao giờ cũng là giải pháp hữu hiệu nhất.Giải
pháp vòng lặp có hiệu quả về mặt thời gian và vùng nhớ. Còn với đệ quy mỗi lần gọi
đệ quy máy phải dành một sốvùng nhớ để trữ các trị, thông số và biến cục bộ. Do
đó, đệ quy tốn nhiều vùng nhớ, thời gian truyền đối mục, thiết lập vùng nhớ trung
gian và trả về kết quả…Nhưng sử dụng phương pháp đệ quy trông chương trình
103
đẹp mắt hơn vòng lặp và tính thuyết phục của nó. Điều cốt lõi khi thiết đặt chương
trình phải làm thế nào hàm đệquy có thể chấm dứt thông qua điều kiện cơ bản.
(*) Chú ý về an toàn.
- Tuân thủ nội quy phòng máy.
- Dữ liệu lưu trữ trên máy tính gọn gàng, khoa học
(*) Những sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục
TT Sai hỏng thường gặp Nguyên nhân Biện pháp khắc phục
1 Phân biệt giữa tham
biến, tham trị.
Phạm vi sử dụng. Qui ước mã
hóa.
Mã hóa đúng trong
từng trường hợp.
2 Cơ chế thực hiện đệ
qui
Không nắm được nguyên tắc
hoạt động stack.
Hệ thống lại kiến thức
bộ nhớ chính. Kiến
thức toán về hệ thức
truy hồi.
D. TIÊU CHÍ ĐÁNH GIÁ.
TT Nội dung
Điểm
chuẩn
Điểm
đánh
giá
I Điểm thao tác 10
1 Tham biến, tham trị 4
2 Biến toàn cục 2
3 Hàm đệ qui 4
II Điểm cộng sáng tạo 0.5
1 Sáng tạo trong các bài tập ứng dụng. 0.5
III Điểm cộng hoàn thành trước thời gian qui định 0.5
1 Hoàn thành đúng thời gian qui định. 0
2 Hoàn thành trước thời gian qui định từ 10-15 phút. 0.25
105
Bài 8
MẢNG
A. MỤC TIÊU.
- Trình bày được việc khai báo mảng, tham chiếu đến từng phần tử mảng, nhập liệu
mảng, kĩ thuât sentinel, khởi tạo mảng, mảng nhiều chiều, tham chiếu đến từng phần tử
mảng 2 chiều, nhập dữ liệu cho mảng 2 chiều, đọc dữ liệu từ mảng 2 chiều, khởi tạo mảng
2 chiều, dùng mảng 1 chiều làm tham số cho hàm, dùng mảng 2 chiều làm tham số cho
hàm.
- Vận dụng các kiến thức trên để lập trình các bài toán.
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo.
B. DỤNG CỤ - THIẾT BỊ - VẬT LIỆU.
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 10
III VẬT LIỆU
1 Các phương thức,
các cấu trúc lệnh, ...
byte
2 Cấu trúc dữ liệu byte
C. NỘI DUNG.
Là tập hợp các phần tử có cùng dữ liệu. Giả sử bạn muốn lưu n số nguyên để
tính trung bình, bạn không thể khai báo n biến để lưu n giá trị rồi sau đó tính trung
bình.
106
Ví dụ 1 : bạn muốn tính trung bình 10 số nguyên nhập vào từ bàn phím, bạn
sẽ khai báo 10 biến: a, b, c, d, e, f, g, h, i, j có kiểu int và lập thao tác nhập cho 10
biến này như sau:
printf("Nhap vao bien a: ");
scanf("%d", &a);
10 biến bạn sẽ thực hiện 2 lệnh trên 10 lần, sau đó tính trung bình: (a + b + c + d +
e + f + g + h + i + j)/10
Điều này chỉ phù hợp với n nhỏ, còn đối với n lớn thì khó có thể thực hiện
được. Vì vậy khái niệm mảng được sử dụng.
1. Cách khai báo mảng
Ví dụ 2 : int a[10]; với int là kiểu mảng, a là tên mảng, 10: số phần tử mảng
Ý nghĩa: Khai báo một mảng số nguyên gồm 10 phần tử, mỗi phần tử có kiểu
int.
2. Tham chiếu đến từng phần tử mảng
Sau khi mảng được khai báo, mỗi phần tử trong mảng đều có chỉ số để tham
chiếu. Chỉ số bắt đầu từ 0 đến n-1 (với n là kích thước mảng). Trong ví dụ trên, ta
khai báo mảng 10 phần tử thì chỉ số bắt đầu từ 0 đến 9.
107
3. Nhập dữ liệu cho mảng
for (i = 0; i < 10; i++)
{
printf("Nhap vao phan tu thu %d: ", i + 1);
scanf("%d", &a[i]);
}
for(i = 0; i < 10; i++)
printf("%3d ", a[i]);
Ví dụ 3 : Viết chương trình nhập vào n số nguyên. Tính và in ra trung bình cộng.
108
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Hàm
chính
Hàm
main, từ
khóa void.
4 Nhập liệu
Biến n,
mảng,
sum, lệnh
printf,
scanf.
5 Nhập liệu
vào mảng
Vòng lặp,
lệnh nhập,
xuất.
109
6 Tính tổng
các phần
tử
Vòng lặp,
biến chạy
7 Lệnh xuất
kết quả Lệnh xuất
Ví dụ 3 :
Điều gì sẽ xảy ra cho đoạn chương trình trên nếu bạn nhập n > 50 trong khi
bạn chỉ khai báo mảng ia tối đa là 50 phần tử. Bạn dùng lệnh if để ngăn chặn điều
này trước khi vào thực hiện lệnh for.
do
{
printf("Nhap vao gia tri n: ");
scanf("%d", &n);
} while (n <= 0 || n > 50);
- Sử dụng biến kiểu khác
Ngoài kiểu int, bạn có thể khai báo mảng kiểu char, float, double
Ví dụ 4 : char loai[20]; float temp[10];
4. Kỹ thuật Sentinal
Sử dụng kỹ thuật này để nhập liệu giá trị cho các phần tử mảng mà không
biết rõ số lượng phần tử sẽ nhập vào là bao nhiêu (không biết số n).
Ví dụ 5 : Viết chương trình nhập vào 1 dãy số dương rồi in tổng các số dương
đó.
110
Phác họa lời giải: Chương trình yêu cầu nhập vào dãy số dương mà không
biết trước số lượng phần tử cần nhập là bao nhiêu, vì vậy để chấm dứt nhập liệu khi
thỏa mãn bằng cách nhập vào số âm hoặc không.
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Hàm
chính
Hàm
main, từ
khóa void.
4 Khởi trị
Biến i,
mảng,
sum.
111
5 Nhập liệu
vào mảng
Vòng lặp,
lệnh nhập,
xuất.
6 Tính tổng
các phần
tử
Vòng lặp,
biến chạy
7 Lệnh xuất
kết quả Lệnh xuất
Hoặc
if (i >= MAX)
{
printf("Mang da day!\n");
break;
}
5. Khởi tạo mảng
Ví dụ 6 : Có 4 loại tiền 1, 5, 10, 25 và 50 đồng. Hãy viết chương trình nhập vào số
tiền sau đó cho biết số số tiền trên gồm mấy loại tiền, mỗi loại bao nhiêu tờ.
Phác họa lời giải: Số tiền là 246 đồng gồm 4 tờ 50 đồng, 1 tờ 25 đồng, 2 tờ 10 đồng,
0 tờ 5 đồng và 1 tờ 1 đồng. Nghĩa là bạn phải xét loại tiền lớn trước, nếu hết khả
năng mới xét tiếp loại kế tiếp.
112
Kết quả in ra màn hình
Điều gì sẽ xảy nếu số phần tử mảng lớn hơn số mục, số phần tử dôi ra không
được khởi tạo sẽ điền vào số 0. Nếu số phần tử nhỏ hơn số mục khởi tạo trình biên
dịch sẽ báo lỗi.
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
113
3 Hàm
chính
Hàm
main, từ
khóa void.
4 Nhập liệu
Biến i,
mảng, ...,
hàm
printf,
scanf.
5 Xử lý và
in kết quả
Vòng lặp,
các lệnh
xử lý và
xuất dữ
liệu.
Ví dụ 7 :
int tien[5] = {50, 25}, phần tử tien[0] sẽ có giá trị 50, tien[1] có giá trị 25,
tien[2], tien[3], tien[4] có giá trị 0. int tien[3] = {50, 25, 10, 5, 1} trình biên dịch
báo lỗi
- Khởi tạo mảng không bao hàm kích thước
Trong ví dụ trên giả sử ta khai báo int tien[] = {50, 25, 10, 5, 1}. Khi đó trình
biên dịch sẽ đếm số mục trong danh sách khởi tạo và dùng con số đó làm kích
thước mảng.
6. Mảng nhiều chiều
Ví dụ 8 : khai báo mảng 2 chiều int a[5][10];
Với int là kiểu mảng, a là tên mảng, số phần tử mảng là 5 x 10.
Ý nghĩa: Khai báo một mảng 2 chiều số nguyên gồm 50 phần tử, mỗi phần tử có
kiểu int.
114
7. Tham chiếu đến từng phần tử mảng 2 chiều
Sau khi được khai báo, mỗi phần tử trong mảng 2 chiều đều có 2 chỉ số để tham
chiếu, chỉ số hàng và chỉ số cột. Chỉ số hàng bắt đầu từ 0 đến số hàng - 1 và chỉ số cột bắt
đầu từ 0 đến số cột - 1. Tham chiếu đến một phần tử trong mảng 2 chiều a: a[chỉ số
hàng][chỉ số cột]
a[1][7] là phần tử tại hàng 1 cột 7 trong mảng 2 chiều xem như là một biến kiểu int.
8. Nhập dữ liệu cho mảng 2 chiều
Dùng hai vòng lặp và hai biến chạy để nhập liệu cho mảng hai chiều. Cần có các
lệnh nhập xuất dữ liệu printf và scanf. Chú ý toán tử & trong lệnh scanf.
for (i = 0; i < 5; i++)
for (j = 0; j < 10; j++)
{
printf("Nhap vao phan tu a[%d][%d]: ", i + 1, j + 1);
scanf("%d", &a[i][j]);
}
9. Đọc dữ liệu từ mảng 2 chiều
Ví dụ 9 : In giá trị các phần tử mảng 2 chiều ra màn hình.
for (i = 0; i < 5; i++)
{
for (j = 0; j < 10; j++)
115
printf("%3d ", a[i][j]);
printf("\n");
}
Dùng hai vòng lặp và hai biến chạy để xuất dữ liệu từ mảng hai chiều. Chỉ cần
lệnh xuất dữ liệu printf để hiển thị kết quả. Lệnh vòng lặp không nhất thiết phải là for.
Ví dụ 10 : Viết chương trình nhập vào 1 ma trận số nguyên n x n. In ra ma trận
vừa nhập vào và ma trận theo thứ tự ngược lại.
116
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Hàm
chính
Hàm
main, từ
khóa void.
4 Nhập liệu
Biến i, j,
mảng, ...,
hàm
printf,
scanf, 2
vòng lặp
lồng nhau.
5 Xuất ma
trận
2 vòng lặp
lồng nhau,
các lệnh
xử lý và
xuất dữ
liệu.
6 Xuất ma
trận theo
thứ tự
ngược.
2 vòng lặp
lồng nhau,
các lệnh
xử lý và
xuất dữ
liệu.
10. Khởi tạo mảng 2 chiều
Ví dụ 11 : Vẽ chữ H lớn.
117
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
118
3 Khởi tạo
mảng
Mảng 2
chiều.
4 Hàm
chính
Hàm
main, từ
khóa void.
5
Xuất
mảng
2 vòng lặp
lồng nhau,
các lệnh
xử lý và
xuất dữ
liệu.
11. Dùng mảng 1 chiều làm tham số cho hàm
Ví dụ 12 : Tìm số lớn nhất
119
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Khai báo
prototype
Hàm
4 Định
nghĩa hàm
max
Hàm, các
tham số,
các lệnh
nhập, xử
lý và xuất
dữ liệu.
5 Hàm
chính
Hàm
main, từ
khóa void.
120
6
Nhập liệu
mảng
2 vòng lặp
lồng nhau,
các lệnh
xử lý và
xuất dữ
liệu.
7 Xử lý Gọi hàm
8 Xuất kết
quả Hàm xuất
Ví dụ 13 : Bạn khai báo các mảng sau a[MAX], b[MAX], c[MAX]. Để tìm giá trị lớn
nhất của từng mảng. Bạn chỉ cần gọi hàm
- max_a = max(a, i);
- max_b = max(b, i);
- max_c = max(c, i);
Ví dụ 14 : Tìm số lớn nhất của mảng một chiều.
122
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Khai báo
prototype
Hàm
4 Định
nghĩa hàm
max
Hàm, các
tham số,
các lệnh
nhập, xử
lý và xuất
dữ liệu.
5 Định
nghĩa hàm
nhập liệu
Hàm, các
tham số,
các lệnh
nhập dữ
liệu.
6 Hàm
chính
Hàm
main, từ
khóa void.
7
Nhập liệu,
tìm phần
tử max,
xuất phần
tử max.
Lời gọi
hàm, lệnh
xuất dữ
liệu.
12. Dùng mảng 2 chiều làm tham số cho hàm
Ví dụ 15 : Nhập vào 2 ma trận vuông cấp n số thập phân. Cộng 2 ma trận này
lưu vào ma trận thứ 3 và tìm số lớn nhất trên ma trận thứ 3.
125
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Khai báo
prototype
Hàm
4 Khai báo
biến toàn
cục
Biến
5 Định
nghĩa hàm
max
Hàm, các
tham số,
các lệnh
nhập, xử
lý và xuất
dữ liệu.
6 Định
nghĩa hàm
nhập liệu
Hàm, các
tham số,
các lệnh
nhập dữ
liệu: 2
vòng lặp
lồng
nhau...
7 Định
nghĩa hàm
công hai
ma trận
Hàm, các
tham số,
các lệnh
cộng hai
ma trân: 2
vòng lặp
lồng
nhau...
8 Hàm
chính
Hàm
main, từ
khóa void.
9
Nhập dữ
liệu cho
các ma
trận
Lời gọi
hàm, lệnh
xuất, nhập
dữ liệu.
10 Cộng hai
ma trận
Gọi hàm.
126
11 Xuất các
ma trận
Gọi hàm,
lệnh xuất.
12 Xuất giá
trị lớn
nhất
Gọi hàm,
lệnh xuất
Ví dụ 16 : Mảng 2 chiều được khai báo int a[3][3]
Truyền tham số vào hàm: a[][3], để tham khảo đến ptử [2][1], hàm tính như sau:
2 * 3 + 1 = 7 (chỉ số hàng * số cột + chỉ số cột) a[3][3] gồm 9 phần tử được lưu trữ trong
bộ nhớ như sau:
(*) Chú ý về an toàn.
- Tuân thủ nội quy phòng máy.
- Dữ liệu lưu trữ trên máy tính gọn gàng, khoa học
(*) Những sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục
TT Sai hỏng thường gặp Nguyên nhân Biện pháp khắc phục
1 Truyên tham biến với
mảng là đối số của
hàm ta không cần ghi
toán tử &.
Mảng luôn được xác định bởi
phần tử đầu.
Ta không cần ghi toán
tử & khi truyền tham
biến là mảng.
2 Thao tác với mảng một
chiều và hai chiều
tương ứng dùng 1
vòng lặp và 2 vòng lặp.
Không nắm được cấu trúc
mảng 1 chiều và 2 chiều.
Sử dụng đúng cấu trúc
lệnh và dữ liệu khi mã
hóa các thao tác trên
mảng.
D. TIÊU CHÍ ĐÁNH GIÁ.
127
TT Nội dung
Điểm
chuẩn
Điểm
đánh
giá
I Điểm thao tác 10
1 Khai báo mảng. 0.5
2 Tham chiếu đến từng phần tử mảng. 1
3 Nhập liệu mảng 1
4 Kĩ thuât sentinal 0.5
5 Khởi tạo mảng 0.5
6 Mảng nhiều chiều 1
7 Tham chiếu đến từng phần tử mảng 2 chiều 1
8 Nhập dữ liệu cho mảng 2 chiều 1
9 Đọc dữ liệu từ mảng 2 chiều 1
10 Khởi tạo mảng 2 chiều 0.5
11 Dùng mảng 1 chiều làm tham số cho hàm 1
12 Dùng mảng 2 chiều làm tham số cho hàm 1
II Điểm cộng sáng tạo 0.5
1 Sáng tạo trong các bài tập ứng dụng 0.5
III Điểm cộng hoàn thành trước thời gian qui định 0.5
1 Hoàn thành đúng thời gian qui định. 0
2 Hoàn thành trước thời gian qui định từ 10-15 phút. 0.25
3 Hoàn thành trước thời gian qui định từ 16 phút trở lên. 0.5
Tổng điểm 10
129
Bài 9
CHUỖI
A. MỤC TIÊU.
- Trình bày được khai báo chuỗi, hàm nhập xuất chuỗi gets, puts, khởi tạo chuỗi,
mảng chuỗi, các hàm chuyển đổi dữ liệu, các hàm xử lý chuỗi.
- Vận dụng các kiến thức trên để lập trình các bài toán.
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo.
B. DỤNG CỤ - THIẾT BỊ - VẬT LIỆU.
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 7
III VẬT LIỆU
1 Các phương thức,
các cấu trúc lệnh, ...
byte
2 Cấu trúc dữ liệu byte
C. NỘI DUNG. Chuỗi được xem như là mảng một chiều gồm các phần tử có kiểu char như mẫu
tự, con số và bất cứ ký tự đặc biệt như +, -, *, /, $, # Theo quy ước, một chuỗi sẽ được
kết thúc bởi ký tự null ('\0' : kí tự rỗng).
Ví dụ: chuỗi "Computer Science" được lưu trữ như
131
Lưu ý: Không cần sử dụng toán tử địa chỉ & trong name trong lệnh
scanf("%s", name), vì bản thân name đã là địa chỉ.
Dùng hàm scanf để nhập chuỗi có hạn chế như sau: Khi bạn thử lại chương
trình trên với dữ liệu nhập vào là Minh Anh, nhưng khi in ra bạn chỉ nhận được
Minh. Vì hàm scanf nhận vào dữ liệu đến khi gặp khoảng trắng thì kết thúc.
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Hàm
chính
Hàm
main, từ
khóa void.
3
Nhập dữ
liệu
Mảng kí
tự, lệnh
xuất, nhập
dữ liệu.
4 Xuất
chuôi Xuất dữ
liệu.
132
2. Hàm nhập (gets), xuất (puts) chuỗi
Sử dụng hàm gets, puts phải khai báo #include <stdio.h>
Kết quả in ra màn hình
Đối với hàm puts kí tự kết thúc chuỗi null (\0) được thay thế bằng kí tự newline
(\n). Hàm gets và puts chỉ có 1 đối số và không sử dụng dạng thức trong nhập liệu cũng
như xuất ra màn hình.
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Hàm
chính
Hàm
main, từ
khóa void.
133
3
Nhập dữ
liệu
Mảng kí
tự, lệnh
xuất, nhập
dữ liệu:
puts, gets.
.
4 Xuất
chuôi Xuất dữ
liệu.
3. Khởi tạo chuỗi
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
134
2 Hàm
chính
Hàm
main, từ
khóa void.
3
Nhập dữ
liệu
Mảng kí
tự, lệnh
xuất, nhập
dữ liệu:
puts, gets.
.
4 Xuất
chuôi Xuất dữ
liệu.
4. Mảng chuỗi
135
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Khởi tạo
mảng
chuỗi
Mảng hai
chiều.
136
3 Hàm
chính
Hàm
main, từ
khóa void.
4
Nhập dữ
liệu
Biến, hàm
nhập, xuất
dữ liệu.
5 Xuất
chuỗi Xuất dữ
liệu mảng
5. Các hàm chuyển đổi dữ liệu
- atof
double atof(const char *s);
Chuyển đổi 1 chuỗi sang giá trị double.
Phải khai báo math.h hoặc stdlib.h
Ví dụ: float f;
char *str = "12345.67";
f = atof(str);
Kết quả f = 12345.67;
- atoi
int atoi(const char *s);
Chuyển đổi 1 chuỗi sang giá trị int.
Ví dụ: int i;
char *str = "12345.67";
i = atoi(str);
Kết quả i = 12345
- itoa
char *itoa(int value, char *string, int radix);
Chuyển đổi số nguyên value sang chuỗi string theo cơ số
radix.
Phải khai báo stdlib.h
Ví dụ: int number = 12345;
char string[25];
137
itoa(number, string, 10);
Kết quả string = "12345";
itoa(number, string, 2);
Kết quả string = "11000000111001";
- tolower
int tolower(int ch);
Đổi chữ hoa sang chữ thường.
Phải khai báo ctype.h
Ví dụ: int len, i;
char *string = "THIS IS A STRING";
len = strlen(string);
for (i = 0; i < len; i++)
string[i] = tolower(string[i]); //đổi từ kí tự trong string thành chữ thường
- toupper
int toupper(int ch);
Đổi chữ thường sang chữ hoa.
Phải khai báo ctype.h
Ví dụ: int len, i;
char *string = "this is a string";
len = strlen(string);
for (i = 0; i < len; i++)
string[i] = toupper(string[i]); //đổi từ kí tự trong string thành chữ thường
6. Các hàm xử lý chuỗi ký tự
- strcat
char *strcat(char *dest, const char *src);
138
Thêm chuỗi src vào sau chuỗi dest.
Phải khai báo string.h
- strcpy
char *strcpy(char *dest, const char *src);
Chép chuỗi src vào dest.
Phải khai báo string.h
Ví dụ: char destination[25];
char *blank = " ", *c = "C++", *borland = "Borland";
strcpy(destination, borland); //chép chuỗi borland vào destination
strcat(destination, blank); //thêm chuỗi blank vào sau chuỗi destination
strcat(destination, c); //thêm chuỗi c vào sau chuỗi destination
- strcmp
int *strcmp (const char *s1, const char *s2);
So sánh chuỗi s1 với chuỗi s2. Kết quả trả về:
• < 0 nếu s1 < s2
• = 0 nếu s1 = s2
• > 0 nếu s1 > s2
Phải khai báo string.h
Ví dụ: char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "aaa";
strcmp(buf1, buf2); //kết quả trả về - 1
strcmp(buf1, buf3); //kết quả trả về 0
strcmp(buf2, buf3); //kết quả trả về 1
- strcmpi
int *strcmpi(const char *s1, const char *s2);
So sánh chuỗi s1 với chuỗi s2 không phân biệt chữ hoa, chữ thường. Kết quả trả về:
• < 0 nếu s1 < s2
139
• = 0 nếu s1 = s2
• > 0 nếu s1 > s2
Ví dụ: char *buf1 = "aaa", *buf2 = "AAA";
strcmp(buf1, buf2); //kết quả trả về 0
Ví dụ
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
140
2 Khởi tạo
mảng
chuỗi
Mảng hai
chiều.
3 Hàm
chính
Hàm
main, từ
khóa void.
4
Khởi trị
chuỗi
2 mảng
chuỗi
5 Xuất dữ
liệu
Xuất dữ
liệu
- strlwr
char *strlwr (char *s);
Chuyển chuỗi s sang chữ thường
Phải khai báo string.h
Ví dụ: char *s = "Borland C";
s = strlwr(s);
- strupr
char *strupr(char *s);
Chuyển chuỗi s sang chữ hoa
Ví dụ: char *s = "Borland C";
s = strlwr(s); kết quả s = "BORLAND C"
- strlen
int strlen (const char *s);
Trả về độ dài chuỗi s.
Phải khai báo string.h
Ví dụ: char *s = "Borland C";
142
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Hàm
chính
Hàm
main, từ
khóa void.
3
Khởi
trị
chuỗi
Mảng
chuỗi
4 Xử lý
chuỗi
Các hàm
xử lý
chuỗi dữ
liệu, lệnh
xuất.
(*) Chú ý về an toàn.
- Tuân thủ nội quy phòng máy.
- Dữ liệu lưu trữ trên máy tính gọn gàng, khoa học
(*) Những sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục
TT Sai hỏng thường gặp Nguyên nhân Biện pháp khắc phục
1 Không quản lí được số
lượng phần tử trong
chuỗi.
Chuỗi luôn có phần tử đánh
dấu kết thúc chuỗi.
Khai báo chuỗi hợp lí.
2 Thao tác nhập xuất
chuỗi phải dùng hàm
gets, puts.
Chuỗi hoàn chỉnh sẽ được
thực hiện.
Sử dụng đúng hàm
nhập xuất chuỗi.
143
D. TIÊU CHÍ ĐÁNH GIÁ.
TT Nội dung
Điểm
chuẩn
Điểm
đánh
giá
I Điểm thao tác 10
1 Khai báo chuỗi 1
2 Hàm nhập xuất chuỗi gets, puts 1
3 Khởi tạo chuỗi 1
4 Mảng chuỗi 3
5 Các hàm chuyển đổi dữ liệu 2
6 Các hàm xử lý chuỗi 2
II Điểm cộng sáng tạo 0.5
1 Sáng tạo trong các bài tập ứng dụng 0.5
III Điểm cộng hoàn thành trước thời gian qui định 0.5
1 Hoàn thành đúng thời gian qui định. 0
2 Hoàn thành trước thời gian qui định từ 10-15 phút. 0.25
3 Hoàn thành trước thời gian qui định từ 16 phút trở lên. 0.5
Tổng điểm 10
144
Bài 10
CON TRỎ
A. MỤC TIÊU.
- Trình bày được khai báo biến con trỏ, truyền địa chỉ sang hàm, con trỏ và mảng,
con trỏ trỏ đến mảng trong hàm, con trỏ và chuỗi, khởi tạo mảng con trỏ trỏ đến chuỗi,
xử lí con trỏ trỏ đến chuỗi, con trỏ trỏ đến con trỏ, con trỏ với mảng 2 chiều.
- Vận dụng các kiến thức trên để lập trình các bài toán.
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo.
B. DỤNG CỤ - THIẾT BỊ - VẬT LIỆU.
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 8
III VẬT LIỆU
1 Các phương thức,
các cấu trúc lệnh, ...
byte
2 Cấu trúc dữ liệu byte
C. NỘI DUNG.
145
Con trỏ là gì?
Con trỏ dùng để truy cập biến thông qua địa chỉ biến và chương trình tham
khảo biến gián tiếp qua địa chỉ này.
1. Khái báo biến con trỏ
Ví dụ 1:
Kết quả in ra màn hình
Giải thích chương trình Khai báo ở dòng 9 cấp phát 2 bytes để lưu giữ địa chỉ của biến nguyên và vùng
nhớ đó có tên là px, tương tự cho py. Dấu * cho biết biến này chứa địa chỉ chứ không
phải giá trị, int cho biết địa chỉ đó sẽ trỏ đến các biến nguyên.
Ví dụ trên cho thấy *px và *py là 2 biến con trỏ trỏ đến địa chỉ của 2 biến x và
y.
146
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Hàm
chính
Hàm
main, từ
khóa void.
3
Khởi
tạo
Biến
nguyên,
con trỏ,
toán tử &
4 Xử lý
Các lệnh
xử lý.
5 Xuất
dữ liệu Lệnh xuất
148
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Khai báo
prototype
Tên hàm
3 Hàm
chính
Hàm
main, từ
khóa void.
4
Khởi tạo
dữ liệu Biến, hàm
khởi tạo.
5 Xuất dữ
liệu Lệnh xuất
6 Định
nghĩa
hàm khởi
tạo
Hàm, các
đối số, các
lệnh xử lý.
149
3. Con trỏ và mảng
Ví dụ 3: Khai báo mảng sau int num[] = {23, 54, 16, 72, 16, 84};
Như đã nghiên cứu cách tham chiếu đến phần tử mảng thứ 5 là num[4], còn
với kiểu con trỏ là *(num + 4). Nghĩa là num[4] tương đương với *(num + 4). Tương
tự như vậy, cách tham khảo địa chỉ của phần tử mảng là &num[4]. Tên mảng cũng
là địa chỉ mảng.
4. Con trỏ trỏ đến mảng trong hàm
Ví dụ 4:
Kết quả in ra màn hình
Giải thích chương trình
Hàm gán địa chỉ của mảng vào biến con trỏ ptr, kích thước vào biến num và hằng
số vào biến a. Sau đó dùng vòng lặp để cộng hằng vào từng phần tử của mảng.
Giả sử địa chỉ của mảng Mang là 245 khi truyền vào hàm add qua con trỏ p, p sẽ
có giá trị = 245.
150
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Khai báo
prototype Tên hàm
3 Hàm
chính
Hàm
main, từ
khóa void.
4
Khởi tạo
dữ liệu
Mảng, các
biến
nguyên.
5 Quá trình
xử lý Gọi hàm
6 Xuất dữ
liệu
Dùng
vòng lặp
151
7 Định
nghĩa
hàm add
Hàm, các
đối số, các
lệnh xử lý.
5. Con trỏ và chuỗi Ví dụ 5:
Kết quả in ra màn hình
Giải thích chương trình
Loichao là biến con trỏ được khởi tạo bằng phát biểu char *loichao = "Chao ban"
thay vì char loichao[] = "Chao ban". Cả hai cách đều cho cùng kết quả và đều dành số
byte cho chuỗi và kèm theo kí tự null.
152
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Hàm
chính
Hàm
main, từ
khóa void.
3
Khởi tạo
dữ liệu
Mảng, con
trỏ.
4 Quá trình
xử lý Hàm nhập
xuất
chuỗi.
5 Xuất dữ
liệu Hàm xuất
chuỗi
6. Khởi tạo mảng con trỏ trỏ đến chuỗi
Ví dụ 6:
153
Giải thích chương trình
Khai báo char *thang[12] có ý nghĩa như sau: thang là tên gọi, dấu * là kiểu con
trỏ trỏ đến kí tự.
154
Chú ý: Khởi tạo mảng các con trỏ trỏ đến các chuỗi chiếm ít bộ nhớ hơn khởi tạo
mảngchuỗi.
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Hàm
chính
Hàm
main, từ
khóa void.
3
Khởi tạo
và nhập
dữ liệu
Mảng con
trỏ, lệnh
nhập xuất.
4 Xuất dữ
liệu Hàm xuất
7. Xử lý con trỏ trỏ đến chuỗi
Ví dụ 7:
156
Giải thích chương trình
Trong chương trình dùng cả mảng chuỗi char name[MAX_NUM][MAX_LEN] và
mảng con trỏ trỏ đến chuỗi char *ptr[MAX_NUM];.
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Hàm
chính
Hàm
main, từ
khóa void.
157
4
Khởi tạo
Mảng con
trỏ, con
trỏ, mảng
2 chiều.
5 Nhập
liệu
Vòng lặp,
các lệnh
nhập liệu.
6 Sắp xếp
tăng
2 vòng lặp
lồng nhau,
lệnh rẽ
nhánh.
7 Xuất kết
quả
Vòng lặp,
lệnh
printf.
8. Con trỏ trỏ đến con trỏ
Ví dụ 8:
158
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Hàm
chính
Hàm
main, từ
khóa void.
4
Khởi tạo
Mảng 2
chiều.
5 Cập nhật
trị
2 vòng lặp
lồng nhau
các lệnh
cập nhật.
6 In dữ liệu
mảng
2 vòng lặp
lồng nhau,
lệnh
printf.
9. Con trỏ với mảng 2 chiều Dùng hàm malloc hoặc calloc để cấp phát mảng động. Mảng này được đặt trong
vùng heap của bộ nhớ chương trình.
Sử dụng hai hàm này ta phải khai báo thư viện alloc.h
Cú pháp:
(KieuDL *) malloc (KichThuoc).
(KieuDL *)calloc(KichThuoc,sizeof(KieuDL)). Ví dụ: Tạo mảng 2 chiều động, nhập liệu cho mảng, xuất mảng, hủy vùng nhớ
động của mảng. (Dùng hàm malloc)
160
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Hàm
chính
Hàm
main, từ
khóa void.
4
Khởi tạo
mảng 2
chiều.
Mảng con
trỏ.
5 Nhập
liệu
2 vòng lặp
lồng nhau
các lệnh
nhập liệu.
6 In dữ liệu
mảng 2
chiều.
2 vòng lặp
lồng nhau,
lệnh
printf.
7 Giải
phóng
mảng
Vòng lặp,
toán tử
free.
Ví dụ: Tạo mảng 2 chiều động, nhập liệu cho mảng, xuất mảng, hủy vùng nhớ động của
mảng. (Dùng hàm calloc)
162
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Hàm
chính
Hàm
main, từ
khóa void.
4
Khởi tạo
mảng 2
chiều.
Mảng con
trỏ.
5 Nhập
liệu
2 vòng lặp
lồng nhau
các lệnh
nhập liệu.
6 In dữ liệu
mảng 2
chiều.
2 vòng lặp
lồng nhau,
lệnh
printf.
7 Giải
phóng
mảng
Vòng lặp,
toán tử
free.
10. Cấp phát mảng động với toán tử new
Toán tử new có chức năng cấp phát động một vùng nhớ nào đó. Vùng nhớ này cũng
được đặt trong heap.
Ví dụ: int *p;
char *q;
163
p= new int;
q= new char;
p= new int(3);
p= new int[3];
Ví dụ: Tạo mảng 2 chiều động, nhập liệu cho mảng, xuất mảng, hủy vùng nhớ
động của mảng. (Dùng new)
164
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Hàm
chính
Hàm
main, từ
khóa void.
4
Khởi tạo
mảng 2
chiều.
Mảng con
trỏ.
165
5 Nhập
liệu
2 vòng lặp
lồng nhau
các lệnh
nhập liệu.
6 In dữ liệu
mảng 2
chiều.
2 vòng lặp
lồng nhau,
lệnh
printf.
7 Giải
phóng
mảng
Vòng lặp,
toán tử
delete.
(*) Chú ý về an toàn.
- Tuân thủ nội quy phòng máy.
- Dữ liệu lưu trữ trên máy tính gọn gàng, khoa học
(*) Những sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục
TT Sai hỏng thường gặp Nguyên nhân Biện pháp khắc phục
1 Các toán tử của con
trỏ.
Tiếp nhận kiến thức hạn chế Trao dồi qua bài tập.
2 Đối số hàm là con trỏ Không nắm được cơ chế
truyền đối số thông qua con
trỏ.
Hệ thống lại kiến thức
truyền tham biến của
hàm.
3 Con trỏ với mảng hai
chiều
Không nắm được cấu trúc dữ
liệu mảng 2 chiều trỏ bởi
mảng con trỏ.
Thực hiện tạo các dãy
mảng cho các phần tử
mảng con trỏ.
D. TIÊU CHÍ ĐÁNH GIÁ.
TT Nội dung
Điểm
chuẩn
Điểm
đánh
giá
I Điểm thao tác 10
166
1 Khai báo biến con trỏ 0.5
2 Truyền địa chỉ sang hàm 1
3 Con trỏ và mảng 1
4 Con trỏ trỏ đến mảng trong hàm 1
5 Con trỏ và chuỗi 1
6 Khởi tạo mảng con trỏ trỏ đến chuỗi 1
7 Xử lí con trỏ trỏ đến chuỗi 1
8 Con trỏ trỏ đến con trỏ 1
9 Con trỏ với mảng 2 chiều 1.5
10 Cấp phát mảng động với toán tử new 1
II Điểm cộng sáng tạo 0.5
1 Sáng tạo trong các bài tập ứng dụng 0.5
III Điểm cộng hoàn thành trước thời gian qui định 0.5
1 Hoàn thành đúng thời gian qui định. 0
2 Hoàn thành trước thời gian qui định từ 10-15 phút. 0.25
3 Hoàn thành trước thời gian qui định từ 16 phút trở lên. 0.5
Tổng điểm 10
167
Bài 11
CÁC KIỂU DỮ LIỆU TỰ TẠO
A. MỤC TIÊU.
- Trình bày được struct và enum
- Vận dụng các kiến thức trên để lập trình các bài toán.
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo.
B. DỤNG CỤ - THIẾT BỊ - VẬT LIỆU.
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 7
III VẬT LIỆU
1 Các phương thức,
các cấu trúc lệnh, ...
byte
2 Cấu trúc dữ liệu byte
C. NỘI DUNG.
1. Structure
Đối với mảng, chỉ có thể lưu nhiều thông tin có cùng kiểu dữ liệu. Nhưng với
structure ta có thể lưu thông tin như một mảng có nhiều kiểu dữ liệu khác nhau.
- Khai báo kiểu structure
Ví dụ 1: Khai báo một structure về thông tin nhân viên
168
Ví dụ trên định nghĩa kiểu dữ liệu mới có tên là nhanviên. Mỗi biến kiểu này gồm
2 phần tử: biến nguyên có tên là manv và biến chuỗi có tên hoten. struct phải viết bằng
chữ thường.
- Cách khai báo biến có kiểu structure
Khai báo biến nv có kiểu struct nhanvien vừa tạo structure nhanvien vừa khai báo
biến nv.
Ví dụ 2:
struct nhanvien
{
int manv;
char hoten[30];
} nv;
struct nhanvien
{
int manv;
char hoten[30];
} ;
struct nhanvien nv;
hoặc
nhanvien nv;
- Tham chiếu các phần tử trong structure
Để tham chiếu đến manv trong nv ta viết như sau: nv.manv.
169
Đối với biến khai báo kiểu con trỏ nhanvien *nv thì tham chiếu đến phần tử manv:
nv -> manv.
Ví dụ 3: Nhập và in danh sách nhân viên.
Kết quả in ra màn hình
170
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Hàm
chính
Hàm
main, từ
khóa void.
4 Tạo cấu
trúc
Từ khóa
struct,
mảng,
biến cơ
sở.
5 Khai báo
biến cục
bộ.
Mảng,
biển.
6
Nhập
liệu
Hàm xử lý
chuỗi.
7 Nhập
liệu cho
danh
sách.
Vòng lặp,
các lệnh
nhập liệu.
171
8 In dữ liệu
mảng. Vòng lặp,
lệnh
printf.
- Khởi tạo structure
Ví dụ 4: Nhập vào bảng số xe, cho biết xe đó thuộc tỉnh thành nào.
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
172
3 Hàm
chính
Hàm
main, từ
khóa void.
4 Tạo
cấu
trúc
Từ khóa
struct,
mảng,
biến cơ
sở, con
trỏ.
5 Khai
báo
biến
cục bộ.
Mảng,
biển.
6
Nhập
liệu
Hàm nhập
liệu.
7 Xuất
dữ liệu
Vòng lặp,
các lệnh
xuất.
- Structure lồng nhau
Ví dụ 5: Nhập và in danh sách nhân viên.
173
Kết quả in ra màn hình
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
Các file
thư viện.
174
chương
trình.
2 Định
nghĩa
trước
Từ khóa
define
3 Hàm
chính
Hàm
main, từ
khóa void.
4 Tạo
cấu
trúc
Từ khóa
struct,
mảng,
biến cơ
sở, cấu
trúc.
5 Khởi
trị
Mảng,
biển,
hàm....
6
Nhập
liệu
cho
danh
sách
Vòng lặp,
các hàm
printf,
gets...
7 Duyệt
danh
sách
Vòng lặp,
các lệnh
xuất,
mảng.
- Truyền structure sang hàm
Giống như mảng, bạn có thể truyền vào hàm qua tham biến.
Ví dụ 6: Sửa lại ví dụ 3, sử dụng hàm cho nhập và in danh sách
176
Giải thích chương trình
Ở chương trình này ta phải khai báo struct nhan_vien là biến toàn cục, vì khi định
nghĩa hàm input và output có sử dụng kiểu dữ liệu struct nhan_vien.
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai báo
thư viện
chương
trình.
Các file
thư viện.
2 Định
nghĩa
trước
Từ khóa
define
3 Khai báo
prototype
Tên hàm
4 Tạo cấu
trúc
Từ khóa
struct,
mảng,
biến cơ
sở, cấu
trúc.
5 Định
nghĩa
hàm
input
Hàm, các
đối số,
mảng,
vòng lặp,
các lệnh
nhập liệu.
6 Định
nghĩa
hàm xuất
Hàm, các
đối số,
vòng lặp,
lệnh
xuất...
177
7 Hàm
chính
Hàm
main, từ
khóa void.
8 Khởi trị
Mảng,
biển,
hàm....
9
Nhập
liệu cho
danh
sách
Gọi hàm
10 Xuất
danh
sách
Gọi hàm
2. Enum
Một biến là kiểu dữ liệu enum có thể nhận được một giá trị nào đó trong các giá
trị được liệt kê.
- Định nghĩa kiểu enum
Ví dụ 8: Định nghĩa kiểu enum day
Các tên thứ (SUN, MON SAT) trong day sẽ được nhận lần lượt các giá trị từ 0
đến 6 (SUN = 0, MON = 1 SAT = 6). enum phải viết bằng chữ thường.
- Cách khai báo biến có kiểu enum
Ví dụ 9:
enum day ngay;
hoặc day ngay;
Khai báo biến ngay có kiểu enum day.
Vừa tạo enum day vừa khai báo biến ngay:
enum day { SUN, MON, TUE, WED, THU, FRI, SAT } ngay;
- Sử dụng enum trong chương trình
178
Ví dụ:
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Hàm
chính
Hàm
main, từ
khóa void.
3 Khai
báo
enum
Từ khóa
enum.
4 Khai
báo
mảng
cục bộ.
Mảng.
5
Khởi
trị enum
179
6 Xuất
dữ liệu
Lệnh xuất.
Chú ý:
Quan sát cách khai báo:
typedef kieudulieu ten;
Ten sẽ trở thành kiểu dữ liêu.
Ví dụ:
typedef enum tuan tu; tu là kiểu dữ liệu.
(*) Chú ý về an toàn.
- Tuân thủ nội quy phòng máy.
- Dữ liệu lưu trữ trên máy tính gọn gàng, khoa học
(*) Những sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục
TT Sai hỏng thường gặp Nguyên nhân Biện pháp khắc phục
1 Không quản lí được
các thành phần cấu
trúc.
Kiến thức kiểu dữ liệu, hạn
chế tiếp thu.
Thực hành thông qua
các ví dụ, bài tập mẫu.
2 Truy cập kiểu dữ liệu
cấu trúc
Không nắm vững các thành
phần biến cấu trúc
Trao dồi thông qua các
bài tập.
D. TIÊU CHÍ ĐÁNH GIÁ.
TT Nội dung
Điểm
chuẩn
Điểm
đánh
giá
I Điểm thao tác 10
1 Struct 6
2 Enum 4
II Điểm cộng sáng tạo 0.5
1 Sáng tạo trong các bài tập ứng dụng 0.5
180
III Điểm cộng hoàn thành trước thời gian qui định 0.5
1 Hoàn thành đúng thời gian qui định. 0
2 Hoàn thành trước thời gian qui định từ 10-15 phút. 0.25
3 Hoàn thành trước thời gian qui định từ 16 phút trở lên. 0.5
Tổng điểm 10
181
Bài 12
TẬP TIN (File)
A. MỤC TIÊU.
- Trình bày được ghi đọc mảng, ghi đọc các biến thuộc kiểu dữ liệu cơ sở, các
mode khác để mở tập tin, các hàm xử lý file.
- Vận dụng các kiến thức trên để lập trình các bài toán.
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo.
B. DỤNG CỤ - THIẾT BỊ - VẬT LIỆU.
TT
TÊN THIẾT BỊ -
DỤNG CỤ - VẬT
LIỆU
THÔNG SỐ
KT ĐƠN VỊ SỐ LƯỢNG GHI CHÚ
I THIẾT BỊ
1 Máy tính Core i3 Bộ 18
2 Máy chiếu Shard PG-
D3510X Cái 1
II DỤNG CỤ
1 Chương trình Turbo
C++
file 1
2 Chương trình mẫu file 6
III VẬT LIỆU
1 Các phương thức,
các cấu trúc lệnh, ...
byte
2 Cấu trúc dữ liệu byte
C. NỘI DUNG.
1. Ví dụ ghi, đọc số nguyên
Dữ liệu là số có thể được lưu trữ tại file trên thiết bị ngoại vi. Dưới đây minh hoa
cho việc lưu trữ n số nguyên vào file và đọc dữ liệu ra từ file ấy.
183
if(f = fopen("n_int_data.dat", "wb") == NULL) : là câu lệnh mở tập tin có tên
n_int_data.dat ở trạng thái "w" (ghi ) dạng "b" (nhị phân), sau khi lệnh này thực hiện
xong trả về dạng con trỏ FILE và gán cho f, nếu kết quả trả về = NULL thì không thể
mở được tập tin, tập tin mở ở dạng "w" nếu trên đĩa đã có sẵn tập tin này thì nội dung
của nó sẽ bị ghi đè, nếu chưa có thì tập tin sẽ được tạo mới. fwrite(&i, sizeof(int), 1,
f); : Ghi thông tin vào tập tin, thông tin được ghi vào mỗi lần là một số nguyên i. Hàm
này có 4 đối số: Địa chỉ để ghi cấu trúc, kích thước của cấu trúc và số cấu trúc sẽ ghi,
sau cùng là con trỏ để trỏ tới tập tin. fclose(f);: đóng tập tin f =
fopen("n_int_data.dat", "rb");: mở tập tin có tên n_int_data.dat ở mode "r" (đọc), dạng
"b" (nhị phân). Tập tin phải có sẵn trên đĩa.
while(fread(&i, sizeof(int), 1, f) == 1) : đọc thông tin từ tập tin, mỗi lần đọc một
số nguyên và lưu vào biến i. Mỗi lần đọc thành công giá trị trả về sẽ là số cấu trúc thực
sự được đọc, nếu giá trị trả về là 0 báo hiệu kết thúc file.
Từ khóa FILE, NULL phải viết bằng chữ in hoa. Sử dụng fopen, fwrite, fread,
fclose phải khai báo #include <stdio.h>.
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Hàm
chính
Hàm
main, từ
khóa void.
3 Khởi
trị
Từ khóa
FILE,
lệnh nhập,
xuât.
4 Kiểm
tra sự
tồn tại
file.
Lệnh if,
hàm
fopen,
printf,
exit.
5
Ghi
file
Vòng lặp,
hàm
fwrite,
fclose,
file.
184
6 Đọc
file
Hàm
fopen(),
vòng lặp,
hàm fread,
lệnh
printf,
file, hàm
fclose.
2. Ghi, đọc mảng
Mảng dữ liệu dược lưu vào file lần lượt theo các phần tử. Dưới đây là bài toán lưu
danh sách nhân viên trên file. Đoc, hiển thị danh sách ấy từ file.
Việc lưu file cho mảng dữ liệu ta cần lưu thêm số phần tử cho mảng ấy.
185
Trình tự thực hiện
TT
BƯỚC
CÔNG
VIỆC
THỰC HIỆN PHƯƠNG
TIỆN
1 Khai
báo thư
viện
chương
trình.
Các file
thư viện.
2 Khai
báo
trước
Từ khóa
define
2 Hàm
chính
Hàm
main, từ
khóa void.
3 Khởi
tạo file Từ khóa
FILE.
4 Khởi
tạo cấu
trúc
Các thành
phần dữ
liệu, từ
khóa
struct.
5 Khởi
tạo
danh
sách
2 mảng
6 Khởi
tạo các
biến
cục bộ
Mảng,
biến cơ
sở, hàm
nhập liệu.
7 Kiểm
tra tồn
tại file
Lệnh if,
hàm
fopen,
lệnh
xuất...
186
8 Ghi số
phần tử
danh
sách
Hàm
fwrite...
9
Ghi
file
Vòng lặp,
hàm
fwrite,
file.
10 Đóng
file Hàm
fclose
11 Mở file Hàm
fopen
12 Đọc số
phần tử
danh
sách
Hàm
fread,
sizeof.
13 Đọc
file
Vòng lặp,
hàm fread,
sizeof,
lệnh
printf,
file.
3. Các mode khác để mở tập tin
187
Ở 3 ví dụ trên chỉ sử dụng 2 mode "w" (ghi) và "r"(đọc), sau đây là một số
mode khác:
* "a": Mở để nối thêm, thông tin sẽ được ghi thêm vào cuối của tập tin đã có
hoặc tạo tập tin mới nếu chưa có trên đĩa.
* "r+": Mở để vừa đọc vừa ghi, tập tin phải có sẵn trên đĩa.
* "w+": Mở để vừa đọc vừa ghi, nội dung của tập tin đã có trên đĩa sẽ bị ghi
đè lên.
* "a+": Mở để đọc và nối thêm, nếu trên đĩa chưa có tập tin nó sẽ được tạo
mới.
4. Các hàm xử lý file
- rewind
void rewind(FILE *stream);
Đưa con trỏ về đầu file.
Phải khai báo stdio.h.
- ftell
long ftell(FILE *stream);
Trả về vị trí con trỏ file hiện tại.
Phải khai báo stdio.h
- fseek
int fseek(FILE *stream, long offset, int whence);
Di chuyển con trỏ file đến vị trí mong muốn
• long offset: chỉ ra số byte kể từ vị trí trước đó đến vị trí bắt đầu đọc
• int whence: chỉ ra điểm xuất phát để tính offset gồm các giá trị sau: SEEK_SET
(đầu tập tin), SEEK_CUR (tại vị trí con trỏ hiện hành), SEEK_END (cuối tập tin).
Phải khai báo stdio.h
(*) Chú ý về an toàn.
- Tuân thủ nội quy phòng máy.
- Dữ liệu lưu trữ trên máy tính gọn gàng, khoa học
188
(*) Những sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục
TT Sai hỏng thường gặp Nguyên nhân Biện pháp khắc phục
1 Cấu trúc file Kiến trúc thiết bị lưu trữ. Nắm rõ cách dữ liệu
được ghi/đọc trên thiết
bị lưu trữ.
2 Cơ chế ghi/đọc file Truyền các đối số cho các
hàm ghi/đọc file.
Nắm rõ cấu trúc dữ liệu
cần ghi/đọc.
D. TIÊU CHÍ ĐÁNH GIÁ.
TT Nội dung
Điểm
chuẩn
Điểm
đánh
giá
I Điểm thao tác 10
1 Ghi đọc mảng 7
2 Các mode khác để mở tập tin 1
3 Các hàm xử lý file 2
II Điểm cộng sáng tạo 0.5
1 Sáng tạo trong các bài tập ứng dụng. 0.5
III Điểm cộng hoàn thành trước thời gian qui định 0.5
1 Hoàn thành đúng thời gian qui định. 0
2 Hoàn thành trước thời gian qui định từ 10-15 phút. 0.25
3 Hoàn thành trước thời gian qui định từ 16 phút trở lên. 0.5
Tổng điểm 10
189
TÀI LIỆU THAM KHẢO
[1] Giáo trình lý thuyết và bài tập ngôn ngữ C, Nguyễn Đình Tê, Hoàng Đức Hải, Nhà
xuất bản giáo dục, 2006.
[2] Kỹ thuật lập trình C, GS Phạm Văn Ất, Nhà xuất bản Khoa học và Kỹ thuật, 2012.
[3] Beginning C, Ivor Horton, 2013.
[4] C Application Programs and Projects, Dilip S Mali, Pramod N. Vasambekar, 2007.
191
THUẬT NGỮ SỬ DỤNG English Vietnamese
A
Abstract Trừu tượng, tóm lược
Accommodate Điều tiết, làm cho phù hợp
Accuracy Đúng đắn, chính xác
Acti-gram Sơ đồ hoạt động
Activate Kích hoạt
Activate mechanism Cơ chế kích hoạt
Activity chart Lược đồ hoạt động
Ad - hoc Không thể thức, đặc biệt
Adaptability Tính thích nghi, thích ứng
Adaptation Thích nghi, thích ứng
Adaptive maintenance Bảo trì thích nghi
Add-on Phụ thêm
Adjusted productivity value Giá trị hiệu năng được điều chỉnh
Algorithm Giải thuật
Alias Biệt hiệu, bí danh, tên phụ
Allocation Cấp phát, phân phối
Alternative Phương án khác, lựa chọn, phụ
Analysis Phân tích
Application context Ngữ cảnh áp dụng
Architecture context diagram Biểu đồ ngữ cảnh kiến trúc
Architecture design Thiết kế kiến trúc
Architecture dictionary Từ điển kiến trúc
Architecture flow diagram Biểu đồ kết nối kiến trúc
Architecture interconnection diagram Biểu đồ liên nối kiến trúc
Architecture template Tiêu bản/khuôn mẫu kiến trúc
Archive Lưu trữ
Argument đối
Arithmetic-logic unit Bộ số học-logic
192
Artifact Tạo tác, mẫu
Assembler Hợp ngữ
Assembly line diagram Biểu đồ đường lắp ráp
Assembly structure Cấu trúc lắp ghép
Assign Gán
Associative data object Đối tượng dữ liệu kết hợp
Attribute Thuộc tính
Audit Kiểm toán
Available Có sẵn, sẵn dùng
B
Background Hậu cảnh, nền, ngầm
Background processing Xử lý hậu cảnh, ngầm
Backup Sao lưu
Balance Cân bằng
Bar chart Sơ đồ thanh
Bar code Mã vạch
Baseline Vạch ranh giới, đường cơ sở
Batch processing Xử lý theo lô
Behavior Hành vi
Behavious modeling Mô hình hoá hành vi
Benchmark Tiêu chuẩn
Black box testing Kiểm thử hộp đen
Boundary Biên
Boundary time Thời gian biên
Breakpoint Điểm đứt, gián đoạn
Bubble chart Lược đồ hình tròn
Budget Ngân sách
Buffer Bộ đệm
C
Concurrence Tương tranh, đồng thời
Configuration Cấu hình
193
Conic Hình nón
Composite data item Khoản mục dữ liệu hợp thành
(phức hợp)
Composition object Đối tượng hợp thành
Computer system engineering Công nghệ hệ thống máy tính
CASE (Computer Aided Software
Engineering) Công nghệ phần mềm với máy tính hỗ trợ
Case Study Ví dụ lớn minh hoạ
Characteristic Đặc trưng, đặc tính
Chart Lược đồ
Checklist Danh sách kiểm tra
Class diagram Biểu đồ lớp
Classification Phân lớp
Clean room Phòng sạch
Closely couple Gắn chặt
Closely Couple Kết nối chặt
Closely couple Kết nối chặt
Code generator Bộ sinh mã (chương trình,)
Coding Mã hoá
Coercion Bó buộc
Cohesion Cố kết
Coincidentally Trùng khớp ngẫu nhiên
Combination Tổ hợp
Combined entity diagram Biểu đồ thực thể được tổ hợp
Communication Truyền thông
Compatibility Tính tương hợp, tương thích
Compilation, Compile, Compiler Biên dịch, Chuơng trình dịch
Complexity adjustment value Giá trị điều chỉnh độ phức tạp
Component Thành phần, cấu phần
Connectivity Tính nối được, tính liên thông
Con-routine Trình tương tranh
194
Consistence Nhất quán
Constitute Cấu thành, hợp thành, thiết lập
Constraint Ràng buộc, điều kiện
Construct Kết cấu, xây dựng
Context Ngữ cảnh
Context model Mô hình Ngữ cảnh
Context switching Chuyển Ngữ cảnh
Contractor Nhà thầu
Control điều khiển, kiểm soát
Control flow diagram Biểu đồ luồng điều khiển
Control hierarchy Phân cấp điều khiển
Control process Tiến trình điều khiển
Control specification Đặc tả điều khiển
Control unit Bộ điều khiển
Conveyer Băng truyền
Coordinate Phối hợp
Core Lõi
Co-routine Trình tương hỗ
Corrective maintenance Bảo trì hiệu chỉnh
Correctness Tính đúng đắn
Cost Chi phí, giá
Cost-benefit analysis Phân tích chi phí-lợi ích
Couple Dính nối, gắn kết
Coupling Kết nối
Crisis Khủng hoảng
Critical path method Phương pháp đường găng
Cross stimulate Kích thích chéo
Cyclomatic Xoay vòng
D
Data condition Điều kiện dữ liệu
Data flow diagram Biểu đồ dòng dữ liệu
195
Data flow graph đồ thị dòng dữ liệu
Data modeling Mô hình hoá dữ liệu
Data object Đối tượng dữ liệu
Data store Kho dữ liệu
Data structure Cấu trúc dữ liệu
Data transfer rate Tỉ lệ truyền dữ liệu
Data typing Định kiểu dữ liệu
Database Cơ sở dữ liệu
Database engineering Kỹ nghệ cơ sở dữ liệu
Datagram Bức dữ liệu
Data-object-type hierarchy Phân Cấp dữ liệu - Đối tượng kiểu
Datum Dữ liệu
Debate Tranh luận
Debug Gỡ rối
Declaration Khai báo
Decomposition Phân rã
Defect Khiếm khuyết
Dependable Tính tin cậy
Deployment Triển khai
Depth Độ sâu
Design Thiết kế
Design model Mô hình thiết kế
Design specification Đặc tả thiết kế
Design walkthrough Xét duyệt thiết kế
Detail design Thiết kế chi tiết
Development plan Kế hoạch phát triển
Development system Hệ thống phát triển
Diagnostic analyzer Bộ phân tích chẩn đoán
Diagram Biểu đồ
Diagrammatic Văn phạm biểu đồ
Dimension Chiều, kích cỡ
196
Direct Trực tiếp
Dispatch branch Nhánh gửi
Dispatch module Mo đun gửi
Display Hiển thị
Distributed system Hệ phân tán
Document Tư liệu
Driven Đi ra từ, rút ra
Driver Điều khiển
Dynamic multi-variable model Mô hình đa biến động
Dynamic single-variable model Mô hình đơn biến động
E
Economic feasibility Khả thi kinh tế
Economic justification Luận chứng kinh tế
Effort Công sức
Effort Trách nhiệm
Effort adjustment factor Nhân tố điều chỉnh công sức
Elaboration Kỹ lưỡng, Chi tiết
Embedded software Phần mềm nhúng
Empirical estimation Ước lượng thực nghiệm
Encapsulation Bao bọc
Endeavors Nỗ lực mới
Engineering Công nghệ Kỹ nghệ
Enhancement Nâng cao
Entity Thực thể
Entity diagram Biểu đồ thực thể
Entity-relationship diagram Biểu đồ thực thể- liên kết (ER)
Enumeration type Kiểu kiệt kê
Environment Môi trường
Estimate Estimation ước lượng
Estimation model Mô hình ước lượng
Estimation variable Biến ước lượng
197
Event Sự kiện
Event flow Luồng sự kiện
Exception handling Khiển giải biệt lệ
Expected value Giá trị kỳ vọng
Expert system Hệ chuyên gia
Explode Khai triển
Exploration Khái thác
Extensibility Tính mở rộng được
External entity Tác nhân ngoài (Thực thể)
F
Facilitator Người điều khiển
Factoring Lấy thừa số chung
Failure S ai lỗi
Fan- in Số modul vào, tản ra
Fan-out Số modul ra, co cụm
Fault tree analysis Phân tích cây thiếu sót
Feasibility study Nghiên cứu khả thi
Feature Tính năng
Feature point Điểm chức năng
Finalize Hoàn tất
Flag Cờ
Flexibility Tính mềm dẻo
Flow Luồng
Flowchart Lưu đồ
Foreground Tiền cảnh
Form Hình thái, hình dạng
Formal specification đặc tả hình thức
Facilitated application specification
techniques(FAST) Kỹ thuật đặc tả ứng dụng thuận
tiện
Formal technical review Họp xét duyệt kỹ thuật hình thức
198
Fourth General Technology (4GT) Kỹ thuật thế hệ 4
Frame Khuôn khổ, khung
Framework Cơ cấu Khuôn khổ công việc
Framework Khung mẫu
Fulfillment Hoàn chỉnh, Thực hiện
Function Hàm, chức năng
Functional decomposition Phân rã chức năng
Functional point Điểm chức năng
Functionality Tính chức năng
Fundamental system model Mô hình hệ thống nền tảng
G
Generality Tính tổng quát
Grammar Văn phạm
H
Handle Giải quyết
Handler Điều giải
Hardware Phần cứng
Hardware requirement analysis Phân tích yêu cầu phần cứng
Heuristic Trực cảm, mẹo
Hierarchy Cấp bậc
Home-machine interaction Tương tác người-máy
Homologous đồng đẳng
Host machine Máy chủ
Human engineering Kỹ nghệ con người
I
Identification Căn cước
Identifier Tên gọi, định danh , căn cước
Identify Xác định, định danh
Implementation Cài đặt
Implementation description Mô tả cài đặt
Implode Hợp triển
199
Incoming flow Luồng đi vào
Inconsistency Bất nhất
Incremental Tăng lên, gia tăng
Index Chỉ số
Indicator Chỉ báo
Indirect Gián tiếp
Information flow Luồng thông tin
Information society Xã hội thông tin
Information structure Cấu trúc thông tin
Inherent Cố hữu
Inheritance Kế thừa
Immature Chưa trưởng thành
Input Cái vào, đầu vào
Instance Thể nghiệm, thể hiện
Instance connection Mối nối thể nghiệm
Instantiation Việc lấy thể nghiệm
Instruction Lệnh
Integrate Tích hợp
Integrate test Kiểm thử tích hợp
Integrate testing Kiểm thử tích hợp
Integrity Toàn vẹn
Interactive Tương tác
Interconnection description Mô tả liên nối
Interface Giao diện
Interoperability Tính liên tác
Interpretation Thông dịch
Interrelated Tương quan nhau
Interrupt Ngắt
Interrupt latency Trễ ngắt
Item Khoản mục
K
200
Knowledge Tri thức
Knowledge database Cơ sở tri thức
L
Layer Tầng, lớp
Legal feasibility khả thi pháp lý
Level of abstraction Mức độ trừu tượng
Life cycle Vòng đời
Line of balance chart Biểu đồ cân bằng
Linearity Tính tuyến tính
Linguistic modular unit Đơn vị mô đun ngôn ngữ
Link Móc nối, nối, mối nối
Link weight Trọng số nối
Linked list Danh sách móc nối
List Danh sách
LOC (Line Of Code) Số dòng mã lệnh
Locality Tính cục bộ
Logic manipulator Bộ thao tác logic
Loosely couple Gắn lỏng
M
Machine cycle Chu trình máy
Machine language Ngôn ngữ máy
Macroscopic level Mức vĩ mô
Mailbox Hộp thư
Maintainability T ính bảo trì được
Maintenance Bảo trì
Maturity Trưởng thành, thuần thục
Measure Việc đo
Member Thành viên
Memory locking Khoá bộ nhớ
Message Thông báo, Thông điệp
Message path Đường thông báo
201
Meta-model Siêu mô hình
Meta-rule Siêu luật
Method(s) Phương pháp, phương thức
Metric Độ đo
Micro-electronic Vi điện tử
Milestone Cột mốc
Mock-up Mô hình, market
Mode Mốt. Chế độ
Model checking tools Công cụ kiểm tra mô hình
Modification Sửa đổi
Modularbility , Module Tính mô đun, Mô đun
Module diagram Biểu đồ mô đun
Monitor Bộ điều phối, giám sát
Multiple inheritance Kế thừa bội
Multi-programming đa lập trình
Multi-tasking đa nhiệm
Multi-user Nhiều người dùng
Mutual exclusion Loại trừ lẫn nhau
N
Narrative Lời thuật
Network Mạng
Neuron network Mạng nơ ron
Node Đỉnh, nút
Non-procedural Phi thủ tục
Normalization rule Quy tắc chuẩn hoá
O
Object Đối tượng, sự vật
Object code Chương trình đích
Object diagram Biểu đồ Đối tượng
Objective Mục tiêu
Object-oriented Hướng Đối tượng
202
Obsolesce Lỗi thời
Occurrence Sự xuất hiện
Off - the - shelf Không lỗi thời
Off-line Gián tuyến
On-line T rực tuyến
Operability Tính vận hành
Operation Thao tác , tác vụ
Organizational unit Đơn vị tổ chức
Outgoing flow Luồng đi ra
Output Cái ra, đầu ra
Outsourcing Gia công/ khoán ngoài
Out-souring Thoái hoá
P
Package Đóng gói
Package body Thân bộ trình
Paradigm Khuôn cảnh
Parallel Song song
Parallel computing Tính toán song song
Parameter Tham biến
Partition Phân hoạch
Password Mật khẩu, mật hiệu
Path Đường dẫn
Perceptive maintenance Bảo trì hoàn thiện
Performance Hiệu năng
Performance criteria Tiêu chuẩn hiệu năng
Performance test Kiểm thử hiệu năng
Phase Pha
Planning Lập kế hoạch
Polygon Đa giác
Polymorphism Đa hình thái
Portability Tính khả chuyển
203
Pragmatic Thực dụng, thực hiện
Precision Chính xác
Preliminary design Thiết kế sơ bộ
Preventive maintenance Bảo trì phòng ngừa
Primary storage Bộ nhớ chính
Problem space Không gian vấn đề
Procedural abstraction Trừu tượng thủ tục
Procedural language Ngôn ngữ thủ tục
Process Quá trình, tiến trình
Process activate table Bảng kích hoạt tiến trình
Process activation table Bảng kích hoạt tiến trình
Process diagram Biểu đồ xử lý
Process identifier Bộ định danh tiến trình
Processing Xử lý
Processing narrative Lời thuật xử lý
Processor Bộ xử lý
Profile Sơ thảo
Program design language Ngôn ngữ thiết kế chương trình
Program structure Cấu trúc chương trình
Programming language Ngôn ngữ lập trình
Programming, coding Lập trình
progress Tiến độ
Project Dự án
Proof checking tools Công cụ kiểm tra chứng minh
Protocol Giao thức
Protocol description Mô tả giao thức
Prototype environment Môi trường làm bản mẫu
Prototyping Làm bản mẫu
Pseudo-code Giả lệnh
Pull-down menu Đơn kéo xuống
Round-trip Khứ hồi
204
Quality Chất lượng
Quantity Số lượng
Quasi formal Giả hình thức
Query Truy vấn
R
Rayleigh-Norden curve Đường cong Rayleigh-Norden
Real-time Thời gian thực
Reclamation Tái chế
Recover Dò lại
Recursion, recursive Đệ quy
Re-engineering Tái kỹ nghệ
Reference Tham khảo
Refinement Làm mịn
Relation model Mô hình quan hệ
Reliability Tính tin cậy được, độ tin cậy
Repeat Lặp
Repertoire, Repository Kho , Kho chứa
Request for proposal (RFP) Yêu cầu về các đề nghị
Requirement Yêu cầu
Requirement analysis Phân tích yêu cầu
Requirement dictionary Từ điển yêu cầu
Requirement statement language Ngôn ngữ phát biểu yêu cầu
Resolution Giải trình, độ phân giải,
Resource model Mô hình tài nguyên
Reusability Khả năng tái sử dụng
Reusable Dùng lại, tái dụng
Reverse engineering Kỹ nghệ ngược
Reverse reengineering tool Công cụ tái công nghệ ngược
Risk analysis Phân tích rủi ro
Rough merge Gộp thô
S
205
Scalar Vô hướng
Scalar item Khoản mục vô hướng
Scenario Kịch bản
Schedule Lập lịch
Schema Sơ đồ
Schematic block diagram Biểu đồ khối sơ đồ
Scope Phạm vi
Scrap Manh mún
Secondary storage Bộ nhớ phụ
Security An toàn
Selection Tuyển chọn
Semantic Ngữ nghĩa
Semaphore Cờ báo hiệu
Send Truyền, gửi
Sensitive test Kiểm thử nhạy cảm
Sequential Tuần tự
Sequential vector Vec tơ tuần tự
Server Phục vụ
Service Dịch vụ
Serviceability Tính phục vụ được
Simple Simplicity Đơn giản
Simulation Mô phỏng
Size Kích cỡ
Software architecture Kiến trúc phần mềm
Software configuration Cấu hình phần mềm
Software engineer Kỹ sư phần mềm
Software engineering (SE) Công nghệ phần mềm
Software project plan Kế hoạch dự án phần mềm
Software requirement specification Đặc tả yêu cầu phần mềm
Software safety An toàn phần mềm
Software store Kho phần mềm
206
Solution Giải pháp
Solution space Không gian giải pháp
Source code Chương trình gốc , nguồn
Specification Đặc tả
Specification environment Môi trường đặc tả
Spine Chốt trục
Spiral Xoắn ốc
Spoilage Hỏng hóc
Stage Giai đoạn
stakeholder Người tham gia
State Trạng thái
State transition diagram Biểu đồ chuyển trạng thái
Static multi-variable model Mô hình đa biến tĩnh
Static single-variable model Mô hình đơn biến tĩnh
Stepwise elaboration Làm kỹ lưỡng từng bước
Stepwise refinement Làm mịn dần từng bước
Store Ghi nhớ, lưu giữ, Kho
Stress test Kiểm thử gay cấn
Strong type Kiểu mạnh
Structure chart Lược đồ cấu trúc
Structure clash Va chạm cấu trúc
Stub Cuống
Sub-flow Luồng con
Subordinate Thuộc cấp
Substantiate Chứng minh
Suite Loạt
Super-ordinate Thượng cấp
Supplementary Phụ trợ, bù
Supportability Tính hỗ trợ được
Swap Tráo đổi
Synergy Hoà hợp
207
Syntax Cú pháp
Synthetic Toàn thái
System analysis Phân tích hệ thống
System concept document Tài liệu quan niệm về hệ thống
System image Hình ảnh hệ thống
System module narrative Lời thuật mô đun hệ thống
System perception Cảm nhận hệ thống
System respond time Thời gian hệ thống đáp ứng
System software Phần mềm hệ thống
System specification đặc tả hệ thống
System specification review Xét duyệt đặc tả hệ thống
System state Trạng thái hệ thống
System test Kiểm thử hệ thống
T
Tactics Chiến thuật
Tangible Hữu hình, rõ ràng
Target machine Máy đích
Task analysis Phân tích nhiệm vụ
Task network Mạng nhiệm vụ
Technical feasibility khả thi kỹ thuật
Technology Công nghệ, Kỹ nghệ
Template Tiêu bản
Test Kiểm thử
Trace-ability Tính theo dõi được
Trade-off Trả giá
Time-out Thời gian chết
Tool Công cụ
Test plan and procedure Bản kế hoạch và thủ tục kiểm thử
Testability Tính kiểm thử được
Threat Đe doạ
Time scale Khoảng thời gian
208
Time stamp Đóng dấu thời gian
Transaction Giao tác
Transform Biến đổi
Transform center Trung tâm biến đổi
Transform flow Luồng biến đổi
Transition Chuyển dịch, Chuyển đổi, biến đổi
Treatment Xử lý
Trigger Kích hoạt , cá
Type checking Kiểm tra kiểu
Typeless Phi kiểu
U
Unit test Kiểm thử khối
Update Cập nhật
Usability Tính sử dụng được
User Manuel Sổ tay người dùng
User model Mô hình người dùng
Use case Trường hợp sử dụng
V
Valid Hợp lệ
Validation test Kiểm thử hợp lệ
Variability Độ biến thiên
Variant Biến thể
Visibility Thấy được , trực quan
Visual Trực quan
Vocabulary Vốn từ
W
walkthrough Xét duyệt
Warehouse Nhà kho
Warning Cảnh báo
Waterfall model Mô hình thác nước
Wayside Bó hẹp