intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Phương pháp lập trình - Chương 4: Mảng (2016)

Chia sẻ: Bình Yên | Ngày: | Loại File: PPT | Số trang:46

47
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Phương pháp lập trình - Chương 4: Mảng cung cấp cho người học khái niệm về mảng, mảng một chiều, một số bài toán trên mảng một chiều, mảng hai chiều, một số bài toán trên mảng hai chiều. Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Phương pháp lập trình - Chương 4: Mảng (2016)

  1. Nội dung trình bày 1. Khái niệm 2. Mảng một chiều 3. Một số bài toán trên mảng một chiều 4. Mảng hai chiều 5. Một số bài toán trên mảng hai chiều 2
  2. 1. Khái niệm  Mảng  là  một  tập  hợp  các  biến  có  cùng  kiểu  dữ  liệu  nằm  liên  tiếp  nhau  trong  bộ  nhớ  và  có  một  tên chung gọi là tên mảng  Mỗi  phần  tử  của  mảng  được  đánh  chỉ  mục  (index): phần tử đầu tiên được đánh số là 0,…  Nếu  mảng  có  n  phần  tử  thì  phần  tử  đầu  tiên  có  chỉ mục là 0 và phần tử cuối có chỉ mục là n­1 a 3
  3. 1. Khái niệm (tt)  Muốn  truy  cập  phần  tử  nào  của  mảng  thì  phải  dựa vào  chỉ mục  của nó, cú pháp:  tên_mảng[chỉ  mụ c ] ◦Ví dụ:  a[0] = 10; cout
  4. Nội dung trình bày 1. Khái niệm 2. Mảng một chiều 3. Một số bài toán trên mảng một chiều 4. Mảng hai chiều 5. Một số bài toán trên mảng hai chiều 5
  5. 2. Mảng một chiều: Khai báo  Khi khai báo mảng phải cho biết kích thước mảng   Cú pháp khai báo mảng: type arrayName[size]; ◦type: kiểu dữ liệu của mảng ◦arrayName: tên mảng ◦size: số phần tử tối đa trong mảng  Ví dụ:  int a[5]; a a[0] a[1] a[2] a[3] a[4] float ds[100]; char st[50]; 6
  6. 2. Mảng một chiều: Sử dụng  Mỗi phần tử mảng là một biến thông thường  Ví dụ: int num[3]; num[0] = 2;  // gán 2 cho phần tử num[0]  num[1] = num[0] + 3    // num[1] có giá trị 5  num[2] = num[0] + num[1]; //num[2] có giá trị 7  cout
  7. 2. Mảng một chiều: Tính số bytes  Kích thước (tính bằng byte) của mảng được tính  theo công thức:    Total_size = sizeof(type) * NumOfElements  Ví dụ: int num[100];  Giả sử int chiếm 2 bytes, mảng num có kích  thước là:  sizeof(int)*100 = 2 bytes * 100 = 200 bytes 8
  8. 2. Mảng một chiều: Khai báo và  khởi tạo  Cú pháp khai báo và khởi tạo mảng:  type arrayName[]= {value1, value2, ..., valuen}; ◦Lưu ý:  Không khai báo kích thước mảng  Kích thước mảng được xác định bởi các giá trị trong  cặp dấu ngoặc {}, được phân cách nhau bởi dấu phẩy 9
  9. 2. Mảng một chiều: Khai báo và  khởi tạo (tt)  Ví dụ 1: int soChan[] = {2, 4, 6, 8, 10};   Mảng soChan có 5 phần tử số nguyên, lần  lượt là:  soChan[0] có giá trị là 2  soChan[1] có giá trị là 4  ...  soChan[4] có giá trị là 10 Ví dụ 2: char st[] = {'h', 'e', 'l', 'l', 'o'}; 10
  10. 2. Mảng một chiều: Ví dụ 1 Tạo một mảng số nguyên có 10 phần tử. Mỗi phần tử có giá trị là  chỉ mục của nó. In mảng ra màn hình. #include  #include   #define N 10 // kich thuoc toi da cua mang void main()  {  int a[N];  // nhập mảng for( int i=0; i
  11. Viết hàm nhập, xuất mảng 1 chiều #include void NhapMang( int a[ ], int n ) #include { #define N 20 // kich thuoc toi da for( int i=0; i
  12. 2. Mảng một chiều: Ví dụ 2 Đổi một số nguyên dương thập phân thành số nhị phân. n/2 void main() n=46 2 n= { 0 2 n%2 23 int i, j=0, n, np[20]; 11 2 1 2 coutn; 1 5 do{ 1 2 2 2 np[j]= n%2; 0 1 j++; 1 0 n = n/2; }while(n>0); cout
  13. Sử dụng hàm tạo số ngẫu nhiên (c1)  Để tạo ra số ngẫu nhiên, sử dụng hàm random  Cú pháp: int random(int n) ◦Kết quả của hàm là tạo ra số nguyên ngẫu nhiên có  giá trị trong đoạn [0, n­1]  Để tránh lặp lại bộ số giống nhau mỗi lần chạy  chương trình, phải dùng thêm hàm randomize  Để sử dụng các hàm trên thì trong chương trình  phải khai báo thư viện  14
  14. Ví dụ: Sử dụng hàm tạo số ngẫu nhiên #include void NhapMang( int a[], int n ) #include { #include randomize(); #define N 20 // kich thuoc toi da for( int i=0; i
  15. Sử dụng hàm tạo số ngẫu nhiên (c2)  Sử dụng hàm rand(), trong thư viện   Hàm rand() trả về 1 số nguyên ngẫu nhiên có giá trị  trong đoạn [0, RAND_MAX] ◦ RAND_MAX là một hằng số được định nghĩa trong tập  tin cstdlib, nhưng ít nhất bằng 32767  Để tránh phát sinh số quá lớn, thường dùng:  ◦ rand()% 100   phát sinh số thuộc [0, 99] rand()% 100 + 1  phát sinh số thuộc [1, 100] rand()% 30 + 1985  phát sinh số thuộc [1985, 2014]  Để tránh lặp lại bộ số giống nhau mỗi lần chạy  chương trình, dùng thêm lệnh: srand ( time(NULL) ),  hàm time thuộc thư viện   16
  16. Ví dụ: Sử dụng hàm tạo số ngẫu nhiên #include void NhapMang( int a[], int n ) #include { #include srand ( time(NULL) ); #include for( int i=0; i
  17. Nội dung trình bày 1. Khái niệm 2. Mảng một chiều 3. Một số bài toán trên mảng một chiều 4. Mảng hai chiều 5. Một số bài toán trên mảng hai chiều 18
  18. 3. Một số bài toán trên mảng 1  chiều  Tính tổng, tích các phần tử mảng  Tìm kiếm trên mảng theo điều kiện cho trước  Đếm số phần tử mảng theo điều kiện cho trước  Tìm phần tử lớn nhất, nhỏ nhất của mảng  Sắp xếp mảng tăng dần, giảm dần 19
  19. Tính tổng, tích giá trị các phần tử  Giả sử a là tên mảng, n là số phần tử, s là giá trị  cần tính  Tổng giá trị các phần tử trong mảng: s=0 int s=0; i=0 s=4 for( int i=0; i
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0