Алгоритм вычисления суммы элементов массива



 

 

 

for(s=0,i=0;i<n;i++)

s+=X[i];

 

Алгоритм вычисления произведения элементов массива

for(P=1,i=0;i<n;i++)

P*=X[i];

 

Аогримт поиск максимального элемента массива и его номера

for(max=X[0],nmax=0,i=1;i<n;i++)

if (X[i]>max)

{

max=X[i]; nmax=i;

}

Алгоритм удаления элемента из массива

Пусть необходимо удалить из массива, состоящего из семи элементов, четвертый по номеру элемент.

X[3]=X[4];

X[4]=X[5];

X[5]=X[6];

В общем случае:

Удаляем элемент с номером M из массива X, в котором N элементов.

for(i=M;i<=N-2;i++) X[i]=X[i+1];N--

 

 

После удаления следует учитывать, что изменилась нумерация (все номера уменьшились на 1) элементов, начиная с номера M, поэтому если удалять несколько элементов подряд не надо переходить к следующему.

ПРИМЕР. Удалить элементы с 4-го по 8-й в массиве из N элементов

for(j=1;j<=5;j++,N--)

for(i=3;i<=N-2;i++) X[i]=X[i+1];

int main()

{

floxt x[20];

int i,j,n;

cout<<"n=";

cin>>n;

cout<<"Massiv x\n";

for(i=0;i<n;i++)

cin>>x[i];

for(j=1;j<=5;j++)

for(i=3;i<=n-1-j;i++)

x[i]=x[i+1];

cout<<"Massiv x\n";

for(i=0;i<n-5;i++)

cout<<"x("<<i<<")="<<x[i]<<"\t";

cout<<endl;

return 0;

}

 

Результаты работы программы

n=

15

Massiv x

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Massiv x

x(0)=1 x(1)=2 x(2)=3 x(3)=9 x(4)=10 x(5)=11 x(6)=12 x(7)=13 x(8)=14 x(9)=15

 

Упорядочение элементов массива

Сортировка выбором

 

int main()

{

float b,max,a[20];

int i,j,n,k,nom;

cout<<"n=";

cin>>n;

cout<<"Massiv a\n";

for(i=0;i<n;i++)

cin>>a[i];

k=n;

for(j=0;j<=k-2;j++)

{

max=a[0];nom=0;

for(i=1;i<k;i++)

if (a[i]>max)

{

max=a[i];

nom=i;

}

b=a[k-1];

a[k-1]=a[nom];

a[nom]=b;

k--;

}

cout<<"Massiv a\n";

for(i=0;i<n;i++)

cout<<"a("<<i<<")="<<a[i]<<"\t";

cout<<endl;

return 0;

}

Сортировка методом пузырька

 

 

int main()

{

float b,max,a[20];

int i,j,n,k,nom;

cout<<"n=";

cin>>n;

cout<<"Massiv a\n";

for(i=0;i<n;i++)

cin>>a[i];

for(j=1;j<=n-1;j++)

for(i=0;i<=n-1-j;i++)

if (a[i]>a[i+1])

{

b=a[i];

a[i]=a[i+1];

a[i+1]=b;

}

cout<<"Massiv a\n";

for(i=0;i<n;i++)

cout<<"a("<<i<<")="<<a[i]<<"\t";

cout<<endl;

return 0;

}

Запись положительных элементов массива A в массив B

int main()

{

float a[20],b[20];

int i,n,k;

cout<<"n=";

cin>>n;

cout<<"Massiv a\n";

for(i=0;i<n;i++)

cin>>a[i];

for(k=i=0;i<n;i++)

if (a[i]>0) b[k++]=a[i];

cout<<"Massiv b\n";

for(i=0;i<k;i++) cout<<"b("<<i<<")="<<b[i]<<"\t";

cout<<endl;

return 0;

}

 

 

Вставка элемента b в упорядоченный массив X, не нарушив его упорядоченности

Пусть массив Х(N) упорядочен по возрастанию, необходимо в него вставить элемент b, не нарушив упорядоченности массива.

int main()

{

float x[20],b;

int i,j,n;

cout<<"n=";

cin>>n;

cout<<"Massiv x\n";

for(i=0;i<n;i++)

cin>>x[i];

cout<<"b=";

cin>>b;

if (b>=x[n-1])

x[n]=b;

else

{

for(i=0;i<n;i++)

if (x[i]>b)

{j=i;break;}

for(i=n;i>j;i--)

x[i]=x[i-1];

x[j]=b;

}

n++;

cout<<"Massiv x\n";

for(i=0;i<n;i++)

cout<<"x("<<i<<")="<<

x[i]<<"\t";

cout<<endl;

return 0;

}

 

Контрольные вопросы

1. Что такое массив?

2. В чем оличие одномерных и многомерных массивов?

3. Как осуществляется ввод и вывод элементов массива?

4. Перечислите основные алгоритмы обработки массивов.

5. Как осуществляется алгоритм вычисления суммы элементов массива?

6. Как осуществляется алгоритм вычисления произведения элементов массива?

7. Охарактеризуйте алгоритм поиска максимального элемента массива и его номера.

8. Охарактеризуйте алгоритм удаления элемента из массива.

9. Перечислите основные способы упорядочивания элементов массива.

10. В чем заключается суть алгоритма сортировки выбором?

11. Охарактеризуйте сортировку массива методом пузырька.

12. Как осуществляется запись положительных элементов массива A в массив B?

 


Дата добавления: 2019-09-13; просмотров: 315; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!