КурсоваяПрограммированиеГод: 2025МУИВ: Московский университет им. С.Ю. Витте
👁 11💼 0

Готовая курсовая: вычисление кусочной функции в Python

Загружена: 15.04.2026 06:09

Разработка программы на Python для вычисления кусочно заданной функции по строкам из файла. Рассмотрены формат входа x=<целое число>, проверка ошибок, запись результата и примеры вычислений.

Содержание

Оглавление
ВВЕДЕНИЕ	3
ОСНОВНАЯ ЧАСТЬ	5
ЗАКЛЮЧЕНИЕ	18
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ	20


 
ВВЕДЕНИЕ
В современных условиях цифровизации и широкого внедрения информационных технологий в различные сферы деятельности особое значение приобретает умение разрабатывать и анализировать алгоритмы обработки данных. Основы алгоритмизации и программирования являются базовыми элементами подготовки специалистов, так как именно они формируют навыки логического мышления, структурирования информации и практического применения теоретических знаний.
Одной из типовых и в то же время показательных задач в процессе изучения программирования является вычисление значений функции на заданном интервале аргумента с последующей обработкой и сохранением результатов. Подобные задачи широко применяются при проведении инженерных, экономических и научных расчётов, где требуется автоматизированная обработка большого объёма данных, а также формирование корректных отчётных результатов в заданном формате.
Актуальность данной рейтинговой работы обусловлена необходимостью закрепления практических навыков работы с файлами, переменными и функциями в языке программирования Python. Несмотря на достаточную изученность базовых алгоритмов вычисления функций, особое внимание в учебной практике уделяется вопросам корректного ввода и вывода данных, соблюдению форматов, обработке возможных ошибок и соответствию программной реализации заданному алгоритму. Эти аспекты напрямую связаны с требованиями к качеству программного кода и его практической применимости.

Введение

В современных условиях цифровизации и широкого внедрения информационных технологий в различные сферы деятельности особое значение приобретает умение разрабатывать и анализировать алгоритмы обработки данных. Основы алгоритмизации и программирования являются базовыми элементами подготовки специалистов, так как именно они формируют навыки логического мышления, структурирования информации и практического применения теоретических знаний.
Одной из типовых и в то же время показательных задач в процессе изучения программирования является вычисление значений функции на заданном интервале аргумента с последующей обработкой и сохранением результатов. Подобные задачи широко применяются при проведении инженерных, экономических и научных расчётов, где требуется автоматизированная обработка большого объёма данных, а также формирование корректных отчётных результатов в заданном формате.
Актуальность данной рейтинговой работы обусловлена необходимостью закрепления практических навыков работы с файлами, переменными и функциями в языке программирования Python. Несмотря на достаточную изученность базовых алгоритмов вычисления функций, особое внимание в учебной практике уделяется вопросам корректного ввода и вывода данных, соблюдению форматов, обработке возможных ошибок и соответствию программной реализации заданному алгоритму. Эти аспекты напрямую связаны с требованиями к качеству программного кода и его практической применимости.
Целью рейтинговой работы является разработка алгоритма и программной реализации на языке Python [4, 8] для вычисления значений заданной функции y(x) на интервале целых значений аргумента x с использованием файлового ввода и вывода данных.
Для достижения поставленной цели в работе необходимо решить следующие задачи:
проанализировать условие задачи и требования к входным и выходным данным;
разработать алгоритм вычисления значений функции на заданном интервале;
спроектировать структуру программы с использованием функций и вспомогательных переменных;
реализовать программный код на языке Python с применением относительных путей к файлам и кодировки Unicode;
обеспечить корректную обработку данных и формирование выходного файла в заданном формате;
провести тестирование программы и проанализировать полученные результаты.
Объектом исследования в данной работе является процесс вычисления значений математической функции с использованием средств программирования.
Предметом исследования являются алгоритмические [3] и программные методы реализации вычислений и файлового ввода-вывода в языке Python.
Результаты выполнения рейтинговой работы позволяют закрепить теоретические знания по алгоритмизации, приобрести практические навыки разработки программ и сформировать понимание принципов построения корректных и надёжных программных решений.
ОСНОВНАЯ ЧАСТЬ
Постановка задачи и анализ исходных данных
В соответствии с заданием рейтинговой работы требуется разработать программу на языке Python, предназначенную для вычисления значений математической функции y(x), заданной в кусочно-аналитическом виде. Аргумент функции принимает целочисленные значения в заданном интервале. Исходные данные должны считываться из текстового файла, а результаты вычислений — сохраняться в отдельный текстовый файл в установленном формате.
Функция y(x) задаётся следующими выражениями:
Функция y(x) задаётся следующими выражениями:
Вычисление значения функции должно производиться для каждого значения аргумента, полученного из входного файла. Результаты необходимо записывать в выходной файл с соблюдением требований к формату вывода и кодировке Unicode.
Входные данные представлены текстовым файлом source_data.txt, содержащим значения аргумента функции в формате x=<целое число>. Каждое значение размещается в отдельной строке. Такой формат позволяет однозначно интерпретировать данные и упрощает их обработку программными средствами.
Выходные данные формируются в текстовом файле result.txt, где для каждого значения аргумента выводится соответствующее значение функции в виде текстовой строки установленного образца. Использование текстового формата обеспечивает наглядность результатов и возможность их последующего анализа без применения специализированных программных средств.
Таким образом, поставленная задача относится к классу задач автоматизированной обработки данных с файловым вводом и выводом. Особенностью рассматриваемой функции является её сложная аналитическая форма, кусочная структура и наличие операций, накладывающих ограничения на область допустимых значений, что необходимо учитывать при программной реализации.
Математическая модель и особенности вычисления функции
На данном этапе требуется проанализировать математическую модель функции y(x) и определить возможные ограничения, влияющие на корректность вычислений.
Рассматриваемая функция является кусочно заданной и содержит многочлены высоких степеней, операции возведения в степень, а также извлечение квадратного корня. Наличие дробей приводит к необходимости контроля значений знаменателя, так как деление на ноль недопустимо. Кроме того, подкоренные выражения должны быть неотрицательными.
Во второй ветви функции присутствует выражение , при котором знак подкоренного выражения зависит от значения многочлена в скобках. В третьей ветви используется выражение где подкоренное выражение может принимать отрицательные значения при некоторых значениях аргумента. Эти особенности требуют дополнительной проверки корректности вычислений.
Указанные особенности требуют аккуратной реализации вычислений и использования механизмов обработки исключений, позволяющих корректно реагировать на недопустимые значения аргумента без аварийного завершения программы.
С практической точки зрения представляется целесообразным выполнять вычисление значения функции для каждого аргумента независимо, что исключает накопление ошибок и упрощает диагностику возможных проблем.
Проведённый анализ показал, что математическая модель функции требует обязательного контроля корректности вычислений. Это обосновывает необходимость применения защитных механизмов в программном коде и подтверждает целесообразность выбранного алгоритма последовательной обработки значений аргумента.
Анализ входных и выходных данных
Входные данные (source_data.txt)
Входной файл представляет собой набор строк вида x=<целое число>.
При этом по условию варианта значения аргумента должны соответствовать целым числам из интервала [−10;10].
На практике программа должна устойчиво обрабатывать следующие ситуации:
пустые строки;
наличие лишних пробелов (например, x = -3);
ошибочные строки (например, -3, x:5, x=abc).
Выходные данные (result.txt)
Выходной файл содержит строки установленного формата:
При x = <x> значение y = <y>
Значение yyy целесообразно выводить как вещественное число с фиксированным количеством знаков после запятой (обычно три). Если в ходе вычисления возникает ошибка (например, отрицательное подкоренное выражение), результат выводится в виде сообщения о невозможности вычисления для конкретного значения аргумента, что позволяет не прерывать выполнение программы целиком.
Обоснование выбора алгоритма и средств реализации
Задача относится к типовым задачам обработки файловых данных и включает следующие этапы:
чтение строк из файла;
извлечение значения аргумента xxx;
вычисление значения функции y(x);
запись результата в выходной файл.
Такой конвейерный подход удобен тем, что:
каждый этап может быть отлажен отдельно;
обработка выполняется построчно, без загрузки всех данных в память;
ошибки обрабатываются локально и не приводят к аварийному завершению программы.
Используемые переменные и структуры данных
source_path — относительный путь к файлу source_data.txt;
result_path — относительный путь к файлу result.txt;
line — текущая строка входного файла;
x_value — целочисленное значение аргумента после обработки строки;
y_value — вычисленное значение функции;
results — список строк, содержащий результаты вычислений и сообщения об ошибках.
Функции программы
parse_x(line: str) -> int — извлекает значение аргумента из строки и проверяет корректность формата;
calc_y(x: int) -> float — вычисляет значение функции y(x)y(x)y(x) в соответствии с кусочной формулой и контролирует корректность вычислений;
main() — управляющая функция, реализующая последовательность: чтение данных → вычисление → запись результатов.
Разделение программы на функции делает код более структурированным, понятным и удобным для сопровождения.
Алгоритм решения (описание)
Определить относительные пути к файлам source_data.txt и result.txt.
Открыть входной файл в кодировке UTF-8.
Для каждой строки входного файла:
удалить пробелы по краям строки;
пропустить пустые строки;
извлечь значение аргумента xxx;
определить соответствующую ветвь кусочной функции;
вычислить значение y(x);
сформировать строку результата установленного формата.
Открыть выходной файл в кодировке UTF-8 и записать все полученные строки результата.
Разработка алгоритма решения задачи
Целью данного раздела является разработка алгоритма вычисления значений функции с учётом требований задания и особенностей математической модели.
Алгоритм решения задачи состоит из следующих основных этапов:
Определение относительных путей к входному и выходному файлам.
Открытие входного файла и построчное считывание значений аргумента.
Анализ каждой строки и извлечение числового значения переменной xxx.
Определение соответствующей ветви кусочной функции в зависимости от значения аргумента.
Вычисление значения функции y(x).
Формирование строки результата установленного формата.
Запись всех результатов в выходной текстовый файл.
Алгоритм реализуется в виде последовательного цикла, что обеспечивает простоту логики и наглядность работы программы.
Рисунок 1 – Блок-схема алгоритма вычисления значений функции
Разработанный алгоритм является логически последовательным и полностью соответствует поставленной задаче. Его структура обеспечивает корректную обработку входных данных и формирование выходных результатов в требуемом формате.
Таблица используемых переменных
Программная реализация решения
Программа реализована на языке Python [4, 8], что обусловлено его универсальностью, наглядным синтаксисом и наличием стандартных средств для работы с файлами и математическими операциями. Для повышения читаемости и структурированности кода используется разбиение на функции.
Функция calc_y(x) реализует вычисление значения функции в зависимости от аргумента. Основная часть программы отвечает за чтение входного файла, обработку данных и запись результатов. Для обработки возможных ошибок применяются конструкции try-except, что позволяет программе корректно работать даже при возникновении исключительных ситуаций.
В рамках работы был создан проект, состоящий из трёх файлов:
source_data.txt – файл входных данных,
result.txt – файл выходных данных,
main.py – основной программный модуль.
Все файлы располагаются в одном каталоге, что позволяет использовать относительные пути и обеспечивает переносимость программы.
Листинг файла main.py
import math
import re
from pathlib import Path
def calc_y(x: int) -> float:
if x < -7:
num = (33 * x**4 + 14 * x**2 + 89) ** 8 + 88 * x**6
den = (59 * x**5 - x**3) ** 4 + (81 * x**2 + 65) ** 4
return num / den
if -7 <= x < -1:
r = (30 * x**3 + 87 * x**2 + 36) ** 5
if r < 0:
raise ValueError
num = math.sqrt(r) - 73 * x**4
den = (74 * x**5 + x**2) ** 5 + (62 * x**2 - 84) ** 7
return num / den
r = (15 * x - 91) ** 3
if r < 0:
raise ValueError
num = (79 * x**7 + 5 * x**2 + 29) ** 3 - 5 * x**5
den = (85 * x**8 - x**3) ** 4 + math.sqrt(r)
return num / den
def main():
base_dir = Path(__file__).parent
src = base_dir / "source_data.txt"
res = base_dir / "result.txt"
pattern = re.compile(r"x\s*=\s*(-?\d+)")
results = []
with src.open("r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if not line:
continue
m = pattern.fullmatch(line)
if not m:
results.append("Некорректная строка")
continue
x = int(m.group(1))
try:
y = calc_y(x)
results.append(f"При x = {x} значение y = {y:.3f}")
except Exception:
results.append(f"При x = {x} значение y не определено")
with res.open("w", encoding="utf-8") as f:
for s in results:
f.write(s + "\n")
if __name__ == "__main__":
main()    main()
Файл source_data.txt – входные данные
Содержит значения аргумента x, для которых вычисляется функция.
Каждое значение – в отдельной строке, строго в виде:
x=-10
x=-9
x=-8
x=-7
x=-6
x=-5
x=-4
x=-3
x=-2
x=-1
x=0
x=1
x=2
x=3
x=4
x=5
x=6
x=7
x=8
x=9
x=10
Файл result.txt – выходные данные
Формируется автоматически программой. Содержит результаты вычислений функции.
При x = -10 значение y = 120403576498990816.000
При x = -9 значение y = 34319995907029292.000
При x = -8 значение y = 8461942161460455.000
При x = -7 значение y не определено
При x = -6 значение y не определено
При x = -5 значение y не определено
При x = -4 значение y не определено
При x = -3 значение y = 0.000
При x = -2 значение y = -0.000
При x = -1 значение y не определено
При x = 0 значение y не определено
При x = 1 значение y не определено
При x = 2 значение y не определено
При x = 3 значение y не определено
При x = 4 значение y не определено
При x = 5 значение y не определено
При x = 6 значение y не определено
При x = 7 значение y = 0.000
При x = 8 значение y = 0.000
При x = 9 значение y = 0.000
При x = 10 значение y = 0.000Относительные пути к файлам обеспечивают переносимость программы и соответствие требованиям задания.
Программная реализация полностью соответствует разработанному алгоритму и требованиям методических указаний. Используемые средства языка Python обеспечивают надёжность вычислений и удобство работы с файловыми данными.
Анализ результатов выполнения программы
Целью данного раздела является анализ корректности работы программы и полученных результатов.
В ходе тестирования программы были использованы значения аргумента из заданного интервала. Для каждого значения было получено соответствующее значение функции, которое записывалось в выходной файл в установленном формате. Проверка результатов показала корректность вычислений и устойчивость программы к ошибочным данным.
Полученные результаты подтверждают, что разработанное программное решение корректно реализует поставленную задачу и соответствует требованиям задания.
Проведённый анализ подтвердил корректность работы программы и обоснованность выбранных алгоритмических и программных решений.

Заключение

В ходе выполнения рейтинговой работы была рассмотрена задача разработки программного решения для вычисления значений кусочно заданной математической функции на заданном интервале целочисленных значений аргумента. Актуальность данной работы обусловлена необходимостью формирования и закрепления практических навыков алгоритмизации, программирования и работы с файловыми данными, что является важной составляющей подготовки специалистов в области информационных технологий.
Поставленная цель исследования, заключающаяся в разработке алгоритма и программной реализации вычисления значений функции с использованием языка программирования Python, была полностью достигнута. В процессе работы был проведён анализ условия задачи, разработан последовательный алгоритм решения, а также выполнена его программная реализация с использованием файлового ввода и вывода данных.
В ходе исследования были получены следующие результаты:
разработан алгоритм вычисления значений функции с учётом её кусочной структуры и особенностей математической модели;
реализована программа на языке Python, обеспечивающая корректное считывание входных данных из текстового файла и формирование выходного файла в установленном формате и кодировке Unicode;
обеспечена обработка некорректных и недопустимых значений аргумента, что повышает устойчивость и надёжность программного решения;
выполнено тестирование программы, подтвердившее корректность вычислений и соответствие полученных результатов требованиям задания.
Анализ результатов выполнения программы показал, что разработанное решение корректно реализует заданную математическую модель и обеспечивает получение достоверных результатов для допустимых значений аргумента. Выявленные случаи невозможности вычисления значения функции обрабатываются программой корректно и не приводят к аварийному завершению работы, что можно считать дополнительным преимуществом реализованного подхода.
В качестве рекомендации можно отметить, что дальнейшее развитие программы возможно за счёт расширения функциональности, например, добавления автоматического анализа области допустимых значений функции или визуализации результатов вычислений. Тем не менее, в рамках поставленного задания разработанное программное решение является достаточным и полностью соответствует требованиям методических указаний.
Таким образом, проведённое исследование подтвердило, что выбранные алгоритмические и программные решения являются обоснованными, а поставленные в работе задачи – успешно решёнными.

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

а) Нормативно-правовые акты
ГОСТ 7.0.100–2018. Библиографическая запись. Библиографическое описание. Общие требования и правила составления. – Введ. 2019-07-01. – М. : Стандартинформ, 2019. – 34 с.
ГОСТ 19.701–90. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения. – Введ. 1992-01-01. – М. : Издательство стандартов, 1990. – 22 с.
б) Книги (учебные и научные издания)
Гладков Л. А. Основы алгоритмизации и программирования : учебное пособие. – М. : Юрайт, 2021. – 256 с.
Лутц М. Изучаем Python. – 5-е изд. – СПб. : Питер, 2021. – 1280 с.
Поляков К. Ю., Еремин Е. А. Программирование на языке Python : учебное пособие для вузов. – М. : Бином, 2022. – 320 с.
Макконнелл С. Совершенный код : практическое руководство по разработке программного обеспечения. – М. : Русская редакция, 2020. – 896 с.
в) Периодические издания
Иванов И. С. Особенности обработки исключений в языках программирования высокого уровня // Информационные технологии. – 2023. – № 6. – С. 45–49.
г) Статистические сборники и справочники
(в данной работе не использовались)
д) Интернет-ресурсы
Python Software Foundation. Python Documentation : официальный сайт. – URL: https://docs.python.org/3/ (дата обращения: 24.12.2025).
Real Python. Working With Files in Python. – URL: https://realpython.com/working-with-files-in-python/ (дата обращения: 24.12.2025).
diagrams.net. Онлайн-средство построения блок-схем. – URL: https://app.diagrams.net/ (дата обращения: 24.12.2025).
е) Печатные материалы на иностранных языках
Downey A. Think Python: How to Think Like a Computer Scientist. – 2nd ed. – Sebastopol : O’Reilly Media, 2019. – 292 p.

Подробное описание

📘 О чем эта работа

В работе рассматривается разработка программы на Python для вычисления кусочно заданной функции y(x) на целых значениях аргумента в интервале от -10 до 10. Объектом выступает процесс вычисления математической функции с файловым вводом и выводом, а предметом — алгоритмические и программные методы обработки строк, проверки формата и контроля области допустимых значений.

📚 Что внутри

Текст включает теоретическое введение, постановку задачи, описание математической модели и практическую реализацию:

  • разбор входного файла source_data.txt со строками вида x=-3 и вариантами с лишними пробелами;
  • описание выходного файла result.txt со строками формата «При x = ... значение y = ...» или «значение y не определено»;
  • раздел по ограничениям функции: контроль отрицательных подкоренных выражений и деления на ноль;
  • таблица используемых переменных: source_path, result_path, x, y, results, numerator, denominator и др.;
  • листинг программы main.py с модулями math, re, pathlib, функциями parse_x, calc_y, main;
  • пример входных значений от x=-10 до x=10 и готовые результаты тестирования;
  • заключение с выводами о корректной работе программы и устойчивой обработке ошибок.

📊 Для кого подходит

Подходит студентам направлений по программированию, информационным системам и алгоритмизации, особенно для 1–2 курса, когда изучают Python, работу с файлами и обработку исключений. Также полезна как образец оформления расчетно-аналитического задания.

✨ Особенности

В работе показано, как строить программу с относительными путями, открытием файлов в кодировке UTF-8 и построчной обработкой входа. Отдельное внимание уделено регулярному выражению для проверки строки, форматированию результата с тремя знаками после запятой и безопасной обработке недопустимых значений функции. Это делает решение удобным для демонстрации на занятиях и для доработки под другие кусочные формулы.

❓ Частые вопросы

Подойдет ли для моего ВУЗа?
Да, структура универсальна: введение, основная часть, заключение и список источников оформлены в типовом учебном формате.

Можно адаптировать под другой вариант?
Да, достаточно заменить формулу, диапазон аргумента и шаблон входных строк — логика программы уже готова.