Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 135 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
135
Dung lượng
1,06 MB
Nội dung
Giáotrình Lập trìnhC căn bản Trang 1
Tai lieu tham khao
MỤC LỤC
BÀI 1 :
NGÔN NGỮ LẬP TRÌNH & PHƯƠNG PHÁP LẬP TRÌNH 7
1.1 Mục tiêu 7
1.2 Lý thuy
ết 7
1.2.1 Ngôn ng
ữ lập trình (Programming Language) 7
1.2.1.1 Thu
ật giải (Algorithm) 7
1.2.1.2
Chương trình (Program) 7
1.2.1.3 Ngôn ng
ữ lập trình (Programming language) 8
1.2.2
Các bước lập trình 8
1.2.3 K
ỹ thuật lập trình 8
1.2.3.1 I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trình nh
ập-xử lý-xuất) 8
1.2.3.2 S
ử dụng lưu đồ (Flowchart) 9
BÀI 2 :
LÀM QUEN LẬP TRÌNHC QUA CÁC VÍ DỤ ĐƠN GIẢN 12
2.1 Mục tiêu 12
2.2 N
ội dung 12
2.2.1 Kh
ởi động và thoát BorlandC 12
2.2.1.1 Kh
ởi động 12
2.2.1.2 Thoát 13
2.2.2 Các ví d
ụ đơn giản 13
2.2.2.1 Ví d
ụ 1 13
2.2.2.2 Ví d
ụ 2 15
2.2.2.3 Ví d
ụ 3 16
2.2.2.4 Ví d
ụ 4 16
BÀI 3 :
CÁC THÀNH PHẦN TRONG NGÔN NGỮ C 18
3.1 Mục tiêu 18
3.2 N
ội dung 18
3.2.1 T
ừ khóa 18
3.2.2 Tên 18
3.2.3 Ki
ểu dữ liệu 18
3.2.4 Ghi chú 19
3.2.5 Khai báo bi
ến 19
3.2.5.1 Tên bi
ến 19
3.2.5.2 Khai báo bi
ến 19
3.2.5.3 V
ừa khai báo vừa khởi gán 20
3.2.5.4 Ph
ạm vi của biến 20
BÀI 4 :
NHẬP / XUẤT DỮ LIỆU 21
4.1 Mục tiêu 21
4.2 N
ội dung 21
Giáo trình Lập trìnhC căn bản Trang 2
Tai lieu tham khao
4.2.1 Hàm printf 21
4.2.2 Hàm scanf 24
4.3 Bài t
ập 25
BÀI 5 :
CẤU TRÚC RẼ NHÁNH CÓ ĐIỀU KIỆN 26
5.1 Mục tiêu 26
5.2 N
ội dung 26
5.2.1 L
ệnh và khối lệnh 26
5.2.1.1 L
ệnh 26
5.2.1.2 Kh
ối lệnh 26
5.2.2 L
ệnh if 26
5.2.2.1 D
ạng 1 (if thiếu) 26
5.2.2.2 D
ạng 2 (if đ ủ) 30
5.2.2.3 C
ấu trúc else if 33
5.2.2.4 C
ấu trúc if lồng 37
5.2.3 L
ệnh switch 41
5.2.3.1 C
ấu trúc switch…case (switch thiếu) 41
5.2.3.2 C
ấu trúc switch…case…default (switch đủ) 44
5.2.3.3 C
ấu trúc switch lồng 46
5.3 Bài t
ập 48
5.3.1 S
ử dụng lệnh if 48
5.3.2 S
ử dụng lệnh switch 49
5.4 Bài t
ập làm thêm 49
BÀI 6 :
CẤU TRÚC VÒNG LẶP 51
6.1 Mục tiêu 51
6.2 N
ội dung 51
6.2.1 L
ệnh for 51
6.2.2 L
ệnh break 56
6.2.3 L
ệnh continue 56
6.2.4 L
ệnh while 56
6.2.5 L
ệnh do…while 58
6.2.6 Vòng l
ặp lồng nhau 60
6.2.7 So sánh s
ự khác nhau của các vòng lặp 61
6.3 Bài t
ập 62
BÀI 7 :
HÀM 65
7.1 Mục tiêu 65
7.2 N
ội dung 65
7.2.1 Các ví d
ụ về hàm 65
7.2.2 Tham s
ố dạng tham biến và tham trị 68
Giáo trình Lập trìnhC căn bản Trang 3
Tai lieu tham khao
7.2.3 Sử dụng biến toàn cục 69
7.2.4 Dùng d
ẫn hướng #define 71
7.3 Bài t
ập 71
BÀI 8 :
MẢNG VÀ CHUỖI 72
8.1 Mục tiêu 72
8.2 N
ội dung 72
8.2.1 M
ảng 72
8.2.1.1 Cách khai báo m
ảng 72
8.2.1.2 Tham chi
ếu đến từng phần tử mảng 72
8.2.1.3 Nh
ập dữ liệu cho mảng 73
8.2.1.4
Đọc dữ liệu từ mảng 73
8.2.1.5 S
ử dụng biến kiểu khác 74
8.2.1.6 K
ỹ thuật Sentinal 74
8.2.1.7 Kh
ởi tạo mảng 75
8.2.1.8 Kh
ởi tạo mảng không bao hàm kích thước 76
8.2.1.9 M
ảng nhiều chiều 76
8.2.1.10 Tham chi
ếu đến từng phần tử mảng 2 chiều 76
8.2.1.11 Nh
ập dữ liệu cho mảng 2 chiều 77
8.2.1.12
Đọc dữ liệu từ mảng 2 chiều 77
8.2.1.13 S
ử dụng biến kiểu khác trong mảng 2 chiều 78
8.2.1.14 Kh
ởi tạo mảng 2 chiều 78
8.2.1.15 Dùng m
ảng 1 chiều làm tham số cho hàm 79
8.2.1.16 Dùng m
ảng 2 chiều làm tham số cho hàm 82
8.2.2 Chu
ỗi 84
8.2.2.1 Cách khai báo chu
ỗi 84
8.2.2.2 Hàm nh
ập (gets), xuất (puts) chuỗi 85
8.2.2.3 Kh
ởi tạo chuỗi 86
8.2.2.4 M
ảng chuỗi 86
8.3 Bài t
ập 87
BÀI 9 :
CON TRỎ 90
9.1 Mục tiêu 90
9.2 N
ội dung 90
9.2.1 Con tr
ỏ? 90
9.2.2 Khái báo bi
ến con trỏ 90
9.2.3 Truy
ền địa chỉ sang hàm 91
9.2.4 Con tr
ỏ và mảng 92
9.2.5 Con tr
ỏ trỏ đến mảng trong hàm 92
9.2.6 Con tr
ỏ và chuỗi 93
9.2.7 Kh
ởi tạo mảng con trỏ trỏ đến chuỗi 94
9.2.8 X
ử lý con trỏ trỏ đến chuỗi 95
9.2.9 Con tr
ỏ trỏ đến con trỏ 97
9.3 Bài t
ập 98
Giáo trình Lập trìnhC căn bản Trang 4
Tai lieu tham khao
BÀI 10 :
CÁC KIỂU DỮ LIỆU TỰ TẠO 99
10.1 Mục tiêu 99
10.2 N
ội dung 99
10.2.1 Structure 99
10.2.1.1 Khai báo ki
ểu structure 99
10.2.1.2 Cách khai báo bi
ến có kiểu structure 99
10.2.1.3 Tham chi
ếu các phần tử trong structure 99
10.2.1.4 Kh
ởi tạo structure 101
10.2.1.5 Structure l
ồng nhau 102
10.2.1.6 Truy
ền structure sang hàm 103
10.2.2 Enum 105
10.2.2.1
Định nghĩa kiểu enum 105
10.2.2.2 Cách khai báo bi
ến có kiểu enum 106
10.2.2.3 S
ử dụng enum trong chương trình 106
10.3 Bài t
ập 108
BÀI 11 :
TẬP TIN 109
11.1 Mục tiêu 109
11.2 N
ội dung 109
11.2.1 Ví d
ụ ghi, đọc số nguyên 109
11.2.2
Ghi, đọc mảng 110
11.2.3
Ghi, đọc structure 111
11.2.4
Các mode khác để mở tập tin 112
11.2.5 M
ột số hàm thao tác trên file khác 112
11.3 Bài t
ập 113
BÀI 12 :
ĐỆ QUY 114
12.1 Mục tiêu 114
12.2 N
ội dung 114
12.3 Bài t
ập 117
BÀI 13 :
TRÌNH SOẠN THẢO CỦA BORLAND C 118
13.1 Mở tập tin soạn thảo mới 118
13.2
Lưu tập tin 118
13.2.1 N
ếu là tập tin soạn thảo mới chưa lưu 118
13.2.2 N
ếu là tập tin đã lưu ít nhất 1 lần hoặc được mở bằng lệnh Open: 118
13.3 M
ở tập tin 119
13.4 Các phím, t
ổ hợp phím thường dùng 119
13.4.1 Các phím di chuy
ển con trỏ 119
Giáo trình Lập trìnhC căn bản Trang 5
Tai lieu tham khao
13.4.2 Các phím thao tác trên khối 120
13.4.3 Các thao tác xóa 120
13.4.4 Các thao tác copy, di chuy
ển 120
13.4.5 Các thao tác khác 120
13.5 Ghi m
ột khối ra đĩa 121
13.6 Chèn n
ội dung file từ đĩa vào vị trí con trỏ 121
13.7 Tìm ki
ếm văn bản trong nội dung soạn thảo 121
13.8 Tìm và thay th
ế văn bản trong nội dung soạn thảo 121
13.9 S
ửa lỗi cú pháp 122
13.10 Ch
ạy từng bước 122
13.11 S
ử dụng Help (Giúp đỡ) 122
BÀI 14 :
CÁC HỆ ĐẾM 124
14.1 Khái niệm 124
14.2 Quy t
ắc 124
14.3 Chuy
ển đổi giữa các hệ 125
14.3.1 Chuy
ển đổi giữa hệ 2 và hệ 10 125
14.3.2 Chuy
ển đổi giữa hệ 8 và hệ 10 126
14.3.3 Chuy
ển đổi giữa hệ 16 và hệ 10 126
14.3.4 Chuy
ển đổi giữa hệ 2 và hệ 16 127
BÀI 15 :
BIỂU THỨC VÀ PHÉP TOÁN 128
15.1 Biểu thức 128
15.2 Phép toán 128
15.2.1 Phép toán s
ố học 128
15.2.2 Phép quan h
ệ 128
15.2.3 Phép toán lu
ận lý 129
15.2.4 Phép toán trên bit (bitwise) 129
15.2.5 Các phép toán khác 130
15.2.6
Độ ưu tiên của các phép toán 130
15.3 Bài t
ập 130
BÀI 16 :
MỘT SỐ HÀM CHUẨN THƯỜNG DÙNG 132
16.1 Các hàm chuyển đổi dữ liệu 132
16.1.1 atof 132
16.1.2 atoi 132
16.1.3 itoa 132
16.1.4 tolower 132
Giáo trình Lập trìnhC căn bản Trang 6
Tai lieu tham khao
16.1.5 toupper 132
16.2 Các hàm x
ử lý chuỗi ký tự 133
16.2.1 strcat 133
16.2.2 strcpy 133
16.2.3 strcmp 133
16.2.4 strcmpi 133
16.2.5 strlwr 133
16.2.6 strupr 133
16.2.7 strlen 134
16.3 Các hàm toán h
ọc 134
16.3.1 abs 134
16.3.2 labs 134
16.3.3 rand 134
16.3.4 random 134
16.3.5 pow 134
16.3.6 sqrt 134
16.4 Các hàm x
ử lý file 135
16.4.1 rewind 135
16.4.2 ftell 135
16.4.3 fseek 135
Giáo trình Lập trìnhC căn bản Trang 7
Tai lieu tham khao
Bài 1 :
NGÔN NGỮ LẬP TRÌNH & PHƯƠNG PHÁP LẬP TRÌNH
1.1 Mục tiêu
Sau khi hoàn tất bài này học viên sẽ hiểu và vận dụng các kiến thức kĩ năng cơbản sau:
- Ý nghĩa, các bước lập trình.
-
Xác định dữ liệu vào, ra.
- Phân
tích các bài toán đơn giản.
- Khái niệm so sánh, lặp.
- Thể hiện bài toán bằng lưu đồ.
1.2 Lý thuyết
1.2.1 Ngôn ngữ lập trình (Programming Language)
Phần này chúng ta sẽ tìm hiểu một số khái niệm căn bản về thuật toán, chương trình, ngôn
ng
ữ lập trình. Thuật ngữ "thuật giải" và "thuật toán" dĩ nhiên có sự khác nhau song trong nhiều
trường hợp chúng có c
ùng nghĩa.
1.2.1.1 Thuật giải (Algorithm)
Là một dãy các thao tác xác định trên một đối tượng, sao cho sau khi thực hiện một số
hữu hạn các bước thì đạt được mục tiêu. Theo R.A.Kowalski thì bản chất của thuật giải:
Thuật giải = Logic + Điều khiển
* Logic: Đây là phần khá quan trọng, nó trả lời câu hỏi "Thuật giải làm gì, giải quyết vấn
đề g
ì?", những yếu tố trong bài toán có quan hệ với nhau như thế nào v.v… Ở đây bao gồm
những kiến thức chuyên môn mà bạn phải biết để có thể tiến hành giải bài toán.
Ví dụ 1: Để giải một bài toán tính diện tích hình cầu, mà bạn không còn nhớ công thức
tính hình cầu thì bạn không thể viết chương trình cho máy để giải bài toán này được.
* Điều khiển: Thành phần này trả lời câu hỏi: giải thuật phải làm như thế nào?. Chính là
cách th
ức tiến hành áp dụng thành phần logic để giải quyết vấn đề.
1.2.1.2 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ì:
Chương trình = Thuật toán + Cấu trúc dữ liệu
Các thuật toán và chương trình đều có cấu trúc dựa trên 3 cấu trúc điều khiển cơ bản:
*
Tuần tự (Sequential): Các bước thực hiện tuần tự một cách chính xác từ trên xuống,
mỗi bước chỉ thực hiện đúng một lần.
* Chọn lọc (Selection): Chọn 1 trong 2 hay nhiều thao tác để thực hiện.
* Lặp lại (Repetition): Một hay nhiều bước được thực hiện lặp lại một số lần.
Muốn trở thành lập trình viên chuyên nghiệp bạn hãy làm đúng trình tự để có thói quen tốt
và thuận lợi sau này trên nhiều mặt của một người làm máy tính. Bạn hãy làm theo các bước sau:
Tìm, xây dựng thuật giải (trên giấy) viết chương trình trên máy
dịch chương trình chạy và thử chương trình
Giáo trình Lập trìnhC căn bản Trang 8
Tai lieu tham khao
1.2.1.3 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 theo các qui ước về ngữ pháp và ngữ
nghĩa, dùng để xây dựng thành các chương trình cho máy tính.
M
ột chương trình được viết bằng một ngôn ngữ lập trình cụ thể (ví dụ Pascal, C…) gọi là
chương trình nguồn, chương trình dịch làm nhiệm vụ dịch chương trình nguồn thành chương
trình thực thi được trên máy tính.
1.2.2 Các bước lập trình
Bước 1: Phân tích vấn đề và xác định các đặc điểm. (xác định I-P-O)
Bước 2: Lập ra giải pháp. (đưa ra thuật giải)
Bước 3: Cài đặt. (viết chương tr
ình)
Bước 4: Chạy thử chương trình. (dịch chương trình)
Bước 5: Kiểm chứng và hoàn thiện chương trình. (thử nghiệm bằng nhiều số liệu và đánh giá)
1.2.3 Kỹ thuật lập trình
1.2.3.1 I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trình nh
ập-xử lý-xuất)
Quy trình xử lý cơbản của máy tính gồm I-P-O.
Ví dụ 2: 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.
Ví dụ 3: 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
Ví dụ 4: 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
Ví dụ 5: 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
Process : Nếu a > b thì Output = a lớn nhất
Ngược lại
Output = b lớn nhất
Bài tập
Xác định Input, Process, Output của các chương trình sau:
1. Đổi từ tiền VND sang tiền USD.
2. Tính điểm trung b
ình của học sinh gồm các môn Toán, Lý, Hóa.
3. Giải phương trình bậc 2: ax
2
+ bx + c = 0
4. Đổi từ độ sang radian và đổi từ radian sang độ
(công thức / = a/180, với : radian, a: độ)
5. Kiểm tra 2 số a, b giống nhau hay khác nhau.
Process
OutputInput
Giáo trình Lập trìnhC căn bản Trang 9
Tai lieu tham khao
1.2.3.2 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).
Hình d
ạng (symbol) Hành động (Activity)
Dữ liệu vào (Input)
Xử lý (Process)
Dữ liệu ra (Output)
Quyết định (Decision), sử dụng điều kiện
Luồng xử lý (Flow lines)
Gọi CT con, hàm… (Procedure, Function…)
Bắt đầu, kết thúc (Begin, End)
Điểm ghép nối (Connector)
Ví dụ 6: Chuẩn bị cà phê Ví dụ 7: Mô tả ví dụ 3 Ví dụ 8: Mô tả ví dụ 4
B
ắt đầu
K
ết thúc
Cà phê, nước sôi
Hòa cà phê vào nước sôi
Bỏ đường vào
Khuấy đều hỗn hợp
Cà phê đã sẵn sàng
B
ắt đầu
K
ết thúc
LCB, ngày công
Nhân LCB với ngày công
Kết quả lương
B
ắt đầu
K
ết thúc
Giá trị a, b
Chia –b cho a
Nghiệm x
Giáo trình Lập trìnhC căn bản Trang 10
Tai lieu tham khao
Ví dụ 9: Cộng 2 số Ví dụ 10: so sánh 2 số
Ví dụ 11: Kiểm tra tính hợp lệ của điểm
Ví dụ 12: Xếp lon vào thùng
Ví dụ 13: Kiểm tra loại số
Ví dụ 14: Kiểm tra tính hợp lệ của điểm
B
ắt đầu
K
ết thúc
a, b
c = a + b
c
B
ắt đầu
K
ết thúc
Số a, Số b
Số a bằng Số b
Số a có bằng
S
ố b
không?
Số a không bằng Số b
Có
Không
B
ắt đầu
K
ết thúc
Điểm
Điểm hợp lệ
Điểm >=0 và
Đi
ểm <=10 ?
Điểm không hợp lệ
Có
Không
B
ắt đầu
K
ết thúc
Số
Số dương
Số > 0 ?
Có
Số < 0 ?
Số âm
Có
Số không
Không
Không
B
ắt đầu
K
ết thúc
Thùng = 24 Lon?
Chưa
Thùng = 0 Lon
1 Lon
Thêm 1 Lon vào thùng
Bằng
B
ắt đầu
K
ết thúc
Sai
Điểm
Đúng
Điểm >=0 và
Đi
ểm <=10 ?
[...]... Ngư c lại Nếu c >= A và c = 'a' && c = 'A' && c = 0 và c = 'A' và c = '0' và c = 'a' && c. .. Alt - F9 Compile F9 Make F10 Menu Kết quả in ra màn hình Bai hoc C dau tien _ Dòng thứ 1: bắt đầu bằng /* và kết th c bằng */ cho biết hàng này là hàng diễn giải (chú thích) Khi dịch và chạy chương trình, dòng này không đư c dịch và c ng không thi hành lệnh gì c M c đích c a vi c ghi chú này giúp chương trình rõ ràng hơn Sau này bạn đ c lại chương trình biết chương trình làm gì Dòng thứ 2: chứa phát... lập trình, nó không những thể hiện rõ ý nghĩa trong chương trình mà c n dùng để x c định cc đại lượng kh c nhau khi th c hiện chương trình Tên thường đư c đặt cho hằng, biến, mảng, con trỏ, nhãn… Chiều dài tối đa c a tên là 32 ký tự Tên biến hợp lệ là một chuỗi ký tự liên t c gồm: Ký tự chữ, số và dấu gạch dưới Ký tự đầu c a tên phải là chữ ho c dấu gạch dưới Khi đặt tên không đư c đặt trùng với c c. .. vi c a biến Nếu khai báo và sử dụng không đúng, không rõ ràng sẽ dẫn đến sai sót khó kiểm soát đư c, vì vậy bạnc n phải x c định đúng vị trí, phạm vi sử dụng biến trư c khi sử dụng biến Khai báo biến ngoài (biến toàn c c) : Vị trí biến đặt bên ngoài tất ccc hàm, c u tr cCc biến này c ảnh hưởng đến toàn bộ chương trình Chu trình sống c a nó là bắt đầu chạy chương trình đến l c kết th c chương trình . này h c viên sẽ hiểu và vận dụng c c kiến th c kĩ năng c bản sau:
- Ngôn ngữ C.
- Một số thao t c cơ bản c a trình soạn thảo C.
- C ch lập trình trên C.
-. toán và chương trình đều c c u tr c dựa trên 3 c u tr c điều khiển c bản:
*
Tuần tự (Sequential): C c bư c th c hiện tuần tự một c ch chính x c từ trên
Hình d
ạng (symbol) Hành động (Activity) Dữ liệu vào (Input) (Trang 9)
n
hình sau khi khởi động thành công (Trang 12)
t
quả in ram àn hình (Trang 13)
trl
– F9: Dịch và chạy chương trình. Alt – F5: Xem màn hình kết quả (Trang 14)
t
quả in ram àn hình (Trang 23)
inc
ra màn hình Ngược lại (Trang 32)
t
quả in ram àn hình (Trang 35)
inc
ra màn hình (Trang 35)
t
quả in ram àn hình (Trang 37)
t
quả in ram àn hình (Trang 43)
b.
Bàn thêm về chương trình (Trang 43)
c.
Bàn thêm về chương trình (Trang 44)
t
quả in ram àn hình (Trang 44)
a.
Viết chương trình (Trang 47)
t
quả in ram àn hình (Trang 56)
t
quả in ram àn hình (Trang 58)
t
quả in ram àn hình (Trang 59)
t
quả in ram àn hình (Trang 60)
d
ụ 19: Vẽ hình chữ nhật đặc có chiều rộng =10 hàng. Hàng thứ 1 =10 số 0, hàng thứ 2 = 10 số 1… (Trang 61)
t
quả in ram àn hình (Trang 67)
7.2.2
Tham số dạng tham biến và thamt rị Ví dụ 4: (Trang 68)
t
quả in ram àn hình (Trang 80)
t
quả in ram àn hình (Trang 86)
t
quả in ram àn hình (Trang 92)
t
quả in ram àn hình (Trang 96)
t
quả in ra màn hình (Trang 103)
t
quả in ram àn hình (Trang 107)
t
quả in ram àn hình (Trang 111)
t
quả in ram àn hình (Trang 112)