Tải bản đầy đủ (.pptx) (47 trang)

Bài giảng lập trình c cơ bản chương 5 mảng một chiều

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 (3.64 MB, 47 trang )

*
CH NG 5ƯƠ
M NG M T CHI UẢ Ộ Ề
9
/
4
/
1
5
1
9/4/15
2
*
KHÁI NI MỆ
*
Mang th c châ t la môt biê n đ c câ p pha t bô nh liên ́ ̀ ́ ́ ́ ́̉ ự ̣ ượ ̣ ơ
tuc va bao gô m nhiê u biê n tha nh phâ n.̀ ̀ ̀ ́ ̀ ̣̀
*
Ca c tha nh phâ n cua mang la tâp h p ca c biê n co cu ng ́ ̀ ̀ ̀ ́ ́ ́ ̀̉ ̉ ̣ ợ
kiêu d liêu va cu ng tên. Do đo đê truy xuâ t ca c biê n ̃ ̀ ̀ ́ ́ ́ ́̉ ư ̣ ̉
tha nh phâ n, ta du ng c chê chi muc.̀ ̀ ̀ ́ơ ̉ ̣
0 1 2 3 4 5 6 7 8 9
Giá trị
V tríị
V trí đ c tính t 0ị ượ ừ
9/4/15
3
*
KHAI BÁO
*



*

*


< Kiểu dữ liệu > < Tên mảng > [ < Số phần tử tối đa của mảng> ] ;
Nh m thu n ti n cho vi c vi t ch ng trình, ta nên đ nh ằ ậ ệ ệ ế ươ ị
nghĩa h ng s MAX đ u ch ng trình – là kích th c t i đa ằ ố ở ầ ươ ướ ố
c a m ng - nh sau:ủ ả ư
#define MAX 100
void main()
{
int a[MAX], b[MAX];
//Các l nhệ
}
9/4/15
4
*
KHAI BÁO VÀ GÁN GIÁ TR BAN Ị
Đ U CHO M NGẦ Ả
Gán t ng ph n từ ầ ử
int a[5] = {3, 6, 8, 1, 12};
Gán toàn b ph n t có cùng giá trộ ầ ử ị
int a[8] = {3};
Giá trị
3 6 8 1 12
V tríị 0 1 2 3 4
Giá trị
3 3 3 3 3 3 3 3
V tríị 0 1 2 3 4 5 6 7

9/4/15
5
*
TRUY XU T GIÁ TRẤ Ị
TênMảng [vị trí cần truy xuất]
void main()
{
int a[5] = {3, 6, 8, 11, 12};
cout<<“Giá tr m ng t i v trí 3 = “<<a[3];ị ả ạ ị
}
K t qu : Giá tr m ng t i v trí 3 = 11ế ả ị ả ạ ị
V trí 3ị
9/4/15
6
*
CÁC THAO TÁC TRÊN M NGẢ
*
Nh pậ
*
Xu t (li t kê)ấ ệ
*
Tìm ki mế
*
Đ mế
*
S p x pắ ế
*
Ki m tra m ng th a đi u ki n cho tr cể ả ỏ ề ệ ướ
*
Tách/ ghép m ngả

*
Chèn / xóa
9/4/15
7
*
NH P XU T M NGẬ Ấ Ả
 !"
#$% &'(
)
&*+,,(
)
++-%-++++ -
//
0
0
#
9/4/15
8
$" &'(
)
&*+,,(
++++-12
0
#
$&(
)
 !"'
++-%.-
//
% &'(

++-3$.2++
" &'(
0
9/4/15
9
*
LI T KÊ CÁC PH N T TH A ĐK CHO TR CỆ Ầ Ử Ỏ ƯỚ
M u 1: ẫ
void LietKeXXX(int a[], int n)
{
for (int i = 0; i<n; i++)
if (a[i]  ỏ đi u ki nề ệ )
Xu t a[i];ấ
}
M u 2: ẫ
void LietKeXXX(int a[], int n, int x)
{
for (int i = 0; i<n; i++)
if (a[i]  ỏ đi u ki n ề ệ $ 4ớ )
Xu t a[i];ấ
}
9/4/15
10
Ví d 1:ụ Li t kê các ph n t có giá tr ch n trong m ngệ ầ ử ị ẵ ả
void LietKeChan(int a[], int n)
{
for (int i = 0; i<n; i++)
if (a[i] %2 ==0)
cout<<a[i]<<“\t”;
}

Ví d 2:ụ Li t kê các ph n t có giá tr l n h n x trong m ngệ ầ ử ị ớ ơ ả
void LietKeLonHonX(int a[], int n, int x)
{
for (int i = 0; i<n; i++)
if (a[i] > x)
cout<<a[i]<<“\t”;
}
*
Ví d 3: Ch ng trình nh p vào m ng m t chi u s nguyên a, ụ ươ ậ ả ộ ề ố
kích th c n. In ra các ph n t có giá tr l n h n x có trong m ngướ ầ ử ị ớ ơ ả
9/4/15
11
#define MAX 100
void NhapMang(int a[], int n);
void XuatMang(int a[], int n);
void LietKeLonHonX(int a[], int n, int x);
void NhapMang(int a[], int n)
{
for(int i=0; i<n; i++)
{
cout<<"Nhap phan tu tai vi tri "<<i<<": ";
cin>>a[i];
}
}
void XuatMang(int a[], int n)
{
for(int i=0; i<n; i++)
cout<<a[i]<<"\t";
}
9/4/15

12
void LietKeLonHonX(int a[], int n, int x)
{
for (int i = 0; i<n; i++)
if (a[i] > x)
cout<<a[i]<<“\t”;
}
void main()
{
int a[MAX], n, x;
cout<<"Nhap vao kich thuoc mang: ";
cin>>n;
NhapMang(a, n);
cout<<"Cac phan tu cua mang:"<<endl;
XuatMang(a, n);
cout<<"Nhap gia tri x: ";
cin>>x;
cout<<"Cac phan tu co gia tri lon hon "<<x<<endl;
LietKeLonHonX(a, n, x);
}
9/4/15
13
*
Đ MẾ
M u 1: ẫ
int DemXXX(int a[], int n)
{
int d = 0;
for (int i = 0; i<n; i++)
if (a[i] th a đi u ki n)ỏ ề ệ

d++;
return d;
}
9/4/15
14
M u 2: ẫ
int DemXXX(int a[], int n, int x)
{
int d = 0;
for (int i = 0; i<n; i++)
if (a[i] th a đi u ki n so v i x)ỏ ề ệ ớ
d++;
return d;
}
9/4/15
15
Ví d 1:ụ Đ m các ph n t có giá tr là s nguyên tế ầ ử ị ố ố
int DemSNT(int a[], int n)
{
int d = 0;
for (int i = 0; i<n; i++)
{
if (LaSNT(a[i]) ==true)
{
d++;
}
}
return d;
}
bool LaSNT(int k)

{
int d = 0;
for (int i = 1; i <= k; i++)
{
if (k % i == 0)
{
d++;
}
}
return (d == 2);
}
9/4/15
16
Ví d 2:ụ Đ m các ph n t có giá tr nh h n x có trong ế ầ ử ị ỏ ơ
m ngả
int DemNhoHonX(int a[], int n, int x)
{
int d = 0;
for (int i = 0; i<n; i++)
if (a[i] < x)
d++;
return d;
}
*
Ví d 3: Ch ng trình nh p vào m ng m t chi u s nguyên a, kích ụ ươ ậ ả ộ ề ố
th c n. Đ m s l ng các ph n t là s nguyên t có trong m ngướ ế ố ượ ầ ử ố ố ả
9/4/15
17
#define MAX 100
void NhapMang(int a[], int n);

void XuatMang(int a[], int n);
int DemSNT(int a[], int n);
bool LaSNT(int k);
void NhapMang(int a[], int n)
{
for(int i=0; i<n; i++)
{
cout<<"Nhap phan tu tai vi tri "<<i<<": ";
cin>>a[i];
}
}
void XuatMang(int a[], int n)
{
for(int i=0; i<n; i++)
cout<<a[i]<<"\t";
}
9/4/15
18
int DemSNT(int a[], int n)
{
int d = 0;
for (int i = 0; i<n; i++)
if (LaSNT(a[i]) ==true)
d++;
return d;
}
bool LaSNT(int k)
{
int d = 0;
for (int i = 1; i <= k; i++)

if (k % i == 0)
d++;
return (d == 2);
}
9/4/15
19
void main()
{
int a[MAX], n, kq;
cout<<"Nhap vao kich thuoc mang: ";
cin>>n;
NhapMang(a, n);
cout<<"Cac phan tu cua mang:"<<endl;
XuatMang(a, n);
kq = DemSNT(a, n);
if(kq==0)
cout<<"Khong co so nguyen to trong mang";
else
cout<<"So luong so nguyen to la: "<<kq;
}
1 2 3 4 5 6 7 8
*
TÌM V TRÍ PH N T NH NH T?Ị Ầ Ử Ỏ Ấ
20
10
5
7
3
9
2

15
1
Gi s c n tìm v trí ph n t nh nh t ả ử ầ ị ầ ử ỏ ấ
trong dãy s sau ? ố
1 2 3 4 5 6 7 8
21
10
5
7
3
9
2
15
1
B c 1: Gi s v trí ph n t nh nh t là 1 ướ ả ử ị ầ ử ỏ ấ
(vtmin), ph n t này có giá tr 10 ầ ử ị
vtmin
1 2 3 4 5 6 7 8
22
5
7
3
9
2
15
1
B c 2: So sánh giá tr t i vtmin v i t t c ướ ị ạ ớ ấ ả
giá tr t i v trí còn l i (t 2 đ n 8), n u có ị ạ ị ạ ừ ế ế
ph n t nào nh h n ph n t t i vtmin thì ầ ử ỏ ơ ầ ử ạ
c p nh t l i vtmin ậ ậ ạ

vtmin
5 nh h n ỏ ơ
10 nên c p ậ
nh t v trí ậ ị
min
10
1 2 3 4 5 6 7 8
23
3
9
2
15
1
B c 2: So sánh giá tr t i vtmin v i t t c ướ ị ạ ớ ấ ả
giá tr t i v trí còn l i (t 2 đ n 8), n u có ị ạ ị ạ ừ ế ế
ph n t nào nh h n ph n t t i vtmin thì ầ ử ỏ ơ ầ ử ạ
c p nh t l i vtmin ậ ậ ạ
vtmin
7 l n h n 5 ớ ơ
nên không
c p nh t v ậ ậ ị
trí min
10
5
7
1 2 3 4 5 6 7 8
24
3
9
2

15
1
B c 2: So sánh giá tr t i vtmin v i t t c ướ ị ạ ớ ấ ả
giá tr t i v trí còn l i (t 2 đ n 8), n u có ị ạ ị ạ ừ ế ế
ph n t nào nh h n ph n t t i vtmin thì ầ ử ỏ ơ ầ ử ạ
c p nh t l i vtmin ậ ậ ạ
vtmin
3 nh h n 5 ỏ ơ
nên c p ậ
nh t v trí ậ ị
min
10
5
7
1 2 3 4 5 6 7 8
25
3
9
2
15
1
B c 2: So sánh giá tr t i vtmin v i t t c ướ ị ạ ớ ấ ả
giá tr t i v trí còn l i (t 2 đ n 8), n u có ị ạ ị ạ ừ ế ế
ph n t nào nh h n ph n t t i vtmin thì ầ ử ỏ ơ ầ ử ạ
c p nh t l i vtmin ậ ậ ạ
vtmin
9 l n h n 3 ớ ơ
nên không
c p nh t v ậ ậ ị
trí min

10
5
7

×