Microsoft PowerPoint IP 07 Array in C MảngMảng GV GV NguyễnNguyễn Minh Minh HuyHuy MảngMảng 1Nhập môn lập trình GV Nguyễn Minh Huy NộiNội dungdung �� KháiKhái niệmniệm mảngmảng �� ThaoThao táctác trên[.]
Trang 1GV
GV Nguyễn Nguyễn Minh Minh Huy Huy
Mảng
Trang 2Nội dung dung
Khái Khái niệm niệm mảng mảng
Thao Thao tác tác trên trên mảng mảng
Chuỗi Chuỗi ký ký tự tự
Trang 3Nội dung dung
Khái Khái niệm niệm mảng mảng
Thao Thao tác tác trên trên mảng mảng
Chuỗi Chuỗi ký ký tự tự
Trang 4Khái niệm niệm mảng mảng
Xét Xét chương chương trình trình sau sau::
Nhập Nhập 5 5 số số nguyên nguyên, , sau sau đó đó xuất xuất 5 5 số số vừa vừa nhập nhập
Khai Khai báo báo 5 5 biến biến int int a, b, c, d, e a, b, c, d, e.
Nhập Nhập 50 50 số số nguyên nguyên, , sau sau đó đó xuất xuất 50 50 số số vừa vừa nhập nhập
Khai Khai báo báo 50 50 biến biến int int!! !!
Trang 5Khái niệm niệm mảng mảng
Mảng Mảng trong trong ngôn ngôn ngữ ngữ C: C:
Mảng Mảng là là một một dãy dãy biến biến có có cùng cùng kiểu kiểu
Các Các biến biến trong trong dãy dãy là là phần phần tử tử mảng mảng
Khai Khai báo báo::
Trang 6Khái niệm niệm mảng mảng
Mảng Mảng trong trong ngôn ngôn ngữ ngữ C: C:
Sau Sau khi khi khai khai báo báo, , phần phần tử tử mảng mảng có có giá giá trị trị bao bao nhiêu nhiêu? ?
Khởi Khởi tạo tạo giá giá trị trị mảng mảng::
<
<KiểuKiểu dữdữ liệuliệu> > < <Tên Tên mảng mảng>[ >[<<SốSố phầnphần tửtử>>]] = { = { < <Giá Giá trị trị PT1> PT1>, , < <Giá Giá trị trị PT2> PT2>, Y };, Y };
? ? ? ? ?int
Trang 7Khái niệm niệm mảng mảng
Mảng Mảng trong trong ngôn ngôn ngữ ngữ C: C:
Truy Truy xuất xuất phần phần tử tử mảng mảng::
a[ 10 ] [ 10 ] = 8;= 8; // // SaiSai
0 0 0 0 0int
int a a[ 10 ] [ 10 ] = { 0 }; = { 0 }; a a 0 0 0 0 0
Trang 8Khái niệm niệm mảng mảng
Mảng Mảng trong trong ngôn ngôn ngữ ngữ C: C:
Truyền Truyền tham tham số số mảng mảng::
Khai Khai báo báo tham tham số số mảng mảng giống giống biến biến mảng mảng
void void foo foo( ( int int a a[ 100 ], [ 100 ], int int size size ); );
Khai Khai báo báo tham tham số số mảng mảng có có thể thể bỏ bỏ số số phần phần tử tử
void void foo foo( ( int int a[ a[ ], ], int int size size ); );
void void foo foo( ( int int a[ a[ ], ], int int size size ); );
Phần Phần tử tử mảng mảng có có thể thể bị bị thay thay đổi đổi sau sau khi khi ra ra khỏi khỏi hàm hàm
void
void foofoo( ( int int a[ a[ ], ], int int size size ))
{{
aa[ 2 ] [ 2 ] = 9;= 9;
a
a[ 5 ] [ 5 ] = 8;= 8;
}}
void main(){{
intint aa[ 100 ] [ 100 ] = { 0 };= { 0 };
foo foo( a, 100 ); ( a, 100 );
// a[2], a[5]
// a[2], a[5] bịbị thaythay đổiđổi
}}
Trang 9Nội dung dung
Khái Khái niệm niệm mảng mảng
Thao Thao tác tác trên trên mảng mảng
Chuỗi Chuỗi ký ký tự tự
Trang 10Dùng Dùng biến biến đếm đếm truy truy xuất xuất phần phần tử tử
Trang 11scanfscanf(“%d”, (“%d”, &n &n););
for ( for (intint ii = 0; = 0; ii < < n n; ; ii++++))
#define MAX 100
void main(){{
int
int aa[ MAX ], [ MAX ], size1;size1;
intint bb[ MAX ], [ MAX ], size2;size2;
for ( for (intint ii = 0; = 0; ii < < n n; ; ii++++))
{{
printfprintf(“(“NhapNhap phanphan tutu %d = “, %d = “, ii););
nhapMang nhapMang(b, size2);(b, size2);}}
Trang 12printfprintf(“%d “, (“%d “, a[ a[ ii ]]););
}}
#define MAX 100
void main(){{
int
int aa[ MAX ], [ MAX ], size1;size1;
intint bb[ MAX ], [ MAX ], size2;size2;
nhapMangnhapMang(a, size1);(a, size1);nhapMang
nhapMang(b, size2);(b, size2);
xuatMang xuatMang(a, size1);(a, size1);
xuatMang xuatMang(b, size2);(b, size2);}}
Trang 13int a[ MAX ], a[ MAX ], size1;size1;
intint b[ MAX ], b[ MAX ], size2;size2;
nhapMangnhapMang(b, size2);(b, size2);
Trang 14Nội dung dung
Khái Khái niệm niệm mảng mảng
Thao Thao tác tác trên trên mảng mảng
Chuỗi Chuỗi ký ký tự tự
Trang 15Chuỗi ký ký tự tự
Chuỗi Chuỗi ký ký tự tự trong trong C: C:
Chuỗi Chuỗi ký ký tự tự = = mảng mảng ký ký tự tự + + phần phần tử tử cuối cuối ‘‘\\0’ 0’
Chiều Chiều dài dài chuỗi chuỗi = = số số phần phần tử tử mảng mảng – – 1; 1;
Khai Khai báo báo chuỗi chuỗi::
Trang 16Chỉ Chỉ nhập nhập từ từ đầu đầu tiên tiên
gets( gets(chuoi chuoi); );
Nhập Nhập nguyên nguyên chuỗi chuỗi
#define MAX 100
void main(){{
Nhập Nhập nguyên nguyên chuỗi chuỗi
Xuất Xuất chuỗi chuỗi::
printf printf(“%s”, (“%s”, chuoi chuoi) ).
puts( puts(chuoi chuoi) ).
printfprintf(“(“NhapNhap chuoichuoi s1 = “);s1 = “);
scanf scanf(“%s”, &s1); (“%s”, &s1);
printf
printf(“(“NhapNhap chuoichuoi s2 = “);s2 = “);
gets(s1);
printf printf((““ChuoiChuoi s1 = s1 = %s %s”, ”, s1) s1);; puts(s2);
}}
Trang 17Chuỗi ký ký tự tự
Thao Thao tác tác trên trên chuỗi chuỗi ký ký tự tự::
Thư Thư viện viện < <string.h string.h>: >: #include #include < <string.h string.h> >
strlen strlen((chuoi chuoi): ): đếm đếm chiều chiều dài dài chuỗi chuỗi
int chieuDai2 = chieuDai2 = strlen strlen(s2) (s2);; // chieuDai2 = 12int
int chieuDai3 = chieuDai3 = strlen strlen(s3) (s3);; // chieuDai3 = 12
Trang 18Chuỗi ký ký tự tự
Thao Thao tác tác trên trên chuỗi chuỗi ký ký tự tự::
Viết Viết hoa hoa chữ chữ cái cái đầu đầu mỗi mỗi từ từ::
#define MAX
#define MAX 100 100
void main(){{
s[ ii ] = s[ ] = s[ ii ] ] 32;32;
}}
char s[MAX];
printfprintf(“(“NhapNhap chuoichuoi s = “);s = “);gets(s);
vietHoa vietHoa(s); (s);
printfprintf(“%s(“%s\\n”, s);n”, s);
}}
Trang 19Tóm tắt tắt
Khái Khái niệm niệm mảng mảng::
Dãy Dãy biến biến cùng cùng kiểu kiểu
Các Các biến biến trong trong dãy dãy là là phần phần tử tử mảng mảng
Thao Thao tác tác trên trên mảng mảng::
Thao Thao tác tác chung chung: : duyệt duyệt + + thao thao tác tác từng từng phần phần tử tử
Thao Thao tác tác chung chung: : duyệt duyệt + + thao thao tác tác từng từng phần phần tử tử
Chuỗi Chuỗi ký ký tự tự::
Mảng Mảng ký ký tự tự kết kết thúc thúc bằng bằng ‘‘\\0’ 0’.
Nhập Nhập xuất xuất: : printf printf, , scanf scanf, gets, puts , gets, puts.
Đếm Đếm chiều chiều dài dài: : strlen strlen ((thư thư viện viện < <string.h string.h>) >).
Trang 20Bài tập tập
Bài Bài tập tập 7.1: 7.1:
Viết
Viết chương chương trình trình C C như như sau sau::
((tổ tổ chức chức theo theo dạng dạng hàm hàm và và chia chia làm làm nhiều nhiều file): file):
Nhập Nhập vào vào mảng mảng N N số số nguyên nguyên
Hãy Hãy cho cho biết biết::
a) a) Có Có bao bao nhiêu nhiêu số số chẵn chẵn trong trong mảng mảng
a) a) Có Có bao bao nhiêu nhiêu số số chẵn chẵn trong trong mảng mảng
b) b) Có Có bao bao nhiêu nhiêu số số âm âm trong trong mảng mảng
c) c) Có Có bao bao nhiêu nhiêu số số nguyên nguyên tố tố trong trong mảng mảng
Trang 21Bài tập tập
Bài Bài tập tập 7.2: 7.2:
Viết
Viết chương chương trình trình C C như như sau sau::
((tổ tổ chức chức theo theo dạng dạng hàm hàm và và chia chia làm làm nhiều nhiều file): file):
Nhập Nhập vào vào mảng mảng N N số số nguyên nguyên
Nhập Nhập vào vào số số nguyên nguyên K K.
Hãy Hãy cho cho biết biết::
Hãy Hãy cho cho biết biết::
Trang 22Bài tập tập
Bài Bài tập tập 7.3: 7.3:
Viết
Viết chương chương trình trình C C kiểm kiểm tra tra mảng mảng như như sau sau::
((tổ tổ chức chức theo theo dạng dạng hàm hàm và và chia chia làm làm nhiều nhiều file): file):
Nhập Nhập vào vào mảng mảng N N số số nguyên nguyên
Hãy Hãy cho cho biết biết::
a) a) Mảng Mảng có có tăng tăng dần dần không không
a) a) Mảng Mảng có có tăng tăng dần dần không không
b) b) Mảng Mảng có có đối đối xứng xứng không không
c) c) Mảng Mảng có có lập lập thành thành một một cấp cấp số số cộng cộng không không
Trang 23Bài tập tập
Bài Bài tập tập 7.4: 7.4:
Viết
Viết chương chương trình trình C C thao thao tác tác chuỗi chuỗi như như sau sau::
((tổ tổ chức chức theo theo dạng dạng hàm hàm và và chia chia làm làm nhiều nhiều file): file):
Nhập Nhập vào vào 2 2 chuỗi chuỗi S1 S1 và và S2 S2.
Hãy Hãy chèn chèn S1 S1 vào vào ngay ngay chính chính giữa giữa S2 S2 và và xuất xuất kết kết quả quả
Trang 24Bài tập tập
Bài Bài tập tập 7.5: 7.5:
Viết
Viết chương chương trình trình C C thao thao tác tác chuỗi chuỗi như như sau sau::
((tổ tổ chức chức theo theo dạng dạng hàm hàm và và chia chia làm làm nhiều nhiều file): file):
Nhập Nhập vào vào chuỗi chuỗi ký ký tự tự S S.
Đếm Đếm xem xem chuỗi chuỗi S S có có bao bao nhiêu nhiêu từ từ ((cách cách nhau nhau khoảng khoảng trắng trắng hoặc hoặc kết
kết thúc thúc bằng bằng dấu dấu câu câu “,” “.” “?” “!”) “,” “.” “?” “!”).
kết kết thúc thúc bằng bằng dấu dấu câu câu “,” “.” “?” “!”) “,” “.” “?” “!”).
Chuẩn Chuẩn hóa hóa chuỗi chuỗi S: S:
+ + Bỏ Bỏ khoảng khoảng trắng trắng đầu đầu và và cuối cuối chuỗi chuỗi
+ + Bỏ Bỏ khoảng khoảng trắng trắng dư dư thừa thừa giữa giữa các các từ từ
+ + Viết Viết hoa hoa các các ký ký tự tự đầu đầu mỗi mỗi từ từ
Xóa Xóa tất tất cả cả nguyên nguyên âm âm xuất xuất hiện hiện trong trong chuỗi chuỗi S S.