From dcad76367f4b59f5c799c78e81a97fbcbcff246e Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Wed, 30 Mar 2022 17:22:58 +0000 Subject: [PATCH 1/5] Setting up GitHub Classroom Feedback From f5e1aef180df2f4207cf382fb37cb99ec7ee8d23 Mon Sep 17 00:00:00 2001 From: Dominik Slehofer Date: Mon, 4 Apr 2022 13:42:36 +0200 Subject: [PATCH 2/5] luxus --- kalkulacka.py | 195 ++++++++++++++++++++++++++++---------------------- 1 file changed, 110 insertions(+), 85 deletions(-) diff --git a/kalkulacka.py b/kalkulacka.py index 1119134..40613b3 100644 --- a/kalkulacka.py +++ b/kalkulacka.py @@ -4,89 +4,114 @@ # Autor: Marek Nožka, nozka <@t> spseol cz ############################################################################ import math +from importlib.metadata import PathDistribution +from os.path import basename, splitext +import tkinter as tk +from tkinter import messagebox, IntVar +from tkinter.messagebox import -zasobnik = [] - - -def operace(token): - if token.upper() == "Q": - exit() - if token.upper() == "PI": - zasobnik.append(math.pi) - if token == "+": - b = zasobnik.pop() - a = zasobnik.pop() - zasobnik.append(a + b) - if token == "-": - b = zasobnik.pop() - a = zasobnik.pop() - zasobnik.append(a - b) - if token == "*": - b = zasobnik.pop() - a = zasobnik.pop() - zasobnik.append(a * b) - if token == "**": - b = zasobnik.pop() - a = zasobnik.pop() - zasobnik.append(a ** b) - if token == "sin": - a = zasobnik.pop() - zasobnik.append(math.sin(a)) - if token == "cos": - a = zasobnik.pop() - zasobnik.append(math.cos(a)) - - -dva_operandy = {} -dva_operandy["+"] = lambda a, b: a + b -dva_operandy["-"] = lambda a, b: a - b -dva_operandy["*"] = lambda a, b: a * b -dva_operandy["/"] = lambda a, b: a / b -dva_operandy["//"] = lambda a, b: a // b -dva_operandy["**"] = lambda a, b: a ** b - -jeden_operand = {} -jeden_operand["sin"] = math.sin -jeden_operand["cos"] = math.cos -jeden_operand["tg"] = math.tan -jeden_operand["tan"] = math.tan - - -def operace(token): - if token.upper() == "Q": - exit() - if token.upper() == "PI": - zasobnik.append(math.pi) - if token.upper() == "SW": - b = zasobnik.pop() - a = zasobnik.pop() - zasobnik.append(b) - zasobnik.append(a) - if token in dva_operandy.keys(): - if len(zasobnik) >= 2: - b = zasobnik.pop() - a = zasobnik.pop() - zasobnik.append(dva_operandy[token](a, b)) - else: - print("Nemám dost operandů!!!") - if token in jeden_operand.keys(): - if len(zasobnik) >= 1: - a = zasobnik.pop() - zasobnik.append(jeden_operand[token](a)) - else: - print("Nemám dost operandů!!!") - - -def zpracuj(radek): - tokeny = radek.split() - for token in tokeny: - try: - zasobnik.append(float(token)) - except ValueError: - operace(token) - - -# čtu vstup -while True: - radek = input(zasobnik.__repr__() + ">>> ") - zpracuj(radek) + +class Application(tk.Tk): + name = basename(splitext(basename(__file__.capitalize()))[0]) + name = "grafy" + + + + + + def __init__(self): + super().__init__(className=self.name) + self.title(self.name) + self.bind("", self.quit) + self.geometry("400x400") + + self.dva_operandy = {} + self.dva_operandy["+"] = lambda a, b: a + b + self.dva_operandy["-"] = lambda a, b: a - b + self.dva_operandy["*"] = lambda a, b: a * b + self.dva_operandy["/"] = lambda a, b: a / b + self.dva_operandy["//"] = lambda a, b: a // b + self.dva_operandy["**"] = lambda a, b: a ** b + + self.jeden_operand = {} + self.jeden_operand["sin"] = math.sin + self.jeden_operand["cos"] = math.cos + self.jeden_operand["tg"] = math.tan + self.jeden_operand["tan"] = math.tan + + self.zasobnik= [] + + + + + def operace(self,token): + if token.upper() == "Q": + exit() + if token.upper() == "PI": + self.zasobnik.append(math.pi) + if token == "+": + b = self.zasobnik.pop() + a = self.zasobnik.pop() + self.zasobnik.append(a + b) + if token == "-": + b = self.zasobnik.pop() + a = self.zasobnik.pop() + self.zasobnik.append(a - b) + if token == "*": + b = self.zasobnik.pop() + a = self.zasobnik.pop() + self.zasobnik.append(a * b) + if token == "**": + b = self.zasobnik.pop() + a = self.zasobnik.pop() + self.zasobnik.append(a ** b) + if token == "sin": + a = self.zasobnik.pop() + self.zasobnik.append(math.sin(a)) + if token == "cos": + a = self.zasobnik.pop() + self.zasobnik.append(math.cos(a)) + + + + + + def operace(self, token): + if token.upper() == "Q": + exit() + if token.upper() == "PI": + self.zasobnik.append(math.pi) + if token.upper() == "SW": + b = self.zasobnik.pop() + a = self.zasobnik.pop() + self.zasobnik.append(b) + self.zasobnik.append(a) + if token in self.dva_operandy.keys(): + if len(self.zasobnik) >= 2: + b = self.zasobnik.pop() + a = self.zasobnik.pop() + self.zasobnik.append(self.dva_operandy[token](a, b)) + else: + print("Nemám dost operandů!!!") + if token in self.jeden_operand.keys(): + if len(self.zasobnik) >= 1: + a = self.zasobnik.pop() + self.zasobnik.append(self.jeden_operand[token](a)) + else: + print("Nemám dost operandů!!!") + + + def zpracuj(self,radek): + tokeny = radek.split() + for token in tokeny: + try: + self.zasobnik.append(float(token)) + except ValueError: + self.operace(token) + + + # čtu vstup + while True: + pass + #radek = input(self.zasobnik.__repr__() + ">>> ") + #zpracuj(radek) From e6c48deb671e737eb9c3387a6d74739882e87e1c Mon Sep 17 00:00:00 2001 From: Dominik Slehofer Date: Mon, 4 Apr 2022 13:54:03 +0200 Subject: [PATCH 3/5] =?UTF-8?q?absolutn=C3=AD=20luxus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kalkulacka.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/kalkulacka.py b/kalkulacka.py index 40613b3..0d1e92a 100644 --- a/kalkulacka.py +++ b/kalkulacka.py @@ -8,12 +8,12 @@ from os.path import basename, splitext import tkinter as tk from tkinter import messagebox, IntVar -from tkinter.messagebox import +from tkinter.messagebox import showerror class Application(tk.Tk): name = basename(splitext(basename(__file__.capitalize()))[0]) - name = "grafy" + name = "Kalkulačka" @@ -25,6 +25,9 @@ def __init__(self): self.bind("", self.quit) self.geometry("400x400") + self.vstup =tk.Entry(self) + self.vstup.grid(row=1,column=1) + self.dva_operandy = {} self.dva_operandy["+"] = lambda a, b: a + b self.dva_operandy["-"] = lambda a, b: a - b @@ -92,13 +95,13 @@ def operace(self, token): a = self.zasobnik.pop() self.zasobnik.append(self.dva_operandy[token](a, b)) else: - print("Nemám dost operandů!!!") + messagebox.showerror("Chyba", "Počet operandů je nedostačující.") if token in self.jeden_operand.keys(): if len(self.zasobnik) >= 1: a = self.zasobnik.pop() self.zasobnik.append(self.jeden_operand[token](a)) else: - print("Nemám dost operandů!!!") + messagebox.showerror("Chyba", "Počet operandů je nedostačující.") def zpracuj(self,radek): @@ -109,9 +112,5 @@ def zpracuj(self,radek): except ValueError: self.operace(token) - - # čtu vstup - while True: - pass - #radek = input(self.zasobnik.__repr__() + ">>> ") - #zpracuj(radek) + def ctu(self, token): + a = self.vstup.get() From b4f65c83d75cb64d0f291e636ce4b01d2c2fe23b Mon Sep 17 00:00:00 2001 From: Dominik Slehofer Date: Mon, 4 Apr 2022 14:09:39 +0200 Subject: [PATCH 4/5] luxus.zacatek --- kalkulacka.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/kalkulacka.py b/kalkulacka.py index 0d1e92a..a8cd55b 100644 --- a/kalkulacka.py +++ b/kalkulacka.py @@ -1,8 +1,3 @@ -#!/usr/bin/env python3 -# Soubor: kalkulacka.py -# Datum: 28.03.2022 08:31 -# Autor: Marek Nožka, nozka <@t> spseol cz -############################################################################ import math from importlib.metadata import PathDistribution from os.path import basename, splitext @@ -114,3 +109,7 @@ def zpracuj(self,radek): def ctu(self, token): a = self.vstup.get() + +app = Application() +app.mainloop() + From fe2b0242018d09cdd445b7fd98e700635b4d81da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20=C5=A0lehofer?= Date: Sun, 24 Apr 2022 16:05:22 +0200 Subject: [PATCH 5/5] doma --- kalkulacka.py | 104 ++++++++++++++++++++------------------------------ 1 file changed, 42 insertions(+), 62 deletions(-) diff --git a/kalkulacka.py b/kalkulacka.py index a8cd55b..1b3d956 100644 --- a/kalkulacka.py +++ b/kalkulacka.py @@ -2,9 +2,22 @@ from importlib.metadata import PathDistribution from os.path import basename, splitext import tkinter as tk -from tkinter import messagebox, IntVar +from tkinter import messagebox, IntVar, END from tkinter.messagebox import showerror +dva_operandy = {} +dva_operandy["+"] = lambda a, b: a + b +dva_operandy["-"] = lambda a, b: a - b +dva_operandy["*"] = lambda a, b: a * b +dva_operandy["/"] = lambda a, b: a / b +dva_operandy["//"] = lambda a, b: a // b +dva_operandy["**"] = lambda a, b: a ** b + +jeden_operand = {} +jeden_operand["sin"] = math.sin +jeden_operand["cos"] = math.cos +jeden_operand["tg"] = math.tan +jeden_operand["tan"] = math.tan class Application(tk.Tk): name = basename(splitext(basename(__file__.capitalize()))[0]) @@ -20,8 +33,16 @@ def __init__(self): self.bind("", self.quit) self.geometry("400x400") - self.vstup =tk.Entry(self) - self.vstup.grid(row=1,column=1) + self.vstup = tk.Entry(self) + self.vstup.grid(row=2,column=1,padx=10,pady=10) + + self.listBox = tk.Listbox(self) + self.listBox.grid(row=3,column=1,padx=10,pady=10) + + self.btn2 = tk.Button(self, text="Vložit", command=self.fce) + self.btn2.grid() + #self.bind("",self.zpracuj()) + self.dva_operandy = {} self.dva_operandy["+"] = lambda a, b: a + b @@ -39,76 +60,35 @@ def __init__(self): self.zasobnik= [] - + def fce(self): + self.zpracuj(self.vstup.get()) - def operace(self,token): - if token.upper() == "Q": - exit() - if token.upper() == "PI": - self.zasobnik.append(math.pi) - if token == "+": - b = self.zasobnik.pop() - a = self.zasobnik.pop() - self.zasobnik.append(a + b) - if token == "-": - b = self.zasobnik.pop() - a = self.zasobnik.pop() - self.zasobnik.append(a - b) - if token == "*": - b = self.zasobnik.pop() - a = self.zasobnik.pop() - self.zasobnik.append(a * b) - if token == "**": - b = self.zasobnik.pop() - a = self.zasobnik.pop() - self.zasobnik.append(a ** b) - if token == "sin": - a = self.zasobnik.pop() - self.zasobnik.append(math.sin(a)) - if token == "cos": - a = self.zasobnik.pop() - self.zasobnik.append(math.cos(a)) - - - - - - def operace(self, token): - if token.upper() == "Q": - exit() - if token.upper() == "PI": - self.zasobnik.append(math.pi) - if token.upper() == "SW": - b = self.zasobnik.pop() - a = self.zasobnik.pop() - self.zasobnik.append(b) - self.zasobnik.append(a) - if token in self.dva_operandy.keys(): + def operace(self, token, event=None): + token = str(self.vstup.get()) + if token in dva_operandy.keys(): if len(self.zasobnik) >= 2: b = self.zasobnik.pop() a = self.zasobnik.pop() - self.zasobnik.append(self.dva_operandy[token](a, b)) + self.zasobnik.append(dva_operandy[token](a, b)) else: messagebox.showerror("Chyba", "Počet operandů je nedostačující.") - if token in self.jeden_operand.keys(): + if token in jeden_operand.keys(): if len(self.zasobnik) >= 1: a = self.zasobnik.pop() - self.zasobnik.append(self.jeden_operand[token](a)) + self.zasobnik.append(jeden_operand[token](a)) else: messagebox.showerror("Chyba", "Počet operandů je nedostačující.") - - - def zpracuj(self,radek): - tokeny = radek.split() - for token in tokeny: - try: - self.zasobnik.append(float(token)) - except ValueError: - self.operace(token) - - def ctu(self, token): - a = self.vstup.get() + self.listBox.delete(0,tk.END) + for token in self.zasobnik: + self.listBox.insert(END,token) + + def zpracuj(self,token): + try: + self.zasobnik.append(float(token)) + self.listBox.insert(tk.END,token) + except ValueError: + self.operace(self,token) app = Application() app.mainloop()