Работа вам нужна срочно. Не волнуйтесь, уложимся!
Заполните, пожалуйста, данные для автора:
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Дан массив A, состоящий из n элементов. Сформируйте «сглаженный» массив, заменив в исходном все элементы, кроме крайних, по формуле: A[i]= (A[i-1] + A [i] + A[i+1])/3.
При сглаживании используются лишь старые значения элементов массива. Изменённый массив оставить на старом месте. Для интереса сделанно для матриц и в двух вариантах.
#include "stdafx.h"
#include
#include
using namespace std;
const int N=3, M=4;
class Lab {
{
int StaticMatrix[N][M];
public:
void Imput()
{
for (int i=0; i
}
void Output()
{
for (int i=0; i
cout<
void WWM1() // сглаживает отдельные строки матрицы
{
int Marix2[N][M]; // Не костыль, а вспомогательная фикча
// счетчик кол-ва переделок - 3
for (int i=0; i
for (int j=0; j
if(j==0) // оставляет "в покое" начальные элементы
Marix2[i][j]=StaticMatrix[i][j];
else
{
if (j==M-1) // оставляет "в покое" конечный элементы
{ Marix2[i][j]=StaticMatrix[i][j]; }
else // сглаживание
{
Marix2[i][j]=StaticMatrix[i][j-1]+StaticMatrix[i][j]+StaticMatrix[i][j+1];
Marix2[i][j]/=3;
}
}
}
}
for (int i=0; i
}
cout<
void WWM2() // сглаживает всю матрицу
{
// счетчик кол-ва переделок - 2
int Marix2[N][M];
for (int i=0; i
for (int j=0; j
if( i==0 || j==0 ) // оставляет "в покое" начальные элементы
Marix2[i][j]=StaticMatrix[i][j];
else
{
if (i==N-1 || j==M-1) // оставляет "в покое" конечные элементы
{ Marix2[i][j]=StaticMatrix[i][j]; }
else // сглаживание
{
Marix2[i][j]=StaticMatrix[i-1][j-1]+StaticMatrix[i-1][j]+StaticMatrix[i-1][j+1] // Очень крутое сложение всех элементов,
+StaticMatrix[i][j-1]+StaticMatrix[i][j]+StaticMatrix[i][j+1] // стоящих вокруг i-того,
+StaticMatrix[i+1][j-1]+StaticMatrix[i+1][j]+StaticMatrix[i+1][j+1]; // кроме крайних.
Marix2[i][j]/=9;
}
}
}
}
for (int i=0; i
}
cout<
};
int main(int argc, _TCHAR* argv[])
{
Lab Test1;
Test1.Imput();
Test1.Output();
Test1.WWM1();
Test1.WWM2();
system("pause");
return 0;
}