willysleep
Профи
(589)
8 часов назад
(не забудь установить numpy и matplotlib.pyplot, командой pip install numpy matplotlib)
import numpy as np
import matplotlib.pyplot as plt
# Функция для считывания данных из файла
def read_data(file_path):
data = np.loadtxt(file_path)
return data[:, 0], data[:, 1]
# Функция для построения блок-схемы алгоритма
def plot_block_diagram():
fig, ax = plt.subplots()
ax.axis('off')
# Рисуем блок-схему
plt.text(0.1, 0.9, 'Сбор и анализ\nданных турбины', fontsize=10, bbox=dict(facecolor='lightblue', alpha=0.5))
plt.arrow(0.3, 0.85, 0.2, 0, head_width=0.02, color='black')
plt.text(0.55, 0.9, 'Проверка\nкритических\nзначений', fontsize=10, bbox=dict(facecolor='lightblue', alpha=0.5))
plt.arrow(0.75, 0.85, 0.2, 0, head_width=0.02, color='black')
plt.text(0.3, 0.6, '> 1545 кПа?', fontsize=10, bbox=dict(facecolor='lightblue', alpha=0.5))
plt.arrow(0.4, 0.55, 0, -0.2, head_width=0.02, color='black')
plt.text(0.4, 0.3, 'Да', fontsize=10)
plt.arrow(0.45, 0.3, 0.2, 0, head_width=0.02, color='black')
plt.text(0.7, 0.3, 'Выполнить\nдействие', fontsize=10, bbox=dict(facecolor='lightblue', alpha=0.5))
plt.show()
# Функция для построения кусочно-линейной функции
def plot_piecewise_function(x, y):
plt.figure(figsize=(10, 6))
plt.plot(x, y, marker='o', linestyle='-', color='b')
plt.xlabel('Вход')
plt.ylabel('Выход')
plt.title('Кусочно-линейная функция')
plt.grid(True)
plt.show()
# Основная функция
def main():
# Считываем данные из файла
input_file = 'input.txt'
output_file = 'output.txt'
x, y = read_data(input_file)
# Построение блок-схемы алгоритма
plot_block_diagram()
# Построение кусочно-линейной функции
plot_piecewise_function(x, y)
# Запись результатов в выходной файл
np.savetxt(output_file, np.column_stack((x, y)), fmt='%f')
if __name__ == "__main__":
main()