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

Bài giảng Kỹ thuật lập trình cơ bản (C++): Chương 5 - ThS. Trần Nguyễn Anh Chi

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 (511.63 KB, 9 trang )

Chương 5: Kiểu dữ liệu có cấu trúc

Kỹ thuật lập trình cơ bản

Trường Cao đẳng Cơng nghệ Thơng Tin
Khoa Cơng nghệ Thơng Tin

CHƯƠNG 5
KIỂU DỮ LIỆU CĨ CẤU TRÚC
PHẦN 1: KIỂU CẤU TRÚC
GV: ThS. TRẦN NGUYỄN ANH CHI
TpHCM, 02/2011

Đặt vấn đề
Thông tin 1 SV






MSSV : kiểu chuỗi
Tên SV : kiểu chuỗi
NTNS : kiểu chuỗi
Phái : ký tự
Điểm Tốn, Lý, Hóa : số thực

Yêu cầu
 Lưu thông tin n SV
 Truyền thông tin n SV vào hàm
2



GV: ThS. Trần Nguyễn Anh Chi

1


Chương 5: Kiểu dữ liệu có cấu trúc

Kỹ thuật lập trình cơ bản

Đặt vấn đề (tt)
Khai báo các biến để lưu trữ 1 SV






char mssv[13];
// “3.01.02.1234”
char hoten[30];
// “Nguyen Van A”
char ntns[8]; // “29/12/82”
char phai;
// „y‟  Nam, „n‟  Nữ
float toan, ly, hoa; // 8.5 9.0 10.0

Truyền thông tin 1 SV cho hàm
 void nhap(char mssv[], char hoten[], char ntns[], char phai,
float toan, float ly, float hoa);

 void xuat(char mssv[], char hoten[], char ntns[], char phai,
float toan, float ly, float hoa);

3

Đặt vấn đề (tt)
Nhận xét





Đặt tên biến khó khăn và khó quản lý
Truyền tham số cho hàm q nhiều
Tìm kiếm, sắp xếp, sao chép,… khó khăn


Ý tưởng
 Gom những thơng tin của cùng 1 SV thành một kiểu dữ
liệu mới => Kiểu dữ liệu cấu trúc (struct)
4

GV: ThS. Trần Nguyễn Anh Chi

2


Chương 5: Kiểu dữ liệu có cấu trúc

Kỹ thuật lập trình cơ bản


Khai báo kiểu cấu trúc và biến cấu trúc
Cú pháp 1
//khai bao kieu cau truc va bien cau truc
struct <tên kiểu cấu trúc>
{
<kiểu dữ liệu cơ sở> <tên thành phần 1>;

<kiểu dữ liệu cơ sở> <tên thành phần n>;
}<tên biến>;

//khai bao bien cau truc rieng
struct <tên kiểu cấu trúc> <tên biến>;
5

Khai báo (tt)
Ví dụ 1: xây dựng cấu trúc Điểm trong không gian 2 chiều
struct DiemOxy
{
int x;
int y;
}diem1, diem2;

Hoặc
struct DiemOxy
{
int x;
int y;
};
struct DiemOxy diem1, diem2;


GV: ThS. Trần Nguyễn Anh Chi

6

3


Chương 5: Kiểu dữ liệu có cấu trúc

Kỹ thuật lập trình cơ bản

Khai báo (tt)

Cú pháp 2
typedef struct
{
<kiểu dữ liệu cơ sở> <tên thành phần 1>;

<kiểu dữ liệu cơ sở> <tên thành phần n>;
} <tên kiểu cấu trúc>;
<tên kiểu cấu trúc>

<tên biến>;

7

Khai báo (tt)
Ví dụ 2: xây dựng cấu trúc Sinh viên để lưu trữ thông tin
sinh viên

typedef struct
{
char MSSV[13];
char HoTen[30];
char phai;
char NTNS[8];
float Toan, Van, TrungBinh;
} SinhVien;
SinhVien

sv;
8

GV: ThS. Trần Nguyễn Anh Chi

4


Kỹ thuật lập trình cơ bản

Chương 5: Kiểu dữ liệu có cấu trúc

Truy xuất dữ liệu cấu trúc
Đặc điểm
 Khơng thể truy xuất trực tiếp vào các thành phần trong
cấu trúc, mà phải thơng qua tốn tử thành phần cấu trúc
. hay cịn gọi là tốn tử chấm (dot operation)

Cú pháp
<tên biến cấu trúc>.<tên thành phần>


Ví dụ 3: Nhập vào tọa độ 2 điểm trong khơng gian 2
chiều. Tính khoảng cách giữa 2 điểm này
9

Truy xuất dữ liệu cấu trúc (tt)

10

GV: ThS. Trần Nguyễn Anh Chi

5


Chương 5: Kiểu dữ liệu có cấu trúc

Kỹ thuật lập trình cơ bản

Truy xuất dữ liệu cấu trúc (tt)

11

Trường Cao đẳng Công nghệ Thông Tin
Khoa Công nghệ Thông Tin

CHƯƠNG 5
KIỂU DỮ LIỆU CÓ CẤU TRÚC
PHẦN 2: KIỂU LIỆT KÊ
GV: ThS. TRẦN NGUYỄN ANH CHI
TpHCM, 02/2011


GV: ThS. Trần Nguyễn Anh Chi

6


Chương 5: Kiểu dữ liệu có cấu trúc

Kỹ thuật lập trình cơ bản

Giới thiệu
Khái niệm
Kiểu dữ liệu liệt kê (enum) là một kiểu dữ liệu đặc biệt,
dùng để định nghĩa một quan hệ thứ tự cho một tập hợp
hữu hạn

Cú pháp
enum <tên enum>
{
<giá trị 1> ,

<giá trị n>,
};
<tên enum>

<tên biến>;

13

Giới thiệu (tt)

Ví dụ
enum Color
{
red ,
orange ,
yellow ,
green ,
cyan ,
blue ,
violet
};
enum Color mycolor;
//hoac
Color mycolor;

GV: ThS. Trần Nguyễn Anh Chi

14

7


Chương 5: Kiểu dữ liệu có cấu trúc

Kỹ thuật lập trình cơ bản

Lưu ý
 Các giá trị trong enum có cùng kích thước với kiểu dữ
liệu int. Mặc định, giá trị đầu tiên trong enum = 0, và
các giá trị sau tăng dần thêm 1.

enum Color
{
red ,
orange ,
yellow ,
green ,
cyan ,
blue ,
violet
};

//0
//1
//2
//3
//4
//5
//6
15

Lưu ý (tt)
 Tuy nhiên, các giá trị trong enum có thể được gán theo
yêu cầu, và có thể gán trùng nhau.
enum Color
{
red = 3,
orange ,
yellow ,
green = 10,
cyan ,

blue ,
violet = 10
};

//3
//4
//5
//10
//11
//12
//10
16

GV: ThS. Trần Nguyễn Anh Chi

8


Chương 5: Kiểu dữ liệu có cấu trúc

Kỹ thuật lập trình cơ bản

Lưu ý (tt)
 Vì các giá trị trong enum tương đương kiểu int, nên có
thể gán giá trị int = một giá trị trong enum.
int mausac = green; // mausac = 10

 Nhưng không thể gán một giá trị trong enum = giá trị
int.
mycolor = 5;


//sai

17

Ví dụ

18

GV: ThS. Trần Nguyễn Anh Chi

9



×