import tkinter as tk
import random
import math
# Funkcia na generovanie dvoch náhodných čísel a výpočet odmocnín a priemeru
def generuj_a_pocitaj():
# Vygeneruj dve náhodné čísla od -10 do 10
a = random.randint(-10, 10)
b = random.randint(-10, 10)
# Vypočítaj odmocniny s ošetrením záporných čísel
odmocnina_a = f"{math.sqrt(a):.10f}" if a >= 0 else "neviem"
odmocnina_b = f"{math.sqrt(b):.10f}" if b >= 0 else "neviem"
# Vypočítaj priemer
priemer = (a + b) / 2
# Aktualizuj štítky s výsledkami
label_a_hodnota.config(text=str(a))
label_b_hodnota.config(text=str(b))
label_odmocnina_a_hodnota.config(text=odmocnina_a)
label_odmocnina_b_hodnota.config(text=odmocnina_b)
label_priemer_hodnota.config(text=f"{priemer:.2f}")
# Vytvorenie hlavného okna
okno = tk.Tk()
okno.title("Náhodné čísla a výpočty")
# Popis programu
popis = tk.Label(
okno,
text="Vygeneruj dve náhodné čísla od -10 do 10.\n"
"Program z oboch vyráta odmocniny a vypočíta ich priemernú hodnotu.",
pady=10
)
popis.pack()
# Tlačidlo na generovanie čísel a výpočet
tlacidlo_generuj = tk.Button(okno, text="Generuj dve čísla a počítaj", command=generuj_a_pocitaj)
tlacidlo_generuj.pack(pady=10)
# Rám na zobrazenie výsledkov
ram = tk.Frame(okno)
ram.pack(pady=10)
# Štítky pre hodnoty "A"
label_a = tk.Label(ram, text="A")
label_a.grid(row=0, column=0, padx=10)
label_a_hodnota = tk.Label(ram, text="0")
label_a_hodnota.grid(row=0, column=1)
# Štítky pre hodnoty "B"
label_b = tk.Label(ram, text="B")
label_b.grid(row=0, column=2, padx=10)
label_b_hodnota = tk.Label(ram, text="0")
label_b_hodnota.grid(row=0, column=3)
# Štítky pre odmocniny
label_odmocnina_a = tk.Label(ram, text="Odmocniny (A)")
label_odmocnina_a.grid(row=1, column=0, padx=10)
label_odmocnina_a_hodnota = tk.Label(ram, text="neviem")
label_odmocnina_a_hodnota.grid(row=1, column=1)
label_odmocnina_b = tk.Label(ram, text="Odmocniny (B)")
label_odmocnina_b.grid(row=1, column=2, padx=10)
label_odmocnina_b_hodnota = tk.Label(ram, text="neviem")
label_odmocnina_b_hodnota.grid(row=1, column=3)
# Štítky pre priemernú hodnotu
label_priemer = tk.Label(ram, text="Priemerná hodnota (A a B)")
label_priemer.grid(row=2, column=0, columnspan=2, pady=10)
label_priemer_hodnota = tk.Label(ram, text="0")
label_priemer_hodnota.grid(row=2, column=2, columnspan=2)
# Varovanie pred zápornými číslami
varovanie = tk.Label(
okno,
text="Ošetrite, aby nenastalo odmocňovanie záporného čísla.",
pady=10
)
varovanie.pack()
# Spusti hlavnú slučku GUI
okno.mainloop()