NGÔN NGỮ LẬP TRÌNH C - Mảng và chuỗi ký tự - Pdf 17

Mảng và chuỗi ký tự
NGÔN NGỮ LẬP TRÌNH C
Trường Cao Đẳng Công Nghiệp Tuy Hoà
Khoa Công nghệ Thông tin
o0o
Mảng và chuỗi
Lập trình C
3
Wednesday, July 9, 2014
Giới thiệu

Tất cả các biến ta khai báo và sử dụng
cho đến trước bài này đều là biến đơn

Vậy làm cách nào để lưu N số, hay lưu
1 bảng gồm MxN số?

Làm cách nào xử lý hàng loạt các số
này?

Làm thế nào để lưu 1 dãy các ký tự?
Mảng và chuỗi
Lập trình C
4
Wednesday, July 9, 2014
Mảng

Một mảng:

Là 1 cấu trúc dữ liệu.


Ghi chú:

d phải là 1 hằng số nguyên dương

valuelist có thể có hoặc không
Mảng và chuỗi
Lập trình C
7
Wednesday, July 9, 2014
1D – Ví dụ khai báo
1.int a[50];
2.float x[20], y[100], z;
3.#define N 100
int arr[N];
4.const int MAX=50;
float D[MAX];
5.int A[5] = {2,4,6,8,10};
6.int B[10] = {1,2,3,4,5};
7.int C[] = {3,5,7,9};
Mảng và chuỗi
Lập trình C
8
Wednesday, July 9, 2014
1D – Truy nhập từng phần tử

Truy nhập từng phần tử của mảng
arrname[index]

A[0] = 8 A[2] = 3


Xuất mảng:
for(i=0; i<N; i++)
printf(“%5d”,a[i]);
printf(“\n”);

Tổng các phần tử trong mảng:
tong = 0;
for(i=0; i<N; i++)
tong += a[i];
printf(“Tong = %d\n”, tong);
Mảng và chuỗi
Lập trình C
11
Wednesday, July 9, 2014
1D – Một số bài toán trên mảng

Tìm max, min của cả mảng

Tìm kiếm 1 giá trị trong mảng

Tìm tuyến tính

Tìm nhị phân

Sắp xếp mảng

Thêm, xóa phần tử

Kiểm tra tính chất của mảng


max = a[0];
pos = 0;
for(i=1; i<N; i++)
if (max < a[i]) {
max = a[i];
pos = i;
}
printf(“Max at %d = %d”,pos,max);
Mảng và chuỗi
Lập trình C
14
Wednesday, July 9, 2014
1D – Tìm tuyến tính

Lưu đồ:
pos=-1;
i=0;
i<N
Output “Fail”
a[i]==X
i=i+1
End
F
T
T
F
Output pos
pos=i;
Mảng và chuỗi
Lập trình C

Mảng và chuỗi
Lập trình C
17
Wednesday, July 9, 2014
1D – Sắp mảng tăng dần

Lưu đồ:
i=0;
i<N-1
Output a
End
F
Finding
min (i N-1)
Exchange
min & a[i]
i=i+1;
T
Mảng và chuỗi
Lập trình C
18
Wednesday, July 9, 2014
1D – SourceCode
for(i=0; i<N-1; i++) {
min=a[i]; pos=i;
for(j=i+1; j<N; j++)
if (min>a[j]) {
min=a[j]; pos=j;
}
t=a[i]; a[i]=a[pos]; a[pos]=t;

F
i=i+1;
T
a[i]>a[i+1]
T
Output “No”
F
Mảng và chuỗi
Lập trình C
22
Wednesday, July 9, 2014
1D – Kiểm tra mảng tăng
flag = 1;
for(i=0; i<N-1; i++)
if (a[i]>a[i+1]){
flag = 0;
break;
}
if (flag) printf(“Incremental!”);
else printf(“Non-incremental!”);
Mảng và chuỗi
Lập trình C
23
Wednesday, July 9, 2014
Mảng 2 chiều

Còn được gọi là ma trận

Là 1 bảng bao gồm M dòng và N cột, do
vậy có tổng cộng MxN ô (phần tử)

int arr[N][N];
4. int A[3][3] = { {1,0,0},
{0,1,0},
{0,0,1} };
Mảng và chuỗi
Lập trình C
26
Wednesday, July 9, 2014
2D – Truy nhập từng phần tử

Truy nhập từng phần tử của ma trận
arrname[row][col]

A[0][0] A[0][1] A[0][2] …

A[1][0] A[1][1] A[1][2] …



Mỗi phần tử được xem như 1 biến đơn,
cùng kiểu với kiểu của mảng


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status