Модульное программирование

Автор работы: Пользователь скрыл имя, 22 Января 2011 в 15:04, курсовая работа

Описание работы

Определить количество элементов массива расположенных между максимальным и «центральным» элементами массива (предполагается, что число элементов – нечётное и максимальный элемент - единственный). Если по какой либо причине количество определить не удаётся, выдать об этом сообщение с указанием причины.

Файлы: 1 файл

курсовая_работа моя.doc

— 227.00 Кб (Скачать файл)

                     cin >> new_element;

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

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

                   system("pause");

                    break;

                    delete[]a;

              } 
 

            case(4):

                  {

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

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

                                  cin>>n;

                   if (n<2)

                          {

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

                           return 7;

                         } 
 

                    int*a = new int [n];

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

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

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

                      else

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

                     system("pause");

                    break;

                     delete[]a;

                 } 

            case(0):break;

            default: {break;}

      };

   }

  while(choice!=0);

return 0;

} 
 

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

     {

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

                 {

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

                     cin>>a[i]; }

                 } 

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

         {

             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<<("\n Массив:");

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

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

           cout<<endl;

       } 

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

    {

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

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

              return true;

      return false;

    } 

                  void paste(int*a, int&n, int new_element, int zad_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;

         } 

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

   {

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

           if(a[i]==zad_elem)

               return true;

      return false;

  } 

                  void del(int*a ,int &n ,int zad_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;

                        }

    } 

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

   {

          int x;

          x=(n/2)-maxim;

          int kol=(abs(x)-1);

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

          if (kol==0)

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

          return kol;

  } 
 

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

    {

        Int d= max(a,n);

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

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

               return true;

         return false;

     }

 

ЛИТЕРАТУРА: 

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

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

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

Информация о работе Модульное программирование