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

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

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

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

Файлы: 1 файл

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

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

zФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

Федеральное государственное образовательное  учреждение

высшего профессионального образования

«ЮЖНЫЙ  ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» 
 
 
 
 
 
 
 

КУРСОВАЯ  РАБОТА

по дисциплине «Технология программирования»

на тему: «Модульное программирование» 
 
 
 
 
 
 
 
 
 

Студентки II курса вечернего отделения Щербаковой Н.М.

                                          Руководитель Пучкин М.В. 
 
 
 
 

Ростов-на-Дону

2009 
 
 

Содержание
1. Задание на курсовую работу 3
2. Задача 1 4
2.1
      Условие задачи: Найти  количество элементов массива расположенных       между максимальными центральным элементами.
4
2.2 Постановка  задачи 4
2.3 Описание алгоритма 4
2.4 Реализация  решения задачи 4
2.5 Контрольные примеры 5
3. Задача 2 7
3.1
      Условие задачи: После каждого элемента с заданным значением, удалить 1 элемент, если он отличен от заданного.
7
3.2 Постановка  задачи 7
3.3 Описание алгоритма 7
3.4 Реализация  решения задачи 7
3.5 Контрольные примеры 8
4. Задача 3 10
4.1
      Условие задачи: Вставить элемент с заданным значением после элемента с заданным номером.
10
4.2 Постановка  задачи 10
4.3 Описание алгоритма 10
4.4 Реализация  решения задачи 10
4.5 Контрольные примеры 11
5. Задача 4 12
5.1
      Условие задачи: Проверить есть ли в массиве два подряд идущих положительных элемента.
12
5.2 Постановка  задачи 12
5.3 Описание алгоритма 12
5.4 Реализация  решения задачи 12
5.5 Контрольные примеры 12
6. Основная программа 14
6.1 Описание данных 14
6.2 Описание алгоритма 15
6.3 Текст программы 15
Литература 23
 
 

1.ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ 

Решить 4 задачи: 

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

      Задача 2. Удаление элементов вектора. После каждого элемента с заданным значением, удалить один элемент, если он отличен от заданного значения. Если удаление элементов невозможно, выдать об этом сообщение.

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

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

      Объединить  решение задач в одну программу. Реализовать программу средствами языка программирования C++. 
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       

2. ЗАДАЧА 1 

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

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

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

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

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

      int *а – массив. 

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

      Функция kol_vo(a,maxim,n), которая возвращает количество элементов массива, находящихся между максимальным элементом и центральным элементом. 

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

      Массив  должен содержать нечётное количество элементов. Если при вводе длины  массива число n оказывается чётным выводится сообщение «Ошибка! Количество элементов должно быть нечётным». 

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

Проверка  присутствия нескольких максимальных элементов neskolko(a,n). 

Если  максимальный элемент встречается в массиве неоднократно (if (maxim!=I && maxim==a[i])) то выводим: «Ошибка! В массиве несколько максимальных элементов.», иначе вычисляем и выводим значение функции kol_vo(a,n). 

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

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

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

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

    - neskolko(a,n)функция проверки единственности максимального элемент в массиве; 

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

              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;

    } 

                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;

      } 

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

   {

          int x;

          x=(n/2)-maxim;

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

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

          if (kol==0)

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

          return kol;

  } 

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

  1. n=7, a = { 1 2 3 6 5 9 3 } (случай когда максимальный элемент находится справа от центрального элемента).

Центральный элемент = 6, номер центрального элемента = 4;

Максимальный  элемент = 9, номер максимального элемента = 6;

Количество элементов  между максимальным элементом и  центральным элементом 

kol= (abs((7/2)-6)-1)= 1 

  1. n=9, a = { 9 2 3 -1 4 5 4 7 8} (случай когда максимальный элемент находится слева от центрального элемента).

Центральный элемент = 4, номер центрального элемента = 5;

Максимальный  элемент = 9, номер максимального  элемента = 1;

Количество элементов  между максимальным элементом и  центральным элементом      kol= (abs((9/2)-1)-1)= 3 

  1. n=5, a = { 1 4 5 3 2} (случай когда центральный элемент и максимальный элемент совпадают).

Центральный элемент = 5, номер центрального элемента = 3;

Максимальный  элемент = 5, номер максимального  элемента = 3;

Выводится сообщение «Центральный и максимальный элемент совпадают!» 

  1. n=3, a = {1 2 4} (случай когда между центральным элементом и максимальным элементом нет элементов).

Центральный элемент = 2, номер центрального элемента = 2;

Максимальный  элемент = 4, номер максимального  элемента = 3;

Количество элементов  между максимальным элементом и  центральным элементом 

kol= (abs((3/2)-3)-1)= 0 Выводится сообщение «Между центральным и максимальным элементами нет элементов» 

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

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

  1. n=1, a=1

Выводится сообщение  «Центральный и максимальный элемент совпадают.» 

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

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

   
  1. n=4, a={1 2 3 4}

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

 

 

3. ЗАДАЧА 2 

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

  Удаление  элементов вектора. После каждого элемента с заданным значением, удалить один элемент, если он отличен от заданного значения. Если удаление элементов невозможно, выдать об этом сообщение. 
 

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

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

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

      Int *а – массив;

      Int zad_elemзаданное значение. 

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

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

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