Модульное программирование
Курсовая работа, 22 Января 2011, автор: пользователь скрыл имя
Описание работы
Определить количество элементов массива расположенных между максимальным и «центральным» элементами массива (предполагается, что число элементов – нечётное и максимальный элемент - единственный). Если по какой либо причине количество определить не удаётся, выдать об этом сообщение с указанием причины.
Файлы: 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.
Контрольные примеры
- n=6, a = { 1 2 4 6 5 3 }, zad_elem=6
Заданный элемент = 6 (номер элемента =4). Следующий элемент массива отличен от заданного = 5(номер элемента =5), поэтому он удаляется.
Полученный
массив: a = { 1 2 4 6 3 }
- 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 равен заданному и является последним.
Поэтому выводится сообщение «Заданный
элемент является последним в массиве»
- n<=0, a – отсутствуют
Выводится сообщение
«Ошибка! Количество элементов массива
должно быть не менее двух.»
- n=1, a=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_
Если
элемент 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.
Контрольные примеры
- 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 }
- n=5, a = { 1 2 3 4 0 }, int zad_nomer=9
Заданный номер = 9.
Выводится сообщение
«Ошибка! Массив не имеет элемента с заданным
номером, так как количество элементов
массива менее 9»
- n<=0, a – отсутствуют
Выводится сообщение
«Массив пуст.»
- n=1, a=1, int zad_nomer=9
Выводится сообщение
«Ошибка! Массив не имеет элемента с заданным
номером, так как количество элементов
массива менее»
- 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.
Контрольные примеры
- n=5, a = { -5 3 2 -2 -1 }
Выводится
сообщение «Да, Массив содержит два
подряд идущих положительных элемента.»
- n=1, a = { 1 }
Выводится
сообщение «В массиве один элемент»
- n=3, a = { 0 -9 -2 }
Выводится
сообщение «Два подряд идущих положительных
элементов не найдено»
- n<=0, a – { }
Выводится сообщение
«Количество элементов массива менее
двух..»
- n=3, a={0 0 0}
Выводится сообщение «Два подряд идущих положительных элементов не найдено.»