
4. Алгоритм
Функция main Функция vyvod
Фукция Sort Функция Sumd
5. Текст пограммы:
#include <iostream.h> // podkl bibl standartnyh ob'ektov i opercii s potokamy
//vvoda-vyvoda sredstvamy yazika C++
#include <iomanip.h> //podkl bibl sredstv manipulirovania potokamy
#include <math.h> //podkl bibl matemat funkcii
#include <conio.h>
//prototipy funkcii
//fun-cia, vypoln vvod matricy i symmu elementov v strokah
void Vyvod (int **a, int m, int n);
//fun-cia, sumirishay elementi glavnoi diagonaly matricy
void Sumd (int **a, int &sumd);
//fun-cia, vupolnyushay sortirovky strok
void Sort (int **a, int n);
main ()
{
int m, n, i, j, im, jm, sumdi;
cout<<"Vvedite col-vo strok i stolbcov matricy: "<<endl;
cin>>m>>n;
int **a=new int *[m]; //vudilenie pamyti pod matricy
for (i=0; i<m; i++)
a[i]=new int[n];
cout<<"Vvedite elementi matricy: "<<endl;
for (i=0; i<m; i++) //vvod matricy
for (j=0; j<n; j++)
cin>>a[i][j];
cout<<"Matirca imeet vid: "<<endl;
Vyvod(a, m, n);
Sort (a, n);
cout<<"Otsortirovannay matrica imeet vid: "<<endl;
Vyvod(a, m, n);
cout<<"Summa elementov glavnoi diagonaly: "<<endl;
Sumd (a, sumdi);
cout<<sumdi<<endl;
delete []a;
cout<<"Nazmite lubuy klavishu... ";
getch ();
clrscr ();
return 0;
}
void Vyvod (int **a, int m, int n)
{ int i, j;
for (i=0; i<m; i++)
{
for (j=0; j<n; j++)
cout<<setw(4)<<a[i][j]<<" ";
cout<<endl;
}
}
void Sort (int **a, int n)
{int i, j, im, jm, buf_a;
for (i=1, j=1; i<=n-1; i+=2, j+=2)
{
for (im=0, jm=0; im<=n-1; im++, jm++)
{ buf_a=a[i][jm];
a[i][jm]=a[im][j];
a[im][j]=buf_a;
}
}
}
void Sumd (int **a, int &sumd)
{ int i, j, n, m;
sumd=0;
for (i=0,j=0; i<n; i++,j++)
sumd+=a[i][j];
}
6. Таблица переменных:
Переменная |
Тип |
Значение |
m |
int |
Количество строк |
n |
int |
Количество столбцов |
i |
int |
Переменная цикла |
j |
int |
Переменная цикла |
im |
int |
Дополнительная переменная строк матрицы |
jm |
int |
Дополнительная переменная столбцов матрицы |
sumd |
int |
Переменная суммы элементов главной диагонали матрицы |