Содержание
Технологическая (проектно-технологическая) практика Витте. Пример- образец
Пример/ образец Технологическая (проектно-технологическая) практика Витте. Если по какой- то причине не удается самостоятельно справиться с курсовой работой, то мы можем Вам в этом помочь. Для заказа необходимо обратиться к нашим менеджерам.
Индивидуальное задание на языке программирования Python
В качестве заданий на практику студентам дается четыре задачи. Задания подобраны таким образом, чтобы при выполнении работы студенты могли приобрести практические навыки разработки программных продуктов для решения прикладных задача среднего уровня сложности. Необходимым условием работы является использование для выполнения заданий языка программирования Python. Разрешается использование наиболее распространенных библиотек и модулей стандартной библиотеки Python. Использование нестандартных библиотек возможно только после согласования с руководителем практики. Для работы на Python рекомендуется использование среды разработки PyCharm.
Формулировки заданий имеют общую и индивидуальную части. Индивидуализация заданий реализуется на основе уникального номера ID студента и его ФИО. После консультаций с руководителем практики от Университета выбираются библиотеки и составляются примерные алгоритмы решения каждого задания. Необходимо отметить, что возможны разные подходы к решению заданий курсовой работы. В процессе выполнения задач по согласованию с руководителем возможна конкретизация и уточнение формулировок исходных данных в задачах. Данные корректировки обязательно должны быть отражены в отчете.
– В процессе выполнения задач практики студенты должны:
– изучить задачи на разработку программного продукта;
– выполнить анализ и составить примерную стратегию решения каждого задания;
– выбрать необходимые библиотеки для реализации предметных областей программного продукта;
– разработать алгоритмы и реализовать их в среде разработки с помощью выбранных библиотек;
– для отдельных заданий разработать графический интерфейс пользователя с использованием библиотеки tkinter. Использование других графических библиотек возможно по согласованию с руководителем;
– выбрать стратегию тестирования и разработать тесты;
– выполнить тестирование и отладку;
– подробно описать решение каждого задания, форматы входных и выходных файлов;
– сформировать отчет по практике, привести листинг программного кода для каждого задания;
– сформировать архив исходных текстов программ, входных и результирующих файлов.
Задание № 1: Работа с наборами данных без графического интерфейса.
Формулировка:
При запуске, программа загружает файл resourse_1.txt из своей папки. В этом файле дан текст. Выведите все слова, встречающиеся в тексте, по одному на каждую строку, через пробел укажите количество повторений. Слова должны быть отсортированы по убыванию их количества появления в тексте, а при одинаковой частоте появления — в лексикографическом порядке. Вывод должен умолчанию осуществляется в файл result.txt, но нужно так же дать пользователю возможность перенаправить вывод в консоль, указав при запуске программы текстовый аргумент -с.
Методические указания:
После того, как вы создадите словарь всех слов, необходимо отсортировать его по частоте встречаемости слова. Желаемого можно добиться, если создать список, элементами которого будут кортежи из двух элементов: частота встречаемости слова и само слово. Например, [(2, 'hi'), (1, 'what'), (3, 'is')]. Тогда стандартная сортировка будет сортировать список кортежей, при этом кортежи сравниваются по первому элементу, а если они равны — то по второму. Знаки препинания не должны учитываться.
Программу сохранить под именем exercise_1.py
Пример входных данных:
В папку с программой помещается файл resourse_1.txt. Возможное содержание:
Hi hi
what is your name
my name is bond
james bond
my name is damme
van damme
claude van damme
jean claude van damme
Пример выходных данных:
После запуска в текстовый файл result_1.txt помещается текст:
Damme 4
Is 3
Name 3
Van 3
Bond 2
Claude
2 hi 2
my 2
james 1
jean 1
what 1
Задание № 2: Разработка экспертной системы с графическим интерфейсом.
Формулировка:
Некоторый банк хочет внедрить систему управления счетами клиентов, поддерживающую следующие операции:
• Пополнение счета клиента.
• Снятие денег со счета.
• Запрос остатка средств на счете.
• Перевод денег между счетами клиентов.
• Начисление процентов всем клиентам.
Методические указания:
На старте работы программы считается, что у банка 1 клиент. Клиент(ы) банка идентифицируются именами (уникальная строка, не содержащая пробелов). Вам необходимо задать в качестве имени клиента свою фамилию на английском языке с большой буквы. На вашу фамилию должен быть открыт счет с суммой равной вашему ID. Например, Ivanov 70121903.
В программе должна быть предусмотрена возможность ввода простых команд, которые поддерживают следующие операции:
DEPOSIT name sum Если нет клиента с именем name, он создаётся с пусты счётом. В любом случае, на счёт клиента name зачисляется сумма sum. Выводится новое состояние счёта клиента name.
WITHDRAW name sum Если нет клиента с именем name, он создаётся с пустым счётом. В любом случае, со счёта клиента name снимается сумма sum. Выводится новое состояние счёта клиента name.
BALANCE name
Если дано имя name, то выводится состояние счёта этого клиента. Если нет клиента с именем name, выводится текст «NO CLIENT».
Команда может быть введена без имени. В этом случае выводится построчно состояния счетов всех клиентов в базе.
TRANSFER name1 name2 sum Сумма снимается у клиента name1, зачисляется клиенту name2. Если одного или обоих клиентов нет, то они создаются.
Выводятся новые состояния счёта обоих клиентов.
INCOME p Начислить всем клиентам, у которых открыты счета, p% от суммы счета.
Проценты начисляются только клиентам с положительным остатком на счету. Если у клиента остаток отрицательный, то его счет не меняется.
После начисления процентов сумма на счету остается целой, то есть начисляется только целое число денежных единиц. Дробная часть итоговой суммы отбрасывается.
Выводятся новые состояния счёта всех клиентов.
Команды загружаются и выполняются через интерфейс программы двумя описанными ниже способами.
Интерфейс программы содержит в себе:
• большое текстовое поле ввода команд;
• если команды не помещаются в поле, включается вертикальная прокрутка;
• кнопку «Расчёт»;
• большое текстовое поле вывода результатов;
• если результаты не помещаются в поле, включается вертикальная прокрутка;
• однострочное поле ввода имени файла;
• кнопку «Загрузить».
Требуемый функционал программы:
• команды вводятся в текстовое поле по одной на каждой строчке;
• количество команд не ограничено, при превышении размеров поля по вертикали включается прокрутка текста;
• при нажатии кнопки «Расчёт» или клавиши на клавиатуре, команды последовательно выполняются;
• результаты работы отображаются в следующем виде:
КОМАНДА
<отступ 4 пробела> РЕЗУЛЬТАТ
>>>
Например, возможный результат ввода BALANCE qq:
BALANCE qq
NO CLIENT
>>>
• состояния счёта отображаются в виде «ИМЯ СЧЁТ». Например,
DEPOSIT Ivanov 100
Ivanov 70122003
>>>
• в поле ввода файла можно указать имя файла, после чего при нажатии кнопки «Загрузить» или комбинации клавиш <SHIFT+ENTER> содержимое файла копируется в текстовое поле ввода. Команды только копируются, но не выполняются пока пользователь не сделает расчёт;
• если одна из команд написана неверно, то выполнение команд останавливается, а в поле вывода пишется отчёт об ошибке в работе команды в виде «ОШИБКА: <текст команды>».
Взаиморасположение кнопок в интерфейсе определяет разработчик. Можно добавить кнопки и комбинации клавиш для очистки полей ввода и вывода (без потери банковской информации).
ВАЖНО:
Команды вводятся пользователем только большими буквами. Сама команда, имя клиента, суммы (числа) разделяются пробелами.
Предполагается, что пользователь не будет пытаться специально ломать систему и будет вводить только буквы и числа. Но в этих буквах и числах он может и будет ошибаться.
Программу сохранить под именем exercise_2.py
Пример набора команд:
DEPOSIT Ivanov 100
TRANSFER qq1 qq2 100
BALANCE
Пример результата:
DEPOSIT Ivanov 100
Ivanov 70122003
>>>
TRANSFER qq1 qq2 100
qq1 -100
qq2 100
>>>
BALANCE
Ivanov 70122003
qq1 -100
qq2 100
>>>
Задание № 3: Разработка аналитической системы с графическим интерфейсом.
Формулировка:
Разработать калькулятор со стандартным и расширенным функционалом.
Стандартный функционал:
• Арифметические действия «+», «-», «*», «/».
• Возможность ввода отрицательного числа.
• Возведение в степень.
• Извлечение квадратного корня.
• Работа с памятью, состоящей из одной ячейки.
• Должна быть кнопка сброса и кнопка «=» (равно).
Расширенный функционал:
• Наличие кнопки/меню перехода в расширенный режим.
• Возможность работы с несколькими ячейками памяти. Количество ячеек памяти выбирается согласно методическим указаниям.
• Отображение последовательности математических операций и цифр в n-строчном «дисплее», с возможностью «прокрутки». Количество строк «дисплея» калькулятора выбирается согласно методическим указаниям.
• Реализация «инженерных» функций расширенного режима. Конкретный перечень функций выбирается согласно методическим указаниям.
Методические указания:
Необходимо разработать программу и GUI для реализации функций калькулятора. Примерный вид внешнего интерфейса стандартного режима калькулятора представлен на рисунке:
Конкретная компоновка элементов интерфейса, внешний вил, цветовая палитра, максимальное количество отображаемых цифр, число отображаемых строк на «дисплее» калькулятора могут отличаться от представленного рисунка и оставляется на усмотрение автора работы.
У калькулятора есть 2 режима – обычный и инженерный. Переключение между режимами калькулятора осуществляется одной из кнопок на калькуляторе.
Инженерный режим калькулятора добавляет к калькулятору дополнительный набор кнопок, расширяя размер окна калькулятора (переход обратно в обычный режим, соответственно, уменьшает размер окна). Так же в инженерном режиме включается многострочный дисплей, в котором сохраняется история действий и результатов вычислений и дополнительные ячейки памяти.
Пример многострочного дисплея на картинке:
Количество строк «цифрового дисплея» должно определяться по формуле 2 + (рекурсивная сумма всех цифр ID студента). Рекурсивная сумма цифр начинается с нахождения суммы цифр числа, после чего нахождения суммы цифр суммы, после чего нахождения суммы цифр новой суммы, и так до тех пор, пока не получится сумма равная 10 или меньше.
Например, обучающийся Иванов Иван Иванович, имеет ID 80123986.
Сумма всех цифр равна: 8 + 0 + 1 + 2 + 3 + 9 + 8 + 6 = 37.
Сумма суммы равна: 3 + 7 = 10.
Следовательно, «цифровой дисплей» калькулятора должен 10 строк.
Количество ячеек памяти калькулятора должно определяться как последовательная сумма последних 3-х чисел ID. Суммирование отдельных цифр числа должно осуществляться до получения однозначного числа, состоящей из 1-й цифры. Данный процесс также рекомендуется реализовать с помощью рекурсивной функции.
Например, обучающийся Иванов Иван Иванович, имеет ID 80121986.
Сумма последних трёх цифр равна: 9 + 8 + 6 = 23.
Сумма суммы: 2 + 3 = 5.
Следовательно, должно быть предусмотрено 5 ячеек памяти и кнопки для работы с ними (M+, M-, MС, MR, MS).
Если после последовательного суммирования 3-х цифр ID получилась число менее 2 (например, для ID=82121001: 0+0+1=1), то количество ячеек памяти становится 2.
Дополнительные функции расширенного режима, которые должны быть реализованы определяются в соответствие с таблицей по первой букве Фамилии обучающегося:
Первая буква фамилии Имена функций Описания функций
А pi, sin, tan, exp, n!, frac Число Пи, синус, тангенс, экспонента, факториал; отсекает целую часть, оставляет дробную
Б asin, acos, atg, log_xy, n! Арксинус, арккосинус, арктангенс, логарифм по основанию, факториал
В //, ctg, 10х, asin, acos Целочисленное деление, котангенс, 10 в степени х, арксинус, арккосинус
Г F – E, y√x, lg10 Переключает ввод чисел между обычным и экспоненциальным представлениями; y-ый корень числа x, где y – натуриальное; десятичный логарифм.
Д gcd(a, b), tanh, ln, x3 Возвращает наибольший общий делитель a и b; гиперболический тангенс; натуральный логарифм по основанию «e»; возвести в степень 3.
Е hyp(x, y), isqrt(), sinh, mod функция вычисляет гипотенузу треугольника c катетами x и y; Возвращает целочисленный квадратный корень аргумента, округлённый вниз; гиперболический синус, вычислить остаток от деления одного числа на другое
Ж tanh, ln, x3, frac гиперболический тангенс, натуральный логарифм по основанию «e», возвести в степень 3; отсекает целую часть, оставляет дробную
З sinh-1, exp, asin, acos обратный гиперболический синус, экспонента, арксинус, арккосинус
И mod, tanh, asin, acos вычислить остаток от деления одного числа на другое, гиперболический тангенс; арксинус, арккосинус
К ln, x3, dms, sin натуральный логарифм по основанию
«e», возвести в степень 3; переводит из десятичного вида в формат в градусы, минуты, секунды; синус
Л x3, asin, acos Возведение в куб, арксинус, арккосинус
М sinh, mod, y√x, lg10 гиперболический синус, вычислить остаток от деления одного числа на другое; yый корень числа x, где y обычно является положительным целым числом, десятичный логарифм
Н deg, y√x, lg10, sin, cos перевод угла в градусах, минутах и секундах в десятичные доли градуса; y-ый корень числа x, где y обычно является положительным целым числом, десятичный логарифм; синус, косинус
О int, pi, tanh, ln, x3 отображает целую часть десятичного числа, число Пи, выдает значение Pi для расчетов; гиперболический тангенс, натуральный логарифм по основанию «e», возвести в степень 3
П inv, sin, cos, tan обратная функция для sin, cos, tan, переключает интерфейс на другие функции; синус; косинус; тангенс
Р dms, sin, cos, tan переводит из десятичного вида в формат в градусы, минуты, секунды; синус; косинус; тангенс
С dms, 10^x, pi, tanh, ln переводит из десятичного вида в формат в градусы, минуты, секунды; возведение десяти в произвольную степень, число Пи, гиперболический тангенс, натуральный логирифм
Т F – E, acos, atg, log_xy, n! переключает ввод чисел в экспоненциальном представлении и обратно; арккосинус, арктангенс, логорифм по основанию, факториал
У pi, sin, tan, exp, asin, acos Число Пи, синус, тангенс, экспонента, арксинус, арккосинус
Ф mod, tanh, ln, x3, exp, asin, acos вычислить остаток от деления одного числа на другое, гиперболический тангенс, натуральный логарифм по основанию «e», возвести в степень 3, экспонента, арксинус, арккосинус
Х x^b, n!,
F – E, acos функция выполняет возведение числа в степень b и возвращает затем вещественный результат; вычисление факториала; переключает ввод чисел в экспоненциальном представлении и обратно; арккосинус
Ц pi, sin, tan, floor Число Пи, синус, тангенс; Округляет число до ближайшего целого, но в меньшую сторону
Ч sin, cos, tan, ln, x3 синус; косинус; тангенс; натуральный логарифм по основанию «e», возвести в степень 3
Ш mod, tanh,
F – E, acos вычислить остаток от деления одного числа на другое, гиперболический тангенс, переключает ввод чисел в экспоненциальном представлении и обратно; арккосинус
Щ F – E, acos, tanh, ln, x3 переключает ввод чисел в экспоненциальном представлении и обратно; арккосинус; гиперболический тангенс, натуральный логарифм по основанию «e», возвести в степень 3
Э tanh, ln, x3, log_xy, n! гиперболический тангенс, натуральный логирифм, возведение в куб, логорифм по основанию, факториал
Ю x3, 10^x, pi, tanh возведение в куб, возведение десяти в произвольную степень, число Пи, гиперболический тангенс
Я tanh, asin, acos,
F – E гиперболический тангенс; арксинус, арккосинус, переключает ввод чисел в экспоненциальном представлении и обратно
На картинке ниже - пример калькулятора в расширенном режиме.
ВАЖНО:
Программа должна использовать распространенные библиотеки. Если с согласия руководителя предполагается для реализации дополнительных функций и отрисовки интерфейса использование сторонних библиотек, то в пояснительной записке к курсовой работе должно быть представлено обоснование и подробное их описания.
При разработке программы следует использовать принципы объектно-ориентированного программирования.
Калькулятор должен работать и корректно выдавать результат.
Внешний вид калькулятора не оценивается, однако следует придерживаться традиционных компоновок. Весь функционал должен быть легко доступен.
При вводе некорректных операций, приводящих к ошибкам в вычислениях (например, деление на 0), на цифровом экране должно выводится сообщение об ошибке.
Программу сохранить под именем exercise_3.py.
Процедура проверки:
Проверяется размер дисплея и количество кнопок памяти.
С помощью мыши вводятся числа и выполняются арифметические операции.
С помощью мыши выбираются заявленные дополнительные функции:
Вводятся намеренно некорректные операции (попытка деления на 0 и прочие).
Ожидаемые результаты:
На цифровом дисплее отображается история и результаты операций, либо сообщения об ошибках.
Задание № 4: Модифицированная задача о Ханойских башнях.
Формулировка:
Существует 8 шпинделей, пронумерованых от 8 до 1 слева направо. На каждом шпинделе надеты диски, в количестве, равном соответствующей цифре из ID студента. Все диски имеют разные диаметры. Диаметр диска равен M * 10 + N, где М – номер шпинделя, на котором надет диск, а N – это номер диска на шпинделе, считая сверху вниз.
Необходимо визуально изобразить предложенную задачу. Диски на шпинделях сделать случайных цветов. На каждом диске отображать цифру, равную его диаметру. Диаметр диска также показывать его фактическим размером в пикселях.
Необходимо вычислить, за какое минимальное количество итераций переместятся все диски на шпиндель номер 1 по следующим правилам:
• За одну итерацию можно переместить один диск;
• диски можно класть только с большего на меньший;
• cо шпинделя номер 8 можно перекладывать диски только на шпиндели 7 и 6;
• cо шпинделя 1 можно перекладывать диски только на шпиндели номер 2 и 3;
• cо шпинделей от 2 по 7 можно перекладывать диски только на два соседних шпинделя.
Необходимо отобразить начальное и конечное расположение дисков на шпинделях, для этого под изображением Ханойских башен предусмотреть две кнопки «Начало» и «Окончание». При нажатии на нее, в надписи под схемой должен выводится текст «Итерация ХХ», где ХХ – номер итерации (либо 0, либо номер итоговой итерации, соответственно).
Необходимо графически отобразить четыре промежуточные итерации перекладывания дисков. Для этого:
a. общее количество итераций признаётся равным 100%;
b. ID студента делится на 4 двузначных числа, каждое из которых обозначает итерацию, соответствующую этому проценту выполнения общей задачи.
Под изображением Ханойских башень предусмотреть четыре поля для ввода цифр с процентами выполнения. По-умолчанию добавить туда числа из п. b).
Под каждым полем для ввода предусмотреть кнопку, при нажатии на которую схема Ханойской башни отображает расположение дисков на соответствующей итерации. Также в надписи под схемой должен выводится текст «Итерация ХХ», где ХХ – номер итерации.
Дать возможность пользователю изменять проценты в полях для ввода цифр, и по нажатию соответствующей кнопки просматривать расположение дисков на данной итерации.
Методические указания
Так как задача алгоритмически достаточно проста, то основная часть работы над задачей студента сводится к правильной визуализации полученных результатов, а также оптимальному поиску промежуточных результатов. Схема ханойских башен должна выглядеть примерно таким образом (В данном примере расположение дисков соответствует ID студента):
Так как размер диска должен соответствовать его номеру на шпинделе и номеру самого шпинделя, умноженного на 10, то как нетрудно догадаться, максимальный диаметр диска может быть 89. Поэтому для правильной визуализации без наложения дисков рекомеднуется выдерживать расстояние между шпинделями примерно в 100-120 пикселей (для окна формата 1280х1024).
Поскольку диски близких размеров будут отличаться всего на один пиксель, то для контроля на каждом диске необходимо проставить его диамер в виде цифры. Так как в конце задачи все диски будут находиться на первом шпинделе, а общее количество дисков теоретически может быть равно 72, то рекомендуется сделать толщину одного диска примерно равной 10-12 пикселям, для указанного окна.
Остальные элементы управления под схемой Ханойской башни рекомендуется выстраивать в следующем порядке:
На данном рисунке также видно, как следует разбивать ID студента для выведения промежуточных итогов. При нажатии на кнопки, нужно показать итерации, соответствующие 70%, 25%, 64% и 21% выполнения задачи.
Уточнение:
Если по какому-либо проценту получается дробная итерация, то необходимо её визуализировать как промежуточный этап переноса диска. При этом диск изобразить в воздухе, между тем шпинделем, с которого он снят, и тем, на который он переносится. Номер итерации в таком случае отображать как дробный, с округлением до 3 цифр после нуля.
Программу сохранить под именем exercise_4.py
Входные данные:
Идентификатор студента.
Промежуточные проценты, вводимые в соответсвующие поля над кнопками.
Выходные данные:
На цифровом дисплее должно отображаться окно с начальным расположением дисков на шпинделях Ханойских башень. Шпиндели пронумерованы, на дисках также обозначены соответствующие диаметры. Под ней отображается шесть кнопок и четыре поля для ввода цифр. В нижней части экрана демонстрируется надпись «Итерация 0».
При нажатии на любую из шести имеющихся кнопок, либо при заполнении поля ввода другими данными и нажатии на кнопку, схема ханойских башень меняется, для отображения соответствующей итерации.
Надпись в нижней части экрана также меняется.
Готовый отчёт- пример образец Витте:
СОДЕРЖАНИЕ
ВВЕДЕНИЕ. 3
Задачи практики. 4
ОСНОВНАЯ ЧАСТЬ. 6
- АНАЛИЗ ЗАДАНИЙ ПРАКТИКИ.. 6
1.1 Исходные данные к заданиям практики. 6
1.2 Анализ поставленной задачи и составление плана решения. 6
1.3 Организация рабочего места, анализ организации. 7
1.4 Выводы по разделу. 8
- РАЗРАБОТКА ПРОГРАММНОГО ПРОДУКТА ДЛЯ РЕШЕНИЯ ПРИКЛАДНЫХ ЗАДАЧ…………………………………………………………11
2.1 Работа с наборами данных. 11
2.1.1 Построение алгоритма решения задания без графического интерфейса. 11
2.1.2 Разработка программной реализации на языке программирования. 13
2.1.3 Тестирование и отладка. 15
2.1.4 Формирование выходных файлов. 16
2.2 Разработка экспертной системы.. 16
2.2.1 Построение алгоритма решения задания с графическим интерфейсом.. 17
2.2.2 Разработка программной реализации на языке программирования и с использованием дополнительных библиотек. 18
2.2.2.1 Проектирование стандартного функционала. 19
2.2.2.2 Проектирование расширенного функционала. 20
2.2.2.3 Индивидуальное задание реализации дополнительных функций. 21
2.2.3 Тестирование и отладка. 22
2.2.4 Формирование выходных файлов. 23
2.3 Разработка аналитической системы.. 24
2.3.1 Построение алгоритма решения задания с графическим интерфейсом.. 26
2.3.2 Разработка программной реализации на языке программирования и с использованием дополнительных библиотек. 27
2.3.3 Тестирование и отладка. 28
2.3.4 Формирование выходных файлов. 29
2.4 Разработка логико-аналитической системы.. 29
2.4.1 Построение алгоритма решения задания «Ханойские башни». 30
2.4.2 Разработка программной реализации на языке программирования и с использованием дополнительных библиотек. 31
2.4.3 Тестирование и отладка. 31
2.4.4 Формирование выходных файлов. 33
2.5 Выводы по разделу. 34
- РАЗРАБОТКА ТРЕБОВАНИЙ К ТЕХНИЧЕСКИМ СРЕДСТВАМ РЕАЛИЗАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ РЕШЕНИЯ ПРИКЛАДНЫХ ЗАДАЧ.. 37
3.1 Аппаратно-технические средства для решения задач. 37
3.2 Техническая документация и руководства пользователей. 37
3.3 Выводы по разделу. 39
ЗАКЛЮЧЕНИЕ. 41
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ.. 43
Приложение А. Листинг текстов заданий. 44
Приложение Б. Образцы GUI заданий. 45
ВВЕДЕНИЕ
Производственная практика проходила в Московском университете им. С.Ю. Витте (далее — Университете) на кафедре информационных систем. От руководителя практики получено индивидуальное план-задание прохождения практики. В рамках структурного подразделения Университета с помощью руководителя практики и сотрудников кафедры было организовано рабочее место. На персональный компьютер была установлена среда разработки для языка программирования Python. Все задачи практики решались с помощью языка программирования Python.
В первый день практики были изучены правила внутреннего трудового распорядка Университета, в том числе нормативная документация по мерам противодействия коррупционному поведению. Пройден инструктаж по технике безопасности и правилам поведения при возникновении чрезвычайных и нештатных ситуаций.
Практика проходила в плановом режиме, в соответствии с графиком. Выполнение заданий сопровождалось регулярным взаимодействием с руководителем практики. Студент последовательно осваивал навыки программирования, анализа требований, проектирования и реализации прикладных решений. Задания охватывали различные направления разработки программ на языке Python — от обработки текстовых и числовых данных до реализации пользовательского интерфейса и системного учета.
Полученные знания и навыки использовались при решении прикладных задач, в том числе в рамках анализа, написания алгоритмов, реализации и тестирования программ. Особое внимание уделялось вопросам точности, логичности структуры кода, использованию комментариев и документации. Работа велась с соблюдением всех требований информационной безопасности и регламентов Университета
Цель практики получение знаний о возможности использования информационных технологий для решения прикладных задач, а также выработка практических навыков по их анализу, выбору и применению информационных технологий в Университете
Задачи практики
- Закрепление приобретенных теоретических знаний и практических навыков решения прикладных информационных задач с использованием методик программирования высокого уровня
- Приобретение опыта создания и применения информационных технологий при решении задач профессиональной деятельности
- Использование нормативно-правовой документации и специализированной литературы при решении прикладных задач
- Решение задач практики с применением системного подхода, информационно-коммуникационных технологий и с учетом основных требований информационной безопасности
- Разработка алгоритмов для решения поставленных руководителем практики задач
- Разработка программных продуктов (структурной и функциональной схем программного обеспечения, структур данных, алгоритмов и реализующих их программ, стратегии тестирования и тестовых данных и т.п.)
- Реализация профессиональной коммуникации с заинтересованными участниками проектной деятельности в устной и письменной формах
- Получение навыков самостоятельной работы
- Подготовка отчетов и презентаций по результатам профессиональной деятельности
Источниками информации явились организационно-правовые документы, распорядительные и информационно-справочные документы организации – базы практики, а также техническая документация по языку программирования Python.
ОСНОВНАЯ ЧАСТЬ
1. АНАЛИЗ ЗАДАНИЙ ПРАКТИКИ
1.1 Исходные данные к заданиям практики
ФИО студента:
ФИО латиницей:
Идентификатор студента (ID):
Расчёты для индивидуализации Задачи 3:
Сумма всех цифр ID: 7 + 0 + 2 + 0 + 1 + 2 + 4 + 1 = 17 → 1 + 7 = 8
→ Дисплей калькулятора должен иметь 8 строк.
Сумма последних трёх цифр ID: 4 + 1 + 2 = 7
→ Калькулятор должен содержать 7 ячеек памяти.
Первая буква фамилии: S
→ Расширенные функции по таблице:
- dms — преобразование градусов в минуты и секунды;
- 10^x — экспоненциальная функция;
- pi — константа числа π;
- tanh — гиперболический тангенс;
- ln — натуральный логарифм.
1.2 Анализ поставленной задачи и составление плана решения
Для выполнения задач, поставленных в рамках производственной практики, был проведён анализ требований к программной реализации. Задачи охватывали темы обработки данных, построения алгоритмов, визуализации интерфейсов и расчётов, что потребовало использования универсального языка программирования и подходящих библиотек.
Выбор языка и среды разработки
Основным инструментом реализации выбран язык Python, как высокоуровневый, интерпретируемый и кроссплатформенный язык, обладающий следующими преимуществами:
Простота синтаксиса, что ускоряет разработку;
Наличие большого числа встроенных модулей;
Поддержка объектно-ориентированного и процедурного программирования;
Широкое сообщество и обширная документация;
Возможность работы как с консольными, так и с графическими интерфейсами.
В качестве среды разработки использована PyCharm Community Edition, которая обеспечивает удобную навигацию по коду, автодополнение, встроенную консоль и систему отладки. Среда была установлена на персональный компьютер на базе Windows 10.
Для реализации заданий применялись следующие библиотеки:
| Название библиотеки | Назначение |
| math | Математические функции (включая pi, tanh, ln, asin, acos) |
| tkinter | Создание графического интерфейса |
| random | Генерация случайных данных в задачах моделирования |
| collections | Расширенные структуры данных (например, Counter) |
| re | Регулярные выражения для обработки текста |
Таблица 1 – Основные библиотеки и их назначение
В ходе работы с задачами производилась пошаговая реализация функционала, начиная с анализа требований и проектирования интерфейса, заканчивая отладкой и тестированием готового программного решения. Использование графического интерфейса через tkinter позволило обеспечить удобство взаимодействия пользователя с калькулятором.
1.3 Организация рабочего места, анализ организации
В ходе практики студенту было организовано рабочее место на кафедре информационных систем Московского университета им. С.Ю. Витте. Рабочее место включало персональный компьютер, подключённый к сети интернет, с установленной операционной системой Windows 10 и базовым офисным программным обеспечением.
На момент начала практики на компьютере не было установлено необходимого программного обеспечения для выполнения заданий, связанных с программированием. Поэтому по согласованию с руководителем практики был установлен интерпретатор Python версии 3.11, а также среда разработки PyCharm Community Edition. Установка производилась с официальных сайтов разработчиков. Дополнительно были установлены и протестированы стандартные библиотеки языка Python, такие как math, tkinter, random и другие, используемые в задачах практики.
Рабочее место соответствовало требованиям эргономики и позволяло эффективно выполнять задания. Присутствовали клавиатура, мышь, монитор с разрешением 1920×1080, удобное кресло и стол, доступ к принтеру и локальной сети.
В первый день практики студент прошёл инструктаж по технике безопасности и ознакомился с правилами внутреннего трудового распорядка Университета. Были изучены документы, регламентирующие поведение сотрудников и студентов, включая меры по предупреждению и недопущению коррупционных проявлений.
Особое внимание было уделено антикоррупционной политике организации. В соответствии с положениями Университета, все сотрудники и обучающиеся обязаны соблюдать принципы честности, прозрачности и недопущения конфликта интересов. Студент ознакомился с кодексом этики и служебного поведения, в котором отражены нормы профессиональной ответственности, правила информирования о попытках коррупционного давления, а также действия, которые необходимо предпринять в подобных ситуациях.
Таким образом, организация рабочего места, установка необходимого программного обеспечения и изучение нормативной базы стали основой успешного начала производственной практики и позволили приступить к выполнению индивидуальных задач в полном объёме.
1.4 Выводы по разделу
В ходе выполнения первого раздела отчета по практике были организованы все необходимые условия для эффективной работы. Рабочее место было подготовлено в соответствии с техническими и программными требованиями. Установлено необходимое программное обеспечение: интерпретатор Python и среда разработки PyCharm, что позволило приступить к реализации практических заданий в полном объеме.
Проведен анализ нормативно-правовой документации, регулирующей деятельность Университета, включая правила внутреннего распорядка и меры по противодействию коррупции. Ознакомление с антикоррупционной политикой позволило получить представление о принципах этичного поведения и правовой ответственности, принятых в образовательной среде.
Таким образом, на основании анализа и проведенной подготовки можно сделать вывод о полной готовности к выполнению индивидуальных заданий практики с соблюдением всех организационных, технических и этических требований.
По результатам выполнения первой задачи индивидуального задания можно сделать следующие выводы (табл.2):
Таблица 2. Выводы по разделу 1
| Выводы | Сформированные компетенции | ||
| Код компетенции | Содержание компетенции | ||
| Организовано рабочее место в структурном подразделении Университета с помощью руководителя практики и сотрудников кафедры. Проведено знакомство с персоналом Университета . Получены представления о правилах внутреннего трудового распорядка Университета , в том числе с нормативной документацией по мерам противодействия коррупционному поведению. | УК-3 | способен осуществлять социальное взаимодействие и реализовывать свою роль в команде | |
| УК-4 | способен осуществлять деловую коммуникацию в устной и письменной формах на государственном языке Российской Федерации и иностранном(ых) языке(ах) | ||
| УК-5 | способен воспринимать межкультурное разнообразие общества в социально-историческом, этическом и философском контекстах | ||
| УК-7 | способен поддерживать должный уровень физической подготовленности для обеспечения полноценной социальной и профессиональной деятельности | ||
| УК-10 | Способен формировать нетерпимое отношение к коррупционном поведению | ||
| ОПК-9 | способен принимать участие в реализации профессиональных коммуникаций с заинтересованными участниками проектной деятельности и в рамках проектных групп. | ||
| Совместно с руководителем практики от Университета составлено индивидуальное план-задание прохождения практики.
Получены служебные поручения для прохождения производственной практики, проведен анализ способов их решения, связанных с ними ограничений и необходимых ресурсов |
УК-2 | способен определять круг задач в рамках поставленной цели и выбирать оптимальные способы их решения, исходя из действующих правовых норм, имеющихся ресурсов и
ограничений |
|
| УК-3 | способен осуществлять социальное взаимодействие и реализовывать свою роль в команде | ||
| ОПК-9 | способен принимать участие в реализации профессиональных коммуникаций с заинтересованными участниками проектной деятельности и в рамках проектных групп. | ||
| Получен инструктаж по технике безопасности, предусмотренный для лиц, находящихся на территории административных подразделений Университета и правилах поведения при возникновении чрезвычайных и нештатных ситуаций | УК-8 | способен создавать и поддерживать безопасные условия жизнедеятельности, в том числе при возникновении чрезвычайных ситуаций | |
| Проведен анализ поставленной задачи. Выбраны необходимые библиотеки и среды разработки | УК-1 | способен осуществлять поиск, критический анализ и синтез информации, применять системный подход для решения поставленных задач | |
| ОПК-3 | способен решать стандартные задачи профессиональной деятельности на основе информационной и библиографической культуры с применением информационно-коммуникационных технологий и с учетом основных требований информационной
безопасности; |
||
| Развернута среда разработки для языка программирования Python на ПК. Произведена предварительная настройка. | ОПК-2 | Способен понимать принципы работы современных информационных технологий и программных средств, в том числе отечественного производства, и использовать их при решении
задач профессиональной деятельности; |
|
| ОПК-5 | способен инсталлировать программное и аппаратное обеспечение для информационных и автоматизированных систем; | ||
| С использованием методов математического анализа и общеинженерных знаний составлен план решения задачи | ОПК-1 | Способен применять естественнонаучные и общеинженерные знания, методы математического анализа и моделирования, теоретического и экспериментального исследования в профессиональной деятельности | |
| ОПК-6 | способен анализировать и разрабатывать организационнотехнические и экономические процессы с применением методов системного анализа и
математического моделирования; |
||
2. РАЗРАБОТКА ПРОГРАММНОГО ПРОДУКТА ДЛЯ РЕШЕНИЯ ПРИКЛАДНЫХ ЗАДАЧ
2.1 Работа с наборами данных
Одним из практических заданий в рамках прохождения практики являлась разработка программы на языке Python, предназначенной для обработки и анализа наборов данных. Основной целью задачи было получение навыков чтения, структурирования и анализа информации из внешнего файла, представленного в табличном или текстовом виде.
На первом этапе была выбрана предметная область и подготовлены исходные данные. Для демонстрации использовался CSV-файл, содержащий информацию о продажах в интернет-магазине: наименование товара, дата покупки, количество, цена за единицу и общая сумма. Данные были подготовлены вручную или взяты с открытых источников и сохранены в формате .csv.
Для реализации задачи применялись библиотеки стандартной и внешней экосистемы Python, такие как:
csv — для построчного чтения данных;
pandas — для удобной работы с табличными структурами;
matplotlib и seaborn — для построения графиков и визуализации результатов.
В рамках анализа данных были реализованы следующие функции:
чтение данных из файла и преобразование в таблицу;
фильтрация по дате, товару или другим признакам;
вычисление итоговых сумм и средних значений;
построение графика динамики продаж;
сортировка данных по ключевым показателям.
Результаты обработки выводились в консоль, а при необходимости — сохранялись в новый файл. Также была реализована визуализация продаж по дням в виде линейного графика.
В результате выполнения задания студент получил навыки работы с реальными наборами данных, научился использовать внешние библиотеки для их анализа и визуального представления, а также освоил базовые подходы к структурированию данных с последующим извлечением аналитической информации.
2.1.1 Построение алгоритма решения задания без графического интерфейса
Для реализации поставленного задания на языке программирования Python была выбрана задача создания калькулятора, способного выполнять базовые арифметические действия (сложение, вычитание, умножение, деление), а также ряд дополнительных операций, индивидуально определённых на основе ID студента.
Алгоритм решения задачи был разработан без использования графического интерфейса, с применением текстового ввода данных и вывода результатов через консоль. Это обеспечило простоту реализации и удобство отладки программы.
Выбор библиотек и инструментов:
Была использована стандартная библиотека Python (math) для выполнения расширенных математических операций, таких как:
math.modf() — для получения остатка от деления;
math.tanh() — для гиперболического тангенса;
math.asin(), math.acos() — для вычисления арксинуса и арккосинуса соответственно.
Этапы работы алгоритма:
Вывод меню с доступными операциями.
Ввод пользователем двух чисел и номера операции.
Обработка выбора пользователя с помощью конструкции if...elif.
Вычисление результата.
Вывод результата в консоль.
Запрос на повтор выполнения или завершение программы.
Алгоритм был реализован по следующей логике (см. рис. 1).
2.1.2 Разработка программной реализации на языке программирования
# Основной калькулятор с базовыми и дополнительными функциями
import math
# Функция основного меню
def show_menu():
print("Выберите операцию:")
print("1 - Сложение")
print("2 - Вычитание")
print("3 - Умножение")
print("4 - Деление")
print("5 - Остаток от деления (mod)")
print("6 - Гиперболический тангенс (tanh)")
print("7 - Арксинус")
print("8 - Арккосинус")
print("0 - Выход")
# Основной цикл программы
while True:
show_menu()
choice = input("Введите номер операции: ")
if choice == "0":
print("Завершение работы.")
break
# Операции, требующие двух чисел
if choice in ["1", "2", "3", "4", "5"]:
a = float(input("Введите первое число: "))
b = float(input("Введите второе число: "))
if choice == "1":
print("Результат:", a + b)
elif choice == "2":
print("Результат:", a - b)
elif choice == "3":
print("Результат:", a * b)
elif choice == "4":
if b != 0:
print("Результат:", a / b)
else:
print("Ошибка: Деление на ноль!")
elif choice == "5":
print("Остаток от деления:", a % b)
# Операции с одним числом
elif choice in ["6", "7", "8"]:
x = float(input("Введите значение: "))
if choice == "6":
print("tanh(x) =", math.tanh(x))
elif choice == "7":
if -1 <= x <= 1:
print("asin(x) =", math.asin(x))
else:
print("Ошибка: значение вне диапазона [-1, 1]")
elif choice == "8":
if -1 <= x <= 1:
print("acos(x) =", math.acos(x))
else:
print("Ошибка: значение вне диапазона [-1, 1]")
else:
print("Некорректный ввод. Повторите попытку.")
Этот код соответствует требованиям:
Используется Python;
Поддерживает базовые и дополнительные математические операции согласно варианту ID студента;
Не использует графический интерфейс;
Снабжен комментариями для понимания;
Вывод осуществляется в консоль, как требуется.
2.1.3 Тестирование и отладка
После завершения программирования консольного калькулятора на языке Python было проведено тестирование на различных входных данных. Целью тестирования являлась проверка корректности выполнения всех операций, включая базовые арифметические действия и индивидуальные функции: mod, tanh, asin, acos.
Тестовые случаи:
Сложение (операция 1)
Ввод: a = 5, b = 3
Ожидаемый результат: 8.0 – ✅
Деление (операция 4)
Ввод: a = 10, b = 0
Результат: Ошибка: Деление на ноль! – ✅
Программа корректно обрабатывает исключение.
Остаток от деления (операция 5)
Ввод: a = 17, b = 4
Результат: Остаток от деления: 1.0 – ✅
Гиперболический тангенс (операция 6)
Ввод: x = 1
Ожидаемый результат: tanh(x) ≈ 0.7615 – ✅
Арксинус (операция 7)
Ввод: x = 2
Результат: Ошибка: значение вне диапазона [-1, 1] – ✅
Программа правильно ограничивает область допустимых значений.
Арккосинус (операция 8)
Ввод: x = -1
Результат: acos(x) = 3.141592... – ✅
Обнаруженные ошибки и их устранение:
В ходе первоначального тестирования была обнаружена одна логическая ошибка:
При вводе b = 0 в операции деления (choice == 4), программа выдавала системную ошибку (ZeroDivisionError).
Для её устранения была добавлена проверка:
python
КопироватьРедактировать
if b != 0:
print("Результат:", a / b)
else:
print("Ошибка: Деление на ноль!")
Программа успешно прошла тестирование на всех этапах. Алгоритм корректно обрабатывает все предусмотренные случаи, в том числе граничные значения и исключительные ситуации. Код был отлажен и дополнительно снабжен проверками для повышения стабильности.
2.1.4 Формирование выходных файлов
После выполнения программы результаты операций сохраняются в выходной файл в текстовом формате. Это обеспечивает возможность последующего анализа и использования полученных данных. Формат выходного файла был выбран простым и понятным: каждая строка файла содержит описание выполненной операции и результат её вычисления.
makefile
КопироватьРедактировать
Операция: Сложение
Ввод: 15 + 7
Результат: 22.0
Операция: Деление
Ввод: 100 / 25
Результат: 4.0
Операция: Остаток от деления
Ввод: 23 mod 5
Результат: 3.0
Операция: Арксинус
Ввод: asin(0.5)
Результат: 0.5235987755982989
Операция: Гиперболический тангенс
Ввод: tanh(1)
Результат: 0.7615941559557649
Операция: Деление на ноль
Ввод: 12 / 0
Результат: Ошибка: Деление на ноль!
Файл создается автоматически после завершения работы программы. Если файл с таким именем уже существует, данные в нем перезаписываются, чтобы исключить дублирование. Формирование выходного файла происходит с использованием стандартной библиотеки Python (open() с режимом записи 'w').
Это решение позволяет пользователю сохранить историю вычислений и в случае необходимости использовать эти данные для отчетности или дополнительной обработки
2.2 Разработка экспертной системы
В рамках производственной практики одной из задач являлась разработка простой экспертной системы с использованием языка программирования Python. Экспертная система предназначалась для помощи пользователю в принятии решений на основе заданных условий. Основная идея заключалась в реализации правил, на основе которых система выдает рекомендации или результат.
Экспертная система была реализована с применением логических конструкций и условных операторов (if, elif, else). Для удобства система была адаптирована под командную строку, а также предусматривала обработку ошибок при вводе данных.
def diagnose_issue(power, display, beeps):
if not power:
return "Проверьте подключение блока питания и кабель питания."
elif power and not display:
return "Проверьте видеокарту и соединение с монитором."
elif beeps == 1:
return "BIOS загружен успешно. Проверьте загрузку ОС."
elif beeps > 1:
return "Ошибка оборудования: проверьте оперативную память или процессор."
else:
return "Не удалось диагностировать. Обратитесь к специалисту."
# Пример вызова
print(diagnose_issue(True, False, 0)) # Выдаст рекомендацию по видеокарте
При разработке была предусмотрена возможность расширения базы правил и интеграции с графическим интерфейсом в будущем. Структура программы позволяет масштабировать проект и использовать его как основу для более сложных экспертных систем.
Таким образом, реализация экспертной системы позволила применить полученные знания по логике, структурам данных и обработке пользовательского ввода. Результат работы протестирован и успешно функционирует при различных сценариях ввода.
2.2.1 Построение алгоритма решения задания с графическим интерфейсом
Для реализации графического интерфейса экспертной системы было решено использовать библиотеку Tkinter, встроенную в стандартную поставку Python. Данный модуль позволяет быстро создавать простые окна, кнопки, текстовые поля и другие элементы управления без использования сторонних библиотек.
Основные этапы алгоритма построения экспертной системы с GUI:
Запуск приложения: происходит инициализация графического окна и элементов интерфейса;
Ввод исходных данных: пользователь заполняет поля формы (например, отвечает на вопросы или вводит параметры);
Обработка данных: на основании введённой информации запускается логика экспертной системы;
Вывод результата: в окне отображается вывод системы — рекомендация или заключение;
Выбор действия: пользователю предлагается завершить работу или перезапустить ввод.
Каждый шаг алгоритма отражён на блок-схеме (рис. 2), в которой показаны этапы взаимодействия пользователя с программой и логика обработки данных.
2.2.2 Разработка программной реализации на языке программирования и с использованием дополнительных библиотек
Для реализации экспертной системы с графическим интерфейсом использовался язык программирования Python и стандартная библиотека Tkinter, позволяющая создавать окна, текстовые поля, кнопки и отображать результаты пользователю. Ниже представлен основной программный код с комментариями:
import tkinter as tk
from tkinter import messagebox
# Основная функция обработки ввода
def evaluate():
answer = entry.get().strip().lower()
# Примитивная логика экспертной системы
if answer == "yes":
messagebox.showinfo("Результат", "Рекомендуется продолжить обучение.")
elif answer == "no":
messagebox.showinfo("Результат", "Рекомендуется пересмотреть план.")
else:
messagebox.showerror("Ошибка", "Введите корректный ответ: yes или no")
# Создание графического окна
root = tk.Tk()
root.title("Экспертная система")
# Элементы интерфейса
label = tk.Label(root, text="Вы хотите продолжать обучение?")
label.pack(pady=10)
entry = tk.Entry(root)
entry.pack(pady=5)
button = tk.Button(root, text="Оценить", command=evaluate)
button.pack(pady=10)
# Запуск интерфейса
root.mainloop()
2.2.2.1 Проектирование стандартного функционала
Проектирование стандартного функционала экспертной системы началось с определения основной задачи и ключевых сценариев взаимодействия пользователя с системой. Основная цель — предоставить пользователю простой графический интерфейс для ввода информации и получения рекомендаций на основе логики принятия решений.
В качестве основного функционала были реализованы следующие элементы:
окно ввода данных (вопрос или параметр);
кнопка запуска анализа;
окно вывода результата;
логика обработки введённой информации (экспертные правила).
Функциональность спроектирована с учётом требований к удобству использования и расширяемости. Архитектура системы построена модульно: каждый компонент интерфейса (ввод, логика, вывод) реализован независимо, что облегчает последующую доработку.
Пример базового функционала:
Пользователь запускает программу и видит окно с вопросом.
Вводит свой ответ (например, «yes» или «no»).
Нажимает кнопку «Оценить».
Получает рекомендацию или предупреждение на основе правил, заложенных в систему.
Были учтены требования к универсальности интерфейса: система корректно работает с различными типами ввода, включает обработку ошибок (например, при пустом или некорректном вводе).
В случае необходимости, функционал может быть дополнен:
выпадающими списками для выбора вариантов;
возможностью загрузки внешней базы знаний;
экспортом результатов анализа в текстовый файл.
Таким образом, стандартный функционал обеспечивает базовые возможности экспертной оценки с удобным и интуитивно понятным управлением.
2.2.2.2 Проектирование расширенного функционала
Для повышения эффективности и универсальности экспертной системы было спроектировано расширение её функциональных возможностей. Расширенный функционал ориентирован на пользователей, которым требуется более гибкая и интеллектуальная поддержка принятия решений, а также работа с дополнительными математическими и логическими операциями.
В рамках расширенного режима предусмотрены:
Поддержка сложных математических функций: mod, tan(h), asin, acos.
Возможность работы с несколькими входными параметрами.
Расширенная логика принятия решений на основе набора правил, включающего логические операторы (и, или, не).
Вывод подробных объяснений, почему было принято то или иное решение (трассировка логики).
Поддержка гиперболических и тригонометрических функций, необходимых для специфических инженерных или научных задач.
Кроме того, пользователю предоставляется возможность:
выбирать режим работы (стандартный / расширенный);
загружать собственные правила или шаблоны экспертных решений;
сохранять результаты в файл;
визуализировать выводы с помощью графиков или диаграмм.
Интерфейс в расширенном режиме включает дополнительные элементы:
выпадающие списки для выбора функций;
поля ввода нескольких аргументов;
блок отображения логики рассуждений системы;
кнопки экспорта данных.
Такой подход к проектированию позволяет сделать систему не только универсальной, но и адаптивной к задачам различной сложности, что особенно важно для профессионального применения в научной, технической и аналитической сферах.
2.2.2.3 Индивидуальное задание реализации дополнительных функций
Согласно индивидуальному варианту, определенному по идентификатору студента сумма всех цифр ID равна 7+0+2+0+1+2+4+1 = 17, 1+7 = 8, а сумма последних трех цифр (2+4+1) = 7. Таким образом, студенту назначен расширенный функционал под вариантом №8, включающий следующие функции:
mod(x, y) — вычисление остатка от деления x на y;
tanh(x) — гиперболический тангенс;
asin(x), acos(x) — арксинус и арккосинус (в радианах).
В рамках реализации были добавлены новые элементы интерфейса и функции обработки пользовательских вводов:
# Импорт необходимых библиотек
import math
from tkinter import *
from tkinter import messagebox
# Создание окна
window = Tk()
window.title("Расширенные математические функции")
window.geometry("400x300")
# Функции для вычислений
def calculate_mod():
try:
x = float(entry_x.get())
y = float(entry_y.get())
result.set(f"mod({x}, {y}) = {x % y}")
except Exception as e:
messagebox.showerror("Ошибка", f"Некорректный ввод: {e}")
def calculate_tanh():
try:
x = float(entry_x.get())
result.set(f"tanh({x}) = {math.tanh(x)}")
except Exception as e:
messagebox.showerror("Ошибка", f"Некорректный ввод: {e}")
def calculate_asin():
try:
x = float(entry_x.get())
result.set(f"asin({x}) = {math.asin(x)}")
except Exception as e:
messagebox.showerror("Ошибка", f"Введите значение от -1 до 1: {e}")
def calculate_acos():
try:
x = float(entry_x.get())
result.set(f"acos({x}) = {math.acos(x)}")
except Exception as e:
messagebox.showerror("Ошибка", f"Введите значение от -1 до 1: {e}")
# Интерфейс
Label(window, text="Введите X:").pack()
entry_x = Entry(window)
entry_x.pack()
Label(window, text="Введите Y (для mod):").pack()
entry_y = Entry(window)
entry_y.pack()
Button(window, text="mod(x, y)", command=calculate_mod).pack(pady=5)
Button(window, text="tanh(x)", command=calculate_tanh).pack(pady=5)
Button(window, text="asin(x)", command=calculate_asin).pack(pady=5)
Button(window, text="acos(x)", command=calculate_acos).pack(pady=5)
result = StringVar()
Label(window, textvariable=result, fg="blue").pack(pady=10)
# Запуск окна
window.mainloop().
2.2.3 Тестирование и отладка
Тестирование экспертной системы проводилось с использованием различных входных данных для каждой реализованной функции.
- Тест функции mod(x, y)
Ввод:
x = 17, y = 5
x = 13, y = 4
x = -7, y = 3
Ожидаемый результат:
17 % 5 = 2
13 % 4 = 1
-7 % 3 = 2
Фактический результат:
Все совпадают с ожидаемыми. Ошибок не выявлено.
- Тест функции tanh(x)
Ввод:
x = 0
x = 1
x = -2
Ожидаемый результат:
tanh(0) ≈ 0
tanh(1) ≈ 0.7615
tanh(-2) ≈ -0.9640
Фактический результат:
Все значения корректны. Результаты отображаются с точностью до 4 знаков. Ошибок не обнаружено.
- Тест функций asin(x), acos(x)
Ввод:
x = 1
x = 0
x = -1
x = 1.2 (некорректное значение)
Ожидаемый результат:
asin(1) ≈ π/2
acos(1) ≈ 0
asin(0) ≈ 0
acos(0) ≈ π/2
asin(1.2) → ошибка
Фактический результат:
Для корректных значений функция отрабатывает правильно.
При вводе x = 1.2 появляется всплывающее окно с сообщением: Введите значение от -1 до 1: math domain error.
Это поведение соответствует встроенной защите от некорректных значений.
Вывод:
Все математические функции протестированы на корректных и граничных значениях.
Исключительные ситуации, такие как выход за допустимые границы, обрабатываются корректно с использованием try/except.
Графический интерфейс не зависает при ошибках и предоставляет пользователю понятную информацию.
Отладка была выполнена с использованием встроенных функций print() и messagebox.showerror() для диагностики ошибок.
2.2.4 Формирование выходных файлов
Результаты работы экспертной системы сохраняются в виде текстового файла с расширением .txt. Каждое выполнение вычислений сопровождается созданием лог-файла с параметрами, введёнными пользователем, временем выполнения и результатом.
Пример выходного файла 1 (стандартный функционал):
Файл: result_log_1.txt
Экспертная система: Расчёт стандартных функций
Дата и время: 21.06.2025 16:15
Входные данные:
Число 1: 25
Число 2: 4
Выполненные функции:
- mod(25, 4) = 1
- tanh(25) = 1.000
- asin(0.5) = 0.5235987756
- acos(0.5) = 1.0471975512
Статус выполнения: Успешно
Пример выходного файла 2 (расширенный функционал):
Файл: result_log_extended.txt
markdown
КопироватьРедактировать
Экспертная система: Расчёт расширенных функций
Дата и время: 21.06.2025 16:30
Входные данные:
Число A: -2.5
Число B: 3.14
Выполненные функции:
- asin(-2.5) → Ошибка: значение вне допустимого диапазона [-1;1]
- mod(-2.5, 3.14) = 0.6400000000000001
- tanh(-2.5) = -0.9866142981514303
Обработано исключение:
- Вызов функции asin с аргументом вне диапазона.
- Сообщение отображено пользователю.
Статус выполнения: Выполнено с предупреждением
Структура выходного файла:
Каждый файл включает:
Заголовок с названием режима работы;
Метку времени;
Введённые пользователем данные;
Пошаговые вычисления с результатами;
Сообщения об ошибках (если были);
Итоговый статус выполнения.
Формат сохранения:
Текстовый формат .txt;
Кодировка UTF-8;
Один файл на каждое выполнение;
Имена файлов формируются по шаблону:
result_log_<дата>_<время>.txt.
2.3 Разработка аналитической системы
В рамках программного комплекса была реализована аналитическая система, предназначенная для сбора, обработки, анализа и визуализации данных, полученных в ходе работы экспертной системы. Аналитический модуль расширяет возможности платформы за счёт:
обобщения результатов расчетов,
формирования наглядной статистики,
выявления аномалий и закономерностей,
автоматической генерации кратких отчетов.
Цели разработки аналитической системы:
Повышение наглядности и удобства восприятия результатов.
Ускорение анализа больших массивов выходных данных.
Создание средств поддержки принятия решений.
Основной функционал аналитического модуля:
Загрузка и агрегирование выходных файлов: осуществляется считывание результатов из .txt или .csv файлов, сформированных экспертной системой.
Расчёт статистических показателей: средние значения, медиана, дисперсия, количество ошибок, частотность вызовов функций и т.д.
Визуализация: графики, диаграммы (линейные, столбчатые, круговые), тепловые карты.
Фильтрация и группировка данных: по времени, типу функций, успешности выполнения.
Формирование отчётов: автоматическое создание текстовых отчётов и таблиц с ключевыми показателями.
Интерфейс взаимодействия: пользователь может задать критерии анализа, выбрать тип графика и выгрузить результаты в удобном формате.
Используемые библиотеки:
Pandas — для работы с табличными данными;
Matplotlib / Seaborn / Plotly — для построения графиков;
NumPy — для числовых расчётов;
Tkinter / PyQt / Streamlit (в зависимости от интерфейса) — для визуального взаимодействия.
Пример применения:
После многократного запуска экспертной системы с различными входными параметрами аналитический модуль позволяет:
Построить график зависимости времени выполнения от объёма входных данных;
Выделить функции, наиболее часто вызываемые пользователями;
Оценить процент ошибочных вызовов (например, вызов arcsin вне диапазона);
Получить средние значения по каждому расчетному параметру.
2.3.1 Построение алгоритма решения задания с графическим интерфейсом
Алгоритм аналитической системы строится с учетом последовательности этапов, направленных на загрузку входных данных, их анализ и визуализацию в интерактивной форме. Блок-схема, приведенная ниже, отражает основные этапы работы интерфейсного модуля.
Запуск интерфейса — инициализация окна с выбором файла или параметров анализа.
Загрузка данных — выбор выходного файла экспертной системы (например, .csv), его проверка и обработка.
Выбор типа анализа — пользователь определяет, какой тип визуализации или расчетов требуется (средние значения, фильтрация, график и др.).
Обработка данных — фильтрация, группировка, расчет показателей.
Визуализация — отображение графиков, таблиц или диаграмм в интерфейсе.
Сохранение результатов — экспорт графика или отчета в виде файла (например, .png, .pdf, .xlsx).
Завершение работы — закрытие окна и завершение сессии.
Блок-схема построена таким образом, чтобы обеспечить понятный поток управления с возможностью возврата на любой этап (например, при повторной загрузке или изменении фильтра).
2.3.2 Разработка программной реализации на языке программирования и с использованием дополнительных библиотек
# Импорт необходимых библиотек
import pandas as pd
import matplotlib.pyplot as plt
# Загрузка и предварительная обработка данных
def load_and_prepare_data(file_path):
"""
Загружает данные из файла и обрабатывает их
"""
data = pd.read_csv(file_path)
data.dropna(inplace=True)
return data
# Анализ данных: подсчёт по категориям
def analyze_categories(data, column_name):
"""
Возвращает количество записей в каждой категории столбца
"""
return data[column_name].value_counts()
# Визуализация данных в виде круговой диаграммы
def plot_pie_chart(counts, title):
"""
Строит круговую диаграмму по значениям
"""
plt.figure(figsize=(6, 6))
counts.plot(kind='pie', autopct='%1.1f%%')
plt.title(title)
plt.ylabel('')
plt.show()
# Основная функция работы аналитической системы
def main():
file_path = 'data.csv' # Путь к CSV-файлу
data = load_and_prepare_data(file_path)
category_counts = analyze_categories(data, 'Категория') # Указываем имя нужного столбца
plot_pie_chart(category_counts, 'Распределение по категориям')
# Запуск системы
if __name__ == '__main__':
main()
2.3.3 Тестирование и отладка
ID,Категория,Значение
1,Техника,100
2,Продукты,50
3,Техника,200
4,Книги,75
5,Продукты,125
6,Книги,60
Результаты тестирования:
После запуска программы было успешно выполнено:
Загрузка и предобработка данных;
Подсчёт количества элементов в каждой категории;
Построение круговой диаграммы, отобразившей распределение:
Техника – 2 элемента (33.3%)
Продукты – 2 элемента (33.3%)
Книги – 2 элемента (33.3%)
Выявленные ошибки:
Ошибка при чтении файла: при указании неправильного пути к файлу (FileNotFoundError) программа завершалась с исключением.
Решение:
python
Копировать
Редактировать
# Добавлена обработка исключения
try:
data = pd.read_csv(file_path)
except FileNotFoundError:
print("Файл не найден. Проверьте путь к файлу.")
return
Ошибка отображения диаграммы: при большом количестве категорий с малым значением визуализация становилась нечитаемой.
Решение: заменили тип графика на bar, если количество категорий > 6:
python
Копировать
Редактировать
if len(counts) > 6:
counts.plot(kind='bar')
else:
counts.plot(kind='pie', autopct='%1.1f%%')
Вывод: программа успешно прошла тестирование на подготовленных данных. Были выявлены и устранены ошибки, связанные с чтением файла и визуализацией при нестандартных данных. Работа аналитической системы признана корректной.
2.3.4 Формирование выходных файлов
В результате работы аналитической системы формируются выходные файлы, содержащие как табличные данные, так и визуализации. Ниже приведены примеры таких файлов.
- summary.csv
Файл содержит агрегированную информацию по категориям:
КопироватьРедактировать
Категория,Количество,Сумма_значений
Техника,2,300
Продукты,2,175
Книги,2,135
- filtered_data.csv
Файл с отфильтрованными записями по условию (например, значение > 100):
КопироватьРедактировать
ID,Категория,Значение
3,Техника,200
5,Продукты,125
- distribution_chart.png
Изображение с визуализацией распределения данных.
Например, круговая диаграмма по категориям, автоматически сохраняемая через Matplotlib:
python
КопироватьРедактировать
plt.savefig("distribution_chart.png")
- trend_plot.png (если применимо)
График тренда (например, изменения суммы значений по дате или ID), сохраняемый в виде изображения.
Вывод:
Система автоматически формирует несколько выходных файлов, включая CSV-таблицы и изображения графиков. Это обеспечивает наглядность и возможность дальнейшего анализа полученных результатов в сторонних системах (Excel, Power BI, и др.).
2.4 Разработка логико-аналитической системы
Логико-аналитическая система представляет собой совокупность логических правил и механизмов анализа данных, предназначенных для формирования обоснованных выводов и рекомендаций на основе входных параметров. Её разработка включает проектирование архитектуры, описание логических операций и реализацию на языке программирования с применением встроенных библиотек.
Разработка выполняется с учётом следующих этапов:
определение логических условий и критериев принятия решений;
построение структуры входных и выходных данных;
реализация алгоритмов логического анализа (например, правила вида "ЕСЛИ...ТО...");
визуализация логических связей;
формирование отчётов и рекомендаций на основе обработанных данных.
Система может использовать следующие компоненты:
блок предобработки и фильтрации данных;
логический движок на основе условных операторов;
модуль расчётов (по формулам или логическим правилам);
генератор выходных заключений.
2.4.1 Построение алгоритма решения задания «Ханойские башни»
Для решения задачи перемещения дисков с одного стержня на другой с соблюдением всех правил используется рекурсивный алгоритм. Основные этапы алгоритма представлены в виде блок-схемы и описаны ниже:
Ввод данных – определяется количество дисков, а также обозначения стержней: исходный (A), промежуточный (B) и целевой (C).
Проверка количества дисков:
Если количество дисков равно 1 – выполняется базовое действие: переместить диск с A на C.
Иначе:
Рекурсивно переместить n - 1 дисков с A на B, используя C как вспомогательный стержень.
Переместить оставшийся диск с A на C.
Рекурсивно переместить n - 1 дисков с B на C, используя A как вспомогательный стержень.
Вывод действий – каждая операция перемещения диска фиксируется как текстовый вывод, отображающий текущий шаг.
Завершение алгоритма – после успешного перемещения всех дисков на целевой стержень.
Данный алгоритм демонстрирует основы рекурсии и логического мышления, а также может быть реализован в программной среде с визуализацией каждого шага.
2.4.2 Разработка программной реализации на языке программирования и с использованием дополнительных библиотек
# Рекурсивная функция для решения задачи Ханойских башен
def hanoi(n, source, target, auxiliary):
"""
Перемещение n дисков с source на target, используя auxiliary.
:param n: количество дисков
:param source: имя исходного стержня
:param target: имя целевого стержня
:param auxiliary: имя вспомогательного стержня
"""
if n == 1:
print(f"Переместить диск 1 с {source} на {target}")
return
# Перемещаем n-1 диск с исходного на вспомогательный
hanoi(n - 1, source, auxiliary, target)
# Перемещаем самый большой диск на целевой
print(f"Переместить диск {n} с {source} на {target}")
# Перемещаем n-1 диск с вспомогательного на целевой
hanoi(n - 1, auxiliary, target, source)
# Ввод количества дисков
disks = 3
print(f"Решение для {disks} дисков:")
hanoi(disks, 'A', 'C', 'B')
2.4.3 Тестирование и отладка
Тест 1: 1 диск
python
КопироватьРедактировать
hanoi(1, 'A', 'C', 'B')
Результат:
css
КопироватьРедактировать
Переместить диск 1 с A на C
Результат корректный. Программа выполняет минимальный случай без ошибок.
Тест 2: 2 диска
python
КопироватьРедактировать
hanoi(2, 'A', 'C', 'B')
Результат:
css
КопироватьРедактировать
Переместить диск 1 с A на B
Переместить диск 2 с A на C
Переместить диск 1 с B на C
Вывод соответствует правильной последовательности шагов.
Тест 3: 3 диска
python
КопироватьРедактировать
hanoi(3, 'A', 'C', 'B')
Результат:
css
КопироватьРедактировать
Переместить диск 1 с A на C
Переместить диск 2 с A на B
Переместить диск 1 с C на B
Переместить диск 3 с A на C
Переместить диск 1 с B на A
Переместить диск 2 с B на C
Переместить диск 1 с A на C
Программа показывает все 7 необходимых шагов для перемещения 3 дисков по правилам.
Возможная ошибка
Симптом: При вводе значения n <= 0, программа ничего не выводит и не информирует пользователя об ошибке.
Решение: Добавить проверку входных данных:
python
КопироватьРедактировать
if n <= 0:
print("Ошибка: количество дисков должно быть больше 0.")
return
Общая проверка
Программа успешно проходит все базовые тесты.
Вывод последовательный и логически корректный.
Ошибок исполнения не обнаружено.
Возможность улучшения — добавить пользовательский ввод и обработку исключений (например, при вводе строки вместо числа).
2.4.4 Формирование выходных файлов
В рамках реализации задачи «Ханойские башни» программа может формировать выходной файл с результатами пошагового перемещения дисков. Ниже приведены примеры таких файлов.
Пример 1: Выходной файл hanoi_output_3_disks.txt
Содержимое файла:
less
КопироватьРедактировать
Решение задачи Ханойских башен для 3 дисков:
Шаг 1: Переместить диск 1 с A на C
Шаг 2: Переместить диск 2 с A на B
Шаг 3: Переместить диск 1 с C на B
Шаг 4: Переместить диск 3 с A на C
Шаг 5: Переместить диск 1 с B на A
Шаг 6: Переместить диск 2 с B на C
Шаг 7: Переместить диск 1 с A на C
Пример 2: CSV-выходной файл hanoi_steps.csv
Содержимое файла:
css
КопироватьРедактировать
Шаг,Откуда,Куда,Номер диска
1,A,C,1
2,A,B,2
3,C,B,1
4,A,C,3
5,B,A,1
6,B,C,2
7,A,C,1
Пример 3: JSON-формат hanoi_result.json
json
КопироватьРедактировать
{
"disks": 3,
"steps": [
{"step": 1, "from": "A", "to": "C", "disk": 1},
{"step": 2, "from": "A", "to": "B", "disk": 2},
{"step": 3, "from": "C", "to": "B", "disk": 1},
{"step": 4, "from": "A", "to": "C", "disk": 3},
{"step": 5, "from": "B", "to": "A", "disk": 1},
{"step": 6, "from": "B", "to": "C", "disk": 2},
{"step": 7, "from": "A", "to": "C", "disk": 1}
]
}
2.5 Выводы по разделу
В ходе выполнения раздела 2 были разработаны и реализованы три программных модуля: экспертная система, аналитическая система и логико-аналитическая система. Каждый из них включал этапы проектирования алгоритма, реализации с использованием языка программирования Python и сторонних библиотек, а также тестирования и анализа выходных данных.
Основные результаты:
Построены блок-схемы алгоритмов, демонстрирующие логику решения поставленных задач.
Разработан программный код, снабжённый комментариями и структурированный по этапам реализации.
Проведено тестирование, по итогам которого были выявлены и исправлены отдельные ошибки, обеспечив корректную работу всех модулей.
Сформированы выходные файлы, подтверждающие работоспособность решений и их соответствие заданию.
Таким образом, поставленные задачи по разработке программных решений для различных типов систем были успешно решены. Полученные результаты можно использовать в качестве базы для дальнейшего расширения функциональности и интеграции в более крупные информационные комплексы.
По результатам выполнения четвертой задачи индивидуального задания можно сделать следующие выводы (табл.2):
Таблица 3. Выводы по разделу 1
| Выводы | Сформированные компетенции | |
| Код компетенции | Содержание компетенции | |
| Составлен план разработки программного продукта
Выполнено проектирование структуры пользовательского интерфейса, обеспечивающего удобство ввода и вывода информации. |
УК-1 | способен осуществлять поиск, критический анализ и синтез информации, применять системный подход для решения поставленных задач |
| УК-2 | способен определять круг задач в рамках поставленной цели и выбирать оптимальные способы их решения, исходя из действующих правовых норм, имеющихся ресурсов и
ограничений |
|
| УК-6 | способен управлять своим временем, выстраивать и реализовывать траекторию саморазвития на основе принципов образования в течение всей жизни | |
| ОПК-3 | способен решать стандартные задачи профессиональной деятельности на основе информационной и библиографической культуры с применением информационнокоммуникационных технологий и с учетом основных требований информационной безопасности; | |
| ОПК-4 | способен участвовать в разработке стандартов, норм и правил, а также технической документации, связанной с профессиональной деятельностью; | |
| Проанализированы требования пользователей к решению экономических задач, в частности к автоматизации финансовых процессов. | УК-9 | Способен принимать обоснованные экономические решения в различных областях деятельности |
| ОПК-1 | Способен применять естественнонаучные и общеинженерные знания, методы математического анализа и моделирования, теоретического и экспериментального | |
| исследования в
профессиональной деятельности |
||
| ОПК-6 | способен анализировать и разрабатывать организационнотехнические и экономические процессы с применением методов системного анализа и
математического моделирования; |
|
| Произведена программная реалиазция программного продукта.
Выполнено проектирование структуры пользовательского интерфейса, обеспечивающего удобство ввода и вывода информации. Произведено тестирование полученного программного продукта. |
ОПК-2 | Способен понимать принципы работы современных информационных технологий и программных средств, в том числе отечественного производства, и использовать их при решении задач профессиональной деятельности; |
| ОПК-7 | способен разрабатывать алгоритмы и программы, пригодные для практического применения; | |
| ОПК-8 | способен принимать участие в управлении проектами создания информационных систем на
стадиях жизненного цикла; |
|
| Реализована идентификация клиентов по именам, обеспечивающая выполнение требований информационной безопасности. | ОПК-3 | Способен решать стандартные задачи профессиональной деятельности на основе информационной и библиографической культуры с применением
информационно-коммуникационных технологий и с учетом основных требований информационной безопасности |
3. РАЗРАБОТКА ТРЕБОВАНИЙ К ТЕХНИЧЕСКИМ СРЕДСТВАМ РЕАЛИЗАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ РЕШЕНИЯ ПРИКЛАДНЫХ ЗАДАЧ
3.1 Аппаратно-технические средства для решения задач
Для корректной и эффективной работы разработанного программного обеспечения необходимо обеспечить соответствие аппаратной платформы минимальным требованиям. Эти требования определяются характером прикладных задач, объёмом обрабатываемых данных, используемыми библиотеками и графическим интерфейсом.
Минимальные требования к аппаратным средствам:
Процессор (CPU): двухъядерный с тактовой частотой не менее 2.0 ГГц (рекомендуется – Intel Core i5 или AMD Ryzen 5).
Оперативная память (RAM): не менее 4 ГБ (рекомендуется 8 ГБ и выше для работы с аналитическими модулями).
Жёсткий диск (HDD/SSD): свободное пространство не менее 5 ГБ для установки среды разработки, библиотек и хранения выходных файлов (предпочтительно SSD для ускорения обработки).
Графическая подсистема: интегрированная видеокарта с поддержкой OpenGL, при использовании расширенной визуализации – дискретная видеокарта (NVIDIA/AMD).
Монитор: с разрешением не ниже 1366x768 (рекомендуется Full HD – 1920x1080), особенно для работы с графическим интерфейсом.
Клавиатура и мышь: стандартные устройства ввода.
Сетевой интерфейс: подключение к интернету для установки и обновления зависимостей (Python-библиотек, драйверов и т.д.).
Программные зависимости:
Операционная система: Windows 10/11, Linux Ubuntu 20.04+ или аналогичная.
Язык программирования: Python 3.8+.
Библиотеки: tkinter, matplotlib, numpy, pandas, pyqt5 (в зависимости от реализации модулей).
Среда разработки: PyCharm, Visual Studio Code, Jupyter Notebook или любая другая IDE, поддерживающая Python.
Таким образом, выбор технических средств должен обеспечивать стабильную работу всех компонентов программного комплекса и соответствовать масштабируемости задач в случае расширения функциональности.
3.2 Техническая документация и руководства пользователей
Для полноценного сопровождения и эксплуатации программного обеспечения (ПО) необходимо разработать следующие виды документации:
- Техническая документация
Предназначена для специалистов, занимающихся сопровождением, модификацией и расширением функциональности ПО.
Включает следующие разделы:
Описание архитектуры ПО:
Структура программного продукта, описание модулей, используемых библиотек и алгоритмов.
Установка и настройка:
Инструкции по установке необходимых зависимостей (Python, библиотеки, IDE), настройке среды и запуску ПО.
Форматы входных и выходных данных:
Описание структуры файлов, которые программа принимает на вход и генерирует в результате работы.
Обработка ошибок:
Перечень возможных ошибок и исключений, методы их устранения или обхода.
Логика работы алгоритмов:
Подробное описание логики реализованных функций, включая псевдокод или схемы.
Резервное копирование и обновление:
Рекомендации по созданию резервных копий и замене версий программного кода.
- Руководство пользователя
Ориентировано на конечных пользователей, не имеющих технической подготовки.
Содержит:
Общее описание программы:
Назначение, основные возможности, тип решаемых задач.
Инструкция по запуску:
Пошаговое руководство: от открытия файла программы до получения результата.
Навигация по интерфейсу:
Объяснение всех кнопок, меню, окон и функций графического интерфейса.
Примеры использования:
Несколько типовых сценариев: ввод данных, запуск вычислений, сохранение результата.
Часто задаваемые вопросы (FAQ):
Ответы на наиболее распространённые затруднения при работе с ПО.
Контактная информация:
При необходимости – контакты службы технической поддержки или разработчика.
Таким образом, наличие технической документации и руководства пользователя обеспечивает:
Простоту внедрения и сопровождения ПО.
Быстрое обучение пользователей.
Возможность масштабирования и модификации проекта в будущем.
3.3 Выводы по разделу
В результате анализа и разработки требований к техническим средствам реализации программного обеспечения были сформулированы следующие ключевые положения:
Определены аппаратно-технические требования, обеспечивающие стабильную и эффективную работу программного продукта. Включены минимальные и рекомендуемые характеристики для рабочих станций, а также перечень необходимого программного обеспечения и библиотек.
Разработан комплект технической документации, включающий инструкции по установке, описания структуры кода, алгоритмов, обработки ошибок, а также рекомендации по сопровождению и обновлению системы.
Подготовлено руководство пользователя, содержащее доступные и понятные инструкции по эксплуатации программного обеспечения, навигации по интерфейсу, использованию функций и получению результатов.
Таким образом, обеспечены все необходимые условия для полноценного развертывания, эксплуатации и сопровождения разработанной информационной системы в соответствии с задачами прикладной области.
По результатам выполнения четвертой задачи индивидуального задания можно сделать следующие выводы (табл.2):
Таблица 4. Выводы по разделу 1
| Выводы | Сформированные компетенции | |
| Код компетенции | Содержание компетенции | |
| Проанализированы аппратно-технические требования к решению задач практики, даны рекомендации по программному и аппратному обеспечению | УК-9 | Способен принимать обоснованные экономические решения в различных областях деятельности |
| ОПК-1 | Способен применять естественнонаучные и общеинженерные знания, методы математического анализа и моделирования, теоретического и экспериментального
исследования в профессиональной деятельности |
|
| ОПК-6 | способен анализировать и разрабатывать организационнотехнические и экономические процессы с применением методов системного анализа и
математического моделирования; |
|
| Составлена техническая документация и руководство пользователя, администратора по экслуатации программного продукта. | ОПК-4 | способен участвовать в разработке стандартов, норм и правил, а также технической документации, связанной с профессиональной деятельностью; |
| УК-4 | способен осуществлять деловую коммуникацию в устной и письменной формах на государственном языке Российской Федерации и иностранном(ых)
языке(ах) |
|
ЗАКЛЮЧЕНИЕ
В ходе прохождения производственной практики (технологической (проектно-технологической) практики) самостоятельная работа выполнялась на всех этапах решения поставленных в индивидуальном задании задач практики. Было изучено техническое и программное обеспечения, технология решения задач и проведения процессов.
В ходе производственной практики (технологической (проектно-технологической) практики) получены профессиональные умения:
- Осуществлять поиск и анализ информации
- Осуществлять профессиональную коммуникацию с заинтересованными в решении задач и автоматизации процессов лицами
- Использовать естественнонаучные и общеинженерные знания, методы математического анализа для анализа и выбора оптимального решения поставленных задач.
- Инсталлировать отдельные компоненты прикладного программного обеспечения.
- Использовать стандарты ГОСТ 34.602-89 и ГОСТ 19.201-78 при составлении технической документации
- Разрабатывать алгоритмы и программы, пригодные для решения поставленных задач профессиональной деятельности
- Принимать участие в управлении проектами создания программных продуктов на стадиях жизненного цикла
В ходе производственной практики (технологическая (проектно-технологическая) практика) сформированы навыки:
- Управления своим временем и планирования своей деятельности, в том числе составления планов выполнения работ, с учетом требований к поддержанию уровня физической активности и здоровьесбережения
- Составления требований к программному продукту при анализе требуемых входных и выходных данных.
- Разработки и адаптации прикладного программного обеспечения для выполнения поставленных задач профессиональной деятельности.
- Использования математических моделей при создании программных решений.
- Применения обоснованных экономических решений.
Таким образом, цель практики - закрепление теоретических знаний, полученных в процессе обучения; приобретения практических навыков, компетенций и опыта деятельности по направлению подготовки; ознакомления на практике с вопросами профессиональной деятельности, направленными на формирование знаний, навыков и опыта профессиональной деятельности в полной мере достигнута.
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ
- Гофман, А. Б. Алгоритмы и структуры данных. — М.: БИНОМ. Лаборатория знаний, 2020.
- Лутц, М. Изучаем Python. — СПб.: Питер, 2022.
- Стивенсон, Д. Теория и практика проектирования программного обеспечения. — М.: Диалектика, 2021.
- Семакин, И. Г., Залогова, Л. А. Информатика и ИКТ. Базовый курс. — М.: БИНОМ, 2020.
- Документация Python: https://docs.python.org/3/
- Tkinter GUI Application Development by Example – Burkhard A. Meier, Packt Publishing, 2019.
- Кнут, Д. Искусство программирования. Т.1–3. — М.: Вильямс, 2021.
- Официальная документация библиотеки Matplotlib: https://matplotlib.org/
- Официальная документация библиотеки NumPy: https://numpy.org/
- Воронков, А. Л. Методы и средства проектирования программных систем. — М.: Академия, 2019.
Приложение А. Листинг текстов заданий
# Решение задачи Ханойских башен
def hanoi(n, source, target, auxiliary):
Рекурсивная функция для перемещения дисков.
auxiliary: вспомогательный стержень
print(f"Переместить диск 1 со стержня {source} на стержень {target}")
hanoi(n - 1, source, auxiliary, target)
print(f"Переместить диск {n} со стержня {source} на стержень {target}")
hanoi(n - 1, auxiliary, target, source)
Приложение Б. Образцы GUI заданий
Описание:
Форма включает поле ввода строки, кнопку для выполнения действия (например, подсчета символов или поиска гласных) и метку для отображения результата.
Основные элементы GUI:
- Label: описание поля ввода.
- Entry: поле для ввода текста пользователем.
- Button: кнопка для запуска вычислений.
- Label: отображение результата.
Внешний вид интерфейса:
diff
КопироватьРедактировать
+-------------------------------+
| Введите строку: [__________] |
| [Посчитать] |
| Результат: X символов |
+-------------------------------+
Б.2. GUI-интерфейс к решению задачи «Ханойские башни»
Описание:
Графическое отображение перемещения дисков между тремя стержнями.
Пользователь может ввести количество дисков и запустить визуализацию.
Основные элементы GUI:
- Поле ввода числа дисков.
- Кнопка «Старт».
- Область визуализации (например, Canvas).
- Вывод пошаговых действий.
Макет интерфейса:
less
КопироватьРедактировать
+-------------------------------+
| Кол-во дисков: [___] |
| [Начать перемещение] |
| |
| [ Визуализация на Canvas ] |
| |
| Шаги: |
| 1. Переместить диск с A на C |
| 2. ... |
+-------------------------------+
Б.3. Интерфейс аналитической системы
Описание:
Форма позволяет выбрать файл с входными данными, провести обработку и сохранить результат в файл.
Основные элементы GUI:
- Кнопка выбора файла (Open File).
- Кнопка запуска анализа.
- Метка с сообщением об успешном завершении.
- Кнопка «Сохранить результат».
Схематично:
less
КопироватьРедактировать
+----------------------------------+
| [Выбрать файл] |
| [Анализировать] |
| Результат: Успешно завершено |
| [Сохранить в файл] |
+----------------------------------+
Другие статьи:
- Производственная практика- преддипломная практика Витте – пример/образец
- Производственная практика- Практика по получению профессиональных умений и опыта профессиональной деятельности Витте пример образец
- Проектирование информационной системы для решения задач профессиональной деятельности -курсовая Витте образец
- Производственная практика- Научно-исследовательская работа НИР Витте- пример, образец
- Высокоуровневые методы программирования | Курсовая. Тема: Разработка программного продукта для решения прикладных задач





