Tải bản đầy đủ (.pdf) (27 trang)

hoa cuong có thì sử dụng – thích thì lao vào

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (372.53 KB, 27 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>CƠ SỞ LẬP TRÌNH</b>



Phan Đình Thế Hn


Tháng 5 - 2008


<b>MẢNG</b>



7



<b>Nội dung</b>


1. Khái niệm


2. Mảng một chiều
3. Chuỗi ký tự


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

CSLT - Bài 7 Phan Dinh The Huan 3


<b>1. Khái niệm</b>



1. Mảng (array) là kiểu dữ liệu có cấu trúc, bao
gồm dãy liên tục các phần tử có cùng kiểu
dữ liệu


2. Phân loại:


z Mảng 1 chiều


z Mảng nhiều chiều


<b>Ví dụ</b>



<b>Mảng một chiều</b>



Chỉ
số
dòng


Chỉ số cột


21

1
2
9
8
3
[M-1]








9

4
1
5
2
1


[1]
12

7
3
2
5
3
[0]
[N-1]

[4]
[3]
[2]
[1]
[0]
<b>a</b>
<b>a</b>
<b>chỉ số</b>

10

25
8
1
7
N-1
N-2

n

n-1

3
2
1
0


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

CSLT - Bài 7 Phan Dinh The Huan 5


<b>2.Mảng 1 chiều</b>


1. Khai báo


2. Truy xuất mảng


3. Một số thao tác cơ bản trên mảng một chiều


4. Mảng và hàm


<b>2.1 Khai báo mảng</b>



<b>a.</b> <b>Khai báo:</b>


<b>#define N 20</b>


<b>…</b>


<b>int a[N],n;</b>


<b>a</b>
<b>chỉ số</b>






N-1
N-2


n
n-1

3


2
1
0


<b>kiểu DL</b> <b>số lượng</b>


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

CSLT - Bài 7 Phan Dinh The Huan 7


<b>2.1 Khai báo mảng</b>



<b>b.</b> <b>Khai báo và khởi gán giá trị:</b>
<b>#define N 20</b>


<b>…</b>


<b>int a[N]={7,1,8,25,4,6,10};</b>
<b>int b[]={7,1,8,25,4,6,10};</b>



<b>const</b> <b>int days[]={31,28,31,30,31,30,31,31,30,31,30,31};</b>


Mảng a có 20 phần tử,
với 7 phần tử đầu tiên có
giá trị cho trước.


Mảng b có 7 phần tử đầu
tiên có giá trị cho trước,
kích thước của mảng
bằng số lượng phần tử
cho trước (7 phần tử).


Mảng days là mảng chứa các
giá trị<b>hằng số, có 12 phần tử.</b>


<b>2.2 Truy xuất mảng</b>



1. Truy xuất trực tiếp thông qua chỉ số:


z Cú pháp: <tênmảng>[<chỉ số>]
z VD:


z a[0] = 1; // gán giá trị 1 cho phần tử a[0]


z printf(“%4d”, a[3]); // in phần tử a[3] ra màn hình
z scanf(“%d”, &a[0]); // nhập giá trị cho phần tử a[0]


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

CSLT - Bài 7 Phan Dinh The Huan 9



<b>2.3 Một số thao tác cơ bản trên </b>


<b>mảng 1 chiều</b>



1. Duyệt mảng


2. Nhập mảng


3. Xuất mảng
4. Tìm kiếm
5. Đếm
6. Sắp xếp


7. Chèn thêm 1 phần tử vào mảng
8. Hủy một phần tử ra khỏi mảng


<b>2.3 Một số thao tác cơ bản trên </b>


<b>mảng 1 chiều</b>



<b>1.</b> <b>Duyệt mảng a có n phần tử:</b>


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


//xử lý trên a[i]


<b>a</b>
<b>iỈ</b>




</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

CSLT - Bài 7 Phan Dinh The Huan 11



<b>2.</b> <b>Nhập giá trị cho mảng a có n phần tử:</b>


<b>a</b>
<b>iỈ</b>




n-1
n-2

6
5
4
3
2
1
0


<b>2.3 Một số thao tác cơ bản trên </b>


<b>mảng 1 chiều</b>



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


{ cout<<“a[”<<i<<“= ”;
cin>>a[i];


}


<b>3.</b> <b>Xuất giá trị của mảng a có n phần tử ra màn hình:</b>



<b>a</b>
<b>iỈ</b>




n-1
n-2

6
5
4
3
2
1
0


<b>2.3 Một số thao tác cơ bản trên </b>


<b>mảng 1 chiều</b>



for(i=0; i<n; i++)
{ cout.width(8);


cout<<a[i];
}


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

CSLT - Bài 7 Phan Dinh The Huan 13


<b>4.</b> <b>Tìm kiếm giá trị x trong mảng a :Ỉ có / khơng</b>



for(i=0; i<n; i++)
if(a[i]==x)


break;
if(i<n)


//tìm thấy tại vị trí i
else


//khơng tìm thấy


<b>a</b>
<b>iỈ</b>

n-1
n-2

6
5
4
3
2
1
0
<b>Cách 1:</b>


<b>2.3 Một số thao tác cơ bản trên </b>


<b>mảng 1 chiều</b>



<b>4.</b> <b>Tìm kiếm giá trị x trong mảng a :Ỉ có / khơng</b>



int found=0;//chưa tìm thấy
for(i=0; i<n && !found; i++)


if(a[i]==x)


found=1;
if(found)


//tìm thấy tại vị trí i
else


//khơng tìm thấy


<b>a</b>
<b>iỈ</b>

n-1
n-2

6
5
4
3
2
1
0
<b>Cách 2:</b>


dùng ‘<b>cờ</b>’



</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

CSLT - Bài 7 Phan Dinh The Huan 15


<b>4.</b> <b>Tìm kiếm giá trị x trong mảng a :Ỉ có / khơng</b>


a[n]=x;


for(i=0; a[i]!=x; i++)<b>;</b>


if(i<n)


//tìm thấy tại vị trí i
else


//khơng tìm thấy


<b>a</b>
<b>iỈ</b>
x

n
n-1

6
5
4
3
2
1
0


<b>Cách 3:</b>
dùng
‘lính canh’,
chú ý n


<b>2.3 Một số thao tác cơ bản trên </b>


<b>mảng 1 chiều</b>



<b>5.</b> <b>Tìm và đếm số lượng x trong mảng a :</b>


int count=0;


for(i=0; i<n; i++)
if(a[i]==x)


count++;
if(count)


//tìm thấy count phần tử
else


//khơng tìm thấy


<b>a</b>
<b>iỈ</b>

n-1
n-2

6


5
4
3
2
1
0


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

CSLT - Bài 7 Phan Dinh The Huan 17


<b>6.</b> <b>Sắp xếp mảng :</b>


//phương pháp chọn trực tiếp
int min;


for(i=0; i<n-1; i++)
{ min=i;


for(j=i+1;j<n;j++)
if(a[min]>a[j])


min=j;


hoanVi(a[min],a[i]);
}


<b>a</b>
<b>iỈ</b>





n-1
n-2

6
5
4
3
2
1
0


<b>2.3 Một số thao tác cơ bản trên </b>


<b>mảng 1 chiều</b>



<b>7.</b> <b>Chèn thêm 1 phần tử vào mảng :</b>


<b>a</b>
<b>chỉ sốỈ</b>




n-1
n-2

6
5
4
3
2
1


0


<b>2.3 Một số thao tác cơ bản trên </b>


<b>mảng 1 chiều</b>



(1)Chèn phần tử x tại ví trí k cho trước


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

CSLT - Bài 7 Phan Dinh The Huan 19


<b>7.</b> <b>(1) Chèn thêm 1 phần tử x vào mảng tại vị trí k:</b>


if (k>=0 && k<=n)
{


for(i=n; i>k; i--)
a[i] = a[i-1];
a[k] = x;


n++;
}


<b>a</b>


<b>chỉ sốỈ</b>




n
n-1


6
5
4
3
2
1
0


<b>2.3 Một số thao tác cơ bản trên </b>


<b>mảng 1 chiều</b>



k
x


<b>7.</b> <b>(2) Chèn thêm x sao cho đảm bảo tăng dần:</b>


//mảng đã được sắp xếp tăng
n++;


for(i=n; a[i]>x && i>0; i--)
a[i] = a[i-1];


a[i] = x;


<b>a</b>


<b>chỉ sốỈ</b>





n
n-1

6
5
4
3
2
1
0


<b>2.3 Một số thao tác cơ bản trên </b>


<b>mảng 1 chiều</b>



</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

CSLT - Bài 7 Phan Dinh The Huan 21


<b>8.</b> <b>Hủy một phần tử x ra khỏi mảng :</b>


<b>a</b>
<b>chỉ sốỈ</b>




n-1
n-2

6
5
4
3


2
1
0


<b>2.3 Một số thao tác cơ bản trên </b>


<b>mảng 1 chiều</b>



Gồm các bước:


• Tìm kiếm x trong mảng, nếu có thì:


• Hủy x bằng cách: dịch chuyển các phần tử bên phải x
sang trái 1 đơn vị.


• n = n - 1


(xem như bài tập)


<b>2.4. Mảng và hàm</b>



1. Phương pháp truyền mảng vào hàm: tham
chiếu


2. Từ khóa <b>const</b>: nếu đặt từ khóa const trước
tham số hình thức Ỉ giá trị của các phần tử
trong mảng sẽ là hằng số, không được


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

CSLT - Bài 7 Phan Dinh The Huan 23


<b>Ví dụ – truyền m</b>

<b>ảng</b>

<b>vào hàm</b>




#include <stdio.h>


void nhapMang(int a[], int n);
void inMang(constint a[], int n);


void main()


{ int a[100], n= 10;
nhapMang(a, n);
inMang(a, n);
}


void nhapMang(int a[], int n)


{ cout<<“\nNhap mang:\n”;
for(int i=0; i<n; i++)


{ cout<<“Nhap a[“<<i<<”]=”;
cin>>a[i];


}
}


Giá trị của mảng là hằng số, không cho
phép thay đổi


...


void inMang(constint a[], int n)



{ for(int i=0; i<n; i++)
{


cout.width(4);
cout<<a[i];
}


}


<b>3. Chuỗi ký tự</b>


1. Các khái niệm


2. Các xử lý thông dụng trên chuỗi


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

CSLT - Bài 7 Phan Dinh The Huan 25


<b>3.1Các khái niệm về chuỗi ký tự</b>



1. Định nghĩa:


z Chuỗi ký tự là một mảng một chiều các ký tự
z Ký tự kết thúc chuỗi là ký tự null - ‘\0’


2. Khai báo và khởi tạo:


z char ten[10];


z char ten[] = “Tin hoc”;



z char ten[10]= {‘T’, ‘i’, ‘n’, ‘ ‘, ‘h’, ‘o’, ‘c’,’\0’};
<b>ten</b>


<b>iỈ</b>


‘\0’
‘c’
‘o’
‘h’
‘ ‘


‘n’
‘i’
‘T’


9
8
7
6
5
4
3
2
1
0


Chuỗi “Tin hoc” có 7 ký tự nhưng thực tế lưu trữ phải cần ít nhất 8.
Truy cập thành phần thơng qua chỉ số: VD: ten[4] = ‘h’


<b>3.1Các khái niệm về chuỗi ký tự</b>




1. Nhập xuất


z Nhập: scanf(“%s”, ten); hoặc gets(ten);


z Tên mảng cũng là địa chỉ của mảng nên không


cần phải sử dụng phép lấy địa chỉ qua ký tự &


z Không dùng lệnh cin>>ten; để nhập chuỗi.


z Dùng cin.ignore(); cin.getline(ten,<<chiều dài>>);


z Xuất: printf(“%s”, ten); hoặc puts(ten); hoặc dùng


lệnh cout<<ten;


2. Duyệt chuỗi: giống như duyệt mảng một
chiều for(int i=0; s[i]!=‘\0’; i++)


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

CSLT - Bài 7 Phan Dinh The Huan 27


<b>3.2 Các xử lý thông dụng trên </b>


<b>chuỗi ký tự</b>



1. Đếm chiều dài chuỗi


2. Đổi chuỗi sang chữ in hoa/ chữ thường
3. Cắt khoảng trắng thừa bên trái chuỗi
4. Cắt khoảng trắng thừa bên phải chuỗi


5. Cắt tất cả khoảng trắng thừa trong chuỗi
6. Đếm số từ trong chuỗi


7. Đảo ngược chuỗi


8. Trích chuỗi con từ chuỗi cho trước
9. Nối hai chuỗi cho trước thành một


10. Tìm một chuỗi có trong chuỗi cho trước khơng


<b>(Xem như bài tập)</b>


<b>3.3 Thư viện string.h</b>



1. memccpy memchr memcmp memcpy


memicmp memmove memset movedata


movmem setmem


2. stpcpy strcat strchr strcmp
strcmpi strcpy strcspn strdup
strerror stricmp strlen strlwr
3. strncat strncmp strncmpi strncpy


strnicmp strnset


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

CSLT - Bài 7 Phan Dinh The Huan 29


<b>4. Mảng nhiều chiều</b>



1. Khai báo mảng nhiều chiều
2. Truy xuất mảng nhiều chiều
3. Duyệt mảng nhiều chiều


4. Một số thao tác trên mảng nhiều chiều


5. Truyền mảng vào hàm


<b>4.1 Khai báo mảng nhiều chiều</b>


1. Cú pháp: khai báo mảng k chiều:


z <kiểu DL><tên mảng>[<n1>][<n2>]…[<nk>];


2. Ví dụ:


z int a[3][4]; //mảng 2 chiều: 3 dòng, 4 cột


z int b[3][4][2]; //mảng 3 chiều: 3 lớp, 4 dòng, 2 cột


#define M 10
#define N 20




int a[M][N];// mảng 2 chiều có tối đa 10x20 phần tử


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

CSLT - Bài 7 Phan Dinh The Huan 31


<b>4.1 Khai báo mảng nhiều chiều</b>




3. Khai báo và khởi gán giá trị cho mảng:


• int a[2][3]={{1,2,3},{4,5,6}};
• int b[2][2]={{1,2},{3,4}};
• int c[2][2]={{1},{3,4}};


4
3
4


3
6


5
4


0


1
2


1
3


2
1


a b c


<b>4.2 Truy xuất mảng nhiều chiều</b>



1. Phương pháp truy xuất trực tiếp thơng qua


chỉ số.
Dịng 0
Dịng 1
Dịng 2


Cột 0 Cột 1 Cột 2 Cột 3


a[ 0 ][ 0 ]
a[ 1 ][ 0 ]
a[ 2 ][ 0 ]


a[ 0 ][ 1 ]
a[ 1 ][ 1 ]
a[ 2 ][ 1 ]


a[ 0 ][ 2 ]
a[ 1 ][ 2 ]
a[ 2 ][ 2 ]


a[ 0 ][ 3 ]
a[ 1 ][ 3 ]
a[ 2 ][ 3 ]


chỉ số dòng
tên mảng


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

CSLT - Bài 7 Phan Dinh The Huan 33



<b>4.3 Duyệt mảng nhiều chiều</b>



1. Duyệt mảng a hai chiều có mxn phần tử


for(i=0;i<m;i++)
for(j=0;j<n;j++)


//xử lý trên a[i][j]


4
5
2
[2]


6
7


8
[2]


3
1


2
[1]


5
6


4


[0]


[3]
[1]


[0]
<b>i</b>


<b>j</b>


<b>4.4 Một số thao tác trên mảng </b>


<b>nhiều chiều</b>



1. Nhập giá trị cho mảng
2. In mảng ra màn hình


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

CSLT - Bài 7 Phan Dinh The Huan 35


<b>4.4 Một số thao tác trên mảng </b>


<b>nhiều chiều</b>



1. Nhập giá trị cho mảng: nhập qua trung gian


for(i=0;i<m;i++)
for(j=0;j<n;j++)
{


printf(“Nhap a[%d][%d]=”,i,j);
scanf(“%...”, &x);



a[i][j]=x;
}


<b>4.4 Một số thao tác trên mảng </b>


<b>nhiều chiều</b>



1. Nhập giá trị cho mảng: nhập qua trung gian


for(i=0;i<m;i++)
for(j=0;j<n;j++)
{


cout<<“Nhap a[”<<i<<”][“<<j<<”]=”;
cin>>x;


a[i][j]=x;
}


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

CSLT - Bài 7 Phan Dinh The Huan 37


<b>4.4 Một số thao tác trên mảng </b>


<b>nhiều chiều</b>



2. In mảng ra màn hình


for(i=0;i<m;i++)
{


for(j=0;j<n;j++)
{



printf(“%...”,a[i][j]);
}


printf(“\n”);//xuong dong
}


<b>4.4 Một số thao tác trên mảng </b>


<b>nhiều chiều</b>



2. In mảng ra màn hình


for(i=0;i<m;i++)
{


for(j=0;j<n;j++)
{


cout.width(4);
cout<<a[i][j];
}


cout<<endl;//xuong dong
}


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

CSLT - Bài 7 Phan Dinh The Huan 39


<b>4.4 Một số thao tác trên mảng </b>


<b>nhiều chiều</b>




3. Tìm kiếm một phần tử x trong mảng


for(i=0;i<m;i++)
for(j=0;j<n;j++)


if(a[i][j]==x)


break;
if(i<m && j<n)


//tim thay tai vi tri i,j
else


//khong tim thay


<b>Cách 1:</b> for(k=0;k<<sub>if(a[</sub><sub>k/n</sub>m*n<sub>][</sub><sub>k%n</sub>;k++)<sub>]==x)</sub>


break;
if(k<m*n)


//tim thay tai[k/n][k%n]


else


//khong tim thay


<b>4.4 Một số thao tác trên mảng </b>


<b>nhiều chiều</b>



3. Tìm kiếm một phần tử x trong mảng



int found=0;


for(i=0;i<m && !found;i++)
for(j=0;j<n && !found;j++)


if(a[i][j]==x)


found=1;
if(found)


//tim thay tai vi tri i,j
else


//khong tim thay


<b>Cách 2:</b>


</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

CSLT - Bài 7 Phan Dinh The Huan 41


<b>4.4 Một số thao tác trên mảng </b>


<b>nhiều chiều</b>



4. Đếm số lượng phần tử x trong mảng


int count=0;


for(i=0;i<m;i++)
for(j=0;j<n;j++)



if(a[i][j]==x)


count++;
if(count)


//tim thay count phan tu
else


//khong tim thay


<b>4.5 Truyền mảng vào hàm</b>



#include <stdio.h>
#include <iostream.h>
#define N 10


#define M 20


void nhapMaTran(int a[][N], int m, int n);
void inMaTran(const int a[][N], int m, int n);
void main()


{ int a[M][N], m= 5, n=10;


nhapMaTran(a, m, n);
inMaTran(a, m, n);


</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

CSLT - Bài 7 Phan Dinh The Huan 43


void nhapMaTran(int a[][N], int m, int n)


{ <b>int i,j, x;</b>


cout<<“\nNhap ma tran:\n”;
for(i=0; i<m; i++)


for(j=0; i<n; i++)


{ cout<<“Nhap a[”<<i<<“][”<<j<<”]=”;
cin>>x;


<b>a[i][j] = x;</b>
}


}


void inMaTran(const int a[][N], int m, int n)
{ int i,j;


for(i=0; i<m; i++)
{ for(j=0; j<n; j++)


{ cout.width(4);
cout<<a[i][j];
}


cout<<endl;//xuong dong
}


}



<b>Tóm tắt</b>



1. Mảng là gì?


2. Khai báo mảng một chiều ntn?
3. Khai báo mảng nhiều chiều ntn?


</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

CSLT - Bài 7 Phan Dinh The Huan 45


<b>Ví dụ về mảng 1 chiều số</b>


<b>nguyên </b>



1. Tìm giá trị lớn nhất/nhỏ nhất trong mảng
2. Tính giá trị trung bình của mảng


3. Đếm số số chẵn/số số lẻ trong mảng
4. Đếm số nguyên tố trong mảng


5. Kiểm tra xem mảng có tăng dần/giảm dần
6. Tìm kiếm một giá trị trong mảng đã có thứ


tự theo pp tìm kiếm nhị phân


7. Biến đổi tất cả các số âm trong mảng thành
số dương.


<b>Bài tập</b>



1. Nhập số tiền chi tiêu của 1 sinh viên trong
12 tháng.



z Tính chi tiêu trung bình của sinh viên đó.


z Sinh viên đó tiêu ít nhất bao nhiêu tiền trong 1


tháng.


z Sinh viên đó tiêu nhiều nhất bao nhiêu tiền trong


1 tháng.


z Những tháng nào sinh viên đó tiêu tiền nhiều


nhất.


</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

CSLT - Bài 7 Phan Dinh The Huan 47


<b>Bài tập (tt)</b>



2. Nhập vào một mảng 2 chiều mxn các số nguyên,
hãy cho biết:


z Giá trị phần lớn nhất, nhỏ nhất trong mảng.
z Các dịng trong mảng có tăng dần hay khơng.
z Đếm số lượng số nguyên tố có trong mảng.


3. Hãy tạo các ma trận vuông nxn như sau:


(d)
(c)


(b)
(a)
7
8
9
10
13
12
5
4
13
14
15
16
16
15
14
13
6
15
16
11
14
11
6
3
12
11
10
9

12
11
10
9
5
14
13
12
15
10
7
2
5
6
7
8
8
7
6
5
4
3
2
1
16
9
8
1
4
3

2
1
4
3
2
1


<b>Bài tập (tt)</b>



4. Viết chương trình quản lý thơng tin của một nhân viên bán


hàng. Thông tin của nhân viên được lưu trong một mảng 2
chiều như sau:


z 12 cột tượng trưng cho 12 tháng
z 2 dòng gồm:


z Dòng thứ nhất: Số ngày cơng trong tháng
z Dịng thứ hai: Số sản phẩm bán được


Hãy cho biết:


1. Thu nhập trong từng tháng và tổng thu nhập trong năm của


nhân viên nói trên, biết: lương 1triệu VND/tháng/26 ngày;
thưởng 100ngàn/ngày thêm; hoa hồng 1000đồng/sản phẩm.


2. Trung bình, mỗi tháng nhân viên đó đi làm bao nhiêu ngày và


</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

CSLT - Bài 7 Phan Dinh The Huan 49



<b>Bài tập (tt)</b>



5. Nhập vào một chuỗi ký tự, hãy thực hiện:


1. Đếm số từ có 1 ký tự, 2 ký tự, …


2. Liệt kê số lần xuất hiện của các ký tự chữ cái có


trong chuỗi.


3. Hãy cho biết ký tự nào xuất hiện nhiều nhất, ký


tự nào xuất hiện ít nhất trong chuỗi.


</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

CSLT - Bài 7 Phan Dinh The Huan 51


Phụ lục: Bảng mã ASCII (tt)



</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

CSLT - Bài 7 Phan Dinh The Huan 53


<b>Một số bài tập mở rộng</b>


1. Mảng 1 chiều


z Bài 1: Sàng Erathosten các số nguyên tố
z Bài 2: Bài toán đặt vé máy bay


2. Mảng 2 chiều


z Bài 1: Thực hiện các phép toán trên ma trận:



giữa ma trận và một số, giữa 2 ma trận, tính định
thức ma trận


z Bài 2: Ma phương bậc lẻ
z Bài 3: Ma trận Sudoku 9x9


<b>Một số bài tập ứng dụng trò chơi</b>



1. Bàn cờ trị chơi carơ mxn. Hãy xây dựng
thuật tốn và cài đặt hàm kiểm tra tình trạng
thắng thua của bàn cờ.


2. Bàn cờ trị chơi dị mìn mxn. Hãy xây dựng
thuật toán và cài đặt hàm mở ô lan truyền
trong trường hợp ô được mở là một ơ trống
khơng có mìn xung quanh.


</div>

<!--links-->

×