МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФГАОУ ВО «Хакасский государственный университет им. Н.Ф. Катанова»
Институт естественных наук и математики
Кафедра математики, физики и информационных технологий
Практическая работа №1
Линейные программы
Вариант № 7
по дисциплине:
«Информатика и технологии цифрового образования»
Выполнили
Студенты 1 курса
Группа ХБ-11
Марьясова А.К. Хуторная В.А
Оценка____________________
________________ Д.А. Рыжкова
"____" ___________20__ год
Абакан, 2025
Постановка задачи
Написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика. Параметры, необходимые для решения задания следует получить из графика и определить в программе.
Теоретическая часть
Для решения задачи использован оператор ветвления, который в языке Python имеет следующий вид:
if :
[elif :
]
[else:
]
– это набор вложенных инструкций, которые выделяются одинаковым количеством пробелов (обычно четырьмя).
Для ввода данных используется инструкция input(), которая возвращает строку. Введённые значения, перед использованием в арифметических выражениях, должны быть преобразованы к числовому формату.
Вывод данных выполняется инструкцией print(), в которой использован форматированный вывод данных.
График функции представлен фрагментами прямых линий,
описываемых уравнением
и дугами кругов. В общем случае
уравнение круга может быть представлено так:
На основе предоставленного описания графика определены следующие участки:
Участок 1:
Горизонтальная прямая
Участок 2:
Прямая, проходящая через точки A (-7, 3) и B (-3, 0).
Для прямой на интервале (-7, -3] можем записать следующую систему уравнений:
Вычитаем первое уравнение из второго
Подставим
во второе уравнение:
Таким образом, уравнение прямой: y = -0.75x - 2.25.
Участок 3:
Нижняя полуокружность с центром в точке (0, 0) и радиусом R = 3.
Для полукруга с центром (0, 0) уравнение круга примет вид:
Выразим y:
Знак «минус» выбран, так как рассматривается нижняя часть полукруга.
Участок 4:
Верхняя полуокружность с центром в точке (2, 0) и радиусом R = 2. Для полукруга с центром (2, 0) уравнение круга примет вид:
Выразим y:
Знак «плюс» выбран, так как рассматривается верхняя часть полукруга.
Участок 5:
Прямая, проходящая через точки C(4, 0) и D(6, 4).
Для прямой на интервале (4, 6] можем записать следующую систему уравнений:
Вычитаем первое уравнение из второго:
Подставляем k = 2 в первое уравнение:
Таким образом, уравнение прямой: y = 2x - 8.
Участок 6:
Горизонтальная прямая: y = 4.
Участок 7:
Прямая, проходящая через точки E(8, 4) и F(9, 3).
Для прямой на интервале (8, 9] можем записать следующую систему уравнений:
Вычитаем первое уравнение из второго:
Подставляем k = -1 в первое уравнение:
Таким образом, уравнение прямой: y = -x + 12.
Участок 8:
Нижняя полуокружность с центром в точке (11, 0) и радиусом R = 2.
Для полукруга с центром (11, 0) уравнение круга примет вид:
Выразим y:
Знак «минус» выбран, так как рассматривается нижняя часть полуокружности.
Участок 9:
Горизонтальная прямая: y = 0.
Описание программы
Программа написана на алгоритмическом языке Python 3.6, реализована в среде ОС Windows 10 и состоит из частей, отвечающих за ввод данных, вычисление и представление данных на экране монитора.
ОПИСАНИЕ АЛГОРИТМА
1. Ввести значение аргумента x.
2. Определить интервал, к которому принадлежит x.
3. Вычислить значение функции y по соответствующей формуле.
4. Вывести значения x и y с точностью до двух знаков после запятой.
Описание входных и выходных данных
Входные данные поступают с клавиатуры, а выходные - выводятся на монитор для просмотра. Входные и выходные данные имеют тип float.
Блок-схема
Листинг программы
# -*- coding: utf-8 -*-
from math import sqrt
# Ввод аргумента
x = float(input("Введите значение аргумента x: "))
# Определение значения функции в зависимости от интервала
if x
y = 3
elif -7
# Прямая через (-7, 3) и (-3, 0): y = -0.75x - 2.25
y = -0.75 * x - 2.25
elif -3
# Нижняя полуокружность с центром (0, 0), R=3
y = -sqrt(9 - x**2)
elif 0
# Верхняя полуокружность с центром (2, 0), R=2
y = sqrt(4 - (x - 2)**2)
elif 4
# Прямая через (4, 0) и (6, 4): y = 2x - 8
y = 2 * x - 8
elif 6
y = 4
elif 8
# Прямая через (8, 4) и (9, 3): y = -x + 12
y = -x + 12
elif 9
# Нижняя полуокружность с центром (11, 0), R=2
y = -sqrt(4 - (x - 11)**2)
else: # x 11
y = 0
# Форматированный вывод
print(f"X = {x:.2f}, Y = {y:.2f}")
РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ
Введите значение аргумента: -8
X= -8.00 Y= 3.00
Введите значение аргумента: -7
X= -7.00 Y= 3.00
Введите значение аргумента: -5
X= -5.00 Y= 1.50
Введите значение аргумента: -3
X= -3.00 Y= 0.00
Введите значение аргумента: -1.5
X= -1.50 Y= -2.60
Введите значение аргумента: 0
X= 0.00 Y= 0.00
Введите значение аргумента: 2
X= 2.00 Y= 2.00
Введите значение аргумента: 4
X= 4.00 Y= 0.00
ЗАКЛЮЧЕНИЕ В ходе выполнения лабораторной работы были изучены и применены на практике условные операторы ветвления в языке Python. Реализована программа для вычисления значений кусочно-заданной функции, содержащей прямолинейные участки и дуги окружностей. Программа корректно обрабатывает все интервалы определения функции и выводит результаты с заданной точностью.
Список используемой литературы
1. Н.А. Прохоренок, В.А. Дронов, Python 3 и PyQt 5. Разработка приложений:
СПб.: БХВ-Петербург, 2017