
- •Тема 12_1 Базові алгоритми роботи з масивами
- •Порядкова обробка
- •Обробка по стовпцях
- •Обробка всієї матриці
- •Обхід по «спіралі» квадратної матриці порядку n
- •Обробка частини матриці Обробка елементів головної або побічної діагоналей квадратної матриці
- •Обробка елементів над (під) головною або побічною діагоналями квадратної матриці
- •Вставка рядка
- •Побудова матриць
- •Приклади «Дзеркальне відображення» матриці відносно вертикальної осі, що проходить через її середину
- •Знаходження мінімального елементу матриці і викреслювання рядка і стовпця, на пересіченні яких він знаходиться
- •Void vyvod_ar(int arra[nrow][ncol], int m, int n) //функция виведення масиву
- •Void vvod_ar(int arra [nrow][ncol], int m, int n) //функция введення масиву
- •Знаходження сум елементів квадратної матриці на головній діагоналі і на діагоналях, паралельних головною
- •Void vyvod_ar(int arra[n][n], int n) //функция виведення масиву
- •Void vvod_ar(int arra [n][n], int n) //функция введення масиву
- •Void sum_diag(int а, int n) //функция знаходження сум елементів
- •Множення матриць
- •Література:
Знаходження мінімального елементу матриці і викреслювання рядка і стовпця, на пересіченні яких він знаходиться
const int NROW =100;
const int NCOL =40;
void vvod_ar(int arra[NROW][NCOL], int m, int n);
void vyvod_ar(int arra[NROW] [NCOL], int m, int n);
void poisk_min(int arra[NROW][NCOL], int m, int n, int &imin, int &jmin);
void del_min (int arra[NROW][NCOL], int m, int n, int imin, int jmin);
int main()
{int m=10; // число рядків реального масиву
int n=9; // число стовпців реального масиву
int imin, jmin;
int arra [NROW][NCOL] ={{1}, {2}, {3}, {4}, {5}};
int arra1 [][NCOL] ={{1}, {2}, {3}, {4}, {5}};
vvod_ar(arra, m, n);
vyvod_ar(arra, m, n);
poisk_min(arra, m, n, imin, jmin);
cout << "imin= " << imin+1 << endl;
cout << "jmin= " << jmin+1 << endl;
del_min (arra, m, n, imin, jmin);
vyvod_ar(arra, m-1, n-1);
_getch();
return 0;
}
Void vyvod_ar(int arra[nrow][ncol], int m, int n) //функция виведення масиву
{
for (int i=0; i<m; i++)
{for (int j=0; j<n; j++)
cout << setw(3) << arra[i][j];
cout << endl;
}
cout << endl;
}
Void vvod_ar(int arra [nrow][ncol], int m, int n) //функция введення масиву
{
for (int i=0; i<m; i++)
for (int j=0; j<n; j++)
arra[i][j]= 1+ rand()%10;
}
//функція пошуку мінімального елементу в масиві
void poisk_min(int а, int m, int n, int &imin, int &jmin)
{
imin = jmin =0;
int min = а[0][0];
for (int i=0; i<m; i++)
for (int j=0; j<n; j++)
if (а[i][j] <= min) { //останій min в масиві
min = а[i][j];
imin=i;
jmin=j;
}
}
//функція видалення в масиві рядка і стовпця з минимальноым елементом
void del_min (int а, int m, int n, int imin, int jmin)
{int ii, jj;
for (int i=0; i<m-1; i++)
for (int j=0; j<n-1; j++)
{
if (i >=imin) ii=i+1; else ii=i;
if (j >=jmin) jj=j+1; else jj=j;
а[i][j]=a[ii][jj];
}
}
Знаходження сум елементів квадратної матриці на головній діагоналі і на діагоналях, паралельних головною
const int N =100;
void vvod_ar(int arra[N][N], int n);
void vyvod_ar(int arra[N][N], int n);
void sum_diag(int arra[N][N], int n);
int main()
{int n=5; // число рядків і стовпців реального статичного масиву
int arra [N][N] ;
vvod_ar(arra, n);
vyvod_ar(arra, n);
sum_diag(arra, n);
_getch();
return 0;
}
Void vyvod_ar(int arra[n][n], int n) //функция виведення масиву
{
for (int i=0; i<n; i++)
{for (int j=0; j<n; j++)
cout << setw(3) << arra[i][j];
cout << endl;
}
cout << endl;
}
Void vvod_ar(int arra [n][n], int n) //функция введення масиву
{
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
arra[i][j]= rand()%2;
}
Void sum_diag(int а, int n) //функция знаходження сум елементів
{int s=0, s1, s2;
for (int i=0; i<n; i++) //сумма елементів головної діагоналі
s+=a[i][i];
cout << "glav: " << s << endl<< endl;
for (int i=0; i<n-1; i++)
{ s1=0;s2=0;
for (int j=0; j<n-i-1; j++)
{ s1+=a[j][i+j+1];//сумма елементів діагоналей вище головною
s2+=a[i+j+1][j];//сумма елементів діагоналей нижче головної
}
cout << "verx: " << s1<< endl;
cout << "nijn: " << s2 << endl << endl;
}
}