Bài 11. Kiểu mảng

Chia sẻ bởi Đặng Anh Tuấn | Ngày 10/05/2019 | 65

Chia sẻ tài liệu: Bài 11. Kiểu mảng thuộc Tin học 11

Nội dung tài liệu:

Chương 9: Mảng
Nội dung chính
Định nghĩa mảng
Mảng nhiều chiều
Mảng con trỏ
Xâu ký tự
1. Định nghĩa mảng
Mảng (Array)
Là một tập các vị trí nhớ liên tiếp nhau
Các phần tử trong mảng có cùng tên và cùng kiểu.
Khai báo mảng
type arrayName[ arraySize ];
int c[ 10 ]; // mảng c gồm 10 số nguyên
float d[ 3284 ]; // mảng d gồm 3284 số thực
Có thể khai báo nhiều mảng cùng kiểu
int b[ 100 ], x[ 27 ];
Truy nhập tới phần tử trong mảng
Xác định thông qua tên mảng và chỉ số: arrayname[ position number ]
Phần tử đầu tiên ở vị trí thứ 0
Khởi tạo mảng
Sử dụng vòng lặp for: gán giá trị cho từng phần tử trong mảng.
Sử dụng danh sách khởi tạo:
int n[ 5 ] = { 1, 2, 3, 4, 5 };
Nếu không đủ giá trị khởi tạo thì những phần tử còn lại sẽ nhận giá trị mặc định.
Nếu giá trị khởi tạo nhiều hơn kích thước mảng thì sẽ báo lỗi.
Gán tất cả các phần tử với cùng một giá trị
int n[ 5 ] = { 0 };
Nếu kích thước mảng không được khai báo thì danh sách khởi tạo sẽ xác định:
int n[] = { 1, 2, 3, 4, 5 };
//Mảng n có 5 phần tử
Tham số mảng
Tham số mảng được biểu diễn bởi kiểu dữ liệu và kích thước của mảng
void display(float [n][m]);
Hàm có thể không cần biết kích thước của mảng nhưng phải biết kích thước của một phần tử trong mảng
void myFunction(int n[]);
void display(float [][m]);
Khi gọi hàm, ta chỉ cần truyền tên mảng
int myArray[ 24 ];
myFunction( myArray);
Mảng được truyền theo kiểu truyền tham chiếu
Hàm có thể chỉnh sửa dữ liệu của các phần tử trong mảng
Tên mảng là địa chỉ của phần tử đầu tiên
Mảng đối tượng
Có thể lưu trữ đối tượng trong mảng.
Khi khai báo mảng, cần cung cấp:
Kiểu đối tượng được lưu trữ
Số lượng đối tượng.
Chương trình dịch sẽ tính ra kích thước vùng nhớ cần để cấp phát cho mảng.
Ví dụ: Mảng đối tượng
class CAT
{
public:
CAT()
{ itsAge = 1; itsWeight=5; }
~CAT() {}
int GetAge() const
{ return itsAge; }
int GetWeight() const
{ return itsWeight; }
void SetAge(int age)
{ itsAge = age; }
private:
int itsAge;
int itsWeight;
};
int main()
{
CAT Litter[5];
int i;
for (i = 0; i < 5; i++)
Litter[i].SetAge(2*i +1);
for (i = 0; i < 5; i++)
{
cout << "Cat #" << i+1<< ": ";
cout << Litter[i].GetAge() << endl;
}
return 0;
}
2. Mảng nhiều chiều
Mảng nhiều chiều được coi là mảng của mảng.
Khai báo:
double sales[2][2];
sales[1][0]=2.5;
Khởi tạo:
double sales[2][2]={{1.2,3.0},{-1.0,2.3}};
3. Mảng con trỏ
Ta có thể đặt toàn bộ mảng lên vùng nhớ tự do
CAT *Family = new CAT[500];
Family là một co trỏ trỏ tới phần tử đầu tiên của mảng có 500 phần tử CAT
Family trỏ tới hoặc có địa chỉ của phần tử Family[0].
Sử dụng con trỏ để truy nhập vào từng phần tử trong mảng
CAT *Family = new CAT[500];
CAT *pCat = Family; //pCat trỏ vào Family[0]
pCat->SetAge(10); // gán Family[0] bằng 10
pCat++; // trỏ vào Family[1]
pCat->SetAge(20); // gán Family[1] bằng 20
Phân biệt con trỏ trỏ tới mảng và mảng các con trỏ
Cat FamilyOne[500]
CAT * FamilyTwo[500];
CAT * FamilyThree = new CAT[500];
FamilyOne là một mảng có 500 phần tử CAT
FamilyTwo là một mảng có 500 con trỏ trỏ tới CAT
FamilyThree là một con trỏ trỏ tới một mảng có 500 phần tử CAT.
4. Xâu ký tự
Trong C++, xâu ký tự là một mảng các phần tử kiểu char và kết thúc bằng ký tự null.
Có hai cách khai báo:
char Greeting[] = { `H`, `e`, `l`, `l`, `o`, ` `, `W`,`o`,`r`,`l`,`d`, `` };
char Greeting[] = "Hello World";
Sử dụng cin.get()
#include
int main()
{
char buffer[80];
cout << "Enter the string: ";
cin.get(buffer, 79); // get up to 79 or newline
cout << "Here`s the buffer: " << buffer << endl;
return 0;
}
Lớp string
string là một lớp chuẩn trong C++
Các ký tự trong string được đánh từ 0
Khởi tạo một đối tượng string
string s1 (“Man”);
string s2=“Beast”;
string s3;
Ta có thể sử dụng các tóan tử tóan học, logic … trên đối tượng string
s3 = s1;
s3 = “Neither” + s1 + “nor”;
s3 += s2;
string và toán tử >>
Hàm getline(cin, string str): lưu thông tin từ luồng vào chuẩn đưa vào str.
Ví dụ:
string full_name;
cout<< “Enter your fullname:”;
getline(cin, full_name);
// full_name lưu thông tin mà người sử dụng nhập từ bàn phím
Tìm kiếm
string s1=“Hello world”;
string s2=“world”;
int n=s1.find(s2);
//n=6
find() trả về vị trí lần đầu tiên s2 xuất hiện trong s1.
Nếu không tìm thấy trả về 0
Chỉnh sửa
erase(int i1, int i2): xóa xâu con có chiều dài i2 bắt đầu từ vị trí i1.
s=“Hello world”;
s.erase(1,4);
//s=“H world”
replace(int i1, int i2, string s2): thay thế xâu con s2 từ vị trí i1, số lượng ký tự thay thế là i2.
insert(int i, string s): chèn xâu s vào từ vị trí thứ i.
append(int i, char c): chèn i ký tự c vào cuối xâu
substr(int i1, int i2): trả về xâu con từ i1, có kích thước i2.
size() và length(): trả về kích thước của xâu
Truy nhập đến ký tự trong string
Sử dụng tóan tử []
Hàm at(i): trả về vị trí của ký tự thứ i trong xâu.
Nếu i>length() thì báo lỗi
Ví dụ:
string s=“Hello world”;
char c;
c=s[1];
//c=‘e’
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Đặng Anh Tuấn
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)