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

index of cnpmpth02001slidepdf

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 (72.24 KB, 8 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

Lập trình nâng cao - Chương 06 - Ngô Công Thắng 1


<b>Ch</b>

<b>ươ</b>

<b>ng 6. Ki</b>

<b>ể</b>

<b>u c</b>

<b>ấ</b>

<b>u trúc và ki</b>

<b>ể</b>

<b>u li</b>

<b>ệ</b>

<b>t kê</b>



I. Ki

u c

u trúc (struct)


II. Ki

u li

t kê (enum)



I. Ki

u c

u trúc



1. Khái ni

m v

ki

u c

u trúc


2. Khai báo ki

u c

u trúc



3. Khai báo bi

ế

n c

u trúc



4. Truy nh

p các thành ph

n c

a c

u trúc


5. Kh

i t

o bi

ế

n c

u trúc



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Lập trình nâng cao - Chương 06 - Ngô Công Thắng 3


1. Khái ni

m v

ki

u c

u trúc



²

Ngồi các ki

u d

li

u có s

n trong C, ng

ườ

i


l

p trình cịn có th

t

o ra nh

ng ki

u d

li

u


c

a riêng mình: Ki

u c

u trúc và ki

u li

t kê.



²

M

t c

u trúc là m

t nhóm các ph

n t

có th


có ki

u d

li

u khác nhau. Các ph

n t

này


g

i là các thành ph

n c

a c

u trúc. Ki

u c

u


trúc trong C t

ươ

ng

đươ

ng v

i ki

u b

n ghi


trong Pascal.




2. Khai báo ki

u c

u trúc



²

Khai báo c

u trúc là mô t

v

các thành ph

n


c

a c

u trúc. Cú pháp nh

ư

sau:



struct Tên_ki

u_c

u trúc


{



Ki

u_1 Tên_thành_ph

n_1;


Ki

u_2 Tên_thành_ph

n_2;


. . . .



};



Từ khoá


Các thành phần
của cấu trúc


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Lập trình nâng cao - Chương 06 - Ngô Công Thắng 5


2. Khai báo ki

u c

u trúc (ti

ế

p)



² Ví dụ: Để lưu trữ thơng tin về nhân sự của phịng tổ
chức với các thơng tin về họ tên, ngày sinh, địa chỉ,
lương ta khai báo một kiểu cấu trúc như sau:


struct nhansu
{



char hoten[30];
char ngaysinh[10];
char diachi[40];
float luong;
};


2. Khai báo ki

u c

u trúc (ti

ế

p)



² Sau khi khai báo kiểu cấu trúc ta có thể dùng tên
kiểu cấu trúc như tên các kiểu dữ liệu cơ bản.


² Kiểu của các thành phần của cấu trúc có thể là kiểu
cấu trúc, tức là trong cấu trúc có thể chứa cấu trúc
khác. Ví dụ:


struct ngaythang
{


int ngay,thang,nam;
};


struct nhansu
{


char hoten[30];


<b>struct ngaythang ngaysinh;</b>


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Lập trình nâng cao - Chương 06 - Ngơ Công Thắng 7



3. Khai báo bi

ế

n c

u trúc



²

Vi

c khai báo ki

u c

u trúc không t

o ra


vùng nh

ch

a c

u trúc mà ch

mơ t

v

c

u


trúc xem có nh

ng gì.



²

Mu

n có vùng nh

ch

a c

u trúc ta ph

i khai


báo bi

ế

n c

u trúc. Cú pháp:



struct Tên_ki

u_c

u_trúc Tên_bi

ế

n_c

u trúc;


Ví d

:



struct nhansu ng1,ng2;



4. Truy nh

p các thành ph

n c

u trúc



² Để truy nhập các thành phần của cấu trúc ta dùng
toán tử chấm. Cú pháp:


Tên_biến_cấu_trúc.Tên_thành_phần


<i>Ví dụ:</i>


struct thisinh
{


char SBD[15];
float toan,ly,hoa;
};



//Khai bao bien cau truc
struct thisinh ts;


//Nhap du lieu cho thi sinh


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Lập trình nâng cao - Chương 06 - Ngơ Cơng Thắng 9


5. Kh

i t

o bi

ế

n c

u trúc



² Khi khai báo biến cấu trúc ta có thể khởi tạo giá trị cho các
thành phần của cấu trúc như khởi tạo cho các phần tử của
mảng.


Ví dụ:


//Khai bao kieu cau truc
struct thisinh


{


char SBD[15];
float toan,ly,hoa;
};


//Khai bao va khoi tao bien cau truc


struct thisinh ts={"NNHA23456", 7, 8, 9};


6. Phép gán bi

ế

n c

u trúc




² Ta có thể gán một biến cấu trúc cho một biến cấu
trúc cùng kiểu. Ví dụ:


//Khai bao kieu cau truc
struct thisinh


{


char SBD[15];
float toan,ly,hoa;
};


//Khai bao bien cau truc


struct thisinh ts1={"NNHA23456",7,8,9};
struct thisinh ts2;


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Lập trình nâng cao - Chương 06 - Ngơ Công Thắng 11


7. M

ng c

u trúc



² Sau khi khai báo kiểu cấu trúc thì tên kiểu cấu trúc


được dùng như các kiểu dữ liệu khác. Chẳng hạn,
dùng cấu trúc làm kiểu phần tử của mảng.


<i>Ví dụ:</i>


//Khai bao kieu cau truc
struct thisinh



{


char SBD[15];
float toan,ly,hoa;
};


//Khai bao bien cau truc
struct thisinh ds[100];


strcpy(ds[0].SBD,"NNHA23456");
ds[0].toan=8;


ds[0].ly=8;
ds[0].hoa=9;


Ví d



1. Nhập vào thông tin của n mặt hang, mỗi mặt hàng
có thơng tin về tên hàng, số lượng, đơn giá. Tính
tổng tiền của n mặt hang.


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Lập trình nâng cao - Chương 06 - Ngô Công Thắng 13


II. Ki

u li

t kê



² Kiểu liệt kê là kiểu dữ liệu do người lập trình tự


định nghĩa bằng cách liệt kê tất cả các giá trị. Các
giá trị của kiểu liệt kê là các tên tự đặt.



² Để định nghĩa kiểu liệt kê ta dùng từ khóa enum
theo cú pháp sau:


enum Tên_kiểu_liệt_kê {Danh sách các tên tự đặt};


<i>Ví dụ:</i> enum boolean {TRUE, FALSE};
enum mausac {Xanh, Do, Tim, Vang};


enum days_of_week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};


II. Ki

u li

t kê (ti

ế

p)



²

Sau khi khai báo ki

u li

t kê ta có th

khai


báo các bi

ế

n ki

u li

t nh

ư

các bi

ế

n ki

u khác:


Tên_ki

u_li

t_kê Danh_sách_các_bi

ế

n;



<i>Ví d</i>

<i>ụ</i>

<i>:</i>

Gi

s

các ki

u li

t kê

đ

ã

đượ

c khai


báo

trên, ta khai báo các bi

ế

n li

t kê:



days_of_week day1, day2;



²

Để đư

a giá tr

vào bi

ế

n li

t kê ta dùng l

nh


gán:



</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

Lập trình nâng cao - Chương 06 - Ngô Công Thắng 15


II. Ki

u li

t kê (ti

ế

p)



² Các giá trị kiểu liệt kê được lưu trữ như các số


nguyên kiểu int, giá trị tên đầu tiên là 0, giá trị tên
tiếp theo là 1,…


<i>Ví dụ:</i> Với kiểu liệt kê days_of_week ở trên thì Sun
có giá trị 0, Mon có giá trị 1, Tue có giá trị 3,…


² Ta có thể thay đổi giá trị số của các giá trị tên


n Cho các giá trị tên có giá trị số bắtđầu từ một số khác 0


Ví dụ: enum mausac {Xanh=5, Do, Tim, Vang};


Với khai báo này Xanh có giá trị 5, Do có giá trị 6, Tim
có giá trị7, Vàng có giá trị8.


Bài t

p



</div>

<!--links-->

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

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