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

Hướng dẫn lập trình C cơ bản

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 (3.8 MB, 139 trang )

Chương 1: Lập trình cấu trúc và
lập trình hướng đối tượng
Giới thiệu
1.1 Các khái niệm cơ bản
1.2 Phương pháp lập trình
1.3 Các ngơn ngữ lập trình

Đ.D.Phú, 2021

1


Giới thiệu

Đ.D.Phú, 2021

2


Giới thiệu

Đ.D.Phú, 2021

3


Giới thiệu

Đ.D.Phú, 2021

4




Giới thiệu

Đ.D.Phú, 2021

5


Giới thiệu

Đ.D.Phú, 2021

6


1.1 Các khái niệm cơ bản



Ký tự (Character)
Từ khóa (Key word)



Tên (Identifier)



Một số quy tắc khi viết chương trình

+ Quy tắc 1: Mỗi câu lệnh có thể viết trên một hoặc nhiều dòng,
trước khi muốn xuống dòng ta thêm dấu \
+ Quy tắc 2: Cách viết chú thích (các chú thích được viết sau dấu
\\ hoặc bên trong /* ……. */).
+ Quy tắc 3: Khi sử dụng các hàm chuẩn, cần khai báo thư viện
chứa hàm chuẩn đó (VD: stdio.h, conio.h, math.h,….).
Đ.D.Phú, 2021

7


1.2 Phương pháp lập trình



Lập trình tuyến tính (Gặp khó khăn khi chương tình lớn)
Lập trình cấu trúc (LTCT: Structure Oriented)
LTCT = Cấu trúc dự liệu + Giải thuật (thuật tốn)
Phương pháp này trở lên khó khăn khi dữ liệu của bài toán lớn, và khi
thay đổi dữ liệu dẫn đến có thể phải viết lại thuật tốn và chương trình.



Lập trình hướng đối tượng (LTHĐT: Object Oriented)
+ Phương pháp: thiết kế các chương trình (các thao tác xử lý) xốy
quanh dữ liệu (thuộc tính) của hệ thống và các đối tượng, nên khi dữ
liệu thay đổi sẽ ít gây ảnh hưởng đến các thao tác xử lý liên quan khác.
+ Phương pháp lập trình cho phép tiếp cận bài tốn gần gũi với thế
giới thực hơn.


1.3 Các ngơn ngữ lập trình
Đ.D.Phú, 2021

8


Chương 2: Ngơn ngữ lập
trình C/C++
Ngơn ngữ dung để làm gì ?
2.1 Biến, mảng và biểu thức
2.2 Vào ra dữ liệu
2.3 Các cấu trúc điều khiển (rẽ nhánh)
2.4 Hàm và cấu trúc chương trình
2.5 Các mở rộng của C++ so với C
Đ.D.Phú, 2021

1


2.1 Biến mảng và biểu thức
• Kiểu dữ liệu
(biến)

2

Đ.D.Phú, 2021

2



2.1 Biến mảng và biểu thức
• Hằng số
C/C++ cung cấp cho người dung một số các loại hằng như: số thập phân,
số Hexa, ký tự, chuỗi.
- Hằng thập phân: 1234; 324.0; -67834.789 ; 123.65E-4 ; -43.67E5;…
- Hằng Hexa: 0x17A7;
- Hằng ký tự: ‘A’ = 65 ;

0xA00F;
‘a’ = 97 ;

0x7F

;…

‘9’ = 57 (Xem bảng mã ASCII)

- Hằng chuỗi (xâu) ký tự: “ABcdfr768” ; “Ha Noi” ; …. ; “” //xâu rỗng
Chú ý: kết thúc một chuỗi ký từ là ký tự null (\0).
Đ.D.Phú, 2021

3


2.1 Biến mảng và biểu thức
• Hằng số
Cách viết một số ký tự đặc biệt:
TT

Cách viết


Ký tự

1

‘\’’



2

‘\”’



3

‘\\’

\

4

‘\n’

\n (xuống dòng)

5

‘\0’


\0 (null)

6

‘\t’

tab

7

‘\b’

back space

8

‘\r’

RC (về đầu dòng)

9

‘\f’

LF (sang trang)
Đ.D.Phú, 2021

4



2.1 Biến mảng và biểu thức
• Kiểu enum
Dùng để tạo kiểu dữ liệu dang enum. Cú pháp:
enum
enum
enum
enum

tk {pt1, pt2, …} tb1, tb2, …;
tk {pt1, pt2, …} ;
{pt1, pt2, …} tb1, tb2, …;
{pt1, pt2, …};

Trong đó: tk là tên kiểu được định nghĩa
pt1, pt2, … là tên các phần tử thuộc tk
tb1, tb2 là tên biến được khai báo kiểu tk

Đ.D.Phú, 2021

5


2.1 Biến mảng và biểu thức
• Biến (Variable)
Mọi biến bắt buộc phải khai báo trước khi sử dụng. Cú pháp khai báo biến:
kiểu_dự_liệu tên_biến;
Biến đơn:
int
int

long
float

a;
a,b,c;
a1,a2=4523;
x,y=13.98,z;

Biến mảng (array):
int
float

a[9],b[3][2];//=>
x[10],y[4][3];
Đ.D.Phú, 2021

b[0][0]
b[1][0]
b[2][0]

b[0][1]
b[1][1]
b[2][1]
6


2.1 Biến mảng và biểu thức


Định nghĩa kiểu bằng typedef


Ví dụ định nghĩa kiểu nguyen là kiểu dữ liệu int:
typedef int nguyen;
Từ đây ta dùng nguyen để khai báo biến:
nguyen
a,b,x,y;
Khối lệnh là một dãy các câu lệnh được bao bởi cặp dâu {…}, các
khối lệnh có thể lồng nhau. ví dụ:
{
int
a,b;
{
float
x[10],y[4][3];
a = b + 4;
}
printf(“a = %d”,a);
}
Đ.D.Phú, 2021

7


2.1 Biến mảng và biểu thức
• Biến, mảng tự động (local: cục bộ, địa phương)
Biến (mảng) được khai báo bên trong các hàm (chương trình con), kể kể
hàm main, khi kết thúc các hàm thì vùng nhớ được giải phóng, biến
(mảng) khai báo trong hàm nào thì hàm đó được sử dụng.




Biến, mảng ngồi (globle: tồn cục)

Biến (mảng) ngồi được khai báo bên ngoài các hàm, chúng sẽ tồn tại
trong suốt thời gian làm việc của chương trình.
#include <stdio.h>
long
x1,x2;
char
str1[]=“Hello !”;
void main()
{
int
a,b;
float
x[]= {1,2.4,0,8};
}
Đ.D.Phú, 2021

8


2.1 Biến mảng và biểu thức


Biến, mảng tĩnh (static)

Để khai báo biến (mảng) tĩnh ta dùng thêm từ kháo static viết đằng
trước kiểu dữ liệu. Ví dụ:
static long

x1,x2;
static char
str1[]=“Hello !”;
Biến (mảng) tĩnh trong hay ngoài đêu được cấp phép bộ nhớ trong suốt
thời gian hoạt động của chương trình.
• Tốn tử sizeof :Dùng để xác định kích cỡ của của mảng. Ví dụ:
float x[]={1, 23.6, 56, 0};
int
n=sizeof(x);//n=4(số phần tử của mảng x)



Biểu thức: là sự kết hợp giữa các phép tốn (tốn tử) và các sơ hạng

(tốn hạng), ví dụ:
p = (a+b+c)/2;
s = pi*R*R;
Đ.D.Phú, 2021

9


2.1 Biến mảng và biểu thức


Phép tính số học và logic bit

Phép
Ý nghĩa
toán

+
Cộng
Trừ
*
Nhân
/
Chia
%
Lấy phần dư
++ Tăng một đ.vị
--

V.dụ

a+b
a-b
a*b
a/b
a%b
++n,
n++
Giảm một đ.vị --n,
n--

Phép
Ý nghĩa
toán
&
VÀ (AND)
|

HOẶC (OR)
^
LOẠI TRỪ (XOR)
<<
Dịch trái
>>
Dịch phải
~
Đảo bit (NOT)
=
Đ.D.Phú, 2021

Phép gán

V.dụ
a+b
a|b
a^b
a<<4
a>>8
~a
a=b
10


2.1 Biến mảng và biểu thức


Phép so sánh và logig quan hệ


Phép
toán
>
>=
<
<=
==
!=

Ý nghĩa
Lớn hơn
Lớn hơn
hoặc bằng
Nhỏ hơn
Lớn hơn
hoặc bằng
Bằng
khác

Phép
V.dụ
Ý nghĩa
V.dụ
Toán
a>b && Quan hệ và (a>b)&&(c>d)
a<=b
||
Quan hệ
(a>b)||(c>d)
hoặc

a! Quan hệ đảo
!(a>5)
a<=b
a==b
a!=b
Đ.D.Phú, 2021

11


2.1 Biến mảng và biểu thức


Chuyển đổi và ép kiểu dữ liệu
Để chuyển đổi giữa các loại dữ liệu qua nhau. Cú pháp:
(kiểu_dữ_liệu)(biểu_thức);//chuyển đổi
(kiểu_dữ_liệu) biến;
//ép kiểu

Ví dụ: (float)(a+b);//chuyển đổi kết
//quả(a+b)sang số thực
(int)x;
//ép biến x sang số nguyên



Câu lệnh gán




i = i+2; tương đương i += 2;
a = b = c = 134;
Biểu thức điều kiện: e1 ? e2 : e3
Nếu e1 đúng thì giá trị biểu thức bằng e2, nếu e1 sai thì giá trị biểu thức
bằng e3, ví dụ: s = (a>b)? a:b;
Đ.D.Phú, 2021

12


2.1 Biến mảng và biểu thức


Thứ tự ưu tiên
các phép tính

Đ.D.Phú, 2021

13


2.2 Vào ra dữ liệu


In dữ liệu ra màn hình (hàm printf())
Cú pháp: printf(“các_đặc_tả”,các_biến_số);

Đ.D.Phú, 2021


14


2.2 Vào ra dữ liệu


Nhập dữ liệu từ bàn phím (hàm scanf())
Cú pháp: scanf(“các_đặc_tả”,địa_chỉ_biến_số);

Viết dữ liệu ra máy in. Cú pháp:
fprintf(stdprn,“các_đặc_tả”,các_biến_số);
Đ.D.Phú, 2021

15


2.3 Các cấu trúc điều khiển


Tốn tử if
Cú pháp dạng 1:

điều_kiện ?

if(điều_kiện)

s

đ
khối_lệnh


khối_lệnh;

Cú pháp dạng 2:
điều_kiện ?

if(điều_kiện)
khối_lệnh_1;
else
khối_lệnh_2;

s

đ
khối_lệnh_1
Đ.D.Phú, 2021

khối_lệnh_2
16


2.3 Các cấu trúc điều khiển


Tốn tử else if
Cú pháp:
if(đk_1)
khối_lệnh_1;
else if(đk_2)
khối_lệnh_2;

. . .
else if(đk_n-1)
khối_lệnh_n-1;
else
khối_lệnh_n;

Đ.D.Phú, 2021

17


×