Danh mục

Bài thực hành số 5: Kỹ thuật xử lý mảng một chiều

Số trang: 11      Loại file: doc      Dung lượng: 101.50 KB      Lượt xem: 3      Lượt tải: 0    
Thu Hiền

Phí tải xuống: 1,000 VND Tải xuống file đầy đủ (11 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Kiểu của mảng (của các phần tử của mảng), có thể là một kiểu dữliệu nào đó khác kiểu mảng.
Nội dung trích xuất từ tài liệu:
Bài thực hành số 5: Kỹ thuật xử lý mảng một chiềuBài thực hành số 5: Kỹ thuật xử lý mảng một chiều A. Mục tiêu Tổ chức tốt hệ thống menu chương trình  Nắm vững các khái niệm, thao tác nhập xuất trên mảng một chiều  Nắm vững một số kỹ thuật xử lý cơ bản trên mảng 1 chiều  Rèn luyện cách gọi hàm, truyền tham số.  B. Ôn tập:  Cú pháp định nghĩa biến mảng, kiểu mảng.  Các thao tác nhập xuất dữ liệu  Các kỹ thuật xử lý mảng 1. Cú pháp khai báo (định nghĩa) biến mảng 1 chiều KDL Ten_Mang[KT];Trong đó: • KDL: Kiểu của mảng (của các phần tử của mảng), có thể là một kiểu dữ liệu nào đó khác kiểu mảng. • Ten_Mang: Tên của mảng (là một từ tự đặt, đặt theo qui ước đặt tên) • KT: một số nguyên dương 2. Cú pháp định nghĩa Kiểu mảng 1 chiều typedef KDL Ten_Mang[KT]; • Ten_Mang: trở thành tên của kiểu dữ liệu mảng 1 chiều 3. Các thao tác nhập xuất://Hàm nhập dữ liệu; MAX: là một giá trị hằng định nghĩa trướcvoid Nhap (int a[MAX], int n){ int i; for ( i = 0; i < n; i++) { coutLưu ý: a. đối với mảng 1 chiều, có 2 giá trị thường đi theo: • KT: kích thước khai báo, là một giá trị có trước, nên là một hằng định nghĩa trước. • n : Kích thước thực sự của mảng trong mỗi lần chạy chương trình (n 1. Tìm x có trong a ? Nếu có trả về 1, nếu không trả về 0.2. a có thứ tự tăng3. Max(a0,..,an-1): giá trị lớn nhất của dãy.4. CSDT_Max : Trả về chỉ số đầu tiên đạt max(a0,..,an-1)5. Thóat khỏi chương trình - Muốn thực hiện thao tác nào thì chọn chức năng tương ứng của menu .Thực hiện:Bước 1: Tạo Project với tên “Lab5_Vd1”.Bước 2: Tạo tập tin chương trình vd1.cppBước 3: Trong tập tin vd1.cpp, soạn code theo cấu trúc:#include #define MAX 1000using namespace std;//Cac ham menuvoid Menu();int ChonMenu();void XL_Menu(int a[MAX], int n, int Chon);//Cac ham nhap xuatvoid Nhap (int a[MAX], int n);void Xuat (int a[MAX], int n);//Cac ham chuc nangint Tim_x(int a[MAX], int n, int x);int Tang(int a[MAX], int n);int Max(int a[MAX], int n);int CSDT_Max(int a[MAX], int n);//---------------------------------------------------void main(){ int Chon, n, a[MAX]; coutn; Nhap (a, n); do { Chon = ChonMenu(); XL_Menu(a, n,Chon); } while(1);}void Menu(){ cout for(;;) { Menu(); cout>Chon; if (1 //void Xuat (int a[MAX], int n) : Tự viết//---------------------------------------------------//Tim x co trong mang : bt ORint Tim_x(int a[MAX], int n, int x){ int i, Kq = 0; for(i= 0; i < n; i++) if(a[i] == x) { Kq = 1; break; } return Kq;}//Kiem tra day tang : BT ANDint Tang(int a[MAX], int n){ int Kq, i; Kq = 1;//Day tang - AND for(i = 0; i < n-1; i++) if(a[i] > a[i+1]) { Kq = 0; break; } return Kq;}//Tim gia tri max cua day: Thu va saiint Max(int a[MAX], int n){ int i, Gt_Max; Gt_Max = a[0]; for(i = 1; i < n; i++) if(Gt_Max < a[i]) Gt_Max = a[i]; return Gt_Max;}//Tra ve chi so cua phan tu dau tien dat max: Thu va saiint CSDT_Max(int a[MAX], int n){ int Kq, i, Max; Kq = 0; Max = a[Kq]; for(i = 1; i < n; i++) if(Max < a[i]) { Kq = i; Max = a[Kq]; } return Kq;}Ví dụ 2: (Các bài toán Duyệt, Thử và sai) Viết chương trình thực hiện các thao tác trên dãy a gồm n số nguyên. Yêu cầucủa chương trình là : - In ra màn hình menu có các chức năng sau :1. Đếm số lần xuất hiện của x trong dãy a2. Tổng các phần tử trong dãy3. Tổng các số nguyên tố trong dãy4. Sắp theo yêu cầu: • Đầu dãy: Các số dương tăng dần • Tiếp theo: Các số âm giảm dần • Cuối cùng: Các số 05. Thóat khỏi chương trình - Muốn thực hiện thao tác nào thì chọn chức năng tương ứng của menu .Thực hiện:Bước 1: Tạo Project với tên “Lab5_Vd2”.Bước 2: Tạo tập tin chương trình vd2.cppBước 3: Trong tập tin vd2.cpp, soạn code theo cấu trúc://Duyet, THU VA SAI#include #include #define MAX 1000using namespace std;//Cac ham menuvoid Menu();int ChonMenu();void XL_Menu(int a[MAX], int n, int Chon);//Cac ham nhap xuatvoid Nhap (int a[MAX], int n);void Xuat (int a[MAX], int n);//Cac ham chuc nangint Dem_x(int a[MAX], int n, int x);int Tong(int a[MAX], int n);int Tong_NT(int a[MAX], int n);void Sap_D_A_0(int a[MAX], int n);//Cac ham bo troint Nt(int x);//-----------------------------------------------void main(){ int Chon, n, a[MAX]; coutn; Nhap (a, n); do { Chon = ChonMenu(); XL_Menu(a, n,Chon); } while(1);}void Menu(){ cout Sap_D_A_0(a,n); cout//Duyet cuc bo - Lap bangvoid Sap_D_A_0(int a[MAX], int n){ int i,j, t, Mc; for(i= 0; i < n-1; i++) for(j= i+1; j < n; j++) { Mc = ((a[i] < 0) && (a[j] < 0) && (a[i] < a[j])) || ...

Tài liệu được xem nhiều: