1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

47 618 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 47
Dung lượng 167,4 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

của mảng a cho đến khi gặp được phần tử cần tìm, hoặc đã tìm hết mảng mà.

Trang 2

Giá trị

V trí ị

V trí đ ị ượ c tính t 0 ừ

Trang 3

3

* KHAI BÁO

*int a[100]; //Khai bao mang so nguyen a gom 100 phan tu

*float b[50]; //Khai bao mang so thuc b gom 50 phan tu

*char str[30]; //Khai bao mang ky tu str gom 30 ky tu

< 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 ệ }

Trang 4

Gán toàn b ph n t có cùng giá tr ộ ầ ử ị int a[8] = {3};

Trang 5

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 ị

Trang 7

cout<<“Nhap phan tu thu “<<i<<“: “; cin>>a[i];

} }  

Trang 10

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”;

}

Trang 11

* 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";

}

Trang 15

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);

}

Trang 16

return d;

}

Trang 17

* 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);

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

cout<<a[i]<<"\t";

}

Trang 18

return d;

}

bool LaSNT(int k) {

int d = 0;

for (int i = 1; i <= k; i++)

if (k % i == 0) d++;

return (d == 2);

}

Trang 19

19

void main() {

Trang 20

Gi s c n tìm v trí ph n t nh nh t ả ử ầ ị ầ ử ỏ ấtrong dãy s sau ? ố

Trang 21

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

Trang 22

1 2 3 4 5 6 7 8 22

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ó ị ạ ị ạ ừ ế ế

Trang 23

1 2 3 4 5 6 7 8 23

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

Trang 24

1 2 3 4 5 6 7 8 24

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

Trang 25

1 2 3 4 5 6 7 8 25

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

Trang 26

1 2 3 4 5 6 7 8 26

9

2 15

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

1 nh h n 3 ỏ ơ nên c p ậ

nh t v trí ậ ị

min

10

Trang 28

c p nh t v ậ ậ ị

trí min

2 1

Trang 29

}

Trang 30

int max = a[0];

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

if (a[i] > max)

max = a[i];

} return max;

}

Trang 31

* TÌM PH N T X Ầ Ử

Ý tưởng

Lần lượt so sánh x với phần tử thứ nhất, thứ hai, của mảng a

cho đến khi gặp được phần tử cần tìm, hoặc đã tìm hết mảng mà

Trang 32

} return -1;

}

* CODE MINH H A Ọ

Trang 34

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

if (a[i] không th a đi u ki n) ỏ ề ệ return false;

return true;

}

Trang 35

35

Ví d 1: ụ Ki m tra xem m ng có t n t i s l không?ể ả ồ ạ ố ẻ

bool KiemTraTonTaiLe(int a[], int n) {

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

if (a[i] % 2 != 0) return true;

} return false;

}

Trang 36

36

Ví d 2: ụ Ki m tra xem m ng có toàn giá tr âm không? ể ả ị

(true: có/ false: không)

bool KiemTraToanAm(int a[], int n) {

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

if (a[i] >= 0)

return false;

} return true;

}

Trang 37

}

Trang 38

s += giatri;

d ++;

} }

if (d==0)

return 0;

return (float) s / d;

}

Trang 39

}

Trang 40

40

Ví d 2: ụ Tính giá tr trung bình các ph n t có giá tr âm trong m ng ị ầ ử ị ả

float TrungBinhAm(int a[], int n) {

s += a[i];

d++;

} }

if (d == 0) return 0;

return (float)s / d;

}

Trang 41

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

if (a[i] > a[j])

HoanVi(a[i], a[j]); }

} void HoanVi(int &a, int &b) {

int tam = a;

a = b;

b = tam;

}

Trang 42

9 111

42

Trang 43

* Chèn ph n t vào m ng ầ ử ả

void ChenX(int a[], int &n, int x, int k);

43

Trang 46

* Xóa ph n t kh i m ng ầ ử ỏ ả

*Hãy vi t hàm xóa ph n t t i v trí k cho ế ầ ử ạ ị

trước trong m ng a kích thả ước n theo m u ẫsau:

void XoaTaiVTk(int a[], int &n, int k);

46

Trang 47

* Bài t p áp d ng ậ ụ

Hãy vi t hàm xóa ph n t x ế ầ ử (n u có) ế trong

giá tr trùng nhau)ị

47

Ngày đăng: 04/09/2015, 15:17

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w