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 6 (tiếp theo)

Chia sẻ: Trang đặng | Ngày: | Loại File: PPT | Số trang:43

86
lượt xem
9
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 6 (tiếp theo)trình bày những kiến thức cơ bản về khai báo biến dữ liệu, truy xuất biến, truyền thông số, sử dụng hàm tạo số ngẫu nhiên và một số thuật tóan trên Array một chiều và hai chiều. Tài liệu hữu ích với những bạn chuyên ngành Công nghệ Thông tin.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Phương pháp lập trình: Chương 6 (tiếp theo)

  1. CÂU HỎI: Cho biết kết quả thực thi chương trình sau: int f(int); void main() { int n=3; cout
  2. CHƯƠNG 6 KIỂU ARRAY (Tiếp theo)
  3. A. ARRAY 1 CHIỀU: I. Khai báo biến kiểu array II. Truy xuất biến array III. Truyền thông số kiểu array IV. Sử dụng hàm tạo số ngẫu nhiên V. Một số thuật tóan trên array
  4. III. Hàm có thông số kiểu array:  Thông số hình thức không cần chỉ định số phần tử. Thông số thực có thể có số lượng phần tử bất kỳ. Ví dụ 1: Hàm xuất giá trị mảng void xuat(int a[], int n) { for(int i=0; i
  5. III. Hàm có thông số kiểu array  Thông số kiểu array mặc định truyền dạng tham biến. Ví dụ 1: Hàm nhập giá trị mảng void nhap(int a[], int& n) { coutn; for (int i=0; i
  6. IV. Sử dụng hàm tạo số ngẫu nhiên  Hàm random(n) cho kết quả là một số ngẫu nhiên có trị 0  n -1.  Các số ngẫu nhiên sinh ra thay đổi sau mỗi lần gọi hàm khởi động trình ngẫu nhiên randomize();  Hai hàm này được cung cấp bởi thư viện stdlib.h
  7. Ví dụ 1: Nhập các phần tử mảng bằng số ngẫu nhiên 0-99: void nhap(int a[], int& n) { coutn; randomize(); for (int i=0; i
  8. V. Một số thuật tóan thường gặp trên dữ liệu kiểu array 0. max/min 1. Tính tổng/tích dãy số: Duyệt tòan bộ mảng, thực hiện cộng hoặc nhân tích lũy. int tong(int a[], int n) { int sum=0; for (int i=0; i
  9. V. Một số thuật tóan thường gặp trên dữ liệu kiểu array 2. Tìm kiếm: Duyệt mảng cho đến khi tìm thấy. Thường sử dụng lệnh lặp while. Ví dụ 1: Tìm vị trí phần tử đầu tiên có trị x. Nếu không tìm thấy trả về -1. int ViTri(int a[], int n, int x) { int vt=0; while (vt
  10. V. Một số thuật tóan thường gặp trên dữ liệu kiểu array Ví dụ 2: Tìm vị trí phần tử cuối cùng của dãy là số nguyên tố (-1 nếu không tìm thấy). int PrimeNumber(int n) { if (n==0) return 1; if (n==1) return 0; if (n
  11. V. Một số thuật tóan thường gặp trên dữ liệu kiểu array int LastPrimeNumber(int a[], int n) { int i=n-1; while (!PrimeNumber(a[i]) && i>=0) i--; return i; }
  12. V. Một số thuật tóan thường gặp trên dữ liệu kiểu array 3. Đếm số phần tử theo điều kiện cho trước: Duyệt tòan bộ mảng, tăng trị biến đếm khi phần tử đang duyệt thỏa điều kiện. Ví dụ: Đếm số phần tử lẽ. Đếm số phần tử chẵn. Đếm số phần tử là số chính phương.
  13. V. Một số thuật tóan thường gặp trên dữ liệu kiểu array Ví dụ: Đếm số phần tử là số chính phương. int ChinhPhuong(int n) { int i=1; while (i*i
  14. V. Một số thuật tóan thường gặp trên dữ liệu kiểu array 4. Sắp xếp – Thuật tóan bubble sort: Mô tả thuật tóan:  Duyệt tòan bộ n phần tử mảng, tìm phần tử nhỏ nhất đặt lên vị trí đầu bằng cách đổi chỗ // 0  n-1  Kế đến, duyệt n-1 phần tử còn lại, tìm phần tử nhỏ nhất đặt lên vị trí 1 bằng cách đổi chỗ // 1  n-1  Kế đến, duyệt n-2 phần tử còn lại, tìm phần tử nhỏ nhất đặt lên vị trí 2 bằng cách đổi chỗ // 2  n-1  ...  Cuối cùng duyệt 2 phần tử cuối // n-2  n-1
  15. V. Một số thuật tóan thường gặp trên dữ liệu kiểu array 4. Sắp xếp – Thuật tóan bubble sort: Câu lệnh tương ứng:  i=0; for( j =i+1; j
  16. V. Một số thuật tóan thường gặp trên dữ liệu kiểu array 4. Sắp xếp – Thuật tóan bubble sort: Cài đặt hàm: void sort(int a[], int n) { for(int i=0; i
  17. B. ARRAY 2 CHIỀU: Định nghĩa: Là kiểu mảng một chiều trong đó mỗi phần tử có kiểu là kiểu mảng một chiều. Nội dung: I. Khai báo và truy xuất phần tử. II. Truyền thông số kiểu array 2 chiều. III. Một số thuật tóan trên array 2 chiều.
  18. I. Khai báo và truy xuất phần tử 1. Cú pháp khai báo biến: TênKiểu TênBiến[N1][N2] Ý nghĩa: Khai báo biến TênBiến là dãy có N1 phần tử, mỗi phần tử là dãy N2 phần tử kiểu TênKiểu Trong đó: TênKiểu: các kiểu cơ sở, là kiểu đơn N1, N2 là các hằng số N1 là số phần tử của chiều thứ 1 N2 là số phần tử của chiều thứ 2
  19. I. Khai báo và truy xuất phần tử Ví dụ 1: Để lưu điểm của 5 môn, mỗi môn có 3 cột điểm. float diem[5][3]; Ví dụ 2: Lưu họ tên cho 10 sinh viên, mỗi họ tên là một dãy 30 ký tự. char HoTen[10][30];
  20. I. Khai báo và truy xuất phần tử Lưu ý 1: Người ta thường trình bày mỗi phần tử của chiều thứ 1 trên một dòng. Nên N1 còn gọi là số dòng, N2 là số cột. Ví dụ 3: Biến diem là một bảng 5 dòng, 3 cột Biến HoTen một bảng 10 dòng, 30 cột Ví dụ 4: Để lưu ma trận số nguyên dạng sau: 4 5 7 1 2 1 8 4 4 6 1 4 Ta khai báo biến: int MaTran[3][4];
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
4=>1