diff --git a/TEMA8/test/Mod1.py b/TEMA8/test/Mod1.py new file mode 100644 index 0000000..8290b57 --- /dev/null +++ b/TEMA8/test/Mod1.py @@ -0,0 +1,37 @@ +# Mod1.py +import math + +def calc_function(a, x): + if x == 0: + return a + return a * math.sin(x) / x + +def calculate_interval(a, x_start=0.5, x_end=50, step=0.5): + results = [] + x = x_start + while x <= x_end: + value = calc_function(a, x) + results.append((x, value)) + x += step + return results + +def write_to_file(results, filename="output.txt"): + with open(filename, 'w', encoding='utf-8') as f: + for x, val in results: + f.write(f"{val}\n") + print(f"Данные записаны в файл: {filename}") + +def plot_function(results): + import matplotlib.pyplot as plt + + x_vals = [item[0] for item in results] + y_vals = [item[1] for item in results] + + plt.figure(figsize=(10, 5)) + plt.plot(x_vals, y_vals, label="f(x) = a * sin(x) / x", color='blue') + plt.title("График функции f(x) = a * sin(x) / x") + plt.xlabel("x") + plt.ylabel("f(x)") + plt.grid(True) + plt.legend() + plt.show() diff --git a/TEMA8/test/Mod2.py b/TEMA8/test/Mod2.py new file mode 100644 index 0000000..d55f1ec --- /dev/null +++ b/TEMA8/test/Mod2.py @@ -0,0 +1,24 @@ +import Mod1 + +print("=" * 50) +print("Расчёт функции f(x) = a * sin(x) / x") +print("=" * 50) + +try: + a = float(input("Введите коэффициент a: ")) + filename = input("Введите имя файла ('output.txt'): ") or "output.txt" +except ValueError: + print("Ошибка ввода! Используйте числа.") + exit() + +results = Mod1.calculate_interval(a) + +print("\nПервые 10 значений:") +for x, val in results[:10]: + print(f" x={x:.1f}, f(x)={val:.6f}") + +Mod1.write_to_file(results, filename) + +print("\nОтображение графика:") +Mod1.plot_function(results) + diff --git a/TEMA8/test/image1.png b/TEMA8/test/image1.png new file mode 100644 index 0000000..bb0c525 Binary files /dev/null and b/TEMA8/test/image1.png differ diff --git a/TEMA8/test/image2.png b/TEMA8/test/image2.png new file mode 100644 index 0000000..4f148eb Binary files /dev/null and b/TEMA8/test/image2.png differ diff --git a/TEMA8/test/output.txt b/TEMA8/test/output.txt new file mode 100644 index 0000000..a128d93 --- /dev/null +++ b/TEMA8/test/output.txt @@ -0,0 +1,100 @@ +1.917702154416812 +1.682941969615793 +1.3299933154720727 +0.9092974268256817 +0.47877771528316515 +0.0940800053732448 +-0.20044755867978276 +-0.3784012476539641 +-0.43445783007337646 +-0.3835697098652554 +-0.2565601183892334 +-0.09313849939964196 +0.0661907655654817 +0.18771045677679687 +0.25013332713993036 +0.24733956165584545 +0.18787932061729182 +0.09158188560927924 +-0.015821288518275644 +-0.10880422217787396 +-0.16756109713746095 +-0.181816401191037 +-0.1522525521197267 +-0.08942881966673916 +-0.01061150357619211 +0.06464108258871398 +0.11907917430394385 +0.14151533652783863 +0.1289510421413356 +0.08670504535428224 +0.026640965411328592 +-0.03598791458313316 +-0.08627701119625734 +-0.11310558727994786 +-0.11150011491064658 +-0.08344302741907512 +-0.037024931726444596 +0.015776548385573932 +0.06210665330457447 +0.09129452507276277 +0.09725168724671213 +0.0796814893843863 +0.04387339563666941 +-0.0008046644809458069 +-0.043304401107600844 +-0.07358438297175397 +-0.08494315131739542 +-0.07546486350055198 +-0.0482740840706224 +-0.010588140007821843 +0.028161439531150453 +0.05865834234458482 +0.07391378438520128 +0.07084266136329652 +0.050853820484007106 +0.019350413450562074 +-0.015702150188547117 +-0.045767854083652935 +-0.06379873954867482 +-0.06586877493952412 +-0.05200834357096952 +-0.026066944859552584 +0.005331711472491862 +0.03446416757760566 +0.05439202606435881 +0.06060071879437983 +0.052008358219055306 +0.031122510948236697 +0.0033326074263724387 +-0.024467581114065773 +-0.04557852204010741 +-0.05509882519128421 +-0.05105298015642222 +-0.034785845046324294 +-0.010549269313944655 +0.015598346247862386 +0.03729738144268281 +0.049425404424825015 +0.049298504085821676 +0.03725565802396744 +0.01650129268387262 +-0.007737691161205316 +-0.029520971227733485 +-0.0436438832340778 +-0.046874658970333834 +-0.038687197331562714 +-0.021324851309601257 +0.0008046329593369808 +0.02224203674393834 +0.0378179344237386 +0.043894104281836065 +0.0392081890282091 +0.02512673481347465 +0.005258430755115915 +-0.01546548838459753 +-0.03201061088848612 +-0.04045807994239575 +-0.03892867970446824 +-0.027995351686209927 +-0.01049499414815715