219
BỘ NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔN TRƯỜNG CAO ĐẲNG CÔNG NGHVÀ 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 NGHTHÔNG TIN KHOA CÔNG NGHTHÔ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-

LẬP TRÌNH CĂN BẢN

  • 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

2

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ố

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).

8

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.

16

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ệ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

42

Tổng điểm 10

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ệ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.

47

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)

49

- Viết chương trình

- Kết quả in ra màn hình

Trình tự thực hiện

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)

53

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

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..

57

Ví dụ 7: Nhập vào số 1, 2, 3. Xuất ra số sao tương ứng.

Viết chương trình

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

65

Kết quả in ra màn hì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

68

Tổng điểm 10

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).

71

Ví dụ 1: Viết chương trình in ra câu "Vong lap for”.

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.

78

Ví dụ 11: Viết chương trình in ra câu "Cau lenh vong lap while”.

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.

87

5 Sử dụng

hàm

star_line.

Lời gọi

hàm.

Ví dụ 2:

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:

98

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

104

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

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.

121

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.

123

124

Trình tự thực hiện

TT

BƯỚC

CÔNG

VIỆC

THỰC HIỆN PHƯƠNG

TIỆN

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

128

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ư

130

1. Cách khai báo chuỗi

Ví dụ 17 : char name[30];

Ví dụ 18 : Nhập vào và in ra tên

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";

141

int len_s;

len_s = strlen(s);

Ví dụ: Các hàm xử lý chuỗi

Kết quả in ra màn hình

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

147

2. Truyền địa chỉ sang hàm

Ví dụ 2:

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:

155

Kết quả in ra màn hình

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)

159

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)

161

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

175

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.

182

Giải thích chương trình

FILE *f; khai báo biến con trỏ f có kiểu cấu trúc FILE.

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.

190

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

209

Weak type Kiểu yếu

White box testing Kiểm thử hộp trắng

Width Chiều rộng

Work breakdown structure Cấu trúc phân chia công việc

Workflow Dòng công việc

Workforce Nhân lực

Workplace Hiện trường