
- •Двовимірні масиви
- •План:
- •Двовимірні масиви. Визначення
- •Багатовимірні масиви. Визначення
- •де, m - кількість рядків двовимірного масиву; n - кількість стовпців двовимірного масиву;
- •Тривимірні масиви. Визначення
- •У оголошенні двовимірного масиву, також як і в оголошенні одновимірного масиву, насамперед, потрібно
- •1// ініціалізація двовимірного масива:
- •Двовимірні масиви. Ініціалізація
- •Характерним об'єктом програмування є двовимірні масиви (матриці). Часто розглядаються матриці спеціального вигляду –
- •Матриця є прямокутна таблиця чисел з n рядків і m стовпців.
- •Індекси i і j елементу однозначно визначають місце
- •Головною діагоналлю квадратної матриці порядку n називають безліч елементів a11, а 22, ...,
- •Запам'ятаємо деякі властивості квадратних матриць:
- •Двовимірні масиви. Квадратні матриці
- •Завдання:
- •Написати програму, яка вводить двовимірний масив і обчислює суму його елементів по стовпцях.
- •Написати програму, яка вводить двовимірний масив і обчислює суму його елементів по рядках.
- •Програма обчислює середнє арифметичне елементів матриці, що вводиться по рядках.
- •Написати програму, яка обчислюватиме середнє арифметичне послідовності з 10 чисел, без врахування мінімального
- •Ввести з клавіатури дійсну матрицю розмірністю 5x5. Визначити:
- •Ввести з клавіатури дійсну матрицю розмірністю 5x5.
- •Ввести з клавіатури дійсну матрицю
- •Ввести з клавіатури дійсну матрицю розмірністю 5x5. Визначити:
- •Ввести з клавіатури дійсну матрицю розмірністю
- •Ввести з клавіатури дійсну матрицю розмірністю 5x5. Визначити:
- •Ввести з клавіатури дійсну матрицю розмірністю 5x5. Визначити:
- •Двовимірні масиви.
- •Двовимірні масиви.
- •Двовимірні масиви.

Написати програму, яка обчислюватиме середнє арифметичне послідовності з 10 чисел, без врахування мінімального і максимального елементів (кількість елементів = 8, сума розраховується з 8 елем.)
#include "stdafx.h" #include <iostream> using namespace std; int main()
{setlocale(LC_ALL,"Rus"); int i, mas[10], min,
max; float sr_ar=0, col=0, sum=0; cout<<" Введіть 10 елементів масиву
\n
";
for (i=0; i<10; i++)
{
cin>>mas[i];
}
max=min=mas[0];
for (i=1; i<10; i++)
{
if (mas[i]<min)
{min=mas[i]; } else if (mas[i]>max)
{max=mas[i]; }
for (i=0; i<10; i++)
{
sum+=mas[i];
col++;
}
sum=sum-max-min; sr_ar=sum/(col-2);
cout<<" Мінімальний елемент масива = "<<min<<endl; cout<<" Максимальний елемент
масива = "<<max<<endl; cout<<" Середнє арифметичне введених чисел без
врахування мінімального і
максимального елементів = "<<sr_ar<<endl; system("pause");
return 0;
}

Ввести з клавіатури дійсну матрицю розмірністю 5x5. Визначити:
1)суму позитивних елементів в парних рядках;
2)номери стовпців, що не містять негативних елементів.
const x=5,y=5; int i,j,n;
float sum=0, massiv[x][y];// опис масиву
cout<<" Введіть massiv[5][5]\n"; |
|
for(i=0;i<x;i++) |
// введення масиву |
for(j=0;j<y;j++) cin>>massiv[i][j]; cout<<"massiv[5][5]\n";
for(i=0;i<x;i++) // виведення масиву
{cout<<"\n"; for(j=0;j<y;j++) cout<<'
'<<massiv[i][j];}
for(i=1;i<x;i=i+2) { for(j=0;j<y;j++) {if(massiv[i][j]>0)
{sum=massiv[i][j]+sum;}
}
}
cout<<"\n Summa="<<sum;
for(int j=0;j<y;j++) {n=0;
for(int i=0;i<x;i++) if (massiv[i][j]>0)
{
n++;
if(n==5)
cout<<"\
Стовпець "<<j+1;
}
}

Ввести з клавіатури дійсну матрицю розмірністю 5x5.
Визначити:
1)суму позитивних елементів в непарних рядках;
2)кількість рядків, що не містять жодного нульового елементу;
const x=5,y=5; int i,j,st=0,n;
float sum=0, massiv[x][y]; //описание массива cout<<"Введите massiv[5][5]\n";
for(i=0;i<x;i++) //ввод массива for(j=0;j<y;j++)
cin>>massiv[i][j];
cout<<"massiv[5][5]\n"; for(i=0;i<x;i++) //вывод массива
{cout<<"\n"; for(j=0;j<y;j++) cout<<' '<<massiv[i][j];}
for(i=0;i<x;i=i+2) { for(j=0;j<y;j++)
{if(massiv[i][j]>0)
{sum=massiv[i][j]+sum;}
}
}
cout<<"\n
Summa="<<sum<<'\n';
for(int i=0;i<x;i++)
{n=0;
for(int j=0;j<y;j++) if (massiv[i][j]>0)
{
n++;
if(n==5)st++;
}
}
cout<<"\Kol-vo stolb "<<st;

Ввести з клавіатури дійсну матрицю
розмірністю 5x5. Визначити:
1)суму позитивних елементів в парних стовпцях;
2)кількість стовпців, що не містять жодного нульового елементу;
const x=5,y=5; int i,j,st=0,n;
float sum=0, massiv[x][y]; // опис масиву
cout<<" Введіть massiv[5][5]\n"; for(i=0;i<x;i++) //ввод массива
for(j=0;j<y;j++) cin>>massiv[i]
[j];
cout<<"massiv[5][5]\n"; for(i=0;i<x;i++) //вивід масиву {cout<<"\n"; for(j=0;j<y;j++) cout<<' '<<massiv[i][j];}
for(j=1;j<x;j=j+2) { for(i=0;i<y;i++)
{if(massiv[i][j]>0) {sum=massiv[i][j]+sum;}
}
}
cout<<"\n
Summa="<<sum<<'\n';
for(int j=0;j<y;j++) {n=0;
for(int i=0;i<x;i++)
if (massiv[i][j]>0 || massiv[i][j]<0)
{
n++;
if(n==5)st++;
}
}
cout<<"\Kol-vo stolb
"<<st;

Ввести з клавіатури дійсну матрицю розмірністю 5x5. Визначити:
1)суму позитивних елементів в непарних стовпцях;
2)кількість стовпців, що містять хоч би один нульовий елемент;
const x=5,y=5; int i,j,n=0;;
float sum=0, massiv[x][y]; //опис масиву
cout<<"Введіть massiv[5][5]\n"; for(i=0;i<x;i++) //введення масиву for(j=0;j<y;j++) cin>>massiv[i][j]; cout<<"massiv[5][5]\n"; for(i=0;i<x;i++) //виведення масиву {cout<<"\n"; for(j=0;j<y;j++) cout<<' '<<massiv[i][j];}
for(j=0;j<x;j=j+2) { for(i=0;i<y;i++) {if(massiv[i][j]>0)
{sum=massiv[i][j]+sum;}
}
}
cout<<"\n
Summa="<<sum<<'\n';
for(int j=0;j<y;j++)
{
for(int i=0;i<x;i++) if (massiv[i][j]==0)
{
n++;break;
}
}
cout<<"\Kol-vo stolb
"<<n;

Ввести з клавіатури дійсну матрицю розмірністю
5x5. Визначити:
1)суму від'ємних елементів в парних рядках;
2)добуток елементів в тих рядках, які не містять від'ємних елементів.
const x=5,y=5; int i,j,n=0;
float sum=0, massiv[x][y],st=1; //опис масиву
cout<<"Введите massiv[5][5]\n"; for(i=0;i<x;i++) //введення масиву
for(j=0;j<y;j++) cin>>massiv[i]
[j];
cout<<"massiv[5][5]\n"; for(i=0;i<x;i++) //виведення масив
{cout<<"\n"; for(j=0;j<y;j++) cout<<'
'<<massiv[i][j];}
for(i=1;i<x;i=i+2) { for(j=0;j<y;j++) {if(massiv[i][j]<0)
{sum=massiv[i][j]+sum;}
}
}
cout<<"\n
Summa="<<sum<<'\n';
for(int i=0;i<x;i++) {n=0;
for(int j=0;j<y;j+
+)
if (massiv[i]
[j]>0)
{
n++;
if(n==5)
{for(int
j=0;j<y;j++)
st=massiv[i][j]*st;
}
}
}
cout<<"\Proizv "<<st;

Ввести з клавіатури дійсну матрицю розмірністю 5x5. Визначити:
1)суму негативних елементів в непарних рядках;
2)суму елементів в тих стовпцях, які не містять негативних елементів.
const x=5,y=5; int i,j,n=0;;
float sum=0, massiv[x][y],st=0; //опис
масиву
cout<<"Введіть massiv[5][5]\n"; for(i=0;i<x;i++) //введення масиву
for(j=0;j<y;j++) cin>>massiv[i][j]; cout<<"massiv[5][5]\n";
for(i=0;i<x;i++) //виведення масиву {cout<<"\n"; for(j=0;j<y;j++) cout<<' '<<massiv[i][j];}
for(i=0;i<x;i=i+2)
{ for(j=0;j<y;j++) {if(massiv[i][j]<0)
{sum=massiv[i][j]+sum;}
}
}
cout<<"\n
Summa="<<sum<<'\n';
for(int j=0;j<x;j++)
{n=0;
for(int i=0;i<y;i++) if (massiv[i][j]>0)
{
n++;
if(n==5)
{for(int
j=0;j<y;j++)
st=massiv[i]
[j]+st;
}
}
}
cout<<"\Summa "<<st;

Ввести з клавіатури дійсну матрицю розмірністю 5x5. Визначити:
1)суму негативних елементів в парних стовпцях;
2)суму елементів в тих рядках, які містять хоч би один негативний елемент.
const x=5,y=5; |
|
|
int i,j; |
|
|
float sum=0, massiv[x][y],st=0; |
//опис |
|
масиву |
|
|
cout<<RUS("Введіть massiv[5][5]\n"); |
||
for(i=0;i<x;i++) |
//введення масиву |
|
for(j=0;j<y;j++) cin>>massiv[i][j]; |
||
cout<<"massiv[5][5]\n"; |
|
|
for(i=0;i<x;i++) |
//вивід масиву |
|
{cout<<"\n"; for(j=0;j<y;j++) cout<<'
'<<massiv[i][j];}
for(j=1;j<x;j=j+2)
{ for(i=0;i<y;i++) {if(massiv[i][j]<0)
{sum=massiv[i][j]+sum;}
}
}
cout<<"\n
Summa="<<sum<<'\n';
for(int i=0;i<x;i++)
{
for(int j=0;j<y;j+
+)
if (massiv[i]
[j]<0)
{
for(int
j=0;j<y;j++)
st=massiv[i]
[j]
+st;break;
}
}

Двовимірні масиви. |
|
|
Операції над двовимірними масивами |
||
|
|
|
#include <stdlib.h> |
|
|
Заповнення випадковими |
|
|
#define n 10 |
|
|
числами від 1 до 11 і вивід : |
|
|
#define m 5 |
|
|
|
|
|
main () |
|
|
{static int a[n][m]; |
|
|
for (int i=0; i<n; i++) |
|
|
for (int j=0; j<m; j++) |
{a[i][j] = 1 +rand() % 10;
printf (" %7d %c", a[i][j], (j==m-1)?'\n':' ');
}
_getch();
return 0;
}
Введення значень: int a[10][3];
for (int i=0; i< 10; i++)
for( int j=0; j< 3; j++)
cin >> a[i][ j];
Копіювання:
int a[10][3], b[10][3]; for (int i=0; i< 10; i++)
for( int j=0; j< 3; j++)
a[i][j] = b[i][j];
або
!!! memcpy (a, b, sizeof b);
Двовимірний масив можна представити у вигляді одновимірного, а «двовимірніст» враховувати при зверненні до елементів масиву.
int A[n][m]; (n строк по m елементів).
int array [n*m]; A[i][j] == array[i*m + j];
29

Двовимірні масиви. |
|
Операції над двовимірними масивами |
Вивід |
1. для цілочисельних значень (наприклад, <=5 знаків):
const int n= 10; |
|
const int m= 5; |
|
main () |
|
{static int a[n][m]; |
|
for (int i=0; i< n; i++) |
// цикл по кількості рядків |
{ for( int j=0; j< m; j++) |
// цикл виведення елементів рядка |
cout << setw (8) << a[i][ j]; |
//5 + знак + 2 пропуску |
cout <<endl; |
// перехід на новий рядок |
} |
|
return 0;
}або
for (int i=0; i< n; i++)
for( int j=0; j< m; j++)
printf ("a[%d][%d] = %d \t%c", i, j, a[i] [j], (j==m-1)? '\n': ' ');
return 0;
}