МУ им. С.Ю. Витте, алгоритмизация и программирование (рейтинговая работа, 2024 год)
| 12.05.2026, 17:50 | |
Рейтинговая работа – самостоятельная работа, требующая от обучающегося умений применять полученные в ходе изучения дисциплины «Алгоритмизация и программирование» знания и навыки при решении практических задач на языке программирования высокого уровня с использованием типовых алгоритмических конструкций. Выполнение заданий ориентировано на развитие навыков программирования на языке Python, логического и аналитического мышления. Рейтинговая работа состоит из задания, по которому необходимо написать программу на языке Python. При этом оценивается не только получение конечного результата, но и качество кода программы, применяемые алгоритмические решения, учет и обработку возможных ошибок, следование стилю, изложенному в Соглашении PEP 8 по написанию кода на Python, самостоятельность решения задач рейтинговой работы. Решение задач рейтинговой работы рассчитано на обретение навыков правильного применения языка Python в конкретных условиях, формирование компетенций, указанных в рабочей программе дисциплины «Алгоритмизация и программирование». Задание для рейтинговой работы соответствует любому количеству вариантов. Выбор варианта исходных данных рейтинговой работы осуществляется на основе выборки символов, составляющих Фамилию Имя Отчество обучающегося, с последующим переводом каждого символа в Unicode (Юникод). ЗАДАНИЕ ДЛЯ ВЫПОЛНЕНИЯ РЕЙТИНГОВОЙ РАБОТЫ Дан ряд целых чисел, полученный в результате обработки символов Фамилии, Имени, Отчества обучающегося, а также его ID. Необходимо отсортировать набор данных двумя способами, а также выполнить некоторые арифметические расчеты. Исходные данные ФИО и ID подготавливаются заранее в текстовом файле с именем «source_data.txt» в кодировке Unicode (Юникод). Каждое слово, составляющее ФИО должно быть с заглавной буквы. Слова между собой должны быть разделены пробелом. Точка в конце не ставится. Текстовый файл с исходными данными должен иметь следующий вид: Иванов Иван Иванович 70115094 Примечание: 1. ФИО – Иванов Иван Иванович, и ID – 70115094 представлены в качестве примера. Естественно, при формировании файла source_data.txt, нужно вносить свои ФИО и ID. 2. ФИО и ID разделены символом enter (u000a). Данный символ в последующей обработке набора данных не должен участвовать. После номера ID символ enter не ставится; таким образом, в файле source_data.txt должно быть две строки. 3. Пробелы между словами ФИО в обработке набора данных не должны участвовать. Требуется написать программу на языке Python, которая выполняет следующие задачи: 1. Считать исходные данные из текстового файла «source_data.txt». Пусть к текстовому файлу должен быть относительным. Рекомендуется текстовый файл размещать в той же папки, что и файл программного кода *.py 2. Вычислить целое значение, получившееся в результате деления числа ID на количество символов, составляющих ФИО (количество символов подсчитывается без учета пробелов). 3. Определить направление сортировки в зависимости от числа, полученного в п.2: - сортировка по возрастанию, если получившееся число в п.2 является чётным; - сортировка по убыванию, если получившееся число в п.2 является нечётным. 4. Сформировать набор данных (список целых чисел) из кодов Юникода каждого символа ФИО (исключая пробелы между словами), переведенных в десятичную форму. 5. Выполнить сортировку набора данных по убыванию или по возрастанию. Сортировку выполнить двумя различными способами, например: сортировка выбором и сортировка методом простого обмена (пузырька). В программном коде должны быть представлены комментарии, обозначающие тот или иной алгоритм сортировки. # алгоритм сортировки по методу пузырька # алгоритм "Шейкерная сортировка" 6. Вычислить среднее арифметическое значение набора данных. При необходимости, результат округлить до третьего знака после запятой. 7. Вычислить среднее квадратическое значение набора данных. При необходимости, результат округлить до третьего знака после запятой. Обратите внимание на важные замечания: 1. Не допускается использование готовых функций по сортировки набора данных, например: метод .sort(), функции sorted(), reverse() и т.п. Использование данных функций возможно лишь для самопроверки, на этапе тестирования результатов работы двух алгоритмов сортировки. В окончательном варианте программного кода - этих функций и методов не должно быть. 2. Вычисление среднего арифметического и среднеквадратичного значения также должно быть выполнено без использования готовых функций, т.е. нужно разработать собственный алгоритм и написать собственный код. Справочно: среднее квадратическое (квадратичное) набора данных — число S, равное квадратному корню из среднего арифметического квадратов данных чисел a1, a2, …, an: Справочно: среднее арифметическое значение набора чисел — число, равное сумме всех чисел множества, делённое на их количество:
Результат: Результатом правильной работы программы является: текстовый файл с результатами расчетов «result.txt». В консоль ничего не выводится. При перезапуске программы файл «result.txt» должен быть перезаписан. Если файла «result.txt» нет, он должен быть создан при первом запуске. Формат текстового файла результатов result.txt 1. Исходные данные: Иванов Иван Иванович; ID: 70115094 2. 3505754 3. Направление сортировки: по возрастанию, так как число 3505754 – чётное 4. Набор данных: [1048, 1074, 1072, 1085, 1086, 1074, 1048, 1074, 1072, 1085, 1048, 1074, 1072, 1085, 1086, 1074, 1080, 1095] 5. Отсортированный по возрастанию набор данных [1048, 1048, 1048, 1072, 1072, 1072, 1074, 1074, 1074, 1074, 1074, 1080, 1085, 1085, 1085, 1086, 1086, 1095] 7. Среднее арифметическое значение: 1074 8. Среднее квадратическое значение: 1074.082 Данные залитые зеленой заливкой – это данные, которые формируются в зависимости от расчета по выполненной программе. Остальные данные – неизменяемые. Кодировка в текстовом файле должна быть Unicode. Путь к входному и выходному файлам (source_data.txt и result.txt) в коде программы нужно сделать относительным.
РЕКОМЕНДАЦИИ ПО ВЫПОЛНЕНИЮ РЕЙТИНГОВОЙ РАБОТЫ Для подготовки к выполнению второй рейтинговой работы по дисциплине «Алгоритмизация и программирование» следует самостоятельно: - изучить рекомендованную учебную литературу; - изучить видеоматериалы по каждой теме, размещенные в Электронном университете; - успешно решить онлайн задачи, размещенные в Электронном университете; - изучить дополнительные учебно-методические материалы, размещенные в Электронном университете. Рейтинговая работа выполняется в электронной форме и размещается обучающимся в личном кабинете в виде трех обязательных файлов: - рейтинговая работа с именем файла «Иванов АС.docx» - файл с исходными данными source_data.txt - файл с результатами сортировки и расчетами result.txt Не допускается выгрузка ТОЛЬКО одного файла, например файла кода *.py. Такие рейтинговые работы не могут быть оценены на положительную оценку, даже если программный код работает корректно и отрабатывает все поставленные задачи. По желанию (не обязательно), дополнительно можно выгрузить программный код в виде файла *.py. Программный код в файле *.py должен полностью соответствовать листингу кода, представленному в рейтинговой работе после списка литературы. В случае расхождения, проверяется и оценивается только код, представленный в рейтинговой работе. По желанию (не обязательно), дополнительно можно выгрузить архив. Имя размещаемого архивного файла должно содержать фамилию и инициалы студента, например: «Иванов_АС.zip». Для создания архива можно воспользоваться свободно распространяемой программой 7-Zip. Рейтинговая работа должна быть оформлена в виде документа, сформированного в любом текстовом редакторе, поддерживающим сложное форматирование, отображение векторных рисунков и позволяющим сохранять документ в формате *.docx. Если возникают сомнения в совместимости форматов текстовых документах, подготовленных в различных редакторах, то в этом случае в архив можно дополнительно добавить копию рейтинговой работы, сохраненной в формате *.pdf Составление алгоритмов решения задачи является обязательным и неотъемлемым элементом рейтинговой работы. При построении блок-схем алгоритмов рекомендуется использовать стандартные встроенные возможности текстового редактора по вставке фигур блок-схем. При необходимости, блок-схемы можно разрабатывать в любом векторном редакторе. Не следует использовать растровые редакторы для разработки блок-схем. Блок-схемы алгоритмов должны быть выполнены по ГОСТ 19.701-90. К выбранным алгоритмам сортировки (2 алгоритма) должны быть даны текстовые описания, принципы работы, области применения. Программный код рекомендуется разрабатывать на платформе PyCharm. Использование других сред разработки не рекомендуется. Полный листинг программного кода следует привести в Приложении после списка использованных источников, при этом следует сохранить форматирование, характерное для структуры кода языка python. Программный код должен быть вставлен как текст с сохранением форматирования. Вставка программного кода как «картинка» не допускается. При необходимости пояснений по тексту рейтинговой работы (например, при обосновании принятых алгоритмических решений, использовании собственных функций, классов и т.п.) отдельные фрагменты программного кода следует вставлять в текстовом виде:
Рисунок 2 – Фрагмент программного кода В рейтинговой работе следует дать подробное и аргументированное описание предлагаемых способов решений задачи / задач считывания данных их текстового файла, подсчета количества символов, перевода кода каждого символа в десятичную часть, алгоритмов сортировки и т.п. Необходимо дать описание предлагаемых к использованию переменных, функций, классов, библиотек и т.п. Должны быть выбраны / разработаны алгоритмические решения. Следует построить блок-схему алгоритма / блок-схемы алгоритмов по ГОСТ 19.701-90. Программный код должен соответствовать предлагаемым алгоритмическим решениям. Естественно, перед выгрузкой рейтинговой работы программный код следует проверить и выполнить тестирование на типовых наборах данных: произвольные ФИО и ID. По решенным задачам необходимо сформулировать выводы, в которых следует отразить обоснование выбранных алгоритмических и программных решений, полученных результатов. Рейтинговая работа и программный код должны быть выполнены самостоятельно. Не самостоятельно выполненные работа и программный код лишает студента возможности проверить степень своей подготовленности по теме. Если преподаватель установит несамостоятельное выполнение работы и/или программного кода, то она не может быть оценена на положительную оценку. По таким рейтинговым работам выставляется оценка 1 балл. Рейтинговая работа выполняется в течение семестра, в срок, определяемый графиком учебного процесса, до проведения промежуточной аттестации. | |


