Giáo trình Kỹ thuật lập trình
TRÖÔØNG CAO ÑAÚNG KINH TEÁ KYÕ THUAÄT
THAØNH PHOÁ HOÀ CHÍ MINH
KHOA COÂNG NGHEÄ THOÂNG TIN
- - - -
Giảng viên: Nguyễn Gia Quang Đăng
Khoa Công nghệ thông tin
Email: nguyengiaquangdang@hotec.edu.vn
Năm 2020
MỤC LỤC
Mục tiêu...............................................................................................................5
Nội dung ..............................................................................................................5
1.2.1.1 Giới thiệu..................................................................................................5
1.2.2 Các kiểu dữ liệu cơ sở.....................................................................................7
1.2.2.1 Các kiểu dữ liệu cơ bản...........................................................................7
1.2.2.2 Khái niệm về biến và hằng .....................................................................8
1.2.2.3 Từ khóa ....................................................................................................9
1.2.2.4 Ghi chú .....................................................................................................9
1.2.3 Biểu thức – Toán tử - Câu lệnh ...................................................................10
1.2.3.1 Biểu thức – Toán tử...............................................................................10
1.2.3.2 Lệnh và khối lệnh ..................................................................................14
1.2.3.3 Chuyển đổi kiểu giá trị..........................................................................16
1.2.3.4 Các hàm có sẵn trong C/C++ ...............................................................16
1.2.3.5 Phạm vi của biến ...................................................................................17
1.2.4 Thuật toán lưu đồ .........................................................................................17
1.2.4.1 Khái niệm ...............................................................................................17
1.2.4.2 Các ký hiệu trên lưu đồ.........................................................................17
1.2.5.4 Khởi động và thoát Dev-C++ ...............................................................19
Bài tập................................................................................................................21
Mục tiêu.............................................................................................................23
Nội dung ............................................................................................................23
2.2.1 Hàm printf & scanf.......................................................................................23
2.2.1.1 Hàm printf..............................................................................................23
2.2.1.2 Hàm scanf...............................................................................................26
2.2.2 Hàm getche & getch......................................................................................27
2.2.2.1 Hàm getche.............................................................................................27
2.2.2.2 Hàm getch ..............................................................................................27
2.2.3 Nhập xuất cout & cin....................................................................................27
KHOA CÔNG NGHỆ THÔNG TIN
Trang 1
2.2.3.1 Hàm cout ................................................................................................27
2.2.3.2 Hàm cin ..................................................................................................28
Bài tập................................................................................................................28
Mục tiêu.............................................................................................................30
Nội dung ............................................................................................................30
3.2.1 Câu lệnh điều khiển......................................................................................30
3.2.1.1 Dạng 1 (if thiếu) .....................................................................................30
3.2.1.2 Dạng 2 (if … else)...................................................................................34
3.2.1.3 Cấu trúc else if .......................................................................................39
3.2.1.4 Lệnh switch…case.................................................................................45
3.2.2 Vòng lặp.........................................................................................................52
3.2.2.1 Vòng lặp for ...........................................................................................52
3.2.2.2 Lệnh while..............................................................................................60
3.2.2.3 Lệnh do…while......................................................................................64
3.2.2.4 Vòng lặp lồng nhau ...............................................................................67
3.2.2.5 Lệnh break .............................................................................................69
3.2.2.6 Lệnh continue và goto...........................................................................70
3.2.2.7 Lệnh exit.................................................................................................72
Bài tập................................................................................................................73
3.3.1 Sử dụng lệnh if ..............................................................................................73
3.3.2 Sử dụng lệnh switch......................................................................................74
3.3.3 Bài tập làm thêm...........................................................................................75
3.3.4 Bài tập vòng lặp ............................................................................................75
BÀI 4 : HÀM................................................................................................... 79
Mục tiêu.............................................................................................................79
Nội dung ............................................................................................................79
4.2.1 Tổng quan về hàm ........................................................................................79
4.2.1.1 Khái niệm ...............................................................................................79
4.2.1.2 Cấu trúc của hàm ..................................................................................79
4.2.1.3 Các ví dụ về sử dụng hàm.....................................................................80
4.2.2 Tham số dạng tham biến và tham trị..........................................................83
4.2.3 Vần đề tầm vực .............................................................................................84
KHOA CÔNG NGHỆ THÔNG TIN
Trang 2
4.2.3.1 Khái niệm ...............................................................................................84
4.2.3.2 Quy tắc cơ bản .......................................................................................84
4.2.3.3 Tầm vực của biến ..................................................................................85
4.2.3.4 Tầm vực của hàm ..................................................................................87
4.2.4 Dùng hướng dẫn #define..............................................................................88
4.2.5 Đệ quy ............................................................................................................89
4.2.5.1 Khái niệm ...............................................................................................89
4.2.5.2 Các ví dụ.................................................................................................89
4.2.6 Ưu nhược điểm của đệ quy ..........................................................................94
Bài tập................................................................................................................94
4.3.1 Bài tập hàm ...................................................................................................94
4.3.2 Bài tập đệ quy................................................................................................95
BÀI 5 : MẢNG VÀ CHUỖI ............................................................................. 96
Mục tiêu.............................................................................................................96
Nội dung ............................................................................................................96
5.2.1 Mảng ..............................................................................................................96
5.2.1.1 Cách khai báo mảng..............................................................................96
5.2.1.4 Mảng nhiều chiều ................................................................................100
5.2.2 Chuỗi............................................................................................................109
5.2.2.1 Cách khai báo chuỗi............................................................................109
Bài tập..............................................................................................................114
BÀI 6 : CON TRỎ ........................................................................................ 119
Mục tiêu...........................................................................................................119
Nội dung ..........................................................................................................119
6.2.1 Khái quát về con trỏ? .................................................................................119
6.2.1.1 Khái niệm .............................................................................................119
6.2.1.2 Lý do để dùng con trỏ .........................................................................119
6.2.1.3 Các toán tử...........................................................................................119
KHOA CÔNG NGHỆ THÔNG TIN
Trang 3
6.2.1.4 Khái báo biến con trỏ..........................................................................120
6.2.2 Ứng dụng của con trỏ .................................................................................125
6.2.2.1 Hàm có tham số của con trỏ ...............................................................125
6.2.2.2 Con trỏ và mảng ..................................................................................127
6.2.2.3 Con trỏ và chuỗi ..................................................................................130
6.2.2.4 Con trỏ trỏ đến con trỏ .......................................................................133
Bài tập..............................................................................................................135
Mục tiêu...........................................................................................................136
Nội dung ..........................................................................................................136
7.2.1 Kiểu cấu trúc (Struct).................................................................................136
7.2.1.1 Khái niệm .............................................................................................136
7.2.1.2 Khai báo kiểu struct............................................................................136
7.2.1.4 Khởi tạo struct.....................................................................................140
7.2.1.5 Struct lồng nhau ..................................................................................141
7.2.1.6 Sử dụng mảng các struct.....................................................................144
7.2.2 Enum............................................................................................................150
7.2.2.1 Khái niệm .............................................................................................150
7.2.2.3 Các ví dụ...............................................................................................151
Bài tập..............................................................................................................154
TÀI LIỆU THAM KHẢO................................................................................. 155
PHỤ LỤC....................................................................................................... 156
Chú thích hình ảnh....................................................................................................156
Bảng biểu....................................................................................................................156
KHOA CÔNG NGHỆ THÔNG TIN
Trang 4
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
Bài 1 :
CÁC KHÁI NIỆM CƠ BẢN CỦA NGÔN NGỮ LẬP TRÌNH C/C++
1.1 Mục tiêu
Sau khi học xong học sinh sẽ trình bày và vận dụng được các kỹ năng cơ bản sau:
- Khái niệm từ khóa
- Các kiểu dữ liệu
- Cách ghi chú
- Đặt tên biến
- Khai báo biến.
- Phạm vi sử dụng biến.
- Vẽ phát họa được lưu đồ thuật toán
1.2 Nội dung
1.2.1 Khái quát về ngôn ngữ lập trình C/C++
1.2.1.1 Giới thiệu
- Ngôn ngữ lập trình C do Dennis Ritchie nghĩ ra khi ông làm việc tại AT&T Bell
Laboratories vào năm 1972.
- C là một ngôn ngữ mạnh và có tính linh hoạt, nó đã nhanh chóng được sử dụng
một cách rộng rãi, vượt ra khỏi phạm vi của Bell Labs. Các lập trình viên ở khắp mọi
nơi bắt đầu sử dụng nó để viết tất cả các loại chương trình.
- C++ được biết đến như là ngôn ngữ mới bao trùm lên C và do Bjarne Stroustrup
sáng tác năm 1980 cũng tại phòng thí nghiệm Bell tại bang New Jersey, Mỹ. Ban đầu
được ông đặt tên cho nó là “C with classes” (C với các lớp). Tuy nhiên đến năm 1983
thì ông đổi tên thành C++, trong đó ++ là toán tử tăng thêm 1 của C.
- C++ được biết đến như là ngôn ngữ lập trình hướng sự vật hay hướng đối tượng -
OOP (Object Oriented Programming). Nó cung cấp các lớp mà có 4 chức năng thông
dụng trong các ngôn ngữ OO: tính trừu tượng, tính bao đóng, tính đa hình, và tính kế
thừa.
C++ bao trùm lên C nên mọi đặc điểm của C đều có trong C++. Ngoài ra, C++
còn có một số đặc điểm khác như:
C++ là ngôn ngữ hướng đối tượng.
C++ là ngôn ngữ định kiểu rất mạnh.
C++ cung cấp cách truyền tham số bằng tham chiếu cho hàm.
KHOA CÔNG NGHỆ THÔNG TIN
Trang 5
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
C++ cung cấp cơ cấu thư viện để người lập trình có thể tự tạo thêm hàm thông
dụng vào thư viện và có thể tái sử dụng sau này.
C++ cung cấp một cơ chế đa dạng hóa tên hàm và toán tử.
C++ cung cấp các class là loại cấu trúc mới đóng gói chung cho cả dữ liệu lẫn các
hàm trong một chủ thể được bảo vệ một cách chặt chẽ.
Cấu trúc của một chương trình C++
Khối khai báo các thư
viện hàm
Các định nghĩa
biến, hằng, kiểu, hàm
Khối hàm main
Các định nghĩa hàm của
người dùng
Trong đó:
- Khối khai báo các thư viện hàm: cú pháp để khai báo thư viện:
#include<tên_thư_viên.h>
Ví dụ:
#include<iostream.h>
#include<conio.h>
- Các định nghĩa biến, hằng, kiểu, hàm: Cung cấp tên hàm, kiểu hàm, số đối số
và kiểu của từng đối số của hàm. Các biến và hằng được định nghĩa tại đây sẽ
trở thành biến và hằng toàn cục hoặc các khai báo nguyên mẫu hàm với cú
pháp sau: <kiểu hàm> <tên hàm> ([biến tham số]);
Ví dụ: int songuyento(int x);
- Khối hàm main: Đây là thành phần bắt buộc trong một chương trình C++, thân
của hàm main bắt đầu từ sau dấu mở móc { cho tới dấu đóng móc }.
- Các định nghĩa hàm của người dùng: Một định nghĩa hàm bao gồm tiêu đề của
hàm, thân hàm với cú pháp như sau:
KHOA CÔNG NGHỆ THÔNG TIN
Trang 6
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
<Kiểu hàm> <Tên hàm> ([Các biến tham số])
{
<Các câu lệnh>
}
1.2.1.2 Các thành phần cơ bản của ngôn ngữ C/C++
Các thành phần
Các thành phần trong C++ bao gồm:
+ Từ khóa.
+ Các khai báo biến, hằng.
+ Các cấu trúc điều khiển.
+ Biểu thức và các phép toán.
+ Các định nghĩa, khai báo hàm, khai báo kiểu,…
Những ký tự, ký hiệu sau: (phân biệt chữ in hoa và in thường):
26 chữ cái latinh lớn A,B,C...Z
26 chữ cái latinh nhỏ a,b,c ...z.
10 chữ số thập phân 0,1,2...9.
Các ký hiệu toán học: +, -, *, /, =, <, >, (, )
Các ký hiệu đặc biệt: :. , ; " ' _ @ # $ ! ^ [ ] { } ...
Dấu cách hay khoảng trống.
Các kiểu dữ liệu cơ bản
3 thông tin đặc trưng của kiểu dữ liệu:
- Tên kiểu dữ liệu.
- Kích thước vùng nhớ biểu diễn nó,miền giá trị.
- Các phép toán có thể sử dụng.
- Các kiểu dữ liệu đơn giản trong C++ chỉ là các kiểu số, thuộc hai nhóm chính đó
là số nguyên và số thực (số dấu phẩy động).
1.2.2 Các kiểu dữ liệu cơ sở
1.2.2.1 Các kiểu dữ liệu cơ bản
Có 4 kiểu dữ liệu cơ bản trong C là: char, int, float, double.
Bảng 1: Các kiểu dữ liệu cơ bản trong C
KHOA CÔNG NGHỆ THÔNG TIN
Trang 7
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
Kiểu dữ liệu
(Type)
Kích thước
Miền giá trị
TT
(Length)
(Range)
1
2
3
4
5
6
7
8
9
unsigned char
char
1 byte
0 đến 255
1 byte
– 128 đến 127
enum
2 bytes
2 bytes
2 bytes
2 bytes
– 32,768 đến 32,767
unsigned int
short int
int
0 đến 65,535
– 32,768 đến 32,767
– 32,768 đến 32,767
unsigned long 4 bytes
0 đến 4,294,967,295
long
float
4 bytes
4 bytes
8 bytes
10 bytes
– 2,147,483,648 đến 2,147,483,647
3.4 * 10–38 đến 3.4 * 1038
1.7 * 10–308 đến 1.7 * 10308
3.4 * 10–4932 đến 1.1 * 104932
10 double
11 long double
1.2.2.2 Khái niệm về biến và hằng
Khái niệm tên biến rất quan trọng trong quá trình 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 các đạ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 từ
khóa.
Ví dụ 1:
Các đặt tên biến đúng: bien1, b_1, Number_ODD, Case
Các đặt tên sai:
3b_1
(ký tự đầu là số)
number-odd
float
(sử dụng dấu gạch ngang)
(đặt tên trùng với từ khóa)
(có khoảng trắng)
bien 1
f(x)
(có dấu ngoặc tròn)
Lưu ý: Trong C/C++, phân biệt đặt tên chữ hoa và chữ thường
Ví dụ 2: number khác Number
KHOA CÔNG NGHỆ THÔNG TIN
Trang 8
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
float khác Float
(float là từ khóa, do đó bạn đặt tên là Float vẫn đúng)
Hằng là đại lượng có giá trị thuộc một kiểu dữ liệu nhất định, giá trị của hằng
không thể thay đổi trong thời gian tồn tại của chương trình.
Có hai loại hằng:
+ Hằng không tên (hằng thường): là các giá trị cụ thể tức thời.
+ Hằng có tên (hằng ký hiệu): là các hằng phải định nghĩa trước khi sử dụng, tên
của hằng đặt theo quy tắc của tên.
Định nghĩa hằng
Cú pháp:
const <kiểu_dữ_liệu> <tên_hằng> = <giá_trị>;
hoặc
const <tên_hằng> = <giá_trị>;
Chú ý:
- Hằng số được ngầm hiểu là hệ 10, nhưng ta có thể viết các hằng trong hệ 16
hoặc 8.
- Các hằng kí tự được viết trong cặp dấu nháy đơn ‘’.
- Các xâu kí tự là dãy các kí tự được viết trong cặp dấu nháy kép “”.
1.2.2.3 Từ khóa
Từ khóa là từ có ý nghĩa dùng để xác định khai báo dữ liệu và viết các câu lệnh trong
lập trình. Trong C/C++ có các từ khóa sau:
Bảng 2: Các từ khóa trong C/C++
asm
const
else
for
interrupt
long
return
short
sizeof
void
break
case
cdecl
char
continue
default
do
enum
extern
far
goto
huge
if
switch
typedef
union
volatile
while
near
static
struct
signed
pascal
register
double
float
int
unsigned
Các từ khóa khi lập trình phải viết bằng chữ thường
1.2.2.4 Ghi chú
Trong khi lập trình cần phải ghi chú để giải thích các biến, hằng, hàm, thao tác xử lý
giúp cho chương trình rõ ràng dễ hiểu, dễ nhớ, dễ sửa chữa và để người khác đọc vào dễ hiểu.
Trong C/C++ hỗ trợ chọn phép các ghi chú sau: // hoặc /* nội dung ghi chú */
KHOA CÔNG NGHỆ THÔNG TIN
Trang 9
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
Ví dụ 3:
int main(int argc, char *argv[])
{
float a, b;
a = 10;
b =13;
//khai bao bien a,b kieu float
//gan 10 cho a
//gan 13 cho b
/* thuat toan tim so lon nhat la
neu a lon hon b thi a lon nhat
nguoc lai b lon nhat */
if (a > b) printf("max: %d", a);
else printf("max: %d", b);
}
Khi biên dịch chương trình, C/C++ gặp cặp dấu ghi chú sẽ không dịch ra ngôn ngữ máy.
Kết luận:
- Đối với ghi chú dạng // dùng để ghi chú trên một hàng.
- Ghi chú dạng /* …. */ có thể ghi chú một hàng hoặc nhiều hàng.
- Nội dung ghi chú chương trình sẽ không thực hiện biên dịch.
1.2.3 Biểu thức – Toán tử - Câu lệnh
1.2.3.1 Biểu thức – Toán tử
a. Biểu thức
Biểu thức là một sự kết hợp giữa các toán tử (operator) và các toán hạng
(operand) theo đúng một trật tự nhất định.
Mỗi toán hạng có thể là một hằng, một biến hoặc một biểu thức khác.
Trong trường hợp, biểu thức có nhiều toán tử, ta dùng cặp dấu ngoặc đơn ()
để chỉ định toán tử nào được thực hiện trước.
Ví dụ: Biểu thức tính chu vi hình chữ nhật:
(d+r)/2
Trong đó: d, r là biến của biểu thức.
b. Toán tử
Trong ngôn ngữ C/C++, các toán tử +, -, *, / làm việc tương tự như khi chúng
làm việc trong các ngôn ngữ khác. Ta có thể áp dụng chúng cho đa số kiểu dữ liệu
KHOA CÔNG NGHỆ THÔNG TIN
Trang 10
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
có sẵn được cho phép bởi C. Khi ta áp dụng phép / cho một số nguyên hay một ký
tự, bất kỳ phần dư nào cũng bị cắt bỏ. Chẳng hạn, 7/2 bằng 3 trong phép chia
nguyên.
Bảng 3: Các phép toán
Toán tử
Giải thích phép toán
Phép cộng
+
-
Phép trừ
*
Phép nhân
/
Phép chia
%
--
++
Phép chia lấy phần dư
Phép giảm 1 đơn vị
Phép tăng 1 đơn vị
Phép tăng và giảm (++ & --)
Toán tử ++ dùng để tăng thêm 1 vào toán hạng và -- trừ bớt 1. Hay viết như
sau:
x = x + 1 tương tự như ++x
x = x - 1 tương tự như x--
Cả 2 phép toán tử tăng và giảm đều có thể tiền tố (đặt trước) hay hậu tố (đặt
sau) toán hạng. Ví dụ: x = x + 1 có thể viết x++ (hay ++x) đều giống nhau.
Tuy nhiên giữa tiền tố và hậu tố có sự khác biệt khi sử dụng trong 1 biểu
thức. Khi 1 toán tử tăng hay giảm đứng trước toán hạng của nó, C thực hiện việc
tăng hay giảm trước khi lấy giá trị dùng trong biểu thức. Nếu toán tử đi sau toán
hạng, C lấy giá trị toán hạng trước khi tăng hay giảm nó.
- Toán tử tiền tố:
x = 20
y = ++x //y = 21
- Toán tử hậu tố:
x = 20
KHOA CÔNG NGHỆ THÔNG TIN
Trang 11
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
x = x++ //y = 20
Thứ tự ưu tiên của các toán tử số học như sau:
Toán tử: ++ → -- → * → / → % → + → -
Các toán tử quan hệ và các toán tử Logic
Các toán tử quan hệ dùng để so sánh các giá trị giữa các biến.
Bảng 4: Các phép toán tử quan hệ
Toán tử quan hệ
Giải thích ý nghĩa
Lớn hơn
>
>=
<
Lớn hơn hoặc bằng
Nhỏ hơn
<=
==
!=
Nhỏ hơn hoặc bằng
Bằng
Khác
Toán tử Logic là toán tử nhận giá trị đúng hoặc sai. Trong C mọi giá trị khác
0 được gọi là đúng, còn sai là 0. Các biểu thức sử dụng các toán tử quan hệ và
Logic trả về 0 nếu sai và trả về 1 nếu đúng.
Bảng 5: Các toán tử logic
Toán tử Logic
Giải thích ý nghĩa
AND
&&
||
!
OR
NOT (Phủ định)
Bảng 6: Bảng chân trị cho các toán tử Logic
p
0
0
1
1
q
0
1
0
1
p&&q
p||q
0
!p
1
0
0
0
1
1
1
1
0
1
0
KHOA CÔNG NGHỆ THÔNG TIN
Trang 12
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
Độ ưu tiên các toán tử số học cao hơn các toán tử quan hệ và Logic. Do đó
một biểu thức như: 20 > 1+ 22 sẽ được xem là 20 > (1 + 22) và kết quả là sai (0).
Ta có thể kết hợp vài toán tử lại với nhau thành biểu thức như sau:
20>5&&!(20<9)||5<=4 Kết quả của biểu thức là đúng
Thứ tự ưu tiên của các toán tử quan hệ là Logic
Cao nhất: !
> >= < <=
== !=
&&
Thấp nhất: ||
Các toán tử Bit:
Các toán tử Bit ý nghĩa nói đến dùng để kiểm tra, gán hay sự thay đổi các Bit
thật sự trong 1 Byte của Word, mà trong C chuẩn là các kiểu dữ liệu và biến char,
int. Ta không thể sử dụng các toán tử Bit với dữ liệu thuộc các kiểu float, double,
long double, void hay các kiểu phức tạp khác.
Bảng 7: Bảng toán tử bit
Các toán tử
Giải thích ý nghĩa
AND
&
||
OR
^
XOR
~
NOT
>
Dịch phải
Dịch trái
<<
Bảng 8: Bảng chân trị của toán tử ^ (XOR)
p
0
0
1
q
0
1
0
p^q
0
1
1
KHOA CÔNG NGHỆ THÔNG TIN
Trang 13
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
1
1
0
Toán tử ? cùng với:
C có một toán tử hỗ trợ rất mạnh và thích hợp để thay thế cho các câu lệnh
của If-Then-Else. Cú pháp của việc sử dụng toán tử ? như sau:
E1 ? E2 : E3
Trong đó E1, E2, E3 là các biểu thức.
Ý nghĩa: Trước tiên E1 được kiểm tra điều kiện, nếu đúng E2 trở thành giá trị
của biểu thức; nếu E1 sai, E3 được trở thành giá trị của biểu thức.
Ví dụ:
X = 100
Y = X > 90 ? 50 : 200
Thì Y được gán giá trị 50, nếu X nhỏ hơn 90 thì Y sẽ nhận giá trị là 200.
Đoạn mã này tương đương cấu trúc if như sau:
X = 100;
if (X < 90) Y = 50;
else Y = 200;
1.2.3.2 Lệnh và khối lệnh
Lệnh
Lệnh là bao gồm một tác vụ, biểu thức, hàm, hay cấu trúc điều khiển…
Ví dụ 4:
x = x + 2;
printf("Day la mot lenh\n");
Khối lệnh
Khối lệnh là một dãy gồm nhiều câu lệnh được đặt trong cặp dấu { }.
Trong lập trình các lệnh trong khối lệnh phải viết thụt vô 1 tab so với cặp dấu {
}
Ví dụ 5:
{ // đầu khối
a = 15;
b = 16;
viết thụt vô 1 tab so với cặp { }
printf("Tong %d + %d = %d", a, b, a+b);
KHOA CÔNG NGHỆ THÔNG TIN
Trang 14
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
} //cuối khối
Khai báo biến
Cú pháp
Kiểu dữ liệu Danh sách tên biến;
-
-
Kiểu dữ liệu: 1 trong các kiểu dữ liệu được ngôn ngữ C/C++ hỗ trợ
Danh sách tên biến: gồm các tên biến có cùng kiểu dữ liệu, mỗi tên
biến cách nhau dấu phẩy (,), cuối cùng phải là dấu chấm phẩy (;).
Ví dụ 6:
int ithang;
//khai báo biến ithang có kiểu int
//khai báo biến fgia có kiểu float
float fgia;
char ckitu1, ckitu2;
//khai báo biến ckitu1, ckitu2 có kiểu char
Cách khai báo tên biến dựa trên theo quy tắc ở mục 1.2.2.1.
Ý nghĩa là biến ithang là kiểu int, ta nên thêm chữ i (kí tự đầu của kiểu) vào
đầu tên biến thang để trong quá trình lập trình hoặc sau này xem lại, sửa
chữa chương trình dễ dàng nhận ra biến ithang có kiểu int mà không cần
phải di chuyển đến phần khai báo mới biết kiểu của biến này. Tương tự cho
các kiểu biến còn lại.
Vừa khai báo vừa khởi gán
Chúng ta có thể kết hợp việc khai báo với toán tử kết hợp với thức gán để
biến nhận giá trị ngay cùng lúc với khai báo.
Ví dụ 7:
Khai báo trước, gán giá trị sau:
int main(int argc, char *argv[])
{
int a, b, c;
a = 10;
b = 20;
c = 50;
…
}
Vừa khai báo vừa gán giá trị:
int main(int argc, char *argv[])
KHOA CÔNG NGHỆ THÔNG TIN
Trang 15
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
{
int a = 10, b = 20, c = 50;
…
}
1.2.3.3 Chuyển đổi kiểu giá trị
Quy tắc chuyển đổi kiểu dữ liệu đích phải có giá trị lớn hơn kiểu dữ liệu nguồn.
Ví dụ: chuyển từ int sang float.
int a = 100;
float f = a;
Hoặc tường minh: Thay đổi kiểu dữ liệu có dãy giá trị lớn sang dãy giá trị nhỏ hơn.
Ví dụ: chuyển từ float sang int.
float f = 100.51;
int a = (int) f;
1.2.3.4 Các hàm có sẵn trong C/C++
Hàm thư viện là những hàm đã được định nghĩa sẵn trong một thư viện nào
đó, muốn sử dụng các hàm thư viện thì phải khai báo thư viện trước khi sử dụng
bằng lệnh #include <tên thư viện.h>
Bảng 9: Ý nghĩa của một số hàm có sẵn thường dùng
STT
1
Thư viện
Hàm có sẵn
Ứng dụng
Thư viện chứa các
hàm vào/ ra chuẩn
(standard input/outp
ut)
printf(), scanf(), getc(), putc(),
gets(), puts(), fflush(), fopen(),
stdio.h
fclose(),
fread(),
fwrite(),
getw(),
getchar(),
putw()…
putchar(),
Thư viện chứa các
hàm vào ra trong
chế độ DOS (DOS
console)
clrscr(),
getch(),
getche(),
getpass(), cgets(), cputs(), putch(),
2
conio.h
clreol(),…
Thư viện chứa các
abs(), sqrt(), log(). log10(), sin(),
cos(), tan(), acos(), asin(), atan(),
pow(), exp(),…
hàm tính toán
3
4
math.h
alloc.h
Thư viện chứa các
hàm liên quan đến
việc quản lý bộ nhớ
calloc(), realloc(), malloc(), free(),
farmalloc(), farcalloc(), farfree(),
…
KHOA CÔNG NGHỆ THÔNG TIN
Trang 16
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
Thư viện chứa các
open(), _open(), read(), _read(),
close(), _close(), creat(), _creat(),
creatnew(), eof(), filelength(),
lock(),…
hàm vào ra cấp thấp
5
6
io.h
Thư viện chứa các
hàm liên quan đến
đồ họa
initgraph(),
line(),
circle(),
graphics.h putpixel(), getpixel(), setcolor(),
…
1.2.3.5 Phạm vi của biến
Khi lập trình, chúng ta phải nắm rõ phạm 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 chúng ta cầ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 cả các hàm, cấu
trúc... Các 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.
Khai báo biến trong (biến cục bộ): Vị trí biến đặt bên trong hàm, cấu trúc…. Chỉ
ảnh hưởng nội bộ bên trong hàm, cấu trúc đó… Chu trình sống của nó bắt đầu từ
lúc hàm, cấu trúc được gọi thực hiện đến lúc thực hiện xong.
1.2.4 Thuật toán lưu đồ
1.2.4.1 Khái niệm
Thuật toán là tập hợp các quy tắc có logic dùng để giải một lớp bài toán nào đó để
được một kết quả xác định.
Lưu đồ là một dạng đồ thị dùng để mô tả quá trình tính toán một cách có hệ thống.
Người ta thường thể hiện thuật toán bằng lưu đồ.
1.2.4.2 Các ký hiệu trên lưu đồ
Bảng 10: Bảng ký hiệu lưu đồ
Tên khối
Khối mở đầu và kết thúc
Khối vào ra
Ký hiệu
Ý nghĩa
Dùng mở đầu hoặc kết thúc chương trình
Đưa số liệu vào hoặc in kết quả
Biểu diễn công thức tính toán
Khối tính toán
Khối điều kiện
Chương trình con
Mũi tên
Dùng để phân nhánh chương trình
Dùng để gọi chương trình con
Chỉ hướng truyền thông tin, liên hệ các khối
1.2.5.3 Các ví dụ biểu diễn lưu đồ thuật toán
KHOA CÔNG NGHỆ THÔNG TIN
Trang 17
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
Ví dụ 8: Tính A=x2+y2
Ví dụ 9 : Giải phương trình bậc 1 Ax+B=0
Ví dụ 10: Vẽ lưu đồ thuật toán hiển thị các số từ 1 đến 10.
KHOA CÔNG NGHỆ THÔNG TIN
Trang 18
Bài 1: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++
Ví dụ 11: Vẽ lưu đồ thuật toán kiểm tra tính hợp lệ của điểm số từ 0 đến 10
Bắt đầu
Điểm
Điểm >=0 và
Điểm <=10 ?
Sai
Đúng
Kết thúc
1.2.5.4 Khởi động và thoát Dev-C++
a. Khởi động ứng dụng
Khởi động bằng biểu tượng
diện như sau:
ngòai Desktop. Sau khi khởi động có giao
KHOA CÔNG NGHỆ THÔNG TIN
Trang 19
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Kỹ thuật lập trình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- giao_trinh_ky_thuat_lap_trinh.pdf