Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Отладка программных решений. Учебно-методическое пособие для студентов направлений подготовки бакалавриата 09.03.03 «Прикладная информатика», 09.03.04
.pdf
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное бюджетное образовательное учреждение
высшего образования
«УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
В.В. Воронина, Е.Н. Эгов
ОТЛАДКА ПРОГРАММНЫХ РЕШЕНИЙ
Учебно-методическое пособие
по дисциплине «Ознакомительная практика»
для студентов направлений подготовки бакалавриата
09.03.03 «Прикладная информатика»,
09.03.04 «Программная инженерия»
Ульяновск
УлГТУ
2024

УДК 004.42я73
ББК 32.973–018.2(076)
В 75
Рецензенты:
ООО «СимбирСофт», IT-компания, предоставляющая услуги по разработке
и тестированию программных продуктов на заказ;
Р.Ф. Гайнуллин, кандидат технических наук, ведущий инженер-программист
ООО «АйТи»
Утверждено редакционно-издательским советом университета
в качестве учебно-методического пособия
В 75
Воронина, Валерия Вадимовна
Отладка программных решений : учебно-методическое пособие для
студентов направлений подготовки бакалавриата 09.03.03 «Прикладная
информатика», 09.03.04 «Программная инженерия» / В. В. Воронина,
Е. Н. Эгов [Электронный ресурс]. – Электронные текстовые данные.
Ульяновск : УлГТУ, 2024. – 102 с.
ISBN 978-5-9795-2383-5
Пособие адресовано студентам для выполнения и оформления практических
работ по дисциплине «Ознакомительная практика». Рекомендации и требования к
практическим работам разработаны в соответствии с рабочей программой
дисциплины. Предназначены для студентов, обучающихся по направлениям
09.03.03 «Прикладная информатика», профиль «Искусственный интеллект и бизнесаналитика» и 09.03.04 «Программная инженерия», профиль «Искусственный
интеллект и предиктивная аналитика».
Работа подготовлена на кафедре «Информационные системы».
Пособие может быть использовано преподавателями и студентами других
направлений подготовки (специальностей).
Печатается в авторской редакции.
УДК 004.42я73
ББК 32.973–018.2(076)
© Оформление. УлГТУ, 2024
ISBN 978-5-9795-2383-5 © Воронина В.В., Эгов Е.Н., 2024

СОДЕРЖАНИЕ
Практическая работа №0. Вводное ............................................................. 6
Цель ............................................................................................................ 6
Работа на практике .................................................................................... 6
Практическая работа № 01. Работа с массивами ..................................... 10
Цель .......................................................................................................... 10
Теория ....................................................................................................... 10
Общее задание ......................................................................................... 20
Задание 1. Поиск в массиве .................................................................... 21
Задание 2. Перестановка ......................................................................... 23
Задание 3. Вставка в массив ................................................................... 25
Задание 4. Удаление из массива ............................................................ 26
Задание 5. Вставка и удаление в двумерном массиве ......................... 28
Задание 6. Сортировки массивов ........................................................... 29
Практическая работа № 02. Алгоритмы и структуры данных ............... 33
Цель .......................................................................................................... 33
Теория ....................................................................................................... 33
Общее задание ......................................................................................... 43
Задание 1. Структуры данных. .............................................................. 44
Задание 2. Сортировка. ........................................................................... 45
Задание 3. Алгоритмы ............................................................................ 45
Практическая работа № 03. Объектно-ориентированное
программирование ................................................................................................. 47
Цель .......................................................................................................... 47
Теория ....................................................................................................... 47
3

Общее задание ......................................................................................... 57
Задание 1. Инкапсуляция. ...................................................................... 58
Задание 2. Наследование. ....................................................................... 60
Задание 3. Полиморфизм ........................................................................ 61
Практическая работа № 04. Трассировка ................................................. 64
Цель .......................................................................................................... 64
Теория ....................................................................................................... 64
Общее задание ......................................................................................... 67
Задание ..................................................................................................... 68
Практическая работа № 05. Логирование ................................................. 70
Цель .......................................................................................................... 70
Теория………………..………………………………………………….70
Общее задание ......................................................................................... 73
Задание ..................................................................................................... 73
Практическая работа № 06. Отладка ......................................................... 75
Цель .......................................................................................................... 75
Теория ....................................................................................................... 75
Общее задание ......................................................................................... 81
Задание ..................................................................................................... 81
Практическая работа № 07. Игра ............................................................... 85
Цель .......................................................................................................... 85
Общее задание ......................................................................................... 85
Задание ..................................................................................................... 85
Практическая работа № 08. Игра. Хранение данных .............................. 90
Цель .......................................................................................................... 90
4

Общее задание ......................................................................................... 90
Задание ..................................................................................................... 90
Практическая работа № 09. Игра. Алгоритм ............................................ 96
Цель .......................................................................................................... 96
Общее задание ......................................................................................... 96
Задание ..................................................................................................... 96
Приложение А ........................................................................................... 102
5

Цель
Ознакомиться с процессом выполнения работы на практике.
Работа на практике
В рамках учебной (ознакомительной) практики студенты должны
пройти 3 блока задач:
задачи на закрепление материала по дисциплинам первого
учебного года, связанных с программированием;
задачи на ознакомление со способами отладки программного
ПРАКТИЧЕСКАЯ РАБОТА № 0.
ВВОДНОЕ
кода на предмет
задачи на изучение применения разнообразных алгоритмов и
структур данных в реальных проектах.
Каждый блок разбит на 3 работы.
В рамках работ первого блока студенты закрепляют свои навыки по
обработке одномерных и двумерных массивов, реализации различных
структур данных и алгоритмов по их обработке и применению концепции
объектно-ориентированного программирования
решений. Задачи первого блока разбиты на уровни сложности, от простых, на
условную оценку «удовлетворительно», до сложных, на условную оценку
«отлично». Первый блок практики обязателен к выполнению для всех
студентов. Студенты, планирующих сдать ознакомительную практику на
логических ошибок;
при разработке программных
оценку «удовлетворительно» должны выполнить все задачи этого блока на
условную оценку «удовлетворительно».
ознакомительную практику на оценку «хорошо» должны выполнить все
задачи этого блока на условную оценку «хорошо». Студенты, планирующих
сдать ознакомительную практику на оценку «отлично» должны выполнить
все задачи этого блока на условную оценку «отлично».
6
Студенты, планирующих сдать

В рамках работ второго блока студенты знакомятся и закрепляют свои
навыки по отладке готовых программных решений, поиску в них логических
ошибок кода. Первая работа блока посвящена пониманию как выполняется
код в процессе работы программы через построение трассировочных таблиц.
Вторая работа блока посвящена ознакомлению способа поиска логических
ошибок в коде с
работа блока посвящена ознакомлению способа поиска логических ошибок в
коде с использованием средств отладки среды разработки. Второй блок
практики обязателен к выполнению для студентов, планирующих сдать
ознакомительную практику на оценку «хорошо» и «отлично».
В рамках работ третьего блока студенты знакомятся и закрепляют свои
навыки по применению алгоритмов в реальных проектах. В качестве
реальных проектов выступают различные простые игры, в которые требуется
хранить информацию по игровому полю, а также, иметь определенную
логику либо расстановки объектов на поле по ходу игры, либо действий
соперников-ботов. Третий блок практики обязателен к выполнению для
студентов, планирующих сдать ознакомительную
«отлично».
использованием файлов с логами работы программы. Третья
практику на оценку
Перед началом практики студент изучает задания первого блока, и
определяет для себя, на какую оценку он способен быстро решить задачи, так
как задачи первого блока градируются на оценку, и они требуют
наибольшего времени на реализацию. Блок считается сданным при условии
сдачи всех заданий из блока. Пока
переходить к следующему. Если к концу практики студент не сдает блок, ему
выставляется оценка на балл ниже оценки за блок. Например, если студент
закрыл первый и второй блоки, но не закрыл третий, то его оценка за
практику «хорошо». Если студент закрыл только первый
«удовлетворительно» (и не важно на какую оценку он выбирал задания).
Если студент не закрыл первый блок, то его оценка – «не
удовлетворительно». При пересдаче допускается достать блок на оценку,
студент не сдал блок, он не может
блок, то его оценка
7

выбранную перед началом практики, при условии, что этот блок был
единственным не сданным. Например, если в начале практики студент
заявляет, что способен решить задачи на оценку «отлично», но по ходу
практики не закрывает даже первый блок, то на пересдаче он может закрыть
только первый блок и получить оценку «удовлетворительно». Если
практики студент закрыл первый блок, но не закрыл второй блок, то на
пересдаче он может закрыть только второй блок и получить оценку
«хорошо».
В качестве среды выполнения для реализации практических работ
рекомендуется использовать Visual Studio, язык разработки – C#.
По результату выполнения практики формируется отчет. В отчет
входят:
Титульный лист (приложение
Отчет по практической работе 1. В него входят текст задания по
задаче и фрагмент кода (листинг) с его решением (только главная
часть, без ввода/вывода данных) для каждой задачи из работы.
А).
по ходу
Отчет по практической работе 2. В него входят текст задания,
описание устройства АТД/работы алгоритма, фрагмент кода
(листинг
данных) для каждой задачи из работы.
Отчет по практической работе 3. В него входят текст задания по
задаче и фрагмент кода (листинг) с его решением (ключевые
классы) для каждой задачи из работы.
Отчет по практической работе 4. В него входят текст
код решения и таблица трассировки.
Отчет по практической работе 5. В него входят текст задания, код
решения и текст из файла с логами.
Отчет по практической работе 6. В него входят текст задания,
) с его решением (только главная часть, без ввода/вывода
задания,
исходный код, скриншот с демонстрацией работы программы
8

(что расчеты не совпадают), описание в чем заключалась ошибка,
исправленный код, скриншот с демонстрацией работы
программы (что расчеты совпадают).
Отчет по практической работе 7. В него входят описание игры,
основные правила и скриншоты работы игры
Отчет по практической работе 8. В него входят описание по
хранению и выводу информации
фрагментами кода, отвечающими за это.
Отчет по практической работе 9. В него входят описание по
ключевым алгоритмам игры с фрагментами кода, отвечающими
за это.
по игровому полю с
9

ПРАКТИЧЕСКАЯ РАБОТА № 01.
РАБОТА С МАССИВАМИ
Цель
Закрепить навыки обработки наборов данных на примере одномерных
и двумерных числовых массивов. Так как основная задача большинства
разрабатываемых программных решений сводится к обработке
определенного набора исходных данных, то навык обработки наборов
данных является ключевым для программиста. По сути, многие задачи
сводятся к
набора данных по определенным критериям, модификации набора для его
последующего использования и т.д. И самый простой способ освоить навык
работы с наборами данных – это обработка числовых массивов.
Теория
Первым делом, вспомним, что такое массив. Массив – это набор
однотипных элементов, расположенный
такого определения у массива возникает ряд особенностей и ограничений:
задачам поиска в наборе данных нужных элементов, выборки из
в памяти единым целым. За счет
так как все элементы массива одного типа, то каждый элемент
занимает в памяти одинаковое количество байт;
так как массив в памяти расположен единым «куском», то доступ
к любому элементу выполняется за один такт: зная
занимает один элемент, где начало массива и какой элемент нам
нужен, достаточно выполнить простую арифметическую
операцию для определения адреса конкретного элемента;
имя массива (переменная в коде) хранит в себе адрес в памяти,
где расположен первый элемент массива (для обращения к
другим элементам массива – простая арифметика);
обращение
массива и порядковый номер элемента (индекс);
к элементу массива (в коде) происходит через имя
10
, сколько байт
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
