Автор работы: Пользователь скрыл имя, 22 Января 2011 в 15:04, курсовая работа
Определить количество элементов массива расположенных между максимальным и «центральным» элементами массива (предполагается, что число элементов – нечётное и максимальный элемент - единственный). Если по какой либо причине количество определить не удаётся, выдать об этом сообщение с указанием причины.
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 |
|
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. Проверка состояния вектора. Проверить
содержаться ли в массиве два подряд идущих
положительных элемента.
Объединить
решение задач в одну программу.
Реализовать программу
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.
Контрольные примеры
Центральный элемент = 6, номер центрального элемента = 4;
Максимальный элемент = 9, номер максимального элемента = 6;
Количество элементов между максимальным элементом и центральным элементом
kol= (abs((7/2)-6)-1)=
1
Центральный элемент = 4, номер центрального элемента = 5;
Максимальный элемент = 9, номер максимального элемента = 1;
Количество элементов
между максимальным элементом и
центральным элементом kol= (abs((9/2)-1)-1)=
3
Центральный элемент = 5, номер центрального элемента = 3;
Максимальный элемент = 5, номер максимального элемента = 3;
Выводится
сообщение «Центральный и максимальный
элемент совпадают!»
Центральный элемент = 2, номер центрального элемента = 2;
Максимальный элемент = 4, номер максимального элемента = 3;
Количество элементов между максимальным элементом и центральным элементом
kol= (abs((3/2)-3)-1)=
0 Выводится сообщение «Между центральным
и максимальным элементами нет элементов»
Выводится сообщение
«Массив пуст!»
Выводится сообщение
«Центральный и максимальный элемент
совпадают.»
Выводится сообщение
«Ошибка! В массиве несколько максимальных
элементов. »
Выводится сообщение
«Ошибка! Количество элементов должно
быть нечётным »
3. ЗАДАЧА
2
3.1
Условие задачи
Удаление
элементов вектора. После каждого элемента
с заданным значением, удалить один элемент,
если он отличен от заданного значения.
Если удаление элементов невозможно, выдать
об этом сообщение.
3.2
Постановка задачи
Входные данные:
Int n – длина массива;
Int *а – массив;
Int
zad_elem
– заданное значение.
Выходные данные:
Измененный
массив а, при наличии заданного элемента
и последующий за ним элемент отличен
от заданного.