
- •1. Введение
- •2.1.3. Описание логической структуры
- •2.2.4. Руководство пользователя
- •2.2.5. Руководство программиста
- •3.2.3. Руководство оператора
- •3.2.4. Руководство пользователя
- •3.2.5. Руководство программиста
- •4.2.4. Руководство пользователя
- •4.2.5. Руководство программиста
- •5.2.4. Руководство пользователя
- •5.2.5. Руководство программиста
- •6. Заключение
- •7. Приложение к задаче №1
- •8. Приложение к задаче №2
- •9. Приложение к задаче №3
- •10. Приложение к задаче №4
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ПРЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ им А. И. Герцена»
Курсовая работа
РЕШЕНИЕ ОЛИМПИАДНЫХ ЗАДАЧ
Выполнил студент II курса 2 группы:
Астахов Данил Витальевич
Руководитель:
профессор кафедры ИСПО
Швецкий Михаил Владимирович
Техническое задание на разработку программы "Курсовая работа"
Содержание:
1. Введение
2. Задача №1
2.1. Технологическая документация
2.1.1. Общие сведения
2.1.2. Функциональное назначение
2.1.3. Описание логической структуры
2.1.4. Вызоов и загрузка
2.1.5. Входные данные
2.1.6. Выходные данные
2.2. Эксплуатационная документация
2.2.1. Описание программы
2.2.2. Руководство администратора
2.2.3. Руководство оператора
2.2.4. Руководство пользователя
2.2.5. Руководство программиста
3. Задача №2
3.1. Технологическая документация
3.1.1. Общие сведения
3.1.2. Функциональное назначение
3.1.3. Описание логической структуры
3.1.4. Вызов и загрузка
3.1.5. Входные данные
3.1.6. Выходные данные
3.2. Эксплуатационная документация
3.2.1. Описание программы
3.2.2. Руководство администратора
3.2.3. Руководство оператора
3.2.4. Руководство пользователя
3.2.5. Руководство программиста
4. Задача №3
4.1. Технологическая документация
4.1.1. Общие сведения
4.1.2. Функциональное назначение
4.1.3. Описание логической структуры
4.1.4. Вызов и загрузка
4.1.5. Входные данные
4.1.6. Выходные значения
4.2. Эксплуатационная документация
4.2.1. Описание программы
4.2.2. Руководство администратора
4.2.3. Руководство оператора
4.2.4. Руководство пользователя
4.2.5. Руководство программиста
5. Задача №4
5.1. Технологическая документация
5.1.1. Общие сведения
5.1.2. Функциональное назначение
5.1.3. Описание логической структуры
5.1.4. Вызов и загрузка
5.1.5. Входные данные
5.1.6. Выходные данные
5.2. Эксплуатационная документация
5.2.1. Описание приграммы
5.2.2. Руководство администратора
5.2.3. Руководство оператора
5.2.4. Руководство пользователя
5.2.5. Руководство программиста
6. Заключение
7. Приложение к задаче №1
8. Приложение к задаче №2
9. Приложение к задаче №3
10. Приложение к задаче №4
1. Введение
Данная курсовая работа выполнена на языке программирования высокого уровня Си в среде программирования Dev-C++ 5.8.2 и иллюстрирует возможности языка в решении олимпиадных задач по программированию.
В работе представлены задачи о периодических дробях, об отрезках, о возведении в степень и о слиянии массивов и технологические и эксплуатационные документации к каждой из них.
Технологические документации содержат общие сведения о программах, функциональное назначение программ, их логическую структуру, способы вызова и загрузки, входные и выходные данные. Эксплуатационные документации содержат описания программ, руководства администратора, оператора, пользователя и программиста.
Программы выполнены в технологии операторного программирования.
Коды программ можно найти в приложениях к задаче с соответствующим номером.
2. Задача №1
2.1. Технологическая документация
2.1.1. Общие сведения
Файл с кодом программы называется "1-13.с".
Код программы написан Астаховым Д.В.
Так же сам код можно посмотреть в пункте "Приложение к задаче №1"
Программа написана в среде для разработки Dev-C++ 5.8.2 на языке C.
2.1.2. Функциональное назначение
Данная программа предназначена для нахождения наибольшей стоимости книги, при которой у продавца не нашлось бы сдачи покупателю. При этом книга по карману покупателю.
Программа может быть использована в любой аналогичной задаче, где необходимо найти такое число, которое принадлежит максимальной сумме элементов первого массива, но при этом разница максимально приближенной комбинации первого массива к этому числу и любой комбинации второго массива не должна быть равна этому числу.
2.1.3. Описание логической структуры
Алгоритм программы в текстовом виде.
int main() - основная функция получающая на вход заполнение двух массивов.
P[M] - массив достониств монет покупателя.
Q[N] - массив достоинств монет продавца.
i,j,CostBook -параметры циклов.
k - число используемое как битовая маска.
Psumm - максимальная комбинация покупателя(Нужна для контроля стоимости книги).
BackCost - стоимость книги к которой нет сдачи (Ищется максимальное значение).
CostP - сдача покупателю.
Summ - контрольная сумма
BackCostNext - Проверяемая стоимость книги. "Лучше ли?"
С помощью цикла for с параметром i=0…M-1 в массив P[M] записываются достоинтсва монет находящиеся у покупателя.
С помощью цикла for с параметром i=0…N-1 в массив Q[N] записываются достоинтсва монет находящиеся у продавца.
С помощью цикла for с параметром i=0…M-1 в суммируются все элементы массива P[M] и записываются в переменную Psumm;
C помощью цикла for с параметром CostBook=1...Psumm находится число находящееся в промежутке от 1 до Psumm включительно, которое будет удовлетворять условию задачи.
Рассмотрим подробнее:
С помощью цикла for с параметром i=0...2^M находится сумма Summ некоторых элементов массива P[M], которая равна или больше, но максимально приближена, стоимости книги. И удовлетворяющее число данным условиям записывается в CostP.
Здесь перебираются все возможные комбинации элементов массива с помощью наложения битовой маски на все элементы массива по очереди в цикле for с параметром j=0...M.
Далее в переменную CostP записывается разница(сдача) между приближенной суммой к стоимости книги и самой стоимости книги.
Если CostP равен нулю, то происходит переход на следующий шаг цикла for с параметром CostBook, в противном случае:
С помощью цикла for с параметром i=0...2^N находится сумма элементов Summ некоторых элементов массива Q[N], которая строго равна необходимой сдачи CostP. Если таковой не находится, то данная стоимость книги, при которой продавец не сможет дать сдачи, записывается в BackCostNext.
В случае если сдача будет, то BackCostNext равен нулю.
Если Стоимость книги больше нуля и больше предыдущей стоимости, то записывается новая стоимость за место старой.
Таким образом, если в итоговую переменную будет записан ноль, то нет такой стоимости книги, что не смоглабы на нее найтись сдача и выведется сообщение "BackCost yes ".
Если же значение будет отличным от нуля(больше), то данное значение и будет стоимостью книги, при которой не будет найдена сдача. И выведется сообщение "Cost Book='стоимость книги', BackCost no "
Структура программы
Заголовочные файлы библиотеки Си
int main()
{
последовательность операторов
}
2.1.4. Вызоов и загрузка
Запуск программы в Windows, а именно файл 1-13.c можно выполнить при помощи:
- Среда разработки Dev-C++ 5.8.2 или выше.(компилятор TDM-GCC 4.8.1). Рекомендуемо проводить компиляцию и запуск именно из этой среды.
- Так же поддерживаются среды Вorland С++ 3.1, Borland C++ 5.5.
2.1.5. Входные данные
Вводятся элементы с клавиатуры для заполнения двух массивов.
Enter P[M]:
1 2 3 4 5
Enter Q[N]:
1 2 3 4 5 6
2.1.6. Выходные данные
Выводятся сообщения:
Либо - Cost Book='стоимость книги', BackCost no.
Либо - BackCost yes
2.2. Эксплуатационная документация
2.2.1. Описание программы
Данная программа предназначена для проверки и нахождения максимальной стоимости книги, для которой у продавца не найдется сдачи, если такоевая есть.
Пример входных данных:
3 13 74 273 432
1 2 3 7 10 10
Пример выходных данных:
Cost Book=745, BackCost no.
2.2.2. Руководство администратора
Запуск программы в Windows, а именно файл 1-23.c можно выполнить при помощи:
- Среда разработки Dev-C++ 5.8.2 или выше.(компилятор TDM-GCC 4.8.1). Рекомендуемо проводить компиляцию и запуск именно из этой среды.
- Так же поддерживаются среды Вorland С++ 3.1, Borland C++ 5.5.
Возникнут проблемы при заполнении массивов отрицательными значениями.
2.2.3. Руководство оператора
Данная программа предназначена для нахождения наибольшей стоимости книги, при которой у продавца не нашлось бы сдачи покупателю. При этом книга по карману покупателю.
Запуск программы в Windows, а именно файл 1-23.c можно выполнить при помощи:
- Среда разработки Dev-C++ 5.8.2 или выше.(компилятор TDM-GCC 4.8.1). Рекомендуемо проводить компиляцию и запуск именно из этой среды.
- Так же поддерживаются среды Вorland С++ 3.1, Borland C++ 5.5.
Все возможные сообщения выводимые на экран:
Enter P[M]:
EnterQ[N]:
Cost Book='стоимость книги', BackCost no.
BackCost yes