YOMEDIA
Bài giảng Kỹ thuật lập trình: Chương 2 - Võ Quang Hoàng Khang
Chia sẻ: 5A4F5AFSDG 5A4F5AFSDG
| Ngày:
| Loại File: PDF
| Số trang:41
40
lượt xem
2
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Chương 2 trình bày về kiểu dữ liệu có cấu trúc. Chương này gồm có những nooiij dung cụ thể sau: Khái niệm, khai báo dữ liệu có cấu trúc, cách truy xuất thành phần bên trong cấu trúc. Mời các bạn cùng tham khảo.
AMBIENT/
Chủ đề:
Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 2 - Võ Quang Hoàng Khang
- CHƯƠNG 2.
KIỂU DỮ LIỆU CÓ CẤU TRÚC
VÕ QUANG HOÀNG KHANG
Email: vqhkhang@gmail.com
- NỘI DUNG
#2
Khái niệm
Khai báo
Cách truy xuất thành phần bên trong cấu trúc
Xử lý cấu trúc đơn
Xử lý mảng có cấu trúc
Bài tập
- KHÁI NIỆM
#3
Kiểu dữ liệu có cấu trúc là kiểu dữ liệu do lập trình
viên tự định nghĩa bằng cách gom nhóm các kiểu dữ
liệu cơ bản có sẵn trong C thành một kiểu dữ liệu
phức hợp gồm nhiều thành phần:
Khai báo
struct tên_struct
{
khai báo các thuộc tính;
};
typedef struct tên_struct TênKDL;
- KHÁI NIỆM
#4
Ví dụ khai báo kiểu dữ liệu lưu thông tin của ngày:
struct ttDate
{
char thu[10];
int ngay;
int thang;
int nam;
};
typedef struct ttDate Date;
- TRUY CẬP CÁC THUỘC TÍNH CẤU TRÚC
#5
Biến kiểu cấu trúc
TÊNKDL tên_biến;
tên_biến.tên_thuộc_tính;
Ví dụ
Date x;
x.ngay = 5;
- TRUY CẬP CÁC THUỘC TÍNH CẤU TRÚC
#6
Biến con trỏ kiểu cấu trúc
TÊNKDL *tên_biến_con_trỏ;
tên_biến_con_trỏ -> tên_thuộc_tính;
Ví dụ:
Date *x ;
x = (Date*) malloc(sizeof(Date));
x -> ngay = 5 ;
- KHAI BÁO ĐỆ QUY
#7
struct tên_struct
{
khai báo các thuộc tính;
struct tên_struct *tên_thuộc_tính_đệ_qui;
};
- KHAI BÁO ĐỆ QUY
#8
Ví dụ:
struct ttNode
{
int key;
struct ttNode *pNext;
};
- VÍ DỤ
#9
Viết chương trình nhập vào toạ độ hai điểm trong mặt
phẳng và tính tổng hai toạ độ này
struct ttDiem
{
int x;
int y;
};
typedef struct ttDiem Diem;
- VÍ DỤ
#10
void Nhap (Diem &d)
{
printf(“\nNhap vao toa do diem\n”);
printf(“Hoanh do : “);
scanf(“%d”, &d. x);
printf(“Tung do : ”)
scanf(“%d”, &d.y);
}
- VÍ DỤ
#11
void Xuat (Diem d)
{
printf(“\nToa do diem : (%d, %d)”, d.x, d.y);
}
Diem Tong (Diem d1, Diem d2)
{
Diem temp;
temp.x = d1.x + d2.x ;
temp.y = d1.y + d2.y ;
return temp;
}
- VÍ DỤ
#12
int main ()
{
Diem A , B, AB; //khai bao 3 diem A, B, AB;
Nhap (A);
Xuat (A);
Nhap (B);
Xuat (B);
printf(“\n Tong cua hai diem vua nhap la : ”);
AB = Tong (A, B);
Xuat (AB);
return 0;
}
- BÀI TẬP 1
#13
Viết chương trình nhập vào thông tin của một sinh viên
gồm:
Mã số sinh viên
Họ và tên
Điểm giữa kỳ (GK)
Điểm thực hành (TH)
Điểm lý thuyết (LT)
Điểm tổng kết
Tính điểm tổng kết môn theo công thức:
GK*10%+TH*30%+LT*60%
- BÀI TẬP 2
#14
Sử dụng kiểu dữ liệu có cấu trúc để khai báo và viết
chương trình (theo phương pháp thủ tục hàm) gồm các
chức năng sau:
1. Nhập vào 2 phân số
2. Tính tổng và tích hai phân số (kết quả phải là phân
số tối giản)
3. Xuất kết quả ra màn hình
- BÀI TẬP 3
#15
Viết chương trình nhập vào 2 thời gian t1 và t2 (thông
tin thời gian gồm: giờ, phút và giây); tính khoảng cách
giữa t1 và t2 (đơn vị tính bằng giây)
- MẢNG CẤU TRÚC
#16
Cách khai báo tương tự như mảng một chiều (Kiểu
dữ liệu bây giờ là kiểu dữ liệu có cấu trúc).
Cách truy cập phần tử trong mảng cũng như truy cập
trên mảng một chiều. Nhưng do từng phần tử có kiểu
cấu trúc nên phải chỉ định rõ cần lấy thành phần nào,
tức là phải truy cập đến thành phần cuối cùng có
kiểu là dữ liệu cơ bản
- NGUYÊN TẮC LẬP TRÌNH TRÊN MẢNG
CẤU TRÚC
#17
Do kiểu dữ liệu có cấu trúc thường chứa rất nhiều
thành phần nên khi viết chương trình loại này ta cần
lưu ý:
Xây dựng hàm xử ý cho một kiểu cấu trúc.
Muốn xử lý cho mảng cấu trúc, ta gọi lại hàm xử lý
cho một kiểu cấu trúc đã được xây dựng bằng cách
dùng vòng lặp.
17
- VÍ DỤ
#18
Viết hàm nhập vào mảng các phân số
typedef struct ttPhanSo
{
int tu, mau;
}PhanSo;
- VÍ DỤ
#19
void NhapPS(PhanSo &ps)
{
printf("Nhap tu so: ");
scanf("%d ”, , &ps.tu);
printf("\nNhap mau so: “);
scanf(“%d”, &ps.mau);
}
- VÍ DỤ
#20
void NhapMangPS(PHANSO dsps[], int n)
{
for(int i=0; i
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...