Смекни!
smekni.com

Модульное программирование 4 (стр. 3 из 3)

intzad_elem;

cout <<"&bsol;nВведите количество элементов массива:";

cin >> n;

if (n<2)

{

cout <<"Ошибка! Количество элементов массива должно быть не менее двух.&bsol;n";

return 3;

}

int*a = new int [n];

enter(a,n);//функция ввода элементов массива

cout <<"&bsol;nВведите заданный элемент для сравнения: ";

cin >> zad_elem;

if (zad_elem==a[n-1])

{

cout <<"&bsol;nЗаданный элемент является последним в массиве ";

return 4;

}

if (poisk(a,n,zad_elem))//функция проверки наличия заданного элемента в массиве

{

del(a,n,zad_elem);//функция удаляющая после каждого элемента с заданным значением,1 элемент, если он отличен от заданного

print(a,n);//функция вывода элементов массива

}

elsecout<<"&bsol;nВ массиве нет заданного элемента ";

system("pause");

break;

delete[]a;

}

case(3):

{

cout <<"&bsol;nВы выбрали пункт № 3-Вставить элемент с заданным значением после элемента с заданным номером.";

int new_element, zad_nomer;

cout <<"&bsol;nВведите количество элементов массива:";cin >> n;

if (n<1)

{

cout <<"&bsol;n Массив пуст&bsol;n";

return 5;

}

int* a = new int[n+1];

enter(a,n);//функция ввода элементов массива

cout <<"&bsol;nВведите номер элемента после которого необходимо произвести вставку: ";

cin>>zad_nomer;

if (n<zad_nomer)// если заданный номер превышает размерность массива

{

cout<<"Ошибка! Массив не имеет элемента с заданным номером, так как количество элементов массива менее "<<zad_nomer;

return 6;

}

cout <<"&bsol;nВведите элемент для вставки:";

cin >> new_element;

paste(a,n,new_element,zad_nomer);//функция вставляющая элемент с заданным значением после элемента с заданным номером

print(a,n);//функция вывода элементов массива

system("pause");

break;

delete[]a;

}

case(4):

{

cout <<"&bsol;nВы выбрали пункт №4-Проверить есть ли в массиве два подряд идущих положительных элемента.";

cout <<"&bsol;nВведите количество элементов массива: ";

cin>>n;

if (n<2)

{

cout <<"&bsol;nКоличество элементов массива менее двух.";

return 7;

}

int*a = new int [n];

enter(a,n);//функция ввода элементов массива

if (proverka(a,n))//функция проверяющая есть ли в массиве два подряд идущих положительных элемента

cout<<"&bsol;nДа, Массив содержит два подряд идущих положительных элемента. &bsol;n";

else

cout<<"&bsol;nДва подряд идущих положительных элементов не найдено.&bsol;n";

system("pause");

break;

delete[]a;

}

case(0):break;

default: {break;}

};

}

while(choice!=0);

return 0;

}

voidenter(int *a, intn) // функция ввода массива, a – массив, n – длина массива

{

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

{

cout<<"&bsol;n Введи "<<i+1<< " элемент= ";

cin>>a[i]; }

}

intmax(int *a, intn) // функция поиска номера максимального элемента

{

int numbermax=0, max=a[0];

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

if (a[j]>max)

{

max=a[j];

numbermax=j;

}

return numbermax;

}

void print(int *a, int n) // функция вывода элементов массива

{

cout<<("&bsol;n Массив:");

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

cout<<" "<<a[i];

cout<<endl;

}

boolproverkapologit(int*a, intn)//функция проверяющая есть ли в массиве два подряд идущих положительных элемента

{

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

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

return true;

return false;

}

voidpaste(int*a, int&n, intnew_element, intzad_nomer)//функция вставляющая элемент с заданным значением после элемента с заданным номером

{

Int m=n+1;

Int *b=new int[m];

for (int i=0; i<=zad_nomer; i++)

b[i]=a[i];

b[zad_nomer+1]=new_element;

for (int i=zad_nomer+2; i<m; i++)

b[i]=a[i-1]

delete [] a;

a=b;

}

boolpoisk(int*a, intn,intzad_elem)//функция проверяющая наличие заданного элемента в массиве

{

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

if(a[i]==zad_elem)

returntrue;

returnfalse;

}

voiddel(int*a,int &n,intzad_elem)//функция удаляющая после каждого элемента с заданным значением, 1 элемент, если он отличен от заданного

{

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

if (a[i]==zad_elem)

if (a[i+1]!=zad_elem)

{

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

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

n=n-1;

}

}

intkol_vo(int*a,intmaxim,intn)//функция вычисления количества элементов расположенных между центральным и максимальным элементами

{

int x;

x=(n/2)-maxim;

intkol=(abs(x)-1);

cout <<"Количество элементов массива расположенных между максимальными центральным элементами = " << kol << "&bsol;n";

if (kol==0)

cout<<"Между центральными максимальным элементами нет элементов";

returnkol;

}

boolneskolko(int*a,intn)//функция проверяющая есть ли несколько максимальных элементов

{

Int d= max(a,n);

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

if (d!=I && d ==a[i])

return true;

returnfalse;

}


ЛИТЕРАТУРА:

1)C/C++. Архив программ. Код с комментариями Автор: Арт Фридман, Ларс Кландер, Марк Михаэлис, Херб Шильдт Издательство: Бином, 2001 г.

2)C++. Учебный курс Автор: П. Франка Издательство: Питер, 2003 г.

3)Как программировать на C++ Автор:Дейтел Х., Дейтел П