1. Trang chủ
  2. » Công Nghệ Thông Tin

Chuyên đề mảng 2 chiều phần 1 ppsx

14 940 11

Đ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 14
Dung lượng 129,69 KB

Nội dung

Trang 1

MA TRẬN Hàm nhập & xuất ma trận các số nguyên

void nhap(int a[][100],int &m,int &n)

{

printf("Nhap m:");

scanf("%d",&m);

printf("Nhap n:");

scanf("%d",&n);

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

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

printf("Nhap a[%d][%d]:",i,j);

scanf("%d",&a[i],[j]);

} }

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

{

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

{

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

printf("%4d",a[i][j]);

printf("\n");

}

}

Hàm nhập & xuất ma trận các số thực

void nhap(float a[][100],int &m,int &n)

{

printf("Nhap m :");

scanf("%d",&m);

printf("Nhap n :");

scanf("%d",&n);

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

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

printf("Nhap a[%d][%d]:",i,j);

scanf("%f",&a[i],[j]);

} }

void xuat(float a[][100],int m,int n)

{

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

{

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

printf("%8.3f",a[i][j]);

printf("\n ");

}

}

Hàm nhập & xuất ma trận các số nguyên dài

Trang 2

void nhap(long a[][100],int &m,int &n)

{

printf("Nhap m :");

scanf("%d",&m);

printf("Nhap n:");

scanf("%d",&n);

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

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

printf("Nhap a[%d][%d]",i,j);

scanf("%ld",&a[i][j]);

} }

void xuat(long a[][100],int m,int n)

{

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

{

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

printf("%ld",a[i][j]);

printf("\n ");

}

}

Hàm nhập & xuất ma trận các số thực dài

void nhap(double a[][100],int &m,int &n);

{

printf("Nhap m :");

scanf("%d",&m);

prinf("Nhap n :");

scanf("%d",&n);

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

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

printf("Nhap a[%d][%d]",i,j);

scanf("%lf",&a[i][j]);

} }

void xuat(double a[][100],int m,int n)

{

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

{

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

printf("%lf",a[i][j]);

printf("\n ");

}

}

Chuyên đề về ma trận thường

Kĩ thuật tính toán

320 Tổng các số dương trong ma trận thực

int TongSoDuong(int a[][100], int n, int m)

Trang 3

{

int s=0;

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

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

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

s+=a[i][j];

return s;

}

321 Tích các số lẻ trong ma trận nguyên

int TichGiaTriLe(int a[][100], int n, int m)

{

int t=1;

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

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

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

t*=a[i][j];

return t;

}

322 Tổng giá trị trên 1 dòng ma trận thực

int TongDongX(float *a, int m) //chuy?n a[x] , x là dòng mà b?n c?n tính t?ng {

int S=0;

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

S+=a[i];

return S;

}

323 Tích giá trị dương trên 1 cột ma trận thực

float TichDuongCotY(float a[][100], int n, int m, int y) //y là s? c?t c?n tính {

float T=1;

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

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

T*=a[i][y];

return T;

}

324 Tổng giá trị dương trên 1 dòng ma trận thực

int TongDuongDongX(float *a, int m)

//chuy?n a[x] , x là dòng mà b?n c?n tính t?ng

{

int S=0;

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

{

if (a[i]>0)

S+=a[i];

}

return S;

}

325 Tích các chẵn trên 1 cột ma trận nguyên

int TichChanCotY(int a[][100], int n, int m, int y) //y là s? c?t c?n tính

{

int T=1;

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

Trang 4

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

T*=a[i][y];

return T;

}

326 Trung bình cộng các số dương ma trận thực float TBCongDuong(float a[][100], int n, int m) {

int S=0;

int dem =0 ;

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

{

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

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

S+=a[i][j];

dem++;

} }

}

return (float)(S/dem);

}

327 Tổng các giá trị nằm trên biên của ma trận int TongBien(int a[][100], int n, int m)

{

int S=0;

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

{

S = S+ a[0][i] + a[n-1][i];

}

for (i=1; i<n-1; i++)

{

S = S+ a[i][0] + a[i][m-1];

}

return S;

}

328 Trung bình nhân các số dương ma trận thực float TBNhanDuong(float **a, int n, int m) {

float T=1;

int dem =0 ;

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

{

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

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

T*=a[i][j];

dem++;

} }

}

return pow(T,1.0/dem);

}

Trang 5

329 Biến đổi ma trận bằng cách thay các giá trị âm bằng giá trị tuyệt đối của nó void BienDoiMaTran(int a[][100], int n, int m)

{

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

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

a[i][j] = abs(a[i][j]);

}

330 Biến đổi ma trận thực bằng cách thay các giá trị bằng giá trị nguyên gần nó nhất float XuLy(float n)

{

float PhanNguyen = (int)(n);

float PhanLe = n - PhanNguyen;

if (PhanLe < 0,5)

{

return PhanNguyen;

}

return PhanNguyen+1;

}

void BienDoiMaTran(float a[][100], int dong, int cot)

{

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

{

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

a[i][j] = XuLy(a[i][j]);

} }

}

331 Tổng các giá trị trên 1 dòng ma trận thực

float TongDongX(int a[], int m) //chuy?n a[x] , x là dòng mà b?n c?n tính t?ng {

float S=0;

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

S+=a[i];

return S;

}

332 Tổng giá trị lẻ trên 1 cột ma trận nguyên

int TongLeCotY(int a[][100], int n, int m, int y) //y là s? c?t c?n tính

{

int S=0;

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

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

S+=a[i][y];

return S;

}

333 Tổng các số hoàn thiện trong ma trân số nguyên

int sohoanthien(int n)

{

int tong=0;

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

if(n%i==0)

tong = tong + i;

if (tong == n)

return 1;

Trang 6

return 0;

}

int TongSoHoanThien(int a[][100],int n, int m)

{

int S=0;

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

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

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

S+=a[i][j];

return S;

}

Kĩ thuật đếm

334 Viết hàm đếm số lượng số dương trong ma trận thực int DemDuong(float a[][100], int dong, int cot)

{

int dem=0;

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

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

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

dem++;

return dem;

}

335 Đếm số lượng số ng tố trong ma trận nguyên

int SoNguyenTo(int n)

{

if (n<=1)

return 0;

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

if (n%i==0)

return 0;

return 1;

}

int DemSoNguyenTo(int a[][100], int dong, int cot)

{

int dem=0;

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

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

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

dem++;

return dem;

}

336 Đếm tần suất xuất hiện của 1 giá trị x trong ma trận thực int DemGiaTriX(float a[][100], int dong, int cot, float x) {

int dem=0;

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

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

if (a[i][j]==x)

dem++;

return dem;

}

337 Đếm số chữ số trong ma trận số nguyên dương

int DemTungSo(int n)

{

Trang 7

int dem = 1;

n = abs(n);

while (n>=10)

{

n= n/10;

dem++;

}

return dem;

}

int Dem(int a[][100], int dong, int cot)

{

int dem = 0;

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

{

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

dem += DemTungSo(a[i][j]);

} }

return dem;

}

338 Đếm số lượng số dương trên 1 hàng ma trận thực

int DemDuong(float a[][100], int cot, int HangCanTinh) {

int dem=0;

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

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

dem++;

return dem;

} 339 Đếm số lượng số hoàn thiện trên 1 hàng ma trận nguyên

int SoHoanThien(int n)

{

if (n<=0)

return 0;

int s=0;

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

if (n%i==0)

s+=i;

if (s==n)

return 1;

return 0;

}

int DemSoHoanThien(int a[][100], int cot, int HangCanTinh) {

int dem=0;

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

if (SoHoanThien(a[HangCanTinh][j])==1)

dem++;

return dem;

}

340 Đếm số lượng âm trên 1 cột ma trận thực

int DemSoDuong(float a[][100], int dong, int CotCanTinh) {

int dem=0;

Trang 8

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

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

dem++;

return dem;

}

341 Đếm số lượng dương trên biên của ma trận thực

int DemSoDuong(float a[][100], int dong, int Cot)

{

int dem=0;

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

{

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

dem++;

if (a[dong-1][j]>0)

dem++;

}

for (int i=1; i<dong-1; i++)

{

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

dem++;

if (a[i][Cot-1]>0)

dem++;

}

return dem;

}

342 Đếm số lượng ptử cực đại ma trận thực 1 ptử cực đại là khi nó lớn hơn các ptử xung quanh

int CucDai(float a[][100],int dong,int cot, int i, int j)

{

int dx[8]={-1,-1,-1, 0, 0, 1, 1, 1};

int dy[8]={-1, 0, 1,-1, 1,-1, 0, 1};

for (int k=0; k<8; k++)

{

if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot)) {

if (a[i][j]<a[dx[k]+i][dy[k]+j]) {

return 0;

} }

}

return 1;

}

int DemCucDai(float a[][100], int dong, int cot)

{

int dem=0;

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

{

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

if (CucDai(a,dong,cot,i,j)==1) {

printf("\na[%d][%d] = %d",i,j,a[i][j]);

dem++;

}

Trang 9

} }

return dem;

}

343 Đếm số lượng ptử cực trị ma trận thực.1 ptử cực trị khi nó lớn hơn hoặc nhỏ hơn ptử xung quanh

int CucTri(float a[][100],int dong,int cot, int i, int j)

{

int dx[8]={-1,-1,-1, 0, 0, 1, 1, 1};

int dy[8]={-1, 0, 1,-1, 1,-1, 0, 1};

for (int k=0; k<8; k++)

{

if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot)) {

if (a[i][j]<a[dx[k]+i][dy[k]+j]) {

for (k=k+1; k<8; k++) {

if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot)) {

if (a[i][j]>a[dx[k]+i][dy[k]+j]) {

return 0;

} }

} }

else {

for (k=k+1; k<8; k++) {

if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot)) {

if (a[i][j]<a[dx[k]+i][dy[k]+j]) {

return 0;

} }

} }

} }

return 1;

}

int DemCucTri(float a[][100], int dong, int cot)

{

int dem=0;

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

{

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

if (CucTri(a,dong,cot,i,j)==1) {

dem++;

}

Trang 10

} }

return dem;

}

344 Đếm số lượng giá trị có trong ma trận thực Lưu ý: nếu có k ptử (k>=1) trong ma trận bằng nhau thì ta chỉ tính

là 1

int Xet(float a[][100], int dong,int cot, int i, int j)

{

int k, h; //k: dong, h: cot

for (h=j+1; h<cot; h++)

{

if (a[i][h] == a[i][j]) {

return 0;

} }

for (k=i+1; k<dong; k++)

{

for (h=0; h<cot; h++) {

if (a[k][h] == a[i][j]) {

return 0;

} }

}

return 1;

}

int DemPtu(float a[][100],int dong,int cot)

{

int dem=0;

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

{

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

if (Xet(a,dong,cot,i,j)==1) {

dem++;

} }

}

return dem;

}

345 Tính tổng các ptử cực trị trong ma trận thực

int CucTri(float a[][100],int dong,int cot, int i, int j)

{

int dx[8]={-1,-1,-1, 0, 0, 1, 1, 1};

int dy[8]={-1, 0, 1,-1, 1,-1, 0, 1};

for (int k=0; k<8; k++)

{

if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot)) {

if (a[i][j]<a[dx[k]+i][dy[k]+j]) {

Trang 11

for (k=k+1; k<8; k++) {

if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot)) {

if (a[i][j]>a[dx[k]+i][dy[k]+j]) {

return 0;

} }

} }

else {

for (k=k+1; k<8; k++) {

if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot)) {

if (a[i][j]<a[dx[k]+i][dy[k]+j]) {

return 0;

} }

} }

} }

return 1;

}

int TongCucTri(float a[][100], int dong, int cot)

{

int S=0;

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

{

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

if (CucTri(a,dong,cot,i,j)==1) {

S+=a[i][j];

} }

}

return S;

}

346 Đếm số lượng giá trị “hoàng hậu” trên ma trận 1 ptử hoàng hậu khi nó lớn nhất trên dòng, cột và 2 đường chéo

int XetDuongCheo(int a[][100],int dong,int cot, int i, int j)

{

int k,h; //k : dong, h : cot

for (k=i,h=j; k>=0 && h<cot; k , h++)

{

if (a[k][h] > a[i][j]) {

return 0;

} }

Trang 12

for (k=i+1, h=j-1; k<dong && h>=0; k++, h ) {

if (a[k][h] > a[i][j]) {

return 0;

} }

for (k=i-1, h =j-1; k>=0 && h>=0; k ,h ) {

if (a[k][h] > a[i][j]) {

return 0;

} }

for (k=i+1, h=j+1; k<dong && h<cot; k++, h++) {

if (a[k][h] > a[i][j]) {

return 0;

} }

return 1;

}

int XetCotDong(int a[][100],int dong,int cot, int i, int j) {

for (int k=0; k<dong; k++ )

{

if (a[k][j]>a[i][j]) {

return 0;

} }

for (k=0; k<cot; k++ )

{

if (a[i][k]>a[i][j]) {

return 0;

} }

return 1;

}

int XetTongQuat(int a[][100],int dong,int cot, int i, int j) {

if (XetCotDong(a,dong,cot,i,j)==1)

if (XetDuongCheo(a,dong,cot,i,j)==1)

return 1;

else

return 0;

return 0;

}

int DemHoangHau(int a[][100], int dong,int cot)

{

int dem=0;

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

Trang 13

{

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

if (XetTongQuat(a,dong,cot,i,j) == 1) //la hoang hau {

dem ++;

} }

}

return dem;

}

347 Đếm số lượng “yên ngựa”.1 ptử yên ngựa khi nó lớn nhất trên dòng, nhỏ nhất trên cột int XetCotDong(int a[][100],int dong,int cot, int i, int j)

{

for (int k=0; k<dong; k++ )

{

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

return 0;

} }

for (k=0; k<cot; k++ )

{

if (a[i][k]>a[i][j]) {

return 0;

} }

return 1;

}

int DemYenNgua(int a[][100], int dong,int cot)

{

int dem=0;

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

{

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

if (XetCotDong(a,dong,cot,i,j) == 1) {

dem ++;

} }

}

return dem;

}

Kĩ thuật Đặt Cờ Hiệu

348 Ktra ma trận có số dương ko

int Ktra(int a[][100],int dong,int cot)

{

int flag = 0;

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

{

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

Trang 14

{

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

flag=1;

break;

} }

}

return flag;

}

349 Ktra ma trận có số hoàn thiện ko

int sohoanthien(int n)

{

int tong=0;

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

if(n%i==0)

tong = tong + i;

if (tong == n)

return 1;

return 0;

}

int Ktra(int a[][100],int dong,int cot)

{

int flag = 0;

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

{

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

if (sohoanthien(a[i][j])==1) {

flag=1;

break;

} }

}

return flag;

}

350 Ktra ma trận có số lẻ ko

int Ktra(int a[][100],int dong,int cot)

{

int flag = 0;

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

{

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

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

flag=1;

break;

} }

}

return flag;

}

Ngày đăng: 29/07/2014, 21:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w