1
0
Jelajahi Sumber

Merge branch 'master' of u22-26egorov/up into master

ypv 1 Minggu lalu
induk
melakukan
1fb18b8bdd

+ 59 - 0
ОАиП/2024-25/36гр/2 сем/Егоров работа 1.py

@@ -0,0 +1,59 @@
+import tkinter as tk
+from tkinter import messagebox
+import random
+
+def calculate_height_difference():
+    """Рассчитывает разницу в росте между самым высоким и самым низким."""
+    heights_str = height_entry.get()  # Получаем строку из поля ввода
+    try:
+        heights = [float(h.strip()) for h in heights_str.split(',')]  # Разделяем строку и преобразуем в числа
+
+        if len(heights) != 25:
+            messagebox.showerror("Ошибка", "Нужно ввести рост ровно 25 человек.")
+            return
+
+        highest_height = max(heights)
+        lowest_height = min(heights)
+        difference = highest_height - lowest_height
+
+        result_label.config(text=f"Разница: {difference:.2f} см.") # Отображаем результат
+
+    except ValueError:
+        messagebox.showerror("Ошибка", "Пожалуйста, введите корректные числа, разделенные запятыми.")
+
+
+def generate_random_heights():
+    """Генерирует случайные значения роста."""
+    random_heights = [round(random.uniform(160, 190), 1) for _ in range(25)]  # Генерация случайных значений (например, 160-190)
+    height_entry.delete(0, tk.END)  # Очищаем поле ввода
+    height_entry.insert(0, ", ".join(map(str, random_heights)))  # Заполняем поле ввода
+
+# Создаем главное окно
+window = tk.Tk()
+window.title("Разница в росте (v1.0)") # Добавим версию, как у студента
+
+# Добавим немного отступов и красоты
+window.geometry("400x250")  # Зададим размер окна
+
+#  Описание задания
+description_label = tk.Label(window, text="Введите рост 25 человек (см), разделяя значения запятыми.", wraplength=380, justify="left")  # wraplength - перенос текста, justify - выравнивание
+description_label.pack(pady=10)
+
+# Поле ввода для роста
+height_entry = tk.Entry(window, width=40)
+height_entry.pack(pady=5)
+
+# Кнопка для расчета
+calculate_button = tk.Button(window, text="Рассчитать", command=calculate_height_difference, bg="#4CAF50", fg="white")  # Добавим немного стиля
+calculate_button.pack(pady=10)
+
+# Кнопка для генерации случайных данных
+generate_button = tk.Button(window, text="Сгенерировать данные", command=generate_random_heights, bg="#008CBA", fg="white") # Добавим немного стиля
+generate_button.pack(pady=5)
+
+# Метка для отображения результата
+result_label = tk.Label(window, text="")
+result_label.pack(pady=10)
+
+# Запуск основного цикла
+window.mainloop()

+ 72 - 0
ОАиП/2024-25/36гр/2 сем/Егоров работа 2.py

@@ -0,0 +1,72 @@
+import tkinter as tk
+from tkinter import messagebox
+import random
+
+def calculate_grades():
+    """Подсчитывает количество хороших оценок (4 и 5)."""
+    try:
+        grades_str = grades_entry.get()  # Получаем оценки из текстового поля
+        grades = [int(grade.strip()) for grade in grades_str.split(',')]  # Разделяем и преобразуем в числа
+
+        if len(grades) != 10:
+            messagebox.showerror("Эм, ошибка!", "Нужно ввести ровно 10 оценок, а не больше и не меньше.")
+            return  # Выходим из функции, если что-то не так
+
+        # Считаем, сколько у нас четверок и пятерок
+        count_4 = grades.count(4)
+        count_5 = grades.count(5)
+
+        # Выводим результат на экран
+        result_text = f"Четверок: {count_4}\nПятерок: {count_5}"
+        result_label.config(text=result_text)
+
+    except ValueError:
+        messagebox.showerror("Ой-ой!", "Кажется, ввели что-то не то. Нужны только числа от 2 до 5, разделенные запятыми.")
+
+
+def generate_random_data():
+    """Создает случайные оценки для примера."""
+    random_marks = [random.randint(2, 5) for _ in range(10)]  # Генерируем 10 случайных оценок (2-5)
+    grades_entry.delete(0, tk.END)  # Очищаем поле
+    grades_entry.insert(0, ", ".join(map(str, random_marks))) # Заполняем строку случайными оценками
+
+
+# Создаем окошко
+main_window = tk.Tk()
+main_window.title("Считалка оценок (by Student)") # Пометка "by Student", типично
+main_window.geometry("380x280") # Немного увеличим окно
+
+# Описание, что нужно делать
+instruction_label = tk.Label(main_window,
+                             text="Введи свои оценки по 10 предметам (от 2 до 5), через запятую:",
+                             wraplength=360,
+                             justify="left") # Поясняющий текст
+instruction_label.pack(pady=10)
+
+# Поле для ввода оценок
+grades_entry = tk.Entry(main_window, width=40) # Создаем текстовое поле
+grades_entry.pack(pady=5)
+
+# Кнопка "Посчитать"
+calculate_button = tk.Button(main_window,
+                             text="Посчитать хорошие оценки!",
+                             command=calculate_grades,
+                             bg="#2196F3",
+                             fg="white") # Делаем кнопку синей, чтобы было красиво
+calculate_button.pack(pady=10)
+
+# Кнопка "Сгенерировать"
+generate_button = tk.Button(main_window,
+                          text="Сгенерировать пример оценок",
+                          command=generate_random_data,
+                          bg="#FFC107",
+                          fg="black") # Делаем кнопку желтой
+generate_button.pack(pady=5)
+
+#  Лейбл для вывода результата
+result_label = tk.Label(main_window, text="")
+result_label.pack(pady=10)
+
+
+# Запускаем программу
+main_window.mainloop()