i.Để chỉ thành phần thứ i (hay chỉ số i) của một mảng ta viết tên mảng kèm theo chỉ số trong cặp ngoặc vuông []. Ví dụ với các phân số trên a[0], b[0], c[0] để chỉ tử số và a[1], b[1], c[1] để chỉ mẫu số của 3 phân số a,b,c.
ii. Tuy mỗi mảng biểu diễn một đối tượng nhưng chúng ta không thể áp dụng các thao tác lên toàn bộ mảng mà phải thực hiện thao tác thông qua từng thành phần của mảng. Ví dụ chúng ta không thể nhập dữ liệu cho mảng a[10] bằng câu lệnh:
cin >> a ; // sai mà phải nhập cho từng phần tử từ a[0] đến a[9] của a. Dĩ nhiên trong trường hợp này chúng ta phải cần đến lệnh lặp for: int i ;
for (i = 0 ; i < 10 ; i++) cin >> a[i] ;
Tương tự, giả sử chúng ta cần cộng 2 phân số a, b và đặt kết quả vào c. Không thể viết:
c = a + b ; // saiphần tử của c:
c[0] = a[0] * b[1] + a[1] * b[0] ; // tử số c[1] = a[1] * b[1] ; // mẫu số
Để khắc phục nhược điểm này, trong các chương sau C++ cung cấp một kiểu dữ liệu mới gọi là lớp, và cho phép NSD có thể định nghĩa riêng phép cộng cho 2 mảng tuỳ ý, khi đó có thể viết một cách đơn giản và quen thuộc c = a + b để cộng 2 phân số.
d. Ví dụ minh hoạ
Ví dụ 1: Nhập và xuất một mảng các số nguyên có n phần tử (n<100) #include<iostream.h>
#include<conio.h>
{
cout<<"nhap so phan tu cua mang: "; cin>>spt;
for(int i=0; i<spt;i++) {
cout<<"Nhap phan tu thu "<<i<<" = "; cin>>a[i];
} }
void hthi(int a[100], int spt) { for(int i=0;i<spt;i++) cout<<a[i]<<" "; } void main() { int a[100]; int n; nhap(a,n);
cout<<"\nMang ban dau la"<<endl; hthi(a,n); } Ví dụ 2: Nhập một mảng gồm n phần tử. Tìm số lớn nhất và vị trí của no trong mảng trên #include<iostream.h> #include<conio.h>
void nhap(int a[100], int &spt) {
cout<<"nhap so phan tu cua mang: "; cin>>spt;
for(int i=0; i<spt;i++) {
cout<<"Nhap phan tu thu "<<i<<" = "; cin>>a[i];
} }
void hthi(int a[100], int spt) {
for(int i=0;i<spt;i++) cout<<a[i]<<" "; }
//tim phan tu lon nhat trong mang
//ham tra ve giá trị cua phan tu tim duoc //tham so vt luu vị trí cua so lon nhat int max(int a[100], int spt, int *vt) {
int t=0;//lưu tạm vi tri cua phan tu lon nhat int m=a[0];//luu tam thoi gia tri lon nhat for(int i=1; i<spt;i++)
if(m<a[i]) { m=a[i]; t=i; } *vt=t; return m; } void main() { int a[100];
int n; nhap(a,n);
cout<<"\nMang ban dau la"<<endl; hthi(a,n);
int vt;
int ln=max(a,n,&vt);
cout<<"So lon nhat = "<<ln<<" co vi tri "<<vt; }