Jump to content

Welcome to [ iT ] Forums
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!
Cộng đồng Âm nhạc Việt Nam

Hình ảnh

Tìm hiểu hàm đệ quy và mảng array trong C


  • Please log in to reply
No replies to this topic

#1
FrankLee

FrankLee

    Thành viên mới

  • Newbies
  • 14 Bài Viết:

GIỚI THIỆU KIỂU DỮ LIỆU “KIỂU MẢNG” TRONG C

 

Mảng là một xếp hàng các phần tử nhất thiết có cùng một kiểu , làm gọi là kiểu phần tử. Kiểu phần tử có xác xuất là có các kiểu bất kỳ: ký tự , số , chuỗi ký tự…; cũng có khi ta sử dụng kiểu mảng để làm mẫu phần tử cho một mảng ( trong trường hợp này ta làm gọi là mảng của mảng hay mảng nhiều chiều ).

Ta có xác xuất chia mảng làm 2 loại: mảng 1 chiều và mảng nhiều chiều.

Mảng là kiểu dữ liệu được sử dụng rất thường xuyên. Chả hạn người ta cần quản lý một danh sách họ và tên của khoảng 100 sinh viên trong một lớp. Nhận thấy rằng mỗi họ và tên để lưu trữ ta cần 1 biến kiểu chuỗi , như vậy 100 họ và tên thì cần khai báo 100 biến kiểu chuỗi. Ví như khai báo như thế này thì đoạn khai báo cũng như các thao tác trên các họ tên sẽ rất dài dòng và rắc rối. Vì thế , kiểu dữ liệu mảng giúp ích xã hội ta trong trường hợp này; chỉ cần khai báo 1 biến , biến này có xác xuất coi như là tương đương với 100 biến chuỗi ký tự; đó là 1 mảng mà các phần tử của nó là chuỗi ký tự. Hay như để lưu trữ các từ khóa của ngôn ngữ máy C , ta cũng dùng đến một mảng để lưu trữ chúng.

MẢNG 1 CHIỀU Nếu xét dưới giác độ toán học , mảng 1 chiều giống như một vector. Mỗi phần tử của mảng một chiều đáng được coi trọng không phải là một mảng khác. Khai báo Khai báo mảng với số phần tử rõ ràng ( khai bích báo minh )

Cú pháp: < kiểu=""> <[số phần="" tử]=""> ên>

Ý nghĩa:

- Tên mảng: đây là một cái tên đặt đúng theo quy tắc tam suất đặt tên của danh biểu. Tên này cũng mang tác phong là tên biến mảng.

- Số phần tử: là một đối lập với biến số nguyên , cho biết số lượng phần tử tối đa trong mảng là bao lăm ( hay nói khác đi kích cỡ của mảng là gì ).

- Kiểu: mỗi phần tử của mảng có dữ liệu thuộc kiểu gì.

- Ở đây , ta khai báo một biến mảng gồm có số phần phu phần tử , phần tử thứ nhất là tên mảng [ 0 ] , phần tử cuối cùng là tên mảng [ số phần tử -1 ]

Hình ảnh mảng a trong bộ nhớ Khai báo mảng với số phần tử không xác định ( khai báo không tường minh )

Cú pháp: <[]> ên>ểu>

Khi khai báo , không cho biết rõ số phần tử của mảng , kiểu khai báo này thường được ứng dụng trong các trường hợp: vừa khai báo vừa gán giá trị , khai báo mảng là thông số hình thức của hàm.

a. Vừa khai báo vừa gán giá trị

Cú pháp:

[]= Các giá trị cách nhau bởi dấu phẩy ên>ểu>

Nếu vừa khai báo vừa gán giá trị thì thản nhiên C sẽ hiểu số phần tử của mảng là số giá trị mà chúng ta gán cho mảng trong cặp dấu . Chúng ta có xác xuất sử dụng hàm sizeof( ) để lấy số phần tử của mảng như sau:

Số phần tử= sizeof( tên mảng )/ sizeof( kiểu )

b.Khai báo mảng là thông số hình thức của hàm , trong trường hợp này ta không để ý chỉ định số phần tử của mảng là bao nhiêu.

Truy xuất từng phần tử của mảng

Mỗi phần tử của mảng được truy xuất phê duyệt Tên biến mảng theo sau là chỉ số nằm trong cặp dấu ngoặc vuông [ ]. Chả hạn a[0] là phần tử đầu tiên của mảng a được khai báo ở trên. Chỉ số của phần tử mảng là một biểu thức mà giá trị là kiểu số nguyên.

Với cách truy xuất theo kiểu này , Tên biến mảng[Chỉ số] có xác xuất coi như là một biến có kiểu dữ liệu là kiểu được chỉ ra trong khai báo biến mảng.

MẢNG NHIỀU CHIỀU

Mảng nhiều chiều là mảng có từ 2 chiều trở lên. Điều đó có tức thị mỗi phần tử của mảng là một mảng khác.

Người ta thường sử dụng mảng nhiều chiều để lưu các ma trận , các tọa độ 2 chiều , 3 chiều…

Phần dưới đây là các vấn đề liên tưởng đến mảng 2 chiều; các mảng 3 , 4 , … chiều thì na ná ( chỉ cần tổng quát hóa lên ).

Khai báo Khai báo mảng 2 chiều tường minh

Cú pháp:

<[số phần="" tử="" chiều="" 1]=""><[số phần="" tử="" chiều="" 2]=""> ên>ểu>

Khai báo mảng 2 chiều không tường minh

Để khai báo mảng 2 chiều không tường minh , ta vẫn phải chỉ ra số phần tử của chiều thứ hai ( chiều cuối cùng ).

Cú pháp: <[]><[số phần="" tử="" chiều="" 2]=""> ên>ểu>

Cách khai báo này cũng được ứng dụng trong trường hợp vừa khai báo , vừa gán trị hay đặt mảng 2 chiều là thông số hình thức của hàm.

Truy xuất từng phần tử của mảng 2 chiều

Ta có xác xuất truy xuất một phần tử của mảng hai chiều bằng cách viết ra tên mảng theo sau là hai chỉ số đặt trong hai cặp dấu ngoặc vuông. Chả hạn ta viết m[2][3].

Với cách truy xuất theo cách này , Tên mảng[Chỉ số 1][Chỉ số 2] có xác xuất coi là 1 biến có kiểu được chỉ ra trong khai báo biến mảng.

Hàm đệ quy là gì ?

  








Perfumista - Thong tin nuoc hoa

Stars Counter Game

Balloon vs. Thorns

MU Phuc Hung

Làm Việc Tài Nhà

Mu Da Nang

Tuyển Nhân Viên Bán Hàng

Tư vấn sức khỏe trực tuyến

Close [X]