You are on page 1of 59

om

.c
Chương 2

ng
co
CÁC LỆNH VÀO RA
an
VÀ CÁC LỆNH ĐIỀU KHIỂN th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 1
Nội dung

om
1. Các lệnh vào ra

.c
ng
2. Các lệnh điều khiển

co
2.1. Lệnh điều kiện,

an
th
2.2. Lệnh điều kiện rẽ nhánh,
ng
2.3. Lệnh lặp với số lần xác định,
o
du

2.4. Lệnh lặp với số lần không xác định,


u
cu

2.5. Lệnh ngắt,


2.6. Lệnh tiếp tục
CuuDuongThanCong.com https://fb.com/tailieudientucntt 2
Lệnh vào/ra

om
Thư viện hàm: iostream.h

.c
Hàm nhập giá trị từ bàn phím: cin>>tên biến;

ng
Ví dụ: int a;

co
an
cin>>a;//Lưu giá trị nhập từ phím vào biến a

th
Hàm xuất giá trị ra màn hình: cout<<tên biến hoặc
o ng
chuỗi ký tự;
du

Ví dụ: int a = 5;
u
cu

cout<<“Giá trị của a = “<<a;


Các biến và chuỗi cách nhau bởi dấu <<
(chuỗi nằm trong cặp dấu nháy kép “” )
CuuDuongThanCong.com https://fb.com/tailieudientucntt 3
Lệnh vào/ra

om
Thư viện hàm: cout<<setw(n)<<tên biến;

.c
ng
Chừa một khoảng n ký tự để xuất giá trị

co
Ví dụ:

an
int a=7, b=9; th
o ng
cout<<a<<setw(5)<<b;//dùng 5 vị trí để xuất giá trị
du
u
cu

b.
Kết quả: 7 9

CuuDuongThanCong.com https://fb.com/tailieudientucntt 4
Lệnh vào/ra

om
cout<<setprecision(n);

.c
Xuất số gồm n-1 chữ số thập phân

ng
co
đã làm tròn.
Kết quả:

an
Ví dụ:
th 7.56745
ng
float a=7.56745, b=5.339;
o
7.57
du

cout<<a<<endl;
5.3
u
cu

cout<<setprecision(3)<<a<<endl;
5.339
cout<<setprecision(2)<<b<<endl;
cout<<setprecision(5)<<b;
CuuDuongThanCong.com https://fb.com/tailieudientucntt 5
Lệnh vào/ra

om
Xuất ký tự đặc biệt

.c
ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 6
Lệnh vào/ra

om
Xuất ký tự đặc biệt

.c
ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 7
Lệnh điều kiện

om
 Dạng 1:

.c
– Cú pháp:

ng
co
if(expression)

an
statement;
th
ng
● Ý nghĩa:
o
du

Expression được định trị. Nếu


u
cu

kết quả là true thì statement được thực thi,


ngược lại, không làm gì cả.

CuuDuongThanCong.com https://fb.com/tailieudientucntt 8
Lệnh điều kiện

om
Ví dụ: Viết chương trình nhập vào một số nguyên a. In ra màn

.c
hình kết quả a có phải là số dương không.

ng
co
#include <iostream.h>

an
#include <conio.h>

th
int main() ng
{
o
int a;
du

cout << "Input a = "; cin>>a;


u
cu

if(a>=0)
cout << a << " is a positive.”;
getch();
return 0;
}
CuuDuongThanCong.com https://fb.com/tailieudientucntt 9
Lệnh điều kiện
Lưu đồ cú pháp

om
 Dạng 2:

.c
– Cú pháp:

ng
if (expression)

co
an
statement1;

th
else ng
statement2;
o
du

● Ý nghĩa:
u
cu

− Nếu Expression được định là true thì


statement1 được thực thi.
− Ngược lại, thì statement2 được thực thi.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
10
Lệnh điều kiện

om
Ví dụ: Viết chương trình nhập vào một số nguyên a. In ra màn
hình kết quả kiểm tra a là số âm hay dương.

.c
#include <iostream.h>

ng
#include <conio.h>

co
int main()

an
{
int a;
th
ng
cout << "Input a = "; cin >> a;
o
du

if(a>=0)
u

cout << a << " is a positive.”;


cu

else
cout << a << " is a negative.”;
getch(); return 0;
}
CuuDuongThanCong.com https://fb.com/tailieudientucntt 11
Lệnh điều kiện

om
Lưu ý:

.c
 Ta có thể sử dụng các câu lệnh if…else lồng

ng
co
nhau. Khi dùng if…else lồng nhau thì else sẽ

an
th
kết hợp với if gần nhất chưa có else.
o ng
 Nếu câu lệnh if “bên trong” không có else thì
du
u

phải đặt trong cặp dấu {}


cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 12
Cấu trúc switch

om
 Cấu trúc switch là một cấu trúc lựa chọn có nhiều

.c
nhánh, được sử dụng khi có nhiều lựa chọn.

ng
 Cú pháp:

co
an
switch(expression)

th
{
ng
case value_1: statement_1; [break;]
o
du


u
cu

case value_n: statement_n; [break;]


[default : statement;]
}
CuuDuongThanCong.com https://fb.com/tailieudientucntt 13
Cấu trúc switch

om
.c
ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 14
Cấu trúc switch

om
 Giải thích:

.c
− Expression sẽ được định trị.

ng
co
− Nếu giá trị của expression bằng value_1 thì

an
thực hiện statement_1 và thoát.
th
− Nếu giá trị của expression khác value_1 thì so
o ng
sánh với value_2, nếu bằng value_2 thì thực
du

hiện statement_2 và thoát…., so sánh tới


u
cu

value_n.
− Nếu tất cả các phép so sánh đều sai thì thực
hiện statement của default.
CuuDuongThanCong.com https://fb.com/tailieudientucntt 15
Cấu trúc switch

om
 Lưu ý:

.c
−Expression trong switch() phải có kết quả là

ng
co
giá trị kiểu số nguyên (int, char, long).

an
−Các giá trị sau case phải là hằng nguyên.
th
ng
−Không bắt buộc phải có default.
o
du

−Khi thực hiện lệnh tương ứng của case có


u

giá trị bằng expression, chương trình thực


cu

hiện lệnh break để thoát khỏi cấu trúc switch.

CuuDuongThanCong.com https://fb.com/tailieudientucntt 16
Cấu trúc switch

om
Ví dụ: Nhập vào một số nguyên, chia số nguyên này cho 2 lấy phần dư.
Kiểm tra nếu phần dư bằng 0 thì in ra thông báo “là số chẵn”, nếu số dư

.c
bằng 1 thì in thông báo “là số lẽ”.

ng
#include <iostream.h>

co
#include <conio.h>

an
void main () {

th
int n, remainder; ng
cout<<”Input an number: "; cin>>n; remainder = (n % 2);
o
du

switch(remainder)
{
u
cu

case 0: cout << n << ” is an even."; break;


case 1: cout << n << ” is an odd."; break;
}
getch(); }
CuuDuongThanCong.com https://fb.com/tailieudientucntt 17
Cấu trúc for

om
 Cú pháp:

.c
for (Exp1; Exp2; Exp3)

ng
statement;

co
 Ý nghĩa:

an
th
− Exp1: là biểu thức khởi tạo
ng
được thực hiện.
o
du

− Exp2: là biểu thức điều kiện


u
cu

− Exp3: biểu thức điều khiển


lặp

CuuDuongThanCong.com https://fb.com/tailieudientucntt 18
Cấu trúc for

om
Ví dụ: Viết chương trình tính tổng các số nguyên từ 1 đến n.

.c
#include <iostream.h>

ng
#include <conio.h>

co
void main()

an
{

th
int i, n, sum; ng
cout<<”Input a number:”; cin >> n;
o
du

sum = 0;
u

for (i=1 ; i<=n ; i++)


cu

sum += i;
cout<<”Sum from 1 to “ << n << ” is: ” << sum;
getch();
} CuuDuongThanCong.com https://fb.com/tailieudientucntt 19
Cấu trúc for

om
 C/C++ cho phép Exp1 là một định nghĩa biến

.c
Ví dụ: for(int i=1; i<=n; ++i)

ng
co
 Bất kỳ biểu thức nào trong 3 biểu thức của

an
vòng lặp for đều có thể rỗng
th
Ví dụ: for(; i != 0;) statement;
o ng
du

 Xóa tất cả các biểu thức trong vòng lặp for sẽ


cho một vòng lặp vô tận.
u
cu

Ví dụ:
for (;;) statement;
CuuDuongThanCong.com https://fb.com/tailieudientucntt 20
Cấu trúc while

om
 Cú pháp:

.c
while(expression)

ng
statement;

co
 Ý nghĩa:

an
th
● B1: Expression được định trị ng
● B2: Nếu kết quả là true thì
o
du

statement thực thi và quay lại


u

B1
cu

● B3: Nếu kết quả là false thì


thoát khỏi vòng lặp while.

CuuDuongThanCong.com https://fb.com/tailieudientucntt 21
Cấu trúc while

om
Ví dụ: Viết chương trình tính tổng các số nguyên từ 1 tới n.

.c
#include<iostream.h>

ng
#include<conio.h>

co
void main ()

an
{
int i, n, sum;
th
ng
cout<<”Input n= ”; cin >> n;
o
du

i = 1; sum = 0;
u
cu

while(i<=n) {
sum += i; i++; }
getch();
} CuuDuongThanCong.com 22
https://fb.com/tailieudientucntt
Cấu trúc do … while

om
 Cú pháp:

.c
do {

ng
statement;

co
}while(expression);

an
● Ý nghĩa:
th
ng
− Statement được thực hiện
o
du

− Expression được định trị.


u

− Nếu expression là true thì


cu

quay lại bước 1


− Nếu expression là false thì
thoát khỏi vòng lặp.
CuuDuongThanCong.com https://fb.com/tailieudientucntt 23
Cấu trúc do … while
#include <iostream.h>

om
Ví dụ 1: Viết chương #include <conio.h>

.c
trình in dãy số nguyên void main ()

ng
từ 1 đến 10. {

co
int i=1;

an
clrscr();

th cout<<"Display one to ten: ";


o ng
do
du

{
u

cout << setw(3) << i;


cu

i+=1;
} while(i<=10);
getch();
CuuDuongThanCong.com
} https://fb.com/tailieudientucntt 24
Vòng lặp while và do …. While

om
while(điều kiện ) do

.c
{ {

ng
//thân vòng lặp //thân vòng lặp

co
} }while(điều kiện);
- Nếu điều kiện đúng thì

an
- Thân vòng ít nhất
thân vòng lặp đc thực
th
được thực thi 1 lần
hiện, nếu đk sai thì kết
ng
- Hàm do while sẽ thực
thúc vòng lặp
o
thi xong rồi mới kiểm
du

- Trong hàm while thì thân


vòng lặp có thể KHÔNG tra điều kiện
u
cu

ĐƯỢC thực thi lần nào


cả
Thông thường ta sử dụng while, do … while để thiết lập vòng lặp vĩnh cửu
để thực các dòng lệnh liên tục nào đó.
Ta sẽ kết hợp với từ khóa break để thoát khỏi vòng lặp vĩnh cửu.
CuuDuongThanCong.com https://fb.com/tailieudientucntt 25
Lệnh break

om
 Lệnh break dùng để thoát khỏi một cấu trúc điều

.c
khiển mà không chờ đến biểu thức điều kiện

ng
co
được định trị.

an
 Khi break được thực hiện bên trong 1 cấu trúc
th
lặp, điều khiển (control flow) tự động nhảy đến
o ng
lệnh đầu tiên ngay sau cấu trúc lặp đó.
du

 Không sử dụng lệnh break bên ngoài các cấu


u
cu

trúc lặp như while, do...while, for hay cấu trúc


switch.
CuuDuongThanCong.com https://fb.com/tailieudientucntt 26
Lệnh break

om
Ví dụ: Đọc vào một mật khẩu người dùng tối đa

.c
attempts lần

ng
for (i=0; i<attempts ; ++i)

co
{

an
th
cout<<“Input a password:”; ng
cin >> passWord;
o
du

if (check(passWord)) //kiểm tra mật khẩu


u
cu

break; // thoát khỏi vòng lặp


cout <<“Password is wrong!\n”;
} CuuDuongThanCong.com https://fb.com/tailieudientucntt 27
Lệnh continue

om
.c
 Lệnh continue dùng để kết thúc vòng lặp hiện tại

ng
và bắt đầu vòng lặp tiếp theo.

co
an
 Lệnh continue chỉ được dùng trong thân các cấu
th
ng
trúc lặp như for, while, do...while.
o
du

 Câu lệnh continue thường đi kèm với câu lệnh if.


u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 28
Lệnh continue

om
Ví dụ: Một vòng lặp thực hiện đọc một số, bỏ qua

.c
những số âm, và dừng khi số nhập vào là số 0.

ng
do

co
an
{

th
cin >> num;
ng
if (num < 0)
o
du

continue; // process num here


u
cu

} while(num != 0);

CuuDuongThanCong.com https://fb.com/tailieudientucntt 29
Mảng (array)

om
 Mảng là một tập hợp các giá trị có cùng kiểu dữ

.c
liệu nằm liên tiếp nhau trong bộ nhớ và được

ng
tham chiếu bởi một tên chung chính là tên mảng.

co
 Mỗi phần tử của mảng được tham chiếu thông

an
qua chỉ mục (index).
th
o ng
du

Giá trị
1 0 5 3 6 4 7 9 2 4
u
cu

0 1 2 3 4 5 6 7 8 9
Vị trí
Vị trí được tính từ 0
CuuDuongThanCong.com https://fb.com/tailieudientucntt 30
Mảng (array)

om
 Nếu mảng có n phần tử thì phần tử đầu tiên có

.c
chỉ mục là 0 và phần tử cuối có chỉ mục là n-1.

ng
 Để tham chiếu đến một phần tử ta dùng tên

co
mảng và chỉ mục của phần tử được đặt trong

an
cặp dấu [].
th
ng
Ví dụ: a[0]
o
du

 Số lượng phần tử có trong mảng được gọi là


u

kích thước của mảng, luôn cố định, phải được


cu

xác định trước và không đổi trong suốt quá trình


thực hiện chương trình.
CuuDuongThanCong.com https://fb.com/tailieudientucntt 31
Mảng (array)

om
Mảng là 1 đối tượng dùng để lưu trữ các phần tử có cùng

.c
một kiểu dữ liệu

ng
Chỉ số mảng bắt đầu được tính từ 0

co
an
i=0 i=1 i=2 i=3 i=4 i=5

th
ng
Mảng M có 6 phần tử
o
du

9 0 8 7 10 50 N=6
u
cu

Là phần tử
M[i] tại vị trí thứ i
M[0] M[4]

Đối với duyệt mảng, người ta thường dùng vòng for, ít khi dùng
vòng while, do.. while
CuuDuongThanCong.com https://fb.com/tailieudientucntt 32
Mảng một chiều

om
Khai báo một mảng một chiều

.c
 Cú pháp:

ng
co
type arrayName[elements];

an
−type: kiểu dữ liệu của mỗi phần tử mảng.
−arrayName: tên mảng
th
ng
−elements: số phần tử có trong mảng
o
du

Ví dụ: int a[5]


u
cu

a 3 5 2 7 9
a[0] a[1] a[2] a[3] a[4]
CuuDuongThanCong.com https://fb.com/tailieudientucntt 33
Mảng một chiều

om
Ví dụ:

.c
ng
int a[100]; //Khai báo mảng số nguyên a gồm 100

co
phần tử

an
th
float b[50]; //Khai báo mảng số thực b gồm 50
o ng
du

phần tử
u
cu

char str[30]; //Khai báo mảng ký tự str gồm 30 ký


tự

CuuDuongThanCong.com https://fb.com/tailieudientucntt 34
Mảng một chiều

om
 Mảng phải được khai báo tường minh

.c
 Kích thước (tính bằng byte) của mảng được tính

ng
theo công thức:

co
an
Total_size = sizeof(type) * elements

th
Ví dụ:
ng
int num[100];
o
du

Mảng num có kích thước là:


u
cu

2bytes * 100 = 200bytes (giả sử int chiếm 2


bytes)

CuuDuongThanCong.com https://fb.com/tailieudientucntt 35
Mảng một chiều

om
 Mỗi phần tử mảng là một biến thông thường.

.c
Ví dụ:

ng
co
int num[3];

an
num[0] = 2; //gán 2 cho phần tử num[0]
th
num[1] = num[0] + 3 //num[1] có giá trị 5
o ng
num[2] = num[0] + num[1]; //num[2] có giá trị 7
du

cout << num[1]; //In ra giá trị 5


u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 36
Mảng một chiều

om
Khai báo và khởi tạo mảng một chiều

.c
 Cú pháp:

ng
co
type arrayName[]= {value1, value2, ..., valuen};

an
 Lưu ý:
th
ng
− Không khai báo kích thước mảng.
o
du

− Số lượng phần tử trong mảng là số các giá trị


u

được cung cấp trong cặp dấu ngoặc {}, được


cu

phân cách nhau bởi dấu phẩy.

CuuDuongThanCong.com https://fb.com/tailieudientucntt 37
Mảng một chiều

om
.c
Ví dụ:

ng
int soChan[] = {2,4,6,8,10};

co
an
Mảng soChan có 5 phần tử lần lượt là:
th
ng
soChan[0] có giá trị là 2
o
du

soChan[1] có giá trị là 4


u
cu

...
soChan[4] có giá trị là 10
CuuDuongThanCong.com https://fb.com/tailieudientucntt 38
Mảng một chiều

om
Khai báo và gán giá trị ban đầu cho mảng một chiều:

.c
Gán từng phần tử

ng
int a[5] = {3, 6, 8, 1, 12};

co
an
Giá trị 3 6 8 1 12

th
Vị trí 0 ng 1 2 3 4

Gán số lượng phần tử khởi tạo ít hơn số phần tử của mảng:


o
du

int a[8] = {3,5,2}


u
cu

Giá trị 3 5 2 0 0 0 0 0
Vị trí 0 1 2 3 4 5 6 7

CuuDuongThanCong.com https://fb.com/tailieudientucntt 39
Mảng một chiều

om
Truy xuất giá trị

.c
Tên mảng [ vị trí cần truy xuất ]

ng
co
void main()

an
{
th
ng
int a[5] = {3, 6, 8, 11, 12};
o
du

cout<<“Giá trị mảng tại vị trí 3 = “<<a[3];


u
cu

}
Kết quả: Giá trị mảng tại vị trí 3 = 11

CuuDuongThanCong.com https://fb.com/tailieudientucntt 40
Mảng một chiều

om
Các thao tác trên mảng:

.c
 Nhập dữ liệu

ng
co
 Xuất dữ liệu

an
 Tìm kiếm
th
ng
 Đếm
o
du

 Sắp xếp
u
cu

 Kiểm tra mảng thỏa điều kiện cho trước


 Tách/ ghép mảng
 Chèn / xóa
CuuDuongThanCong.com https://fb.com/tailieudientucntt 41
Mảng một chiều

om
Nhập dữ liệu

.c
Có 2 cách nhập dữ liệu cho từng phần tử trong

ng
co
mảng:

an
th
- Cách 1: nhập bằng tay từ bàn phím
ng
o
- Cách 2: cho máy tự động nhập
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 42
Mảng một chiều

om
Ví dụ: Tạo một mảng nguyên a có N phần tử. Mỗi phần

.c
tử có giá trị là chỉ mục của nó. In mảng ra màn hình.

ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 43
Mảng một chiều

om
.c
ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 44
Mảng một chiều

om
Nhập mảng tự động bằng máy:

.c
Để khởi tạo xuất ra các số ngẫu nhiên, ta phải viết hàm

ng
này trước:

co
srand(time(NULL));

an
th
Hàm trên có ý nghĩa là yêu cầu máy tính khởi động để
ng
tạo các số ngẫu nhiên : Tức là mỗi lần chạy chương
o
du

trình thì nó sẽ tự động phát sinh ra các con số có giá trị


u

khác nhau.
cu

**** nếu như không có dòng này thì mỗi lần chạy
chương trình sẽ cho ra có số ngẫu nhiên GIỐNG NHAU.
CuuDuongThanCong.com https://fb.com/tailieudientucntt 45
Mảng một chiều

om
Để lấy giá trị ngẫu nhiên , ta dùng công thức bên dưới:

.c
ng
co
rand()%n: Tức lấy lấy các giá trị ngẫu nhiên từ 0 cho tới n-1

an
Như vậy nếu ta gọi rand()%100: tức là lấy giá trị
th
ng
ngẫu nhiên từ 0 đến 99
o

Đề bài : Hãy xuất các số ngẫu nhiên từ -55 cho tới 150
du

(-77 88) Rand()%n -77=88  n=166


u
cu

(3095)  rand()%n +30=95  n=66


(-55150)  Rand()%n -55 =150  n=206
(-50 -100) ?
CuuDuongThanCong.com https://fb.com/tailieudientucntt 46
Mảng một chiều

om
.c
ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 47
Mảng một chiều

om
Ví dụ: Chương trình nhập vào mảng một chiều số nguyên a,

.c
kích thước n. In ra các phần tử có giá trị lớn hơn x có trong
mảng

ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 48
Mảng một chiều

om
.c
ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 49
Mảng một chiều
 Sắp xếp:

om
.c
void SapTang(int a[], int n)

ng
{

co
for (int i = 0; i < n-1; i ++)

an
for(int j = i+1; j < n; j ++)

th
if (a[i] > a[j])
ng
HoanVi(a[i], a[j]);
o
du

}
void HoanVi(int &a, int &b)
u
cu

{
int tam = a;
a = b;
b = tam;
} CuuDuongThanCong.com https://fb.com/tailieudientucntt 50
Mảng nhiều chiều

om
 C/C++ hỗ trợ mảng nhiều chiều. Dạng đơn giản

.c
nhất của mảng nhiều chiều là mảng hai chiều.

ng
co
 Mảng hai chiều thực chất là mảng của những

an
mảng một chiều. Ta có thể xem mảng hai chiều là
th
một ma trận gồm các hàng và các cột
o ng
 Khai báo mảng hai chiều:
du

type arrayName[rows][columns];
u
cu

− rows: số hàng
− columns: số cột

CuuDuongThanCong.com https://fb.com/tailieudientucntt 51
Mảng nhiều chiều

om
Ví dụ: Khai báo mảng số nguyên 3 hàng 4 cột

.c
int a[3][4]

ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 52
Mảng nhiều chiều

om
Ví dụ: int M[5][3];

.c
 Khai báo 1 mảng 2 chiều tên là M, có 5 dòng, 3 cột.

ng
 Tổng số phần tử trong mảng = 5*3 =15 phần tử

co
an
Ví dụ: float K[3][4];

th
 Khai báo 1 mảng 2 chiều tên là K có kiểu số thực,
o ng
số dòng là 3, số cột là 4 tổng số phần tử là
du

4*3=12;
u
cu

 Tương tự như mảng 1 chiều, chỉ số của các phần tử


được đánh dấu từ số 0 cho tới số dòng -1 hoặc số
cột -1
CuuDuongThanCong.com https://fb.com/tailieudientucntt 53
Mảng nhiều chiều
Mảng 2 chiều M có 4 dòng và 5 cột

om
Chiều duyệt theo cột, thường đặt tên là j

.c
Chiều duyệt theo dòng, thường đặt tên là i

j =1

j =2

j =3
ng
j =0

j =4
co
an
M[0][0] M[0][1] M[0][2] M[0][3] M[0][4] Tức là để truy
i =0
th
9 2 0 12 3
suất 1 phần tử tại
dòng thứ ivà tại
ng
M[1][0] M[1][1] M[1][2] M[1][3] M[1][4]
i =1 2 8 15 7 5 cột thứ j thì ta viết:
o
du

M[i][j]
M[2][0] M[2][1] M[2][2] M[2][3] M[2][4] - Ví dụ, muốn lấy
i =2
u

10 8 19 13 18
phần tử tại dòng
cu

M[3][0] M[3][1] M[3][2] M[3][3] M[3][4] 2, cột 3 thì ta viết


i =3 17 86 78 46 0 M[2][3]

Thông thường, người ta sử dụng 2 vòng for lồng nhau để duyệt


mảng 2 chiều. Vòng for ngoài duyệt theo dòng, vòng for trong
duyệt theo cột
CuuDuongThanCong.com https://fb.com/tailieudientucntt 54
Mảng nhiều chiều

om
int M[dòng][cột];

.c
Ví dụ:

ng
co
int M[3][2];

an
 Dòng =3, cột =2  tổng số phần tử = 2*3 =6 phần
tử th
o ng
 Để duyệt mảng, ta kết hợp 2 vòng for lồng nhau,
du

vòng for ngoài chạy theo chỉ số dòng (giả sử đặt là


u
cu

i), vòng for trong chạy theo chỉ số cột (giả sử đặt
là j).
55
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mảng nhiều chiều

om
.c
ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 56
Mảng nhiều chiều

om
.c
ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt 57
Mảng nhiều chiều

om
.c
ng
co
an
th
o ng
du
u
cu

58
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mảng nhiều chiều

om
.c
ng
co
an
th
o ng
du
u
cu

59
CuuDuongThanCong.com https://fb.com/tailieudientucntt

You might also like