Xem mẫu
- KỸ THUẬT LẬP TRÌNH C
BÀI 6: KIỂU DỮ LIỆU MẢNG, LIỆT KÊ VÀ CẤU TRÚC
Hoàng Quốc Tuấn
tuanhq@fpt.edu.vn
http://hoangquoctuanpro.wordpress.com
- Nội dung
Kiểu dữ liệu Mảng (Array)
Kiểu dữ liệu Liệt Kê (Enum)
Kiểu dữ liệu Cấu Trúc (Struct)
2
- I – Kiểu dữ liệu Mảng (Array)
1. Khái niệm
2. Cách khai báo
3. Chỉ số của mảng
4. Lấy địa chỉ của phần tử mảng
5. Nhập, xuất dữ liệu các phần tử mảng
6. Ví dụ minh họa
3
- 1. Khái niệm Mảng
Mảng là một tập hợp nhiều biến có cùng
kiểu dữ liệu và cùng tên.
Mỗi phần tử của mảng được truy xuất thông
qua chỉ số.
4
- 2. Cách khai báo Mảng
Cú pháp:
;
Ví dụ:
int a[10]; // Khai báo mảng a gồm tối đa10 số nguyên
float b[100]; // Khai báo mảng b gồm tối đa 100 số thực
int c[3][2]; // Khai báo mảng c hai chiều kiểu số nguyên
float d[5,7]; // Khai báo mảng d hai chiều kiểu số thực
5
- 3. Chỉ số của Mảng
Kiểu dữ liệu của chỉ số:
Chỉ số của mảng phải là một giá trị kiểu int .
Chỉ số của mảng được bắt đầu từ 0.
Chỉ số của mảng không được vượt quá kích thước
của mảng
Ví dụ:
int a[5]; /* Mảng các số nguyên a sẽ bao gồm 5
phần tử là a[0], a[1], a[2], a[3], a[4] */
6
- 4. Lấy địa chỉ của phần tử mảng
Chỉ lấy được địa chỉ của các phần tử thuộc
mảng một chiều thông qua toán tử & theo cú
pháp:
&tên_biến[i] với i là chỉ số của mảng
Tên của mảng chứa địa chỉ đầu của mảng.
Ví dụ: có mảng int a[10] thì a = &a[0]
7
- 5. Nhập, xuất dữ liệu cho các phần tử Mảng
Nhập xuất trực tiếp
Nhập, xuất trực tiếp chỉ sử dụng được với mảng
có kiểu dữ liệu int
Nhập trực tiếp giá trị vào địa chỉ của phần tử
8
- #include
#include
void main()
{
int a[5];
int i;
clrscr();
for(i=0; i
- 5. Nhập, xuất dữ liệu cho các phần tử Mảng
Nhập xuất gián tiếp
Nhập, xuất gián tiếp sử dụng được cho tất cả
các mảng.
Nhập giá trị vào một biến tạm, rồi sau đó gán
giá trị của biến tạm đó cho phần tử của mảng.
10
- #include
#include
void main()
{
float temp, a[3,4];
int i,j;
clrscr();
for(i=0;i
- 6. Ví dụ minh họa Mảng
Bài 1: Viết chương trình nhập vào một
mảng nguyên gồm có 5 phần tử. Tính tổng
của tất cả các phần tử, và xuất kết quả.
12
- #include
#include
void main()
{
clrscr();
int i, s = 0, a[5];
printf(“Nhap vao mang”);
for(i=0;i
- 6. Ví dụ minh họa Mảng
Bài 2: Viết chương trình nhập vào một
mảng thực gồm có n phần tử (n là hằng
được định nghĩa sẵn bằng 5). xuất ra giá trị
lớn nhất trong mảng.
14
- #include
#include
#define n 5
void main()
{
clrscr();
float max, t, a[n];
int i;
printf(“Nhap vao mang”);
for(i=0;i
- II – Kiểu Liệt kê (Enum)
Khái niệm:
Kiểu enum là kiểu liệt kê.
Khi định nghĩa enum là ta có được một kiểu dữ liệu mới.
Một phần tử liệt kê tương ứng là một số nguyên và cách
nhau bởi dấu phẩy.
Ta có thể gán lại giá trị số cho phần tử liệt kê. Giá trị của
một phần tử nếu không ghi rõ thì sẽ bằng giá trị phần tử
trước đó tăng thêm 1.
Cú pháp:
enum {};
16
- II – Kiểu Liệt kê (Enum)
VD:
enum weekday
{
SUNDAY, MONDAY, TUESDAY = 4, WEDSDAY,
THURSDAY, FRIDAY = 9, SATURDAY
};
Khi đó: SUNDAY = 0 , MONDAY = 1, TUESDAY = 4
WEDSDAY = 5, THURSDAY = 6,
FRIDAY = 9, SATURDAY = 10.
Lệnh:
weekday ngay; // Khai báo biến
ngay = THURSDAY; // gán giá trị 17
- III – Kiểu Cấu trúc (Struct)
Khái niệm và định nghĩa
Khai báo kiểu cấu trúc
Định nghĩa kiểu bằng typedef
Truy cập đến các thành phần của cấu trúc
Bài tập minh họa
18
- 1. Khái niệm kiểu cấu trúc
Kiểu cấu trúc là một kiểu dữ liệu gồm nhiều thành
phần, các thành phần có thể thuộc nhiều kiểu khác
nhau.
Các thành phần của cấu trúc được truy cập thông
qua tên của thành phần.
Khi khai báo một cấu trúc là ta có thêm một kiểu
dữ liệu mới, kiểu này có tên là tên của kiểu cấu
trúc và trước nó có từ struct.
19
- 2. Khai báo kiểu cấu trúc
Cú pháp:
struct
{
;
;
...
;
};
Khi đó, ta có được kiểu dữ liệu struct
20
nguon tai.lieu . vn