лр6-2
.docxЛабораторна робота №6
Тема. Алгоритмізація задач обробки двовимірних масивів.
Мета. Набути навичок складання алгоритмів обробки двовимірних масивів
Завдання. 1 Обчислити різницю між найбільшим значенням першого рядка і найменшим значенням останнього рядка.
Лістинг
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
const int n=2,m=6;
int a[n][m];
cout <<"\tЗаданный массив\n\n";
for (int i = 0; i <n ; i++)
{
for (int j = 0; j < m; j++)
{
a[i][j] = rand() % 12;
cout.width(3);
cout << a[i][j] << " ";
}
cout << endl;
}
int max_n,min_n;
for(int i = 0; i < m; ++i)
{
max_n= max(max_n, a[0][i]);
}
for(int i = 0; i < m; ++i)
{
min_n = min(min_n, a[1][i]);
}
cout<<"\nМаксимальный элемент первого массива: "<<max_n<<endl;
cout<<"\nМинимальный элемент второго массива: "<<min_n<<endl;
cout<<"\nРазность элементов: "<<max_n-min_n<<endl;
}
Рисунок 1 – Результат виконання програми
Завдання. 2 Сформувати масив з добутків додатних елементів кожного стовпчика. У одновимірному масиві знайти мінімальний елемент та його індекс.
Лістинг
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
const int n=5,m=6;
int a[n][m];
int b[n];
cout <<"\tЗаданный массив\n\n";
for (int i = 0; i <n ; i++)
{
for (int j = 0; j < m; j++)
{
a[i][j] = rand() % 11-2;
cout.width(3);
cout << a[i][j] << " ";
}
cout << endl;
}
cout << endl<<"Массив произведений: ";
for (int sum,i=0; i<m; i++)
{
sum=1;
for (int j=0; j<n; j++)
if (a[j][i]>0)
sum*=a[j][i];
b[i]=sum;
cout<<b[i]<<" ";
}
int min=b[0];
int ind1;
for(int i=0; i<m; i++)
{
if(b[i]<min)
{
min=b[i];
ind1=i+1;
}
}
cout <<endl<<"Наименьшее число " <<min<<" c индексом " << ind1<<endl;
}
Рисунок 2 – Результат виконання програми
Завдання. 2 В рядках з від'ємним елементом на головній діагоналі знайти суму всіх елементів та найбільший з усіх елементів.
#include <iostream>
using namespace std;
const int n = 5;
int main()
{
setlocale(LC_ALL, "RUS");
const int n = 6;
int a[n][n], max_n[n], sum[n];;
int cnt = 0;
cout <<"\tЗаданный массив\n\n";
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++)
{
a[i][j] = rand() % 12 -5;
cout.width(3);
cout << a[i][j] << " ";
}
cout << endl;
}
for (int i = 0; i < n; i++)
{
if (a[i][i] < 0)
{
sum[cnt] = 0;
max_n[cnt] = a[i][i];
for (int j = 0; j < n; j++)
{
sum[cnt] += a[i][j];
if (a[i][j] > max_n[cnt])
{
max_n[cnt] = a[i][j];
}
}
cnt++;
}
}
for (int i = 0; i < cnt; i++)
{
cout << "\nСумма " << i+1 << " строки: " << sum[i] << endl;
cout<<"Максимальный элемент "<< i+1 << " строки: "<<max_n[i]<<endl;
}
return 0;
}
Рисунок 3 – Результат виконання програми