Tải bản đầy đủ (.pptx) (84 trang)

Bài giảng: lập trình C+

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 (527 KB, 84 trang )

NGÔN NGỮ LẬP TRÌNH C


Bài 1. Tổng quan về ngôn ngữ lập trình C
I. Giới thiệu ngôn ngữ lập trình C
1. Các thành phần của ngôn ngữ lập trình C



Tập các ký tự



Từ khoá



Tên







Chữ cái: A .. Z, a .. z
Chữ số : 0..9
Ký hiệu toán học :
+-*/=()
Ký tự gạch nối: _
Các ký hiệu đặc biệt khác như : . , ; : [ ] { } ? ! \ & | % # $,…






Là những từ có một ý nghĩa hoàn toàn xác định để khai báo các kiểu dữ liệu, viết các toán tử, viết các câu lệnh
Ví dụ: char, do, int, float, for, while,…





Dùng để xác định các đại lượng khác nhau trong một chương trình
Là một dãy ký tự, bắt đầu bằng chữ cái hoặc gạch nối
Độ dài cực đại mặc định là 32

2


2. Các kiểu dữ liệu cơ sở trong C






Kiểu ký tự (char)
Kiểu số nguyên (int, long)
Kiểu dấu phẩy động (chính xác đơn (float), chính xác kép (double)
Kiểu void


3


2.1 Kiểu ký tự (char)



Một giá trị kiểu ký tự (char) chiếm 1 byte trong bộ nhớ và biểu diễn một ký tự thông qua
bảng mã ASCII.



Ví dụ

Ký tự

Mã ASCII

0

48

1

49

2

50


A

65

a

97

4




Trong ngôn ngữ C cung cấp hai kiểu ký tự (char) là signed char và unsigned char

Phạm vi
signed char
unsigned char

Ví dụ :

Số ký tự

Kích thước

-128 → 127

1 byte

0 → 255


1 byte

char ch1, ch2;

ch1= ‘a’ ; ch2= 97;

5


2.2 Kiểu số nguyên (int, long)
Kiểu số nguyên trong C gồm các kiểu sau:

Kiểu

Phạm vi biểu diễn

Kích thước

int/short int

-32768 → 32767

2 byte

unsigned int

0 → 65535

2 byte


long

-2147483648 → 2147483647

4 byte

unsigned long

0 → 4294967295

4 byte

6


2.3 Kiểu số thực

Kiểu

Phạm vi biểu diễn

Kích thước

float

±3.4E-38 → ±3.4E+38

4 byte


double

±1.7E-308 → ±1.7E+308

8 byte

long double

±3.4E-4932 → ±1.1E+4932

10 byte

7


3 Hằng, biến, con trỏ, mảng
3.1 Hằng:



Khái niệm: hằng là đại lượng có giá trị không thay trong chương trình. Các loại hằng được
sử dụng trong C tương ứng với các kiểu dữ liệu nhất định



Trong C có các loại hằng sau:






Hằng số
Hằng chuỗi
Hằng ký tự

8


Hằng số: là các giá trị số đã xác định, có thể là kiểu nguyên hay kiểu thực

– Hằng nguyên: Giá trị chỉ bao gồm các chữ số, dấu +, - được lưu trữ theo kiểu int. Ví dụ: 12,24

– Nếu giá trị vượt quá miền giá trị của int thì phải có ký tự l (hay L ) theo sau giá trị thì lưu
theo kiểu long. Ví dụ: 63L hoặc 45l là hằng nguyên lưu theo kiểu long.

– Hằng dấu phẩy động: Được viết dưới dạng có dấu chấm thập phân, hoặc dưới dạng khoa
học, và được lưu theo kiểu float, double, long double.

Ví dụ: 1.2 ; 2.1E -3 (2.1E-3 = 0.0021)
hoặc 3.1e-2 (3.1e-2 = 0.031)

-

Hằng nguyên hệ 8: được viết dưới dạng:

0c1c2c3…
với ci là số nguyên nằm trong khoảng 0 đến 7
Ví dụ: 0102

-


Hằng nguyên hệ 16: được viết dưới dạng:

0xc1c2c3… hoặc 0Xc1c2c3…
với ci là một chữ số hệ 16 (0,1,2,…,9, A, B, C, D, E, F)
Ví dụ: 0XA1

9


Hằng ký tự




Một hằng kiểu ký tự được viết trong dấu nháy đơn (' ) như 'A' hoặc 'z'.
Hằng ký tự 'A' đồng nghĩa với giá trị nguyên 65, là giá trị trong bảng mã ASCII của chữ hoa 'A'
(Như vậy giá trị của hằng chính là mã ASCII của nó).



Ðối với một vài hằng ký tự đặc biệt, ta cần sử dụng cách viết thêm dấu \ , như '\t' tương ứng
với phím tab, ‘\n’ tương ứng với xuống dòng.



Hằng ký tự có thể tham gia vào phép toán như mọi số nguyên khác:
VD: '8' - '1'= 56-49=7.

10



Cách viết

Ký tự

‘\n’

Xuống hàng

‘\t’

Tab

‘\0’

“nul” tương ứng với giá trị nguyên 0 trong bảng mã ASCII

‘\b’

Backspace

‘\r’

Về đầu dòng

‘\f’

Sang trái


‘\\’

\

‘ \” ’



‘ \’ ’



11


Hằng chuỗi





Là chuỗi ký tự nằm trong cặp dấu nháy kép " ".
Ví dụ: "Turbo C"
Một hằng chuỗi được lưu trữ tận cùng bằng một ký tự Nul (\0), ví dụ chuỗi "Turbo C" được lưu
trữ trong bộ nhớ như sau:

Cách định nghĩa hằng: 2 cách
Cách 1: Định nghĩa ở đầu chương trình (sau các dòng khai báo những thư viện chuẩn) theo cú pháp:

T

u
r
#define <tên hằng>

b
o
<giá trị>

C

\0

Ví dụ: #define PI 3.1415
Cách 2: Dùng từ khóa const, cú pháp:
const <kiểu dữ liệu> <tên hằng> = <giá trị>;
Ví dụ: const float PI = 3.1415;

12


3.2 Biến
- Cách khai báo: Mỗi biến trong chương trình đều phải được khai báo trước khi sử dụng với cú
pháp:



Kiểu dữ liệu <danh_sách_tên_biến>;
Lưu ý: nếu có nhiều tên biến thì giữa các tên biến phải có dấu , để ngăn cách
Ví dụ: int a,b; float x;


- Gán giá trị khởi đầu cho các biến
Ngay trên dòng khai báo ta có thể gán cho biến một giá trị. Việc làm này gọi là gán giá
trị khởi đầu cho biến.
Ví dụ: int a,b=6,d=1;
- Khai báo biến xâu ký tự:
char <biến xâu>[<độ dài tối đa>];
Ví dụ:
char x[30];

→ sẽ chứa xâu nhiều nhất 30 ký tự

Tên xâu x là địa chỉ của phần tử x[0] (tức là &x[0])
char hoten[ ] = “Nguyen Van A”;
char diachi[ 30 ] = “Ha Noi”;
char quequan[25] = {‘H’, ‘A’ , ‘N’ , ‘A’ , ‘M’ , ‘\0’};
13


- Cách truy xuất đến địa chỉ của biến
Một số hàm của C dùng đến địa chỉ của biến ví dụ như hàm scanf. Ðể nhận địa chỉ của biến
dùng toán tử & theo cú pháp:
&tên_biến
Ví dụ: &a

→ địa chỉ của biến a

14


3.3 Con trỏ






Là một biến có giá trị là địa chỉ



Cách khai báo biến con trỏ:

Địa chỉ này có thể là địa chỉ của một biến, một hàm khác
Vì có nhiểu kiểu dữ liệu nên cũng có nhiểu kiểu con trỏ tương ứng (con trỏ kiểu
int để chứa địa chỉ biến kiểu int, …)
<kiểu> *<tên biến con trỏ>;
Ví dụ: int *p,*q;



float *x,*y,*z;

Mối quan hệ giữa & và *:
int m, n, *p, *q;
p = &m;
Áp toán tử “*” lên biến con trỏ để lấy giá trị tại địa chỉ mà con trỏ đang trỏ đến:
Ví dụ: *p
Nếu q = &n; *q = 10; Thì n = 10

15



3.4 Mảng




Là một tập hợp nhiều phần tử có cùng một kiểu giá trị và có chung tên
Khai báo mảng
<Kiểu mảng> <Tên mảng>[n1] [n2]…[nk];
→ mảng có k chiều, mỗi chiều chứa tối đa n i phần tử có số hiệu từ 0 đến ni-1 ,
[1,k]

k ∈ N*, i ∈

Ví dụ:
int a[10];
a[0], a[1], …,a[9]
float y[3][2];
y[0][0]

y[0][1]

y[1][0]

y[1][1]

y[2][0]

y[2][1]


Lấy địa chỉ phần tử mảng 1 chiều: &a[i]
Lấy địa chỉ mảng 2 chiều: y[i] + j hoặc *(y+i) + j hoặc
(float *)y + i*N + j (N là số cột, ở ví dụ trên N = 2)

16


II. Cấu trúc tổng quát của chương trình C
Một chương trình C thường gồm có các thành phần sau:

1.
2.
3.
4.
5.

Các chỉ thị tiền biên dịch
Khai báo các kiểu dữ liệu mới
Khai báo hằng, khai báo biến
Khai báo hàm
Chương trình chính

17


1.

Chỉ thị tiền biên dịch: giúp trình biên dịch thực hiện một số công việc trước khi thực hiện biên
dịch chính thức
VD: #include <stdio.h>


2.

#include <conio.h>

Khai báo kiểu dữ liệu mới: dung từ khoá typedef
VD: typedef

int

songuyen;

typedef

float

mang[10];
3.

Khai báo hằng và biến: khai báo các hằng số và biến dùng trong chương trình

4.

Khai báo hàm: khai báo các hàm tự viết

5.

Chương trình chính: hàm main là hàm bắt buộc trong chương trình. Hàm main có thể trả về giá
trị kiểu nguyên (int) hoặc không trả về giá trị nào (void)


18


/* Chương trình in ra dòng chữ Trung tam Ngoai ngu Tin hoc trên màn hình */
# include <stdio.h>
void main ()

// Hàm chính

{
printf(" \n Trung tam Ngoai ngu Tin hoc ");
/*xuống dòng, in dòng chữ Trung tam Ngoai ngu Tin hoc */
}

19


* Chương trình tính chu vi và diện tích hình tròn, biết bán kính r là một hằng số có giá trị =3.1 */
# include <stdio.h> // khai báo thư viện hàm nhập xuất chuẩn
# include <math.h> // khai báo thư viện hàm toán học
#define r 3.1
void main ()
{
float cv,dt; // khai báo biến chu vi và diện tích kiểu số thực
cv=2*r*M_PI; // tính chu vi
dt=M_PI*r*r; // tính diện tích
printf("\nChu vi = %10.2f\nDien tich = %10.2f",cv,dt);
// In kết quả lên màn hình
getch(); // Tạm dừng chương trình
}


20


/*Chương trình này minh họa cách vừa khai báo, vừa khởi đầu một biến trong C */
#include <stdio.h>
void main()
{
char ki_tu = 'a';

// Khai báo, khởi đầu kí tự

int so_nguyen = 15;

// Khai báo, khởi đầu số nguyên

float so_thuc = 27.62; // Khai báo,khởi đầu số thực
printf("%c la mot ki tu.\n",ki_tu);
printf("%d la mot so nguyen.\n",so_nguyen);
printf("%f la mot so thuc.\n",so_thuc);
}

21


Bài 2. Biểu thức và các phép toán

I. Biểu thức

– Là sự kết hợp các phép toán và các toán hạng để diễn đạt một công thức toán học nào

đó.

– Biểu thức trong C gồm có biểu thức toán học và biểu thức logic



Biểu thức toán học bao gồm các phép toán số học và các hằng, các biến, các hàm
Biểu thức logic bao gồm các biến, hằng, hàm và phép toán logic (!: phép phủ định; &&: phép và;
|| : phép hoặc)

22


II. Các phép toán



Phép toán số học
Phép toán

Ý nghĩa

+

Cộng

-

Trừ


*

Nhân

/

Chia

%

Lấy phần dư

Chú ý:
-Phép toán chia 2 số nguyên, kết quả thu được sẽ bỏ phần thập phân.
-Phép toán lấy phần dư không áp dụng cho các giá trị float và double

23


II. Các phép toán (tiếp)



Phép toán quan hệ
Phép toán

Ý nghĩa

Ví dụ


>

Có lớn hơn không?

a>b

>=

Có lớn hơn hay bằng không?

<

Có nhỏ hơn không?

<=

Có nhỏ hơn hay bằng không?

==

Có bằng hay không?

a==b

!=

Có khác nhau không?

a!=b


a>=b
aa<=b

Các phép toán quan hệ có độ ưu tiên thấp hơn so với các phép toán số học

24


II. Các phép toán (tiếp)



Phép toán logic

– Phép phủ định !
– Phép và (AND) &&
– Phép hoặc (OR) ||
X

Y

≠0



0








0

0

!X

X && Y

X || Y

0

0

1

1

0

1

0

1


0

0

0

1

0

1

0

0

Các phép toán quan hệ có độ ưu tiên nhỏ hơn so với phép toán ! nhưng lớn hơn
so với phép toán && và ||

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×