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

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

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

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

Файлы: 1 файл

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

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

Условия и ограничения: 

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

3.3. Описание алгоритма 

Проверка  наличия заданного элемента poisk(a,n,zad_elem) в массиве. 

Если  заданный элемент найден, и последующий за ним элемент отличен от заданного, то этот последующий элемент удаляется, иначе не выполняется никаких действий и выводится сообщение: «В массиве нет заданного элемента» 
 

3.4. Реализация решения задачи 

Решение задачи 2 оформлено в виде подпрограммы del(a,n,zad_elem), которая использует подпрограммы:

   - enter(a,n), – функция ввода массива.

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

       - print(a,n,zad_elem), функция вывода массива. 

Текст подпрограмм: 

                  int 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;

                }

    }  

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

    {

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

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

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

        cout<<endl;

    } 

3.5. Контрольные примеры 

  1. n=6, a = { 1 2 4 6 5 3 }, zad_elem=6

Заданный  элемент = 6 (номер элемента =4). Следующий  элемент массива отличен от заданного = 5(номер элемента =5), поэтому он удаляется.

Полученный  массив: a = { 1 2 4 6 3 } 

  1. n=5, a = { 1 2 4 4 5}, zad_elem=4

Заданный  элемент = 4(номер элемента =3). Следующий элемент массива  не отличен от заданного = 4(номер элемента =4), поэтому он  не удаляется. Элемент под номером 5 отличен, поэтому он удаляется.

Полученный  массив: a = { 1 2 4 4 } 

    3) n=4,  a={1 2 3 5}, zad_elem=5

Заданный  элемент = 5(номер элемента =4). Заданный элемент является последним. Выводится сообщение «Заданный элемент является последним в массиве» 

    4) n=7,  a={1 2 3 6 5 8 8}, zad_elem=8

Заданный  элемент = 8(номер элемента =6). Следующий элемент массива  не отличен от заданного = 8(номер элемента =7), поэтому он  не удаляется. Элемент под номером 7  равен заданному и является последним. Поэтому выводится сообщение «Заданный элемент является последним в массиве» 
 

  1. n<=0, a – отсутствуют

Выводится сообщение  «Ошибка! Количество элементов массива должно быть не менее двух.» 

  1. n=1, a=1

Выводится сообщение  «Ошибка! Количество элементов массива должно быть не менее двух.» 

  1. n=3, a={0 0 0}, zad_elem=6

Выводится сообщение  «В массиве нет заданного элемента» 

 

4. ЗАДАЧА 3 

4.1 Условие задачи 

  Вставка в вектор новых элементов. Вставить в массив элемент с заданным значением, после элемента с заданным номером. Если вставка невозможна, выдать об этом сообщение. 

4.2 Постановка задачи 

Входные данные: 

      itn n – длина массива; 

      int *а – массив; 

      int new_element – заданное значение; 

      int zad_nomerзаданный номер. 

Выходные данные: 

      Измененный  массив а, при наличии в этом массиве элемента с заданным номером.  

Условия и ограничения: 

      Отсутствие  в массиве элемента с заданным номером.  

4.3. Описание алгоритма 

Вставка заданного элемента после элемента с заданным номером paste(a,n,new_element,zad_nomer). 

Если  элемент c заданным номером найден после него производится вставка заданного значения. 

4.4. Реализация решения задачи 

Решение задачи 3 оформлено в виде подпрограммы paste, которая использует подпрограммы:

     - entery(a,n) – функция ввода массива;

     - print (a,n) – функция вывода массива. 

Текст подпрограмм: 

                  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;

        } 

4.5.  Контрольные примеры 

  1. n=5, a = { 1 2 9 4 5 }, int zad_nomer=3, int new_element=7

Заданное  значение = 7. Заданный номер = 3

Полученный  массив: a = { 1 2 9 7 4  5 } 

  1. n=5, a = { 1 2 3 4 0 }, int zad_nomer=9

Заданный номер = 9.

Выводится сообщение  «Ошибка! Массив не имеет элемента с заданным номером, так как количество элементов массива менее 9» 

  1. n<=0, a – отсутствуют

Выводится сообщение  «Массив пуст.» 

  1. n=1, a=1, int zad_nomer=9

Выводится сообщение  «Ошибка! Массив не имеет элемента с заданным номером, так как количество элементов массива менее» 

  1. n=3, a={0 0 0}, int zad_nomer=3, int new_element=9

Полученный  массив: a = { 0 0 0 9 } 
 

 

5. ЗАДАЧА 4 

5.1 Условие задачи 

   Проверка  состояния вектора. Проверить содержаться ли в массиве два подряд идущих положительных элемента. 

5.2 Постановка задачи 

Входные данные: 

      Int n – длина массива; 

      int *а – массив. 

Выходные данные: 

      Логическая  функция proverka pologit(a,n), которая возвращает истину, если в массиве есть два подряд идущих положительных элемента. 

Условия и ограничения: 

      Ограничений нет, при условии наличия элементов  в массиве. 

5.3. Описание алгоритма 

Сравнение элементов массива друг с другом. 

5.4. Реализация решения задачи 

Решение задачи 4 оформлено в виде подпрограммы proverka pologit(a,n). 

Текст подпрограммы: 

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

        {

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

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

                 return true;

          return false;

      }  

5.5. Контрольные примеры 

  1. n=5, a = { -5 3 2 -2 -1 }

Выводится сообщение «Да, Массив содержит два подряд идущих положительных элемента.» 

  1. n=1, a = { 1 }

Выводится сообщение «В массиве один элемент» 

  1. n=3, a = { 0 -9 -2 }

Выводится сообщение «Два подряд идущих положительных элементов не найдено» 

  1. n<=0, a – {       }

Выводится сообщение  «Количество элементов массива менее двух..» 

  1. n=3, a={0 0 0}

Выводится сообщение «Два подряд идущих положительных элементов не найдено.»

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