1. Trang chủ
  2. » Luận Văn - Báo Cáo

Các thao tác trên mảng hai chiều các số nguyên

165 1,1K 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 165
Dung lượng 900,03 KB

Nội dung

các kĩ thuật đếm,tìm kiếm tính tổng,tính trung bình cộng,...... đây là các kĩ thuật trong môn lập trình bên công nghệ thông tin .... Trong thời gian được học tập tại trường, với chuyên ngành công nghệ thông tin em đã đúc kết được số kiến thức và hiểu thêm về chuyên ngành này. Nay em chọn đề tài “Mảng hai chiều và các thao tác xử lý trên mảng hai chiều các số nguyên” để làm đồ án cơ sở ngành. Nội dung của đồ án gồm 3 chương, chương 1 là những thao tác xử lý trên mảng hai chiều các số nguyên như nhập mảng từ bàn phím và gieo ngẫu nhiên, xuất mảng, thao tác tìm kiếm, đếm, tính tổng, tính trung bình cộng trên ma trận, trên dòng, cột cho số chẵn, số lẻ, số âm, số dương….. và thao tác sắp xếp tăng dần, giảm dần cho số nguyên trong ma trận, thao tác đổi chỗ hai dòng, hai cột bất kì. Chương 2 gồm các thuật toán xử lý trên ma trận vuông như nhập mảng, xuất mảng, tìm kiếm, đếm, tính tổng, tính trung bình cộng trên đường chéo chính, chéo phụ, dưới đường chéo chính, chéo phụ, phía trên, phía dưới đường chéo chính, đường chéo phụ. Chương 3 là chương trình minh họa với menu lựa chọn cho các thao tác xử lý trên mảng hai chiều các số nguyên.

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG CAO ĐẲNG CÔNG THƯƠNG TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN CƠ SỞ NGÀNH

MẢNG HAI CHIỀU VÀ CÁC THAO TÁC

XỬ LÝ TRÊN MẢNG HAI CHIỀU CÁC

Trang 2

MỤC LỤC

Trang 3

DANH MỤC CÁC HÌNH

LỜI MỞ ĐẦU

Trong thời gian được học tập tại trường, với chuyên ngành công nghệ thông tin

em đã đúc kết được số kiến thức và hiểu thêm về chuyên ngành này Nay em chọn đề

tài “Mảng hai chiều và các thao tác xử lý trên mảng hai chiều các số nguyên” để

làm đồ án cơ sở ngành

Nội dung của đồ án gồm 3 chương, chương 1 là những thao tác xử lý trên mảng hai chiều các số nguyên như nhập mảng từ bàn phím và gieo ngẫu nhiên, xuất mảng, thao tác tìm kiếm, đếm, tính tổng, tính trung bình cộng trên ma trận, trên dòng, cột cho

số chẵn, số lẻ, số âm, số dương… và thao tác sắp xếp tăng dần, giảm dần cho số nguyên trong ma trận, thao tác đổi chỗ hai dòng, hai cột bất kì Chương 2 gồm các thuật toán xử lý trên ma trận vuông như nhập mảng, xuất mảng, tìm kiếm, đếm, tính tổng, tính trung bình cộng trên đường chéo chính, chéo phụ, dưới đường chéo chính, chéo phụ, phía trên, phía dưới đường chéo chính, đường chéo phụ Chương 3 là chương trình minh họa với menu lựa chọn cho các thao tác xử lý trên mảng hai chiều các số nguyên

Trang 4

Chương 1 MẢNG 2 CHIỀU VÀ CÁC THUẬT TOÁN XỬ LÝ

TRÊN MẢNG 2 CHIỀU CÁC SỐ NGUYÊN1.1 Nhập mảng

1.1.1 Nhập mảng từ bàn phím

 Yêu Cầu: Nhập mảng hai chiều các số nguyên gồm n dòng, m cột từ bàn phím.

• Input: Nhập m,n và các phần tử trong mảng hai chiều các số nguyên

Ngược lại thì thoát

cout<<"a["<<i<<"]["<<j<<"]";

cin>>a[i][j];

}}

1.1.2 Nhập mảng gieo ngẫu nhiên

 Yều cầu: Nhập mảng hai chiều số nguyên gieo ngẫu nhiên gồm n dòng, m cột.

• Input: Nhập mảng hai chiều gieo ngẫu nhiên n dòng, m cột số nguyên

Trang 5

B3.2: Nếu j<n thì sang bước 3.2.1

B3.2.1: gieo ngẫu nhiên a[i][j]

B3.2.2: j=j+1 Quay lại bước 3.2 Ngược lại sang bước 3.3B3.3: i=i+1 Quay lại bước 3

Ngược lại thì thoát

srand((unsigned)(time(NULL)));

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

for (int j = 0; j < m; j++){

a[i][j] = -20 + rand() % (50 - (-20) + 1);

cin >> a[i][j];

}}

1.2 Xuất mảng

 Yêu cầu:

• Input: Nhập m,n và các phần tử trong mảng hai chiều các số nguyên

• Output: xuất mảng hai chiều số nguyên

Ngược lại thì thoát

 Hàm cài đặt:

void xuat(int a[][50], int m, int n)

{

cout << "ma tran vua nhap la:\n";

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

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

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

Trang 6

cout << "\n";

}}

1.3 Tìm kiếm

1.3.1 Trên cả ma trận

1.3.1.1 Số dương

 Yêu cầu:

• Input: khai báo mảng 2 chiều có m dòng,n cột số nguyên

Output: Tìm các số là số dương trên cả ma trận.

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 3

B3: Cho j=0

B4: Nếu j<n thì sang bước 4.1

B4.1: Nếu a[i][j] là dương in các phần tử dương

B4.2: j=j+1 Quay lại bước 4.Ngược lại sang B5

B5: i=i+1 Quay lại bước 3

Ngược lại thì thoát

}

1.3.1.2 Số âm

 Yêu cầu:

• Input: khai báo mảng 2 chiều có m dòng,n cột số nguyên

• Output: Tìm các số âm trên cả ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 3

B3: Cho j=0

B4: Nếu j<n thì sang bước 4.1

B4.1: Nếu a[i][j] là âm in các phần tử âm

B4.2: j=j+1 Quay lại bước 4.Ngược lại sang B5

B5: i=i+1 Quay lại bước 3

Ngược lại thì thoát

Trang 7

cout <<"so Am la:"<< a[i][j]<<endl;

B4.2: j=j+1 Quay lại bước 4.Ngược lại sang B5

B5: i=i+1 Quay lại bước 3

Ngược lại thì thoát

B4.2: j=j+1 Quay lại bước 4.Ngược lại sang B5

B5: i=i+1 Quay lại bước 3

Ngược lại thì thoát

Trang 8

1.3.1.5 Số nguyên tố

 Yêu cầu:

• Input: khai báo mảng 2 chiều có m dòng,n cột số nguyên

• Output: Tìm các số nguyên tố trên cả ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 3

B3: Cho j=0

B4: Nếu j<n thì sang bước 4.1

B4.1: Nếu a[i][j] là nguyên tố in các phần tử số nguyên tố

B4.2: j=j+1 Quay lại bước 4.Ngược lại sang B5

B5: i=i+1 Quay lại bước 3

Ngược lại thì thoát

 Hàm cài đặt:

Hàm kiểm tra nguyên tố

int KTNT(int x){

• Input: khai báo mảng 2 chiều có m dòng,n cột số nguyên

• Output: Tìm các số hoàn thiện trên cả ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 3

B3: Cho j=0

B4: Nếu j<n thì sang bước 4.1

B4.1: Nếu a[i][j] là hoàn thiện in các phần tử số nguyên tố

B4.2: j=j+1 Quay lại bước 4.Ngược lại sang B5

B5: i=i+1 Quay lại bước 3

Ngược lại thì thoát

 Hàm cài đặt:

Hàm Kiểm tra hoàn thiện

Trang 9

int KTHT(int x){

• Input: khai báo mảng 2 chiều có m dòng,n cột số nguyên

• Output: Tìm các số chính phương trên cả ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 3

B3: Cho j=0

B4: Nếu j<n thì sang bước 4.1

B4.1: Nếu a[i][j] là chính phương in các phần tử số chính phương

B4.2: j=j+1 Quay lại bước 4.Ngược lại sang B5

B5: i=i+1 Quay lại bước 3

Ngược lại thì thoát

 Hàm cài đặt:

Hàm kiểm tra số chính phương

int KTCP(int x){

Trang 10

1.3.2 Trên dòng

1.3.2.1 Số dương

 Yêu cầu:

• Input: Khai báo mảng 2 chiều có m dòng,n cột số nguyên

• Output: Tìm các số dương trên từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 3

B3: Cho j=0

B3.1: Nếu j<n thì sang bước 3.2

B3.2: Nếu a[i][j] dương thì in các số dương trên dòng i

B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

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

cout << a[i][j] <<" ";}

• Input: Khai báo mảng 2 chiều có m dòng,n cột số nguyên

• Output: Tìm các phần tử âm trên từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 3

B3: Cho j=0

B3.1: Nếu j<n thì sang bước 3.2

B3.2: Nếu a[i][j] âm thì in các số âm trên dòng i

B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

 Hàm cài đặt:

void TimAmDong(int a[][MAX], int m, int n)

Trang 11

if (a[i][j]< 0)

cout << a[i][j] <<" ";}

• Input: Khai báo mảng 2 chiều có m dòng,n cột số nguyên

• Output: Tìm các phần tử chẵn trên từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 3

B3: Cho j=0

B3.1: Nếu j<n thì sang bước 3.2

B3.2: Nếu a[i][j] chẵn thì in các số chẵn trên dòng i

B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

if (a[i][j] % 2 == 0)

cout << a[i][j] <<" ";}

• Input: Khai báo mảng 2 chiều có m dòng,n cột số nguyên

• Output: Tìm các phần tử lẻ trên từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 3

Trang 12

B3: Cho j=0.

B3.1: Nếu j<n thì sang bước 3.2

B3.2: Nếu a[i][j] lẻ thì in các số lẻ trên dòng i

B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

if (a[i][j] % 2 != 0)

cout << a[i][j] <<" ";}

• Input: Khai báo mảng 2 chiều có m dòng,n cột số nguyên

• Output: Tìm các phần tử số nguyên tố trên từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 3

B3: Cho j=0

B3.1: Nếu j<n thì sang bước 3.2

B3.2: Nếu a[i][j] là nguyên tố thì in các số nguyên tố trên dòng i

B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

if (KTNT(a[i][j])==1)

cout << a[i][j] <<" ";}

cout << endl;

}

}

Trang 13

1.3.2.6 Số hoàn thiện

 Yêu cầu:

• Input: Khai báo mảng 2 chiều có m dòng,n cột số nguyên

• Output: Tìm các phần tử là số hoàn thiện trên từng dòng ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 3

B3: Cho j=0

B3.1: Nếu j<n thì sang bước 3.2

B3.2: Nếu a[i][j] là hoàn thiện thì in các số hoàn thiện trên dòng i

B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

if (KTHT(a[i][j]) == 1)

cout << a[i][j] <<" ";}

• Input: Khai báo mảng 2 chiều có m dòng,n cột số nguyên

• Output: Tìm các số hoàn thiện trên từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 3

B3: Cho j=0

B3.1: Nếu j<n thì sang bước 3.2

B3.2: Nếu a[i][j] là chính phương thì in các số chính phương trên dòng i.B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4

B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

Trang 14

if (KTCP(a[i][j]) == 1)

cout << a[i][j] <<" ";}

• Input: Khai báo mảng hai chiều số nguyên có m dòng,n cột

• Output: Tìm các phần tử dương trên cột của ma trận

 Giải thuật:

B1: Cho j=0;

B2: Nếu j<n thì chuyển qua bước 3

B3: Cho i=0

B3.1: Nếu i<m thì sang bước 3.2

B3.2: Nếu a[i][j] dương thì in các số dương trên cột j

B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

cout <<"so duong tren cot"<< j <<":";

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

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

cout << a[i][j] <<" ";}

• Input: Khai báo mảng 2 chiều số nguyên gồm m dòng,n cột

• Output: Tìm các phần tử âm trên từng cột của ma trận

 Giải thuật:

B1: Cho j=0;

B2: Nếu j<n thì chuyển qua bước 3

B3: Cho i=0

B3.1: Nếu i<m thì sang bước 3.2

B3.2: Nếu a[i][j] âm thì in các số âm trên cột j

Trang 15

B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

cout <<"so am tren cot"<< j <<":";

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

if (a[i][j]< 0)

cout << a[i][j] <<" ";}

• Input: Khai báo mảng 2 chiều số nguyên gồm m dòng,n cột

• Output: Tìm các số chẵn trên từng cột của ma trận

 Giải thuật:

B1: Cho j=0;

B2: Nếu j<n thì chuyển qua bước 3

B3: Cho i=0

B3.1: Nếu i<m thì sang bước 3.2

B3.2: Nếu a[i][j] chẵn thì in các số chẵn trên cột j

B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

cout <<"so chan tren cot"<< j <<":";

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

if (a[i][j] % 2 == 0)

cout << a[i][j] <<" ";}

Trang 16

• Input: khai báo mảng 2 chiều số nguyên gồm m dòng,n cột.

• Output: Tìm các số lẻ trên từng cột của ma trận

cout <<"so le tren cot"<< j <<":";

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

if (a[i][j] % 2 != 0)

cout << a[i][j] <<" ";}

• Input: khai báo mảng hai chiều số nguyên gồm m dòng,n cột

• Output: Tìm các phần tử là số nguyên tố trên từng cột của ma trận

 Giải thuật:

B1: Cho j=0;

B2: Nếu j<n thì chuyển qua bước 3

B3: Cho i=0

B3.1: Nếu i<m thì sang bước 3.2

B3.2: Nếu a[i][j] là nguyên tố thì in các số nguyên tố trên cột j

B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

cout <<"so nguyen to tren cot" << j <<":";

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

if (KTNT(a[i][j])==1)

cout << a[i][j] <<" ";}

Trang 17

• Input: Khai báo mảng hai chiều số nguyên gồm m dòng,n cột

• Output: Tìm các số hoàn thiện trên từng cột của ma trận

 Giải thuật:

B1: Cho j=0;

B2: Nếu j<n thì chuyển qua bước 3

B3: Cho i=0

B3.1: Nếu i<m thì sang bước 3.2

B3.2: Nếu a[i][j] là hoàn thiện thì in các số hoàn thiện trên cột j

B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

cout <<"so hoan thien tren cot"<< j <<":";

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

if (KTHT(a[i][j]) == 1)

cout << a[i][j] <<" ";}

• Input: Khai báo mảng 2 chiều số nguyên gồm m dòng,n cột

• Output: Tìm các phần tử là số chính phương trên từng cột của ma trận

 Giải thuật:

B1: Cho j=0;

B2: Nếu j<n thì chuyển qua bước 3

B3: Cho i=0

B3.1: Nếu i<m thì sang bước 3.2

B3.2: Nếu a[i][j] là chính phương thì in các số chính phương trên cột j.B3.3: j=j+1 Quay lại bước 3.1 Ngược lại sang bước 3.4

B3.4: i=i+1 Quay lại bước 3

Ngược lại thì thoát

cout <<"so chinh phuong tren cot"<< j <<":";

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

if (KTCP(a[i][j]) == 1)

Trang 18

cout << a[i][j] <<" ";}

cout << endl;

}}

1.4 Đếm

1.4.1 Trên cả ma trận

1.4.1.1 Số chẵn

 Yêu cầu:

• Input: khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng các số chẵn trên cả ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 2.1

B2.1: khai báo dem=0;

if (a[i][j]% 2 == 0)

dem++;

} return dem;

}

1.4.1.2 Số lẻ

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số lẻ trên cả ma trận

Trang 19

B2.2: i=i+1 Quay lại bước 2

Ngược lại thì giá trị trở về là dem và thoát

if (a[i][j]% 2 != 0)

dem++;

} return dem;

}

1.4.1.3 Số dương

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số dương trên cả ma trận

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

dem++;

} return dem;

}

1.4.1.4 Số âm

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số dương trên cả ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 2.1

Trang 20

if (a[i][j]<0)

dem++;

} return dem;

}

1.4.1.5 Số nguyên tố

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng là số nguyên tố trên cả ma trận

if (KTNT(a[i][j]==1))

dem++;

} return dem;

Trang 21

• Output: Đếm số lượng là số hoàn thiện trên cả ma trận.

if (KTHT (a[i][j]==1))

dem++;

} return dem;

}

1.4.1.7 Số chính phương

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output:Đếm số lượng số chính phương trên cả ma trận

Trang 22

1.4.2 Trên dòng

1.4.2.1 Số dương

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số dương trên từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số âm trên từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

Trang 23

• Input: khai báo mảng 2 chiều số nguyên có m dòng,n cột.

• Output: Đếm số lượng số chẵn trên từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

• Input: Khai báo mảng 2 chiều số nguyên gồm m dòng,n cột

• Output: Đếm số lượng số lẻ trên từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

Trang 24

Ngược lại thì giá trị trở về là đếm và thoát.

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số nguyên tố trên từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số hoàn thiện trên từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 2.1

Trang 25

B2.1: khai báo biến dem=0;

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số chính phương treen từng dòng của ma trận

 Giải thuật:

B1: Cho i=0;

B2: Nếu i<m thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

Trang 26

1.4.3 Trên cột:

1.4.3.1 Số dương

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số dương trên cột của ma trận

 Giải thuật:

B1: Cho j=0;

B2: Nếu j<n thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

• Input: khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số âm trên cột của ma trận

 Giải thuật:

B1: Cho j=0;

B2: Nếu j<n thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

Trang 27

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số chẵn trên cột cảu ma trận

 Giải thuật:

B1: Cho j=0;

B2: Nếu j<n thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số lẻ trên cột của ma trận

 Giải thuật:

B1: Cho j=0;

B2: Nếu j<n thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

Trang 28

Ngược lại thì giá trị trở về là đếm và thoát.

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: In số lượng số nguyên tố trên cột cảu ma trận

 Giải thuật:

B1: Cho j=0;

B2: Nếu j<n thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số hoàn thiện trên cột của ma trận

 Giải thuật:

B1: Cho j=0;

Trang 29

B2: Nếu j<n thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Đếm số lượng số chính phương trên cột của ma trận

 Giải thuật:

B1: Cho j=0;

B2: Nếu j<n thì chuyển qua bước 2.1

B2.1: khai báo biến dem=0;

Trang 30

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Tính tổng các số dương trên cả ma trận

B3.2: Nếu j<n thì sang bước 3.2.1

B3.2.1: Nếu a[i][j] dương thì tổng+=a[i][j];

B3.2.2: j=j+1 Quay lại bước 3.2 Ngược lại sang bước 3.3B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Tính tổng các số âm trên cả ma trận

B3.2: Nếu j<n thì sang bước 3.2.1

B3.2.1: Nếu a[i][j] âm thì tổng+=a[i][j];

B3.2.2: j=j+1 Quay lại bước 3.2 Ngược lại sang bước 3.3B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

 Hàm cài đặt:

int TongAm(int a[][MAX], int m, int n)

Trang 31

int tong = 0;

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

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

B3.2: Nếu j<n thì sang bước 3.2.1

B3.2.1: Nếu a[i][j] chẵn thì tổng+=a[i][j];

B3.2.2: j=j+1 Quay lại bước 3.2 Ngược lại sang bước 3.3B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

Trang 32

B3.1: Cho j=0.

B3.2: Nếu j<n thì sang bước 3.2.1

B3.2.1: Nếu a[i][j] lẻ thì tổng+=a[i][j];

B3.2.2: j=j+1 Quay lại bước 3.2 Ngược lại sang bước 3.3B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Tính tổng các số nguyên tố trên cả ma trận

B3.2: Nếu j<n thì sang bước 3.2.1

B3.2.1: Nếu a[i][j] là nguyên tố thì tổng+=a[i][j];

B3.2.2: j=j+1 Quay lại bước 3.2 Ngược lại sang bước 3.3B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

Trang 33

• Input: Khai báo mảng 2 chiều số nguyên có m dòng, n cột

• Output: Tính tổng các số hoàn thiện trên cả ma trận

B3.2: Nếu j<n thì sang bước 3.2.1

B3.2.1: Nếu a[i][j] là hoàn thiện thì tổng+=a[i][j];

B3.2.2: j=j+1 Quay lại bước 3.2 Ngược lại sang bước 3.3B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,n cột

• Output: Tính tổng các số chính phương trên cả ma trận

B3.2: Nếu j<n thì sang bước 3.2.1

B3.2.1: Nếu a[i][j] là chính phương thì tổng+=a[i][j];

B3.2.2: j=j+1 Quay lại bước 3.2 Ngược lại sang bước 3.3B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

if (KTCP(a[i][j]) == 1)

tong = tong + a[i][j];

Trang 34

• Input: Khai báo mảng 2 chiều số nguyên có k dòng,n cột.

• Output: Tính tổng các giá trị dương trên dòng k của ma trận

 Giải thuật:

B1: Khai báo biến tong=0;

B2: Cho j=0;

B3: Nếu j<n thì chuyển qua bước 3.1

B3.1: Nếu a[k][j] dương thì sang bước 3.2

B3.2: tổng= tong+a[k][j]

B3.3: j=j+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

tong += a[k][j];

}}

return tong;

}

1.5.2.2 Số âm

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có k dòng,n cột

• Output: Tính tổng các giá trị âm trên dòng k của ma trận

 Giải thuật:

B1: Khai báo biến tong=0;

B2: Cho j=0;

B3: Nếu j<n thì chuyển qua bước 3.1

B3.1: Nếu a[k][j] âm thì sang bước 3.2

B3.2: tổng= tong+a[k][j]

B3.3: j=j+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

 Hàm cài đặt:

int TongAmDongK(int a[][MAX], int k, int n)

{

int tong = 0;

Trang 35

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

{

if (a[k][j]<0){

tong += a[k][j];

}}

return tong;

}

1.5.2.3 Số chẵn

 Yêu cầu:

• Input: khai báo mảng 2 chiều số nguyên có k dòng,n cột

• Output: Tính tổng các giá trị chẵn trên dòng k của ma trận

 Giải thuật:

B1: Khai báo biến tong=0;

B2: Cho j=0;

B3: Nếu j<n thì chuyển qua bước 3.1

B3.1: Nếu a[k][j] chẵn thì sang bước 3.2

B3.2: tổng= tong+a[k][j]

B3.3: j=j+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

tong += a[k][j];

}}

return tong;

}

1.5.2.4 Số lẻ

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có k dòng,n cột

• Output: tính tổng các phần tử lẻ trên dòng k của ma trận

 Giải thuật:

B1: Khai báo biến tong=0;

B2: Cho j=0;

B3: Nếu j<n thì chuyển qua bước 3.1

B3.1: Nếu a[k][j] lẻ thì sang bước 3.2

B3.2: tổng= tong+a[k][j]

B3.3: j=j+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

Trang 36

tong += a[k][j];

}}

return tong;

}

1.5.2.5 Số nguyên tố

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có k dòng,n cột

• Output: Tính tổng các phần tử nguyên tố trên dòng k của ma trận

 Giải thuật:

B1: Khai báo biến tong=0;

B2: Cho j=0;

B3: Nếu j<n thì chuyển qua bước 3.1

B3.1: Nếu a[k][j] là nguyên tố thì sang bước 3.2

B3.2: tổng= tong+a[k][j]

B3.3: j=j+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

tong += a[k][j];

}}

return tong;

}

1.5.2.6 Số hoàn thiện

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có k dòng,n cột

• Output: Tính tổng các phần tử là số hoàn thiện trên dòng k của ma trận

Trang 37

B3.1: Nếu a[k][j] là hoàn thiện thì sang bước 3.2.

B3.2: tổng= tong+a[k][j]

B3.3: j=j+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

tong += a[k][j];

}}

return tong;

}

1.5.2.7 Số chính phương

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có k dòng,n cột

• Output: Tính tổng các phần tử là chính phương trên dòng k của ma trận

 Giải thuật:

B1: Khai báo biến tong=0;

B2: Cho j=0;

B3: Nếu j<n thì chuyển qua bước 3.1

B3.1: Nếu a[k][j] là chính phương thì sang bước 3.2

B3.2: tổng= tong+a[k][j]

B3.3: j=j+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

tong += a[k][j];

}}

Trang 38

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,c cột.

• Output: Tính tổng các giá trị dương trên cột C của ma trận

 Giải thuật:

B1: Khai báo biến tong=0;

B2: Cho i=0;

B3: Nếu i<m thì chuyển qua bước 3.1

B3.1: Nếu a[i][c] dương thì sang bước 3.2

B3.2: tổng= tong+a[i][c]

B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

tong += a[i][c];

}}

return tong;

}

1.5.3.2 Số âm

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có m dòng,c cột

• Output: Tính tổng các giá trị âm trên cột C của ma trận

 Giải thuật:

B1: Khai báo biến tong=0;

B2: Cho i=0;

B3: Nếu i<m thì chuyển qua bước 3.1

B3.1: Nếu a[i][c] âm thì sang bước 3.2

B3.2: tổng= tong+a[i][c]

B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

tong += a[i][c];

}}

return tong;

Trang 39

1.5.3.3 Số chẵn

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có m dòng, c cột

• Output: Tính tổng các giá trị chẵn trên cột C của ma trận

 Giải thuật:

B1: Khai báo biến tong=0;

B2: Cho i=0;

B3: Nếu i<m thì chuyển qua bước 3.1

B3.1: Nếu a[i][c] chẵn thì sang bước 3.2

B3.2: tổng= tong+a[i][c]

B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

tong += a[i][c];

}}

return tong;

}

1.5.3.4 Số lẻ

 Yêu cầu:

• Input: Khai báo mảng 2 chiều số nguyên có m dòng, c cột

• Output: Tính tổng các giá tri chẵn trên cột C của ma trận

 Giải thuật:

B1: Khai báo biến tong=0;

B2: Cho i=0;

B3: Nếu i<m thì chuyển qua bước 3.1

B3.1: Nếu a[i][c] lẻ thì sang bước 3.2

B3.2: tổng= tong+a[i][c]

B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

Trang 40

if (a[i][c]%2!=0){

tong += a[i][c];

}}

return tong;

}

1.5.3.5 Số nguyên tố

 Yêu cầu:

• Input: khai báo mảng 2 chiều số nguyên có m dòng, c cột

• Output: Tính tổng các giá trị là nguyên tố trên cột C của ma trận

 Giải thuật:

B1: Khai báo biến tong=0;

B2: Cho i=0;

B3: Nếu i<m thì chuyển qua bước 3.1

B3.1: Nếu a[i][c] là nguyên tố thì sang bước 3.2

B3.2: tổng= tong+a[i][c]

B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

tong += a[i][c];

}}

return tong;

}

1.5.3.6 Số hoàn thiện

 Yêu cầu:

• Input: khai báo mảng 2 chiều số nguyên có m dòng,c cột

• Output: Tính tổng các giá trị là hoàn thiện trên cột C của ma trận

 Giải thuật:

B1: Khai báo biến tong=0;

B2: Cho i=0;

B3: Nếu i<m thì chuyển qua bước 3.1

B3.1: Nếu a[i][c] là hoàn thiện thì sang bước 3.2

B3.2: tổng= tong+a[i][c]

B3.3: i=i+1 Quay lại bước 3

Ngược lại thì giá trị trở về là tổng và thoát

 Hàm cài đặt:

Ngày đăng: 09/10/2016, 22:30

TỪ KHÓA LIÊN QUAN

w