Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Студент 1 курса, группы 107314





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

 

по дисциплине: “Языки программирования”

 

на тему: ” Сортировка массива структур на основе структуры

" Магазин” ”

 

Выполнил: ст. гр. 10702214 Нгуен Зуй Туан Ань

Приняла: ст. преподаватель И.М. Желакович

 

Минск 2015

Белорусский национальный технический университет

Кафедра программного обеспечения вычислительной техники

и автоматизированных систем

 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

К курсовому проекту (работе)

по дисциплине “языки программирования”

на тему: ” Сортировка массива структур на основе структуры

" Магазин” ”

 

 

Исполнитель:_______ Нгуен Зуй Туан Ань

 

Студент 1 курса, группы 107314

Руководитель:_____Желакович И.М.

 

 

Минск 2015

 

СОДЕРЖАНИЕ

Белорусский национальный технический университет. 2

1. ВВЕДЕНИЕ. 5

2. ТЕОРЕТИЧЕСКИЙ ВОПРОС Дисковые алгоритмы-планировщики. 6

2.1 Алгоритм лифта (англ.) — дисковый алгоритм планирования, который работает как лифт. 6

2.2 Алгоритм кратчайшего перемещения (англ.) — дисковый алгоритм планирования для уменьшения времени поиска. Хотя поиск пути не тривиальная задача, существует несколько хороших, надежных алгоритмов, которые заслуживают большей известности в сообществе разработчиков. 6

Некоторые алгоритмы поиска пути не очень эффективны, но их изучение позволяет постепенно вводить концепции. Так можно понять, как решаются различные проблемы. 6

Типичной проблемой в поиске пути является обход препятствий. Наипростейшим подходом к проблеме является игнорирование препятствий до столкновения с ними. Такой алгоритм будет выглядеть примерно так: 6

Этот подход прост, так как он предъявляет совсем немного требований: все, что необходимо знать - это относительные положения объекта и его цели, и признак блокирования препятствием. Для многих игровых ситуаций этого достаточно. 6

Различные стратегии обхода препятствий включают в себя: 6

2.2.1 Перемещение в случайном направлении. 6

Если препятствия маленькие и выпуклые, объект (показан зеленой точкой) может, вероятно, обойти их путем небольшого смещения в сторону до тех пор, пока не достигнет цели (показана красной точкой). Рисунок 1А показывает, как работает такая стратегия. Проблемы у этого метода возникают, если препятствия большие или вогнутые, как показано на рисунке 1Б - объект может полностью застрять или как минимум потерять много времени, пока не будет найден обходной путь. Существует только один способ избежать этого: если проблему очень трудно преодолеть, то измените игру так, чтобы эта проблема никогда не возникала. То есть, убедитесь, что в игре никогда не будет вогнутых объектов. 6

2.2.2 Трассировка вокруг препятствия. 6

К счастью, существуют другие методы обхода. Если препятствие большое, можно коснуться рукой препятствия и следовать контуру препятствия, пока она не обойдено. Рисунок 2А показывает, как хорошо этот метод работает с большими препятствиями. Проблема с этим методом состоит в принятии решения - когда же прекратить трассировку. Типичной эвристикой может быть: "Остановить трассировку при передвижении в направлении, которое было желаемым в начале трассировки". Это будет работать во многих случаях, однако рисунок 2Б показывает, как можно постоянно кружить внутри препятствия не находя пути наружу. 7

2.2.3 Надежная трассировка. 7

Более надежная эвристика пришла из работ над мобильными роботами: "При блокировании, вычислить уравнение линии из текущей позиции к цели. Трассировать до тех пор, пока эта линия не пересечена снова. Прервать работу, если вы опять попали в начальную позицию". Этот метод гарантирует нахождение пути вокруг препятствия, если он есть, что показано на рисунке 3А. (Если изначальная точка блокирования между вами и целью при пересечении линии, ни в коем случае не останавливайте трассировку, чтобы избежать дальнейшего зацикливания) Рисунок 3Б показывает обратную сторону этого подхода: зачастую требуется гораздо больше времени на трассировку чем необходимо. Компромисс состоит в комбинации обоих подходов: всегда использовать эвристику попроще для остановки трассирования, но если зафиксировано зацикливание, переключаться на надежную эвристику. 7

3. ПРАКТИЧЕСКИЙ РАЗДЕЛ.. 8

3.1. Математическая формулировка задачи. 8

3.2. Описание программы. 9

3.3. Блок-схема алгоритма: 11

4 Контрольный пример. 12

5. ВЫВОДЫ.. 17

6. СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ.. 18

7. Приложение А.. 19

8. Приложение B. 31

 

 

 

ВВЕДЕНИЕ

Цель курсовой работы - закрепление и углубление знаний, полученных при изучении курса «Основы алгоритмизации и программирования» посредством разработки программного обеспечения на языке С++; нaучитьcя практический применять полеченные теоретический знания пpи решении конкретных вопросов; нaучитьcя пользоваться справочной литературой.

В данной курсовой работе представлены несколько видов сортировок.Алгоритм сортировки — это алгоритм для упорядочивания элементов в списке. В случае, когда элемент списка имеет несколько полей, поле, служащее критерием порядка, называется ключом сортировки. На практике в качестве ключа часто выступает число, а в остальных полях хранятся какие-либо данные, никак не влияющие на работу алгоритма. Алгоритмы сортировки оцениваются по скорости выполнения и эффективности использования памяти:

· Время — основной параметр, характеризующий быстродействие алгоритма. Называется также вычислительной сложностью. Для упорядочения важны худшее, среднее и лучшее поведение алгоритма в терминах мощности входного множества A. Если на вход алгоритму подаётся множество A, то обозначим n = |A|. Для типичного алгоритма хорошее поведение — это O (n log n) и плохое поведение — это O (n 2). Идеальное поведение для упорядочения — O (n). Алгоритмы сортировки, использующие только абстрактную операцию сравнения ключей всегда нуждаются по меньшей мере в Ω(n log n) сравнениях. Тем не менее, существует алгоритм сортировки Хана (Yijie Han) с вычислительной сложностью O (n log log n log log log n), использующий тот факт, что пространство ключей ограничено (он чрезвычайно сложен, а за О -обозначением скрывается весьма большой коэффициент, что делает невозможным его применение в повседневной практике). Также существует понятие сортирующих сетей. Предполагая, что можно одновременно (например, при параллельном вычислении) проводить несколько сравнений, можно отсортировать n чисел за O (log2 n) операций. При этом число n должно быть заранее известно.

 

 

ТЕОРЕТИЧЕСКИЙ ВОПРОС Дисковые алгоритмы-планировщики.

Алгоритм лифта (англ.) — дисковый алгоритм планирования, который работает как лифт.

2.2 Алгоритм кратчайшего перемещения (англ.) — дисковый алгоритм планирования для уменьшения времени поиска. Хотя поиск пути не тривиальная задача, существует несколько хороших, надежных алгоритмов, которые заслуживают большей известности в сообществе разработчиков.

Некоторые алгоритмы поиска пути не очень эффективны, но их изучение позволяет постепенно вводить концепции. Так можно понять, как решаются различные проблемы.

Типичной проблемой в поиске пути является обход препятствий. Наипростейшим подходом к проблеме является игнорирование препятствий до столкновения с ними. Такой алгоритм будет выглядеть примерно так:

 

Этот подход прост, так как он предъявляет совсем немного требований: все, что необходимо знать - это относительные положения объекта и его цели, и признак блокирования препятствием. Для многих игровых ситуаций этого достаточно.

Различные стратегии обхода препятствий включают в себя:

Date: 2016-05-24; view: 290; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию