Tải bản đầy đủ (.pdf) (100 trang)

Giáo trình Lập trình căn bản (Nghề: Lập trình máy tính - Trình độ CĐ/TC) - Trường Cao đẳng Nghề An Giang

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.52 MB, 100 trang )

ỦY BAN NHÂN DÂN TỈNH AN GIANG

TRƯỜNG CAO ĐẲNG NGHỀ AN GIANG

GIÁO TRÌNH

LẬP TRÌNH CĂN BẢN
NGHỀ: LẬP TRÌNH MÁY TÍNH
Trình độ trung cấp/cao đẳng
(Ban hành theo Quyết định số:
/QĐ-CĐN ngày tháng năm 20
của Hiệu trưởng trường Cao đẳng nghề An Giang)

Tác giả: Vương Thị Minh Nguyệt
Năm ban hành : 2017


TUYÊN BỐ BẢN QUYỀN
Tài liệu này thuộc loại sách giáo trình nên các nguồn thơng tin có thể đƣợc
phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh
thiếu lành mạnh sẽ bị nghiêm cấm.

LỜI GIỚI THIỆU
Trƣớc đây, để tạo ra chƣơng trình máy tính ngƣời ta phải làm việc trực tiếp với
các con số 0 hoặc 1, hay cịn gọi là ngơn ngữ máy. Cơng việc này vơ cùng khó khăn,
chiếm nhiều thời gian, cơng sức và đặc biệt dễ gây ra lỗi. Để khắc phục nhƣợc điểm
này, ngƣời ta đề xuất ra hợp ngữ, một ngôn ngữ cho phép thay thế dãy 0 hoặc 1 này
bởi các từ gợi nhớ tiếng Anh. Tuy nhiên, cải tiến này vẫn cịn chƣa thật thích hợp với
đa số ngƣời dùng máy tính, những ngƣời ln mong muốn các lệnh chính là ý nghĩa
của các thao tác mà nó mơ tả. Vì vậy, ngay từ những năm 1950, ngƣời ta đã xây dựng


những ngơn ngữ lập trình mà câu lệnh của nó gần với ngơn ngữ tự nhiên. Các ngơn
ngữ này đƣợc gọi là ngơn ngữ lập trình bậc cao.
Lập trình căn bản với Pascal và C, C++
Đây là 2 ngôn ngữ căn bản và phổ biến nhất mà hầu nhƣ sinh viên nào cũng cần
phải học qua trong giai đoạn mới bắt đầu học lập trình
Giáo trình này đƣợc thiết kế theo từng mô đun/ môn học thuộc hệ thống mơ
đun/mơn học của một chƣơng trình, để đào tạo hồn chỉnh nghề Lập trình máy tính
ở cấp trình độ bậc cao và đƣợc dùng làm giáo trình cho học viên trong các khóa đào
tạo, cũng có thể đƣợc sử dụng cho đào tạo ngắn hạn hoặc cho các công nhân kỹ thuật.
Mục tiêu thực hiện của mơn học:
- Phân tích chƣơng trình: xác định nhiệm vụ chƣơng trình (phải làm gì), xác định
dữ liệu và cấu trúc dữ liệu của hệ thống. Phân tích và xây dựng thuật tốn.
- Thiết kế chƣơng trình: tìm giải pháp kỹ thuật (làm thế nào) đối với những công
việc đã xác định trong giai đoạn phân tích.
- Viết chƣơng trình.
- Vận dụng điều kiện, trợ giúp mơi trƣờng của ngơn ngữ lập trình, chẳng hạn:
trình biên tập mã lệnh.
- Mơ tả đƣợc hằng và biến dùng trong chƣơng trình.
- Vận dụng quy tắc cú pháp của ngơn ngữ lập trình.
- Vận dụng các cấu trúc điều khiển, cấu trúc lặp.
1


- Trình bày chƣơng trình có chú thích (tóm tắt) cho từng đoạn mã, thuận lợi cho
việc theo dõi chức năng của chúng.
- Thử nghiệm đƣợc chƣơng trình:
- Sử dụng bộ dữ liệu thử, thử nghiệm các giai đoạn, phân tích giá trị biến qua
từng đoạn mã (mơ đun chƣơng trình)
- Sử dụng cơng cụ: dùng Debugger của hệ thống để phân tích biến và cấu trúc dữ
liệu tƣơng ứng.

Nội dung chính của mơn học:
CHƢƠNG 1: THUẬT TỐN
CHƢƠNG 2: GIỚI THIỆU NGƠN NGỮ LẬP TRÌNH C++
CHƢƠNG 3: CÁC THÀNH PHẦN VÀ CÁC KIỂU DỮ LIỆU CƠ BẢN
CHƢƠNG 4: CÁC CẤU TRÚC ĐIỀU KHIỂN
CHƢƠNG 5: HÀM
CHƢƠNG 6: MẢNG
CHƢƠNG 7: CON TRỎ
CHƢƠNG 8: CẤU TRÚC
Trong quá trình biên soạn, mặc dù đã cố gắng tham khảo nhiều tài liệu và giáo
trình khác nhƣng tác giả khơng khỏi tránh đƣợc những thiếu sót và hạn chế. Tác giả
chân thành mong đợi những nhận xét, đánh giá và góp ý của sinh viên và đồng nghiệp
để cuốn giáo trình ngày một hồn thiện hơn.

An Giang, ngày tháng năm 20
Tham gia biên soạn

Vương Thị Minh Nguyệt

2


MỤC LỤC
ĐỀ MỤC

TRANG

LỜI GIỚI THIỆU ................................................................................................................................1
CHƢƠNGTRÌNH MƠN HỌC .............................................................................................................6
CHƢƠNG 1: THUẬT TOÁN ..............................................................................................................9

I.KHÁI NIỆM ................................................................................................................................... 9
II.CÁC ĐẶC TRƢNG CỦA THUẬT TOÁN ................................................................................ 10
III. PHƢƠNG PHÁP BIỂU DIỄN THUẬT TOÁN ....................................................................... 10
BÀI TẬP ......................................................................................................................................... 16
CHƢƠNG 2: GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C++ ............................................................17
I.LỊCH SỬ HÌNH THÀNH ............................................................................................................ 17
II.ĐẶC ĐIỂM ................................................................................................................................. 17
III.CẤU TRÚC MỘT CHƢƠNG TRÌNH C++ ............................................................................. 18
IV.MỘT SỐ VÍ DỤ MẪU.............................................................................................................. 19
V. CÀI ĐẶT CHƢƠNG TRÌNH .................................................................................................... 20
VI. KHỞI ĐỘNG CHƢƠNG TRÌNH ............................................................................................. 20
VII.SOẠN THẢO CHƢƠNG TRÌNH ........................................................................................... 21
VIII.THỐT KHỎI CHƢƠNG TRÌNH ........................................................................................ 23
BÀI TẬP ......................................................................................................................................... 23
CHƢƠNG 3: CÁC THÀNH PHẦN VÀ CÁC KIỂU DỮ LIỆU CƠ BẢN .......................................24
I.CÁC THÀNH PHẦN ................................................................................................................... 24
II.CÁC KIỂU KIỂU DỮ LIỆU CƠ BẢN ...................................................................................... 26
III. HẰNG ....................................................................................................................................... 28
VI. CÁC PHÉP TOÁN CỦA C++ .................................................................................................. 29
V.XUẤT, NHẬP DỮ LIỆU .......................................................................................................... 32
BÀI TẬP ......................................................................................................................................... 39
CHƢƠNG 4: CÁC CẤU TRÚC ĐIỀU KHIỂN ................................................................................40
I.LỆNH ĐƠN VÀ LỆNH PHỨC ................................................................................................... 40
II.CẤU TRÚC ĐIỀU KIỆN if .. else.............................................................................................. 41
III. CẤU TRÚC LỰA CHỌN switch .. case................................................................................... 44
3


IV. CÁC CẤU TRÚC LẶP ............................................................................................................. 46
V.CÂU LỆNH break, continue, goto và hàm exit .......................................................................... 52

BÀI TẬP ......................................................................................................................................... 55
CHƢƠNG 5: HÀM ............................................................................................................................57
I.KHÁI NIỆM ................................................................................................................................. 57
II.KHAI BÁO HÀM ....................................................................................................................... 57
III. KẾT QUẢ TRẢ VỀ CỦA HÀM .............................................................................................. 60
IV. CÁCH TRUYỀN THAM SỐ CHO HÀM ................................................................................ 60
V.ĐỆ QUI ....................................................................................................................................... 62
BÀI TẬP ......................................................................................................................................... 66
CHƢƠNG 6: MẢNG .........................................................................................................................67
I.KHÁI NIỆM ................................................................................................................................. 67
II.KHAI BÁO MẢNG .................................................................................................................... 67
III.KHỞI TẠO MẢNG ................................................................................................................... 68
IV. DÙNG MẢNG LÀM THAM SỐ ............................................................................................. 70
V. MẢNG NHIỀU CHIỀU ............................................................................................................ 72
BÀI TẬP ......................................................................................................................................... 74
CHƢƠNG 7: CON TRỎ ....................................................................................................................75
I.KHÁI NIỆM ................................................................................................................................. 76
II.CON TRỎ VÀ ĐỊA CHỈ ............................................................................................................ 76
III.KHAI BÁO BIẾN KIỂU CON TRỎ ........................................................................................ 78
IV. CÁC PHÉP TOÁN.................................................................................................................... 78
V.CON TRỎ MẢNG...................................................................................................................... 80
VI. CON TRỎ HẰNG ..................................................................................................................... 82
VII.CON TRỎ KHÔNG KIỂU ...................................................................................................... 83
VIII.KHỞI TẠO CON TRỎ........................................................................................................... 84
IX. CON TRỎ TRỎ TỚI CON TRỎ .............................................................................................. 85
X.CON TRỎ HÀM ........................................................................................................................ 85
BÀI TẬP ......................................................................................................................................... 87
CHƢƠNG 8: CẤU TRÚC..................................................................................................................88
I.KHÁI NIỆM ................................................................................................................................. 88
II.KHAI BÁO CẤU TRÚC ............................................................................................................ 88

4


III.TRUY CẬP ĐẾN CÁC THÀNH PHẦN CỦA CẤU TRÚC.................................................... 92
IV. CON TRỎ CẤU TRÚC VÀ ĐỊA CHỈ CẤU TRÚC ................................................................ 95
BÀI TẬP ......................................................................................................................................... 98
CÁC THUẬT NGỮ CHUYÊN MÔN................................................................................................99
TÀI LIỆU THAM KHẢO ..................................................................................................................99

5


CHƢƠNGTRÌNH MƠN HỌC
Tên mơn học: LẬP TRÌNH CĂN BẢN
Mã số môn học: MH 10
Thời gian thực hiện môn học: 75 giờ (Lý thuyết: 20 giờ, thực hành, thí nghệm,
thảo luận: 51 giờ, kiểm tra: 4 giờ).
I. VỊ TRÍ, TÍNH CHẤT CỦA MƠN HỌC:
1. Vị trí:
- Thuộc nhóm mơn: Cơ sở
- Đƣợc bố trí sau các mơn: Mơn học đƣợc bố trí sau khi học sinh học xong các
mơn: tốn cho tin học và tin học căn bản.
2.Tính chất:
- Là mơn học chuyên môn nghề bắt buộc, là nền tảng để HSSV có thể làm quen
với kiến thức lập trình và học các môn học mô đun liên quan.
II. MỤC TIÊU CỦA MƠN HỌC:
1. Về kiến thức
- Phân tích chƣơng trình: xác định nhiệm vụ chƣơng trình (phải làm gì), xác định
dữ liệu và cấu trúc dữ liệu của hệ thống. Phân tích và xây dựng thuật tốn.
- Thiết kế chƣơng trình: tìm giải pháp kỹ thuật (làm thế nào) đối với những công

việc đã xác định trong giai đoạn phân tích.
2. Về kỹ năng
- Vận dụng điều kiện, trợ giúp mơi trƣờng của ngơn ngữ lập trình, chẳng
- Trình bày chƣơng trình có chú thích (tóm tắt) cho từng đoạn mã, thuận lợi cho
việc theo dõi chức năng của chúng.
- Thử nghiệm đƣợc chƣơng trình
3. Về năng lực tự chủ và trách nhiệm
- Nghiêm túc trong học tập và thực hiện tốt các yêu cầu đƣợc giao.
- Luôn động não suy nghĩ. Thƣờng xuyên luyện tập tƣ duy trong việc học
- Thực hiện học tập và thực hành nhóm.
III. NỘI DUNG MƠN HỌC:
Chƣơng 1: Thuật tốn
I. Khái niệm
II. Các đặc trƣng của thuật toán
III. Phƣơng pháp biểu diễn
Chƣơng 2: Giới thiệu ngơn ngữ lập trình C++
I. Lịch sử hình thành
II. Đặc điểm
6


III. Cấu trúc của một chƣơng trình C++
IV. Một số ví dụ mẫu
V. Cài đặt chƣơng trình
VI. Khởi động chƣơng trình
VII. Soạn thảo chƣơng trình
VIII. Thốt khỏi chƣơng trình
Chƣơng 3: Các thành phần và các kiểu dữ liệu cơ bản
I. Các thành phần
II. Các kiểu dữ liệu căn bản

III. Hằng
IV. Các phép toán của C++
V. Xuất nhập dữ liệu
Chƣơng 4: Các cấu trúc điều khiển
I. Lệnh đơn và lệnh phức
II. Cấu trúc điều kiện: if .. else
III. Cấu trúc lựa chọn: switch..case
IV. Các cấu trúc lặp
V. Câu lệnh break, continue, goto và hàm exit
Chƣơng 5: Hàm
I. Khái niệm
II. Khai báo hàm
III. Kết quả trả về của hàm – Lệnh return
IV. Cách truyền tham số cho hàm
V. Đệ qui
Chƣơng 6: Mảng
I. Khái niệm
II. Khai báo mảng
III. Khởi tạo mảng
IV. Dùng mảng làm tham số
Chƣơng 7: Con trỏ
I. Khái niệm
II. Toán tử lấy địa chỉ (&)
III. Toán tử tham chiếu (*)
IV. Khai báo biến kiếu con trỏ
V. Các phép toán
7


VI. Con trỏ hằng

VII. Con trỏ mảng
VIII. Khởi tạo con trỏ
IX. Con trỏ trỏ tới con trỏ
X. Con trỏ không kiểu
XI. Con trỏ hàm
Chƣơng 8: Cấu trúc
I. Khái niệm cấu trúc
II. Khai báo cấu trúc
III. Truy cập đến các thành phần của cấu trúc
IV. Ví dụ cấu trúc

8


CHƢƠNG 1
THUẬT TỐN
Giới thiệu
Thuật tốn là một hệ thống chặt chẽ và rõ ràng các qui tắc nhằm xác định một
dãy các thao tác trên những đối tƣợng, sao cho sau một số hữu hạn bƣớc thực hiện các
thao tác, ta đạt đƣợc mục tiêu định trƣớc.
Bài này sẽ trình bày khái niệm thuật toán, các đặc trƣng của thuật tốn, phƣơng
pháp biểu diễn của thuật tốn
Mục tiêu
Trình bày đƣợc khái niệm thuật toán, các đặc trƣng của thuật toán, phƣơng pháp
biểu diễn của thuật tốn
Nội dung chính
I. KHÁI NIỆM
Thuật toán là một hệ thống chặt chẽ và rõ ràng các qui tắc nhằm xác định một
dãy các thao tác trên những đối tƣợng, sao cho sau một số hữu hạn bƣớc thực hiện các
thao tác, ta đạt đƣợc mục tiêu định trƣớc.

Ví dụ 1: Giải phƣơng trình bậc hai ax2 + bx + c = 0
Nhập a, b, c
Nếu a = 0 thì kết thúc thuật tốn (phƣơng trình đã cho khơng phải là phƣơng
trình bậc hai).
Nếu a ≠ 0 thì tính delta = b2 – 4ac
Nếu delta > 0
Phƣơng trình có hai nghiệm phân biệt
x1 

 b  delta
2a

; x2 

 b  delta
2a

Kết thúc thuật toán.
Nếu delta = 0
Phƣơng trình có nghiệp kép x 

b
2a

Kết thúc thuật tốn.
Nếu delta < 0
Phƣơng trình vơ nghiệm.
Kết thúc thuật tốn.

9



II. CÁC ĐẶC TRƢNG CỦA THUẬT TỐN
1. Tính xác định
Ở mỗi bƣớc của thuật toán, các thao tác phải hết sức rõ ràng. Không thể gây nên
sự nhập nhằng, lẫn lộn, tùy tiện. Nói cách khác là trong cùng một điều kiện, hai bộ xử
lí cùng thực hiện một bƣớc của thuật tốn thì phải cho cùng một kết quả.
2. Tính hữu hạn dừng
Một thuật tốn bao giờ cũng phải dừng lại sau một số hữu hạn bƣớc.
3. Tính đúng đắn
Sau khi thực hiện tất cả các lệnh của thuật tốn ta phải đƣợc kết quả mong muốn,
kết quả đó thƣờng đƣợc xác định theo định nghĩa có trƣớc.
4. Tính phổ thơng
Thuật tốn có thể giải bất kì bài tốn nào trong cùng một lớp các bài tốn, có
nghĩa là thuật tốn có thể làm việc với các dữ liệu khác nhau, trong một miền xác định
và luôn dẫn đến kết quả mong muốn.
5. Tính có đại lƣợng vào và ra
Khi bắt đầu một thuật toán bao giờ cũng nhận các đại lƣợng vào mà ta thƣờng
gọi là dữ liệu vào, các dữ liệu vào thƣờng lất từ một tập xác định cho trƣớc.
Sau khi kết thúc, một thuật toán bao giờ cũng cho ta mooth số đại lƣợng ra tùy
theo chức năng mà thuật toán đảm nhiệm, chúng thƣờng đƣợc gọi là dữ liệu ra.
6. Tính hiệu quả
Tính hiệu quả của một thuật toán đƣợc đánh giá dựa trên các tiêu chuẩn sau:
- Dung lƣợng bộ nhớ cần có.
- Số các phép tính cần thực hiện.
- Thời gian cần thiết để chạy.
- Có dễ hiểu đối với con ngƣời khơng.
- Có dễ cài đặt trên máy khơng.
III. PHƢƠNG PHÁP BIỂU DIỄN THUẬT TOÁN
Khi chứng minh hoặc giải một bài tốn trong tốn học, ta thƣờng dùng những

ngơn từ tốn học nhƣ : "ta có", "điều phải chứng minh", "giả thuyết", ... và sử dụng
những phép suy luận toán học nhƣ phép suy ra, tƣơng đƣơng,...Thuật toán là một
phƣơng pháp thể hiện lời giải bài toán nên cũng phải tuân theo một số quy tắc nhất
định. Ðể có thể truyền đạt thuật toán cho ngƣời khác hay chuyển thuật toán thành
chƣơng trình máy tính, ta phải có phƣơng pháp biểu diễn thuật tốn. Có 3 phƣơng
pháp biểu diễn thuật tốn : Dùng ngôn ngữ tự nhiên, dùng lƣu đồ - sơ đồ khối, dùng
mã giả.
10


1. Ngơn ngữ tự nhiên
Trong cách biểu diễn thuật tốn theo ngôn ngữ tự nhiên, ngƣời ta sử dụng ngôn
ngữ thƣờng ngày để liệt kê các bƣớc của thuật toán (ví dụ 1sử dụng ngơn ngữ tự
nhiên). Phƣơng pháp biểu diễn này khơng u cầu ngƣời viết thuật tốn cũng nhƣ
ngƣời đọc thuật toán phải nắm các quy tắc. Tuy vậy, cách biểu diễn này thƣờng dài
dịng, khơng thể hiện rõ cấu trúc của thuật tốn, đơi lúc gây hiểu lầm hoặc khó hiểu
cho ngƣời đọc. Gần nhƣ khơng có một quy tắc cố định nào trong việc thể hiện thuật
tốn bằng ngơn ngữ tự nhiên. Tuy vậy, để dễ đọc, ta nên viết các bƣớc con lùi vào bên
phải và đánh số bƣớc theo quy tắc phân cấp nhƣ 1, 1.1, 1.1.1.
2. Lƣu đồ - sơ đồ khối
Lƣu đồ hay sơ đồ khối là một công cụ trực quan để diễn đạt các thuật toán. Biểu
diễn thuật toán bằng lƣu đồ sẽ giúp ngƣời đọc theo dõi đƣợc sự phân cấp các trƣờng
hợp và quá trình xử lý của thuật toán. Phƣơng pháp lƣu đồ thƣờng đƣợc dùng trong
những thuật tốn có tính rắc rối, khó theo dõi đƣợc q trình xử lý.
Ðể biểu diễn thuật tốn theo sơ đồ khối, ta phải phân biệt hai loại thao tác. Một
thao tác là thao tác chọn lựa dựa theo một điều kiện nào đó. Chẳng hạn : thao tác "nếu
a = 0 thì kết thúc thuật tốn, nếu a ≠ 0 thì tính delta" là thao tác chọn lựa. Các thao
tác cịn lại khơng thuộc loại chọn lựa đƣợc xếp vào loại hành động. Chẳng hạn, "tính
 b  delta
 b  delta

; x2 
" là một thao tác thuộc loại hành động.
x1 
2a

2a

Thao tác chọn lựa (decision)
Thao tác chọn lựa đƣợc biểu diễn bằng hình thoi bên trong chứa biểu thức điều
kiện.
a=0

Thao tác xử lý (process)
Thao tác xử lý đƣợc biểu diễn bằng hình chữ nhật, bên trong chứa nội dung xử
lý.

x1 

 b  delta
2a

Ðƣờng đi (route)
11


Khi dùng ngôn ngữ tự nhiên, ta mặc định hiểu rằng quá trình thực hiện sẽ lần
lƣợt đi từ bƣớc trƣớc đến bƣớc sau (trừ khi có yêu cầu nhảy sang bƣớc khác). Trong
ngôn ngữ lƣu đồ, do thể hiện các bƣớc bằng hình vẽ và có thể đặt các hình vẽ này ở vị
trí bất kỳ nên ta phải có phƣơng pháp để thể hiện trình tự thực hiện các thao tác.
Hai bƣớc kế tiếp nhau đƣợc nối bằng một cung, trên cung có mũi tên để chỉ

hƣớng thực hiện.
Từ thao tác chọn lựa có thể có đến hai hƣớng đi, một hƣớng ứng với điều kiện
thỏa và một hƣớng ứng với điều kiện không thỏa. Do vậy, ta dùng hai cung xuất phát
từ các đỉnh hình thoi, trên mỗi cung có ký hiệu Ð/Ðúng/Y/Yes để chỉ hƣớng đi ứng
với điều kiện thỏa và ký hiệu S/Sai/N/No để chỉ hƣớng đi ứng với điều kiện không
thỏa.
Delta > 0

S

Delta = 0

Đ
Phƣơng trình có 2
nghiệm phân biệt
x1, x2

Ðiểm cuối (terminator)
Ðiểm cuối là điểm khởi đầu và kết thúc của thuật toán, đƣợc biểu diễn bằng hình
ovan, bên trong có ghi chữ bắt đầu/start/begin hoặc kết thúc/end. Ðiểm cuối chỉ có
cung đi ra (điểm khởi đầu) hoặc cung đi vào (điểm kết thúc). Xem lƣu đồ thuật tốn
giải phƣơng trình bậc hai ở trên để thấy cách sử dụng của điểm cuối.
Ðiểm nối (connector)
Ðiểm nối đƣợc dùng để nối các phần khác nhau
của một lƣu đồ lại với nhau. Bên trong điểm nối, ta
đặt một ký hiệu để biết sự liên hệ giữa các điểm nối.

Ðiểm nối sang trang (off-page connector)
12



Tƣơng tự nhƣ điểm nối, nhƣng điểm nối sang trang đƣợc dùng khi lƣu đồ quá
lớn, phải vẽ trên nhiều trang. Bên trong điểm nối sang trang ta cũng đặt một ký hiệu
để biết đƣợc sự liên hệ giữa điểm nối của các trang.

Ở trên chỉ là các ký hiệu cơ bản và thƣờng đƣợc dùng nhất. Trong thực tế, lƣu
đồ cịn có nhiều ký hiệu khác nhƣng thƣờng chỉ dùng trong những lƣu đồ lớn và phức
tạp. Ðối với các thuật toán trong cuốn sách này, ta chỉ cần sử dụng các ký hiệu trên là
đủ.
Ví dụ: Vẽ lƣu đồ giải phƣơng trình bậc hai ax2 + bx + c = 0

13


Bắt đầu

Nhập a, b, c

S

a ≠0
Đ
Delta = b2 – 4 ac

Delta > 0

S

Delta = 0


Đ

Đ

Phƣơng trình có
hai nghiệm phân
biệt x1, x2

S

Phƣơng trình có
nghiệm kép

 b  delta
x1 
2a

x

Phƣơng trình vơ
nghiệm

b
2a

Kết thúc
14


Bảng ký hiệu

Ý nghĩa

Ký hiệu

Điểm đầu, cuối
Thao tác chọn
lựa
Thao tác xử lý
Đƣờng đi
Điểm nối
Điểm nối sang
trang

KH

#STT

3. Mã giả
Tuy sơ đồ khối thể hiện rõ quá trình xử lý và sự phân cấp các trƣờng hợp của
thuật toán nhƣng lại cồng kềnh. Ðể mơ tả một thuật tốn nhỏ ta phải dùng một không
gian rất lớn. Hơn nữa, lƣu đồ chỉ phân biệt hai thao tác là rẽ nhánh (chọn lựa có điều
kiện) và xử lý mà trong thực tế, các thuật tốn cịn có thêm các thao tác lặp (Chúng ta
sẽ tìm hiểu về thao tác lặp trong các bài sau).
Khi thể hiện thuật toán bằng mã giả, ta sẽ vay mượn các cú pháp của một ngơn
ngữ lập trình nào đó để thể hiện thuật tốn. Tất nhiên, mọi ngơn ngữ lập trình đều có
những thao tác cơ bản là xử lý, rẽ nhánh và lặp. Dùng mã giả vừa tận dụng đƣợc các
khái niệm trong ngôn ngữ lập trình, vừa giúp ngƣời cài đặt dễ dàng nắm bắt nội dung
thuật toán. Tất nhiên là trong mã giả ta vẫn dùng một phần ngôn ngữ tự nhiên. Một
khi đã vay mƣợn cú pháp và khái niệm của ngôn ngữ lập trình thì chắc chắn mã giả sẽ
bị phụ thuộc vào ngơn ngữ lập trình đó. Chính vì lý do này, chúng ta chƣa vội tìm

hiểu về mã giả trong bài này (vì chúng ta chƣa biết gì về ngơn ngữ lập trình!). Sau khi
tìm hiểu xong bài về thủ tục - hàm bạn sẽ hiểu mã giả là gì !
Một đoạn mã giả của thuật tốn giải phƣơng trình bậc hai
if Delta > 0 then begin
x1=(-b-sqrt(delta))/(2*a)
x2=(-b+sqrt(delta))/(2*a)
15


xuất kết quả : phƣơng trình có hai nghiệm là x1 và x2
end
else
if delta = 0 then
xuất kết quả : phƣơng trình có nghiệm kép là -b/(2*a)
else {trƣờng hợp delta < 0 }
xuất kết quả : phƣơng trình vơ nghiệm
BÀI TẬP: xây dựng thuật toán và vẽ sơ đồ khối của các bài tốn sau:
1.
2.
3.
4.

Tính n!
Giải phƣơng trình: ax + b = 0
Tính chu vi, diện tích hình trịn biết bán kính r=3cm
Đƣa ra màn hình dịng chữ: "Mon hoc lap trinh can ban"

16



CHƢƠNG 2
GIỚI THIỆU NGƠN NGỮ LẬP TRÌNH C++
Giới thiệu
C là ngơn ngữ lập trình cấp cao, đƣợc sử dụng rất phổ biến để lập trình hệ thống
cùng với Assembler và phát triển các ứng dụng.
Bài này sẽ trình bày lịch sử hình thành và phát triển của ngơn ngữ C++, cấu trúc
của một chƣơng trình C++, cài đặt và sử dụng chƣơng trình C++
Mục tiêu
- Mơ tả đƣợc lịch sử hình thành và phát triển của ngơn ngữ C++
- Trình bày đƣợc cấu trúc của một chƣơng trình C++
- Cài đặt và sử dụng chƣơng trình C++
Nội dung chính
I. LỊCH SỬ HÌNH THÀNH
C là ngơn ngữ lập trình cấp cao, đƣợc sử dụng rất phổ biến để lập trình hệ thống
cùng với Assembler và phát triển các ứng dụng.
Vào những năm cuối thập kỷ 60 đầu thập kỷ 70 của thế kỷ XX, Dennish Ritchie
(làm việc tại phịng thí nghiệm Bell) đã phát triển ngơn ngữ lập trình C dựa trên ngôn
ngữ BCPL (do Martin Richards đƣa ra vào năm 1967) và ngôn ngữ B (do Ken
Thompson phát triển từ ngôn ngữ BCPL vào năm 1970 khi viết hệ điều hành UNIX
đầu tiên trên máy PDP-7) và đƣợc cài đặt lần đầu tiên trên hệ điều hành UNIX của
máy DEC PDP-11.
Năm 1978, Dennish Ritchie và B.W Kernighan đã cho xuất bản quyển “Ngơn
ngữ lập trình C” và đƣợc phổ biến rộng rãi đến nay. Lúc ban đầu, C đƣợc thiết kế
nhằm lập trình trong mơi trƣờng của hệ điều hành Unix nhằm mục đích hỗ trợ cho các
cơng việc lập trình phức tạp. Nhƣng về sau, với những nhu cầu phát triển ngày một
tăng của cơng việc lập trình, C đã vƣợt qua khn khổ của phịng thí nghiệm Bell và
nhanh chóng hội nhập vào thế giới lập trình để rồi các cơng ty lập trình sử dụng một
cách rộng rãi. Sau đó, các cơng ty sản xuất phần mềm lần lƣợt đƣa ra các phiên bản
hỗ trợ cho việc lập trình bằng ngơn ngữ C và chuẩn ANSI C cũng đƣợc khai sinh từ
đó.

II. ĐẶC ĐIỂM
Ngơn ngữ lập trình C là một ngơn ngữ lập trình hệ thống rất mạnh và rất “mềm
dẻo”, có một thƣ viện gồm rất nhiều các hàm (function) đã đƣợc tạo sẵn. Ngƣời lập
trình có thể tận dụng các hàm này để giải quyết các bài tốn mà khơng cần phải tạo
mới. Hơn thế nữa, ngơn ngữ C hỗ trợ rất nhiều phép tốn nên phù hợp cho việc giải
quyết các bài toán kỹ thuật có nhiều cơng thức phức tạp. Ngồi ra, C cũng cho phép
17


ngƣời lập trình tự định nghĩa thêm các kiểu dữ liệu trừu tƣợng khác. Tuy nhiên, điều
mà ngƣời mới vừa học lập trình C thƣờng gặp “rắc rối” là “hơi khó hiểu” do sự “mềm
dẻo” của C. Dù vậy, C đƣợc phổ biến khá rộng rãi và đã trở thành một cơng cụ lập
trình khá mạnh, đƣợc sử dụng nhƣ là một ngơn ngữ lập trình chủ yếu trong việc xây
dựng những phần mềm hiện nay.
Ngơn ngữ C có những đặc điểm cơ bản sau:
* Tính cơ đọng (compact): C chỉ có 32 từ khóa chuẩn và 40 tốn tử chuẩn,
nhƣng hầu hết đều đƣợc biểu diễn bằng những chuỗi ký tự ngắn gọn.
* Tính cấu trúc (structured): C có một tập hợp những chỉ thị của lập trình
nhƣ cấu trúc lựa chọn, lặp… Từ đó các chƣơng trình viết bằng C đƣợc tổ chức rõ
ràng, dễ hiểu.
* Tính tƣơng thích (compatible): C có bộ tiền xử lý và một thƣ viện chuẩn
vô cùng phong phú nên khi chuyển từ máy tính này sang máy tính khác các chƣơng
trình viết bằng C vẫn hồn tồn tƣơng thích.
* Tính linh động (flexible): C là một ngôn ngữ rất uyển chuyển và cú pháp,
chấp nhận nhiều cách thể hiện, có thể thu gọn kích thƣớc của các mã lệnh làm chƣơng
trình chạy nhanh hơn.
* Biên dịch (compile): C cho phép biên dịch nhiều tập tin chƣơng trình riêng
rẽ thành các tập tin đối tƣợng (object) và liên kết (link) các đối tƣợng đó lại với nhau
thành một chƣơng trình có thể thực thi đƣợc (executable) thống nhất.
III. CẤU TRÚC MỘT CHƢƠNG TRÌNH C++

Chƣơng trình C++ là một chƣơng trình tập hợp nhiều hàm trong đó phải có một
hàm chính là main().
Hàm là đoạn mã lệnh độc lập đƣợc đặt tên và thực hiện một công việc xác định
khi đƣợc gọi đến. Một hàm có thể gọi đến nhiều hàm khác.
Hàm main() là hàm đƣợc máy tính gọi đến trƣớc tiên khi thực hiện chƣơng trình
Một chƣơng trình c++ thƣờng có cấu trúc nhƣ sau:
/* Các chỉ thị tiền xử lý */
#include ....
#define ...
typedef .... /* định nghĩa các kiểu dữ liệu */
/* khai báo nguyên mẫu các hàm */
Kiểu_dữ_liệu tên_hàm(tham_số);
khai báo các biến tồn cục;
/* chƣơng trình chính */
18


main()
{ ........ /* các câu lệnh*/
return 0;
}
/* khai báo các hàm*/
Kiểu_dữ_liệu tên_hàm(tham_số);
{ ........ /* các câu lệnh*/
return (giá trị trả về);
}
IV. MỘT SỐ VÍ DỤ MẪU
Ví dụ : Xuất " Chao cac ban"
#include <stdio.h> // chỉ thị tiền xử lý
void main()


// hàm main()

{
printf(“\nChao cac ban !”); // câu lệnh
}
Ví dụ : tính diện tích hình chữ nhật biết chiều dài và chiều rộng
#include <stdio.h>
#include <conio.h>
main()
{
int x,y,dt;

// khai báo biến

printf(“\nNhap chieu dai:”);scanf(“%d”,&x); // hàm đọc từ bàn phím
printf(“\nNhap chieu rong:”);scanf(“%d”,&y);
dt=x*y
printf(“\nDien tich hinh chu nhat: %d”,dt); // hàm in ra màn hình
getch();

// đọc một ký tự để chờ

return 0;
}

19


V. CÀI ĐẶT CHƢƠNG TRÌNH

Turbo C là mơi trƣờng hỗ trợ lập trình C do hãng Borland cung cấp. Mơi trƣờng
này cung cấp các chức năng nhƣ: soạn thảo chƣơng trình, dịch, thực thi chƣơng
trình… Phiên bản đƣợc sử dụng ở đây là Turbo C 3.0.
Chạy Turbo C cũng giống nhƣ chạy các chƣơng trình khác trong mơi trƣờng
DOS hay Windows, màn hình sẽ xuất hiện menu của Turbo C có dạng nhƣ sau:

Dịng trên cùng gọi là thanh menu (menu bar). Mỗi mục trên thanh menu lại có
thể có nhiều mục con nằm trong một menu kéo xuống.
Dòng dƣới cùng ghi chức năng của một số phím đặc biệt. Chẳng hạn khi gõ
phím F1 thì ta có đƣợc một hệ thống trợ giúp mà ta có thể tham khảo nhiều thơng tin
bổ ích.
Muốn vào thanh menu ngang ta gõ phím F10. Sau đó dùng các phím mũi tên
qua trái hoặc phải để di chuyển vùng sáng tới mục cần chọn rồi gõ phím Enter. Trong
menu kéo xuống ta lại dùng các phím mũi tên lên xuống để di chuyển vùng sáng tới
mục cần chọn rồi gõ Enter.
Ta cũng có thể chọn một mục trên thanh menu bằng cách giữ phím Alt và gõ
vào một ký tự đại diện của mục đó (ký tự có màu sắc khác với các ký tự khác). Chẳng
hạn để chọn mục File ta gõ Alt-F (F là ký tự đại diện của File)
VI. KHỞI ĐỘNG CHƢƠNG TRÌNH
Turbo C là mơi trƣờng hỗ trợ lập trình C do hãng Borland cung cấp. Mơi trƣờng
này cung cấp các chức năng nhƣ: soạn thảo chƣơng trình, dịch, thực thi chƣơng
trình… Phiên bản đƣợc sử dụng ở đây là Turbo C 3.0.
Chạy Turbo C cũng giống nhƣ chạy các chƣơng trình khác trong mơi trƣờng
DOS hay Windows, màn hình sẽ xuất hiện menu của Turbo C có dạng nhƣ sau:
20


VII. SOẠN THẢO CHƢƠNG TRÌNH
Muốn soạn thảo một chƣơng trình mới ta chọn mục New trong menu File
(File ->New). Trên màn hình sẽ xuất hiện một vùng trống để cho ta soạn thảo nội

dung của chƣơng trình. Trong quá trình soạn thảo chƣơng trình ta có thể sử dụng các
phím sau:
Các phím xem thơng tin trợ giúp:
- F1: Xem tồn bộ thông tin trong phần trợ giúp.
- Ctrl-F1: Trợ giúp theo ngữ cảnh (tức là khi con trỏ đang ở trong một từ nào
đo, chẳng hạn int mà bạn gõ phím Ctrl-F1 thì bạn sẽ có đƣợc các thơng tin về kiểu dữ
liệu int)
Các phím di chuyển con trỏ trong vùng soạn thảo chƣơng trình:

21


Các phím xố ký tự/ dịng:

Các phím chèn ký tự/ dòng:

Sử dụng khối :
Khối là một đoạn văn bản chƣơng trình hình chữ nhật đƣợc xác định bởi đầu
khối là góc trên bên trái và cuối khối là góc dƣới bên phải của hình chữ nhật. Khi một
khối đã đƣợc xác định (trên màn hình khối có màu sắc khác chỗ bình thƣờng) thì ta có
thể chép khối, di chuyển khối, xoá khối... Sử dụng khối cho phép chúng ta soạn thảo
chƣơng trình một cách nhanh chóng. sau đây là các thao tác trên khối:

22


Các phím, phím tắt thực hiện các thao tác khác:

Thực hiện chƣơng trình
Để thực hiện chƣơng trình hãy dùng Ctrl-F9 (giữ phím Ctrl và gõ phím F9).

Ví dụ: Thực hiện chƣơng trình vừa soạn thảo xong và quan sát trên màn hình để
thấy kết quả của việc thực thi chƣơng trình sau đó gõ phím bất kỳ để trở lại với
Turbo.
Với một chƣơng trình đã có trên đĩa, ta có thể mở nó ra để thực hiện hoặc sửa
chữa bổ sung. Để mở một chƣơng trình ta dùng File/Open hoặc gõ phím F3. Sau đó
gõ tên tập tin vào hộp File Name hoặc lựa chọn tập tin trong danh sách các tập tin rồi
gõ Enter.
VIII. THỐT KHỎI CHƢƠNG TRÌNH
Dùng File/Exit hoặc Alt-X.
BÀI TẬP
1. Viết chƣơng trình tính chu vi, diện tích hình trịn biết bán kính
2. Viết chƣơng trình tính chu vi hình chữ nhật biết chiều dài và chiều rộng
3. Viết chƣơng trình xuất ra dịng "hello word"
4. Viết chƣơng trình nhập vào thơng tin của một ngƣời (họ, tên, tuổi, địa chỉ...)
rồi xuất theo thứ tự các thông tin đó ra màn hình.

23


CHƢƠNG 3
CÁC THÀNH PHẦN VÀ CÁC KIỂU DỮ LIỆU CƠ BẢN
Giới thiệu
Bài này sẽ trình bày cách sử dụng hệ thống kí hiệu và từ khóa, trình bày các kiểu
dữ liệu căn bản, các loại biến, hằng biểu thức cho từng chƣơng trình cụ thể, so sánh
đƣợc các lệnh, khối lệnh, thực hiện đƣợc việc chạy chƣơng trình
Mục tiêu
- Sử dụng đƣợc hệ thống kí hiệu và từ khóa
- Trình bày đƣợc các kiểu dữ liệu căn bản
- Vận dụng đƣợc các loại biến, hằng biểu thức cho từng chƣơng trình cụ thể.
- So sánh đƣợc các lệnh, khối lệnh

- Thực hiện đƣợc việc chạy chƣơng trình
Nội dung chính
I. CÁC THÀNH PHẦN
1. Bảng chữ cái
Mỗi ngơn ngữ lập trình đều đƣợc xây dựng từ một bộ ký tự nào đó. Các ký tự
đƣợc nhóm lại theo nhiều cách khác nhau để lập lên các từ. Đến lƣợt mình các từ
đƣợc liên kết theo một quy tắc nào đó để tạo thành các câu lệnh. Một chƣơng trình
bao gồm nhiều câu lệnh và diễn đạt một thuật toán để giải một bài tốn nào đó.
Ngơn ngữ C đƣợc xây dựng trên bộ ký tự sau:
- Các chữ cái hoa: A B C .... Z
- Các chữ cái thƣờng: a b c ... z
- Các chữ số: 0 1 2... 9
- Các kí hiệu tốn học: + - * / = < >
- Các dấu ngoặc: [ ] { } ( )
- Các ký hiệu đặc biệt khác: , . ; : / ? @ # $ % ^ & „ “...
- Các dấu ngăn cách khơng nhìn thấy nhƣ dấu cách, dấu nhảy cách tab, dấu
xuống dòng
- Dấu gạch nối dƣới: _
2. Từ khố
Từ khóa là các từ dành riêng (reserved words) của C mà ngƣời lập trình có thể sử
dụng nó trong chƣơng trình tùy theo ý nghĩa của từng từ. Ta khơng đƣợc dùng từ khóa
để đặt cho các tên của riêng mình. Các từ khóa của Turbo C 3.0 bao gồm:
Asm

auto

break

case


Class

const

continue _cs

cdecl

char

default

delete
24


×