Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика и программирование.-2

.pdf
Скачиваний:
16
Добавлен:
05.02.2023
Размер:
1.56 Mб
Скачать

5.Защитить работу.

2.23Лабораторная работа «Массивы объектов»

Цель работы: формирование навыков реализации классов в Си++.

Форма проведения: выполнение индивидуального задания.

Рекомендации по подготовке к лабораторной работе: при подго-

товке к лабораторной работе необходимо повторить справочный материал по организации работы с массивами в языке Си — учебное пособие

[1], стр. 114 — 123.

Организация работы с массивами объектов в С++

Статические массивы статических объектов

Синтаксис описания:

<Имя класса> <Имя массива> [Размер массива] Такое описание может быть выполнено только при наличии в классе

конструктора без параметров.

Если конструктор без параметров в классе не определен, то в программе можно описать статический массив ссылок на объекты.

Синтаксис описания:

<Имя класса> *<Имя массива> [Размер массива] В этом случае необходимо выделить память под все объекты масси-

ва.

Динамические массивы объектов

Динамические массивы объектов могут быть организованы двумя способами: динамические массивы объектов и динамические массивы ссылок на объекты.

Динамические массивы объектов можно объявить в программе следующим образом:

<Имя класса> *<Имя массива> ; Выделение памяти под массив:

<Имя массива> = new <Имя класса>[количество элементов массива]; Такой синтаксис выделения памяти может быть использован только в

случае наличия в классе конструктора без параметров.

Пример, создающий массивы различных типов представлен в приложении 2.

Порядок проведения работы

1. Получить индивидуальный вариант.

41

2. Написать программу, в которой создается массив объектов указанного типа для класса, реализованного в предыдущих лабораторных работах.

3. Отладить и протестировать программу.

4. Защитить работу.

2.24 Лабораторная работа «Перегрузка операторов»

Цель работы: формирование навыков реализации перегруженных операторов в Си++.

Форма проведения: выполнение индивидуального задания.

Рекомендации по подготовке к лабораторной работе: при подго-

товке к лабораторной работе необходимо повторить справочный материал по организации перегрузки стандартных операторов в Си++ — учебное пособие [3], стр. 138 — 144, учебное пособие [4], стр. 140 — 142, учебное пособие [5], стр. 212 — 228.

Порядок проведения занятия

1.Получить индивидуальный вариант.

2.Разработать структуру перегружаемых операторов.

3.Написать программу, демонстрирующую применение перегруженных операторов к объектам класса.

4.Отладить и протестировать программу.

5.Защитить работу.

2.25Лабораторная работа «Наследование и полиморфизм»

Цель работы: формирование навыков проектирования и реализации системы классов.

Форма проведения: выполнение индивидуального задания.

Рекомендации по подготовке к лабораторной работе: при подго-

товке к лабораторной работе необходимо ознакомиться с двумя основными принципами ООП: наследование — учебное пособие [4], стр. 171

— 175, учебное пособие [5], стр. 229 — 238; полиморфизм — учебное пособие [4], стр. 177 — 182, учебное пособие [5], стр. 239 — 247. При подготовке к лабораторной работе обратите внимание на следующие вопросы темы: типы наследования, синтаксис объявления классовнаследников, типы полиморфизма, виртуальные функции, позднее и ранее связывание.

42

Порядок проведения занятия

1.Самостоятельно разработать класс-наследник для ранее реализованного класса.

2.Реализовать класс-наследник программно.

3.Написать программу, демонстрирующую принципы динамического и статического полиморфизма.

4.Отладить и протестировать программу.

5.Защитить работу.

2.26Лабораторная работа «Обработка исключений»

Цель работы: знакомство с механизмом обработки исключительных ситуаций.

Форма проведения: выполнение индивидуального задания.

Рекомендации по подготовке к лабораторной работе: при подго-

товке к лабораторной работе необходимо изучить теоретический материал по теме — учебное пособие [4], стр. 163 — 165, учебное пособие [5], стр. 271 — 274. При изучении материала особое внимание уделите следующим вопросам: понятие исключительной ситуации, синтаксис обработки исключительной ситуации, этапы обработки исключительных ситуаций.

Порядок проведения занятия

1.Самостоятельно определить 2 — 3 исключительные ситуации, которые могут возникнуть при работе с объектами ранее разработанных классов.

2.Реализовать программно механизм обработки исключительных ситуаций.

3.Отладить и протестировать программу.

4.Защитить работу.

2.27Лабораторная работа «Потоки»

Цель работы: знакомство с файловыми потоками языка Си++.

Форма проведения: выполнение индивидуального задания.

Рекомендации по подготовке к лабораторной работе: при подго-

товке к лабораторной работе необходимо изучить теоретический материал по теме — учебное пособие [3], стр. 159 — 179, учебное пособие [5],

43

стр. 248 — 262. При изучении материала особое внимание уделите следующим вопросам: типы потоков, иерархия потоковых классов, организация прямого доступа в потоках

Порядок проведения занятия

1.Получить индивидуальный вариант.

2.Разработать систему классов для решения задачи индивидуального варианта.

3.Программно реализовать спроектированную систему классов.

4.Отладить и протестировать программу.

5.Защитить работу.

44

3 Методические указания к выполнению курсовой работы

3.1 Общие положения

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

Можно определить следующие цели выполнения курсовой работы:

систематизация, закрепление и расширение теоретического материала по структурному подходу к программированию и основам языка Си;

формирование у студента навыков научно-исследовательской работы; формирование навыков самостоятельной разработки алгоритмов для решения вычислительных задач;

приобретение практических навыков реализации компьютерных программ.

Во время выполнения курсовой работы студент должен приобрести и закрепить навыки:

работы со специальной литературой фундаментального и прикладного характера;

самостоятельной работы над поставленной задачей; оформления пояснительной записки к курсовой работе;

представлению и защите результатов курсовой работы.

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

Основной формой контроля уровня формирования компетенций при выполнении курсовой работы является публичная защита выполненной работы.

Работа выполняется студентом самостоятельно. Руководитель курсовой работы формирует задание на курсовую работу, осуществляет мониторинг процесса выполнения работы студентом и предоставляет консуль-

45

тативную помощь во время аудиторных занятий по курсовой работе согласно расписанию занятий.

Общие требования к выполнению работы

Программная реализация задания на курсовую работу должна быть выполнена на языке программирования Си.

Тестовые данные для программной реализации студент формирует самостоятельно.

Программа должна представлять собой законченный продукт, который может использовать сторонний пользователь.

К защите работы студент обязан предоставить: протестированное откомпилированное приложение, исходные коды программ на СD-диске; отчет по курсовой работе.

3.2Примерная тематика курсовых работ

Всоответствии с вариантом задания необходимо реализовать два численных метода и исследовать эффективность реализованных методов. При выполнении курсовой работы исследуется эффективность методов численного интегрирования, оптимизации функций одного аргумента, методов решения нелинейных уравнений. Критерием эффективности является время выполнения метода при заданной точности вычислений.

Примеры заданий на курсовую работу

1.Численное интегрирование. Метод трапеций. Метод Уэддля.

2.Оптимизация функций. Метод золотого сечения. Метод дихото-

мии.

3.Численное интегрирование. Метод прямоугольников. Метод Симпсона.

4.Решение нелинейных уравнений. Метод итераций. Метод касательных.

5.Оптимизация функций. Метод сканирования. Общий поиск.

6.Решение нелинейных уравнений. Метод секущих. Метод половинного деления.

7.Оптимизация функций. Метод Фибоначчи. Метод сканирования.

8.Численное интегрирование. Метод трапеций. Метод Симпсона.

9.Численное интегрирование. Метод трапеций. Метод модифицированных прямоугольников.

10.Решение нелинейных уравнений. Метод итераций. Метод половинного деления.

46

11.Численное интегрирование. Метод трапеций. Метод прямоугольников.

12.Решение нелинейных уравнений. Метод касательных. Метод половинного деления.

3.3Порядок выполнения курсовой работы

Конкретизация задания на курсовую работу

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

Изучение численных методов

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

Волков, Е.А. Численные методы [Электронный ресурс] : учебник / Е.А. Волков. — Электрон. дан. — Санкт-Петербург : Лань, 2008. — 256 с.

— Режим доступа: https://e.lanbook.com/book/54. — Загл. с экрана. (стр. 103 — 118).

Киреев, В.И. Численные методы в примерах и задачах [Электронный ресурс] : учебное пособие / В.И. Киреев, А.В. Пантелеев. — Электрон. дан. — Санкт-Петербург : Лань, 2015. — 448 с. — Режим доступа: https://e.lanbook.com/book/65043. — Загл. с экрана. (стр. 70 — 117).

Денежкина, И. Е. Численные методы: Курс лекций[Электронный ресурс] : Учебное пособие / И. Е. Денежкина. — М.: Финансовая академия, 2004. — 112 с. — Режим доступа: http://znanium.com/bookread2.php?book=497545 . (стр. 32 — 47, 73 — 78).

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

47

Проектирование алгоритмов численных методов

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

Программная реализация численных методов

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

Подготовка тестовых материалов для исследования эффективности реализованных методов

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

Анализ эффективности реализованных методов

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

Подготовка отчета по курсовой работе

Пояснительная записка к курсовой работе должна включать:

титульный лист;

задание на курсовую работу;

48

содержание;

введение;

основную часть;

заключение;

список литературы;

приложения.

Титульный лист, содержание и список литературы оформляется согласно ОС ТУСУР 01-2013.30 [6]. Шаблон листа задания приведен в приложении 3.

Содержание раздела «Введение»: определение цели; формулировка задач; краткая характеристика предметной области (вычислительная математика).

Основная часть отчета должна содержать: математическое описание используемых численных методов; описание алгоритмов численных методов; описание тестовых данных, процесса тестирования и результатов тестирования, анализ результатов тестирования.

Заключение должно содержать краткие выводы о проделанной работе, практическое приложение, перспективы использования результатов работы.

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

Подведение итогов выполнения курсовой работы

Подведение итогов выполнения курсовой работы включает следующие этапы: предварительная проверка отчета и реализованных численных методов руководителем; доработка курсовой работы с учетом замечаний руководителя; сдача готового и подписанного отчета по курсовой работе; подготовка презентации и доклада.

Защита курсовой работы

Курсовая работа, допускается к защите, при условии отсутствия замечаний со стороны руководителя по выполненной работе и по содержанию и оформлению работы, о чем руководитель делает запись на титульном листе. Защита курсовой работы проводится публично в присутствии группы.

49

4 Методические указания для организации самостоятельной работы

4.1 Общие положения

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

Самостоятельная работа над теоретическим материалом направлена систематизацию и закрепление знаний, полученных на лекционных занятиях и на получение новых знаний по дисциплине, путем самостоятельного изучения тем.

Самостоятельная работа по подготовке к лабораторным работам направлена на изучение методического и теоретического материала по теме лабораторной работы.

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

4.2 Проработка лекционного материала, подготовка к контрольным работам и лабораторным работам

Проработка лекционного курса является одной из важных активных форм самостоятельной работы. Этот вид самостоятельной работы может быть организован следующим образом:

прочитайте конспект лекции, согласуя Ваши записи с информацией на слайдах лекции;

попробуйте выполнить самостоятельно примеры программ, разобранных на лекции;

если в лекции рассматривался какой-либо алгоритм, попытайтесь выполнить этот алгоритм на тестовых данных без использования компьютерной программы; такой способ проработки материалов лекции покажет, правильно ли Вы поняли идею алгоритма;

изучите дополнительные учебные материалы, рекомендованные преподавателем;

50