Int main(void)
{ int *y, *z;
int i,k,m,*ky,*kz;
float *my, *mz;
cout<<"Vvedite razmer Y:";
cin>>k;
y=new int[k];//выделяем память для массива
for (i=0;i<k;i++)
{cout<<"Entered Y["<<setw(2)<<i<<"]= ";
cin>>y[i]; }
ky=new int;//памыть для
my=new float;//результатов
sred(y,k,ky,my);
cout<<"Array Y"<<endl;
for(i=0;i<k;i++)//выводим исходный массив
cout<<setw(8)<<y[i];
if (ky[0]>0)//выводим среднее и количество простых
{cout<<endl<<"Srednee prostix dvuzn:"<<my[0]<<", kol-vo: "<<ky[0]<<endl;
if (ky[0]>2)//если количество больше 2-х
{for (i=0;i<k;i++)
{if ((abs(y[i])>10)&&(abs(y[i])<99))
if (prost(y[i])) {del(y,&k,i); i--;}//удаляем элемент
}
cout<<"Array Y posle obrabotki"<<endl;
for(i=0;i<k;i++)//выводим массив после обработки
cout<<setw(8)<<y[i];
} }
else
cout"<<endl<<"Net prostix”;
delete [] y; //освобождаем память
delete ky;
delete my;
cout<<endl<<"Vvedite razmer Z:";
cin>>m;
z=new int[m];//аналогично для массива z
for (i=0;i<m;i++)
{cout<<"Entered Z["<<setw(2)<<i<<"]= ";
cin>>z[i];
}
kz=new int;
mz=new float;
sred(z,m,kz,mz);
cout<<"Array Z"<<endl;
for(i=0;i<m;i++)
cout<<setw(8)<<z[i];
if (kz[0]>0)
{
cout<<endl<<"Srednee prostix dvuzn:"<<mz[0]<<", kol-vo: "<<kz[0]<<endl;
if (kz[0]>2)
{for (i=0;i<m;i++)
{if ((abs(y[i])>10)&&(abs(y[i])<100))
if (prost(z[i])) {del(z,&m,i); i--;}
}
cout<<"Array Z posle obrabotki"<<endl;
for(i=0;i<m;i++)
cout<<setw(8)<<z[i];
} }
else
cout"<<endl <<"Net prostix"<<endl;
delete [] z;
delete kz;
delete mz;
return 0;
}
Контрольный расчет.
Лабораторная работа №10
Тема «Обработка двумерных массивов»
Цель работы: Изучение двумерных массивов в языке С++. Знакомство с основными алгоритмами работы с матрицами– определение суммы, произведения элементов, поиска максимального или минимального элемента, работа с диагоналями квадратной матрицы.
Задание. Составить алгоритм решения задачи согласно своему варианту и написать программу на языке С++.
Вариант 3. Задана матрица целых чисел a(n,n). Вывести номера столбцов, в которых находится более двух простых чисел. Найти сумму положительных элементов матрицы.
Блок-схема алгоритма.
Листинг программы.
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
Int main(void)
{
int i,j,k,n,*a;
int summ,cnt,cura;
cout<<"Entered N: ";
cin>>n;
a=new int[n*n];//выделяем память для матрицы
for(i=0;i<n;i++)
for(j=0;j<n;j++) //ввод матрицы
{ cout<<"Entered A["<<setw(2)<<i<<"]["<<setw(2)<<j<<"]: ";
cin>>a[7*i+j];//элемент расположен по этому адресу памяти
}
for(i=0;i<n;i++)
{for(j=0;j<n;j++) //форматированный вывод матрицы
cout<<setw(6)<<a[7*i+j];
cout<<endl;
}
summ=0;
for(i=0;i<n;i++)
{ cnt=0;
for(j=0;j<n;j++)
{if (a[7*j+i]>0) summ+=a[7*j+i];
cura=abs(a[7*j+i]);//здесь j выступает строкой
if (cnt<3)
{for(k=2;k<cura;k++)//проверка число-простое?
if (cura%k==0)
{cnt--;
break;
};
cnt++;
}
}
if(cnt>2) cout<<"Column "<<setw(2)<<i<<" >2 prost"<<endl;
}
cout<<"Summa positive= "<<summ<<endl;
delete [] a;
return 0;
}
Контрольный расчет.
