Xem mẫu

  1. Bài 8 – Mảng một chiều (Dãy)  Khái niệm mảng một chiều  Khai báo mảng  Nhập/xuất mảng  Các bài toán về mảng một chiều  Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 1
  2. 1. Khái niệm mảng một chiều  Mảng một chiều là một công cụ cho  phép tổ chức quản lý dữ liệu dưới dạng  “dãy”  Ví dụ: Xét dãy số sau đây:4 A: 5 7 1 9 A0 A1 A2 A3 A4 Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 2
  3. Các phần tử của mảng  Mảng một chiều bao gồm nhiều phần tử,  mỗi phần tử được đặc trưng bởi hai yếu  tố: Giá trị của phần tử và vị trí của phần  tử trong mảng  Một phần tử bất kỳ của mảng thường  được kí hiệu là A[i], trong đó: + A là tên mảng + i là vị trí của phần tử trong mảng Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 3
  4. 2. Khai báo mảng  Muốn sử dụng mảng một chiều trong  chương trình thì phải khai báo nó  Khai báo mảng thực chất là sự khai báo  đồng thời nhiều biến có cùng kiểu dữ liệu  Có nhiều cách khai báo khác nhau Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 4
  5. Các cách khai báo mảng một chiều:  Cách 1: KiểuDL  TênMảng[Số phần tử tối đa]; Ví dụ 1: int  A[100];   Mảng này có tối đa 100 phần tử, mỗi phần  tử là một số nguyên Khai báo trên sẽ tạo ra 100 biến nguyên:  A[0], A[1], ... , A[99] Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 5
  6. Ví dụ 2: char  B[60];   Mảng này có tối đa 60 phần tử, mỗi  phần tử là một kí tự Khai báo trên sẽ tạo ra 60 biến kiểu kí tự:  B[0], B[1], ... , B[59] Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 6
  7.  Cách 2: vector     TênMảng(Số phần tử tối đa); Ví dụ: vector    A(100);   Mảng này có tối đa 100 phần tử, mỗi phần  tử là một số nguyên Chú ý: Muốn sử dụng cách khai báo này thì phải  viết dòng sau đây ở đầu chương trình: #include   Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 7
  8. 3. Nhập/xuất mảng  Nhập dữ liệu cho mảng từ bàn phím: Thực chất là nhập dữ liệu cho nhiều biến,  do đó cần sử dụng vòng lặp. Ví dụ 1: Nhập một dãy số nguyên có 8 phần tử. Cần lặp 8 lần! Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 8
  9. Các lệnh nhập: int  A[8];  for (int i = 0; i 
  10. Các lệnh xuất (hiển thị):   Ví dụ 2: Hiện dãy số vừa nhập (8 phần tử) ra màn hình.   cout 
  11. Chương trình: #include  using namespace std; main()  { int  A[8];     for (int i = 0; i 
  12. Cách 2: #include  #include  using namespace std; main()  { vector    A(8);     for (int i = 0; i 
  13. Bài tập:  Nhập một dãy số thực có N phần tử (N là  một giá trị bất kỳ nhập từ bàn phím). Hiện dãy vừa nhập ra màn hình. Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 13
  14. Nội dung chương trình: #include  using namespace std; main()  { float  A[100];  int N ;    cout  N ;    for (int i = 0; i 
  15. 4. Các bài toán về mảng một chiều   Bài toán tính tổng, đếm số lượng, trung  bình cộng  Bài toán tìm giá trị lớn nhất, nhỏ nhất, vị  trí phần tử  Thêm ­ bớt phần tử  Bài toán đổi chỗ, sắp xếp dãy ... Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 15
  16. Ví dụ 1:  Nhập một dãy có N số thực từ bàn phím  rồi tính tổng của chúng Hiện tổng và hiện dãy ra màn hình. Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 16
  17. Thuật toán tính tổng? + Ban đầu tổng S bằng 0 + Mỗi khi nhập được một số thì đem cộng  nó vào tổng S (Lặp lại N lần) Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 17
  18. Thuật toán tính tổng N số:    S = 0;    cout  N ;    for (int i = 0; i 
  19. Bài tập:  Nhập một dãy có N số thực từ bàn phím  rồi tính trung bình cộng của chúng Hiện trung bình cộng và hiện dãy ra màn  hình. Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 19
  20. Bài tập ứng dụng: 1. Nhập lượng mưa của bảy ngày trong tuần  từ bàn phím rồi tính lượng mưa trung bình.  2. Giả sử một học kì có N môn học. Hãy  nhập điểm các môn học từ bàn phím rồi  tính điểm trung bình của học kì (tạm coi các môn có hệ số bằng nhau) Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 20
nguon tai.lieu . vn