Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KURSach.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
88.06 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ПРЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ им А. И. Герцена»

Курсовая работа

РЕШЕНИЕ ОЛИМПИАДНЫХ ЗАДАЧ

Выполнил студент 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]