# Grundrechenarten # mit graphischer Benutzeroberfläche GUI (graphical user interface) # In Python stellt das tkinter-Modul die Werkzeuge zur Verfügung, um # graphische Benutzeroberflächen zu gestalten. from tkinter import * # Erstellung eines Fensters fenster = Tk() fenster.title('Grundrechenarten') fenster.geometry('600x400') fenster.resizable(0,0) # Funktionen für die Grundrechenarten def summe(a,b): return a + b def differenz(a,b): return a - b def produkt(a,b): ergebnis = 0 i = 0 while i <= b - 1: ergebnis = summe(ergebnis,a) i +=1 return ergebnis def potenz(a,b): if b == 0: return 1 else: ergebnis = a i = 0 while i <= b - 2: ergebnis = produkt(ergebnis,a) i = i + 1 return ergebnis def quotient(a,b): rest = a ergebnis = 0 while rest >= b: rest = differenz(rest,b) ergebnis += 1 return ergebnis # auszuführende Kommandos (nach Klick auf den entsprechenden Button) def addiere(): # Die für die Operanden jeweils eingegebenen Zeichenkette (string) # wird in den Typ "integer" konvertiert und den Variablen # x und y zugewiesen. x = int(entry1.get()) y = int(entry2.get()) # Zur Berechnung des Egebnisses wird die Funktion "summe" aufgerufen. # Das Ergebnis wird der Variablen result zugewiesen. result = summe(x,y) # result (vom Typ integer) wird in in eine Zeichenkette (string) # konvertiert und als text in label5 ausgegeben. label5.config(text=str(result)) def subtrahiere(): x = int(entry1.get()) y = int(entry2.get()) result = differenz(x,y) label5.config(text=str(result)) def multipliziere(): x = int(entry1.get()) y = int(entry2.get()) result = produkt(x,y) label5.config(text=str(result)) def potenziere(): x = int(entry1.get()) y = int(entry2.get()) result = potenz(x,y) label5.config(text=str(result)) def dividiere(): x = int(entry1.get()) y = int(entry2.get()) result = quotient(x,y) label5.config(text=str(result)) # Eingabe der Operanden label1 = Label(master=fenster, bg='lightgrey',fg='purple', text='1. Operand',font=("Arial", 20)) label1.place(x=10, y=10, width=230, height=50) label2 = Label(master=fenster,bg='lightgrey',fg='purple', text='2. Operand',font=("Arial", 20)) label2.place(x=250, y=10, width=230, height=50) entry1 = Entry(master=fenster, bg='turquoise', font=("Arial", 20)) entry1.place(x=10, y=70, width=230, height=50) entry2 = Entry(master=fenster, bg='orange', font=("Arial", 20)) entry2.place(x=250, y=70, width=230, height=50) # Auswahl der Rechenoperation label3 = Label(master=fenster, bg='lightgrey', fg='purple', text='Operation', font=("Arial", 20)) label3.place(x=10, y=140, width=490, height=50) button = Button(master=fenster, bg='green', text='+', font=("Arial", 30), command = addiere) button.place(x=10, y=200, width=90, height=50) button = Button(master=fenster, bg='blue', text='-', font=("Arial", 30), command = subtrahiere) button.place(x=110, y=200, width=90, height=50) button = Button(master=fenster, bg='red', text='*', font=("Arial", 30), command = multipliziere) button.place(x=210, y=200, width=90, height=50) button = Button(master=fenster, bg='yellow', text='^', font=("Arial", 30), command = potenziere) button.place(x=310, y=200, width=90, height=50) button = Button(master=fenster, bg='purple', text='/', font=("Arial", 30), command = dividiere) button.place(x=410, y=200, width=90, height=50) # labels zur Ausgabe des Resultats label4 = Label(master=fenster, bg='lightgrey', fg='purple', text='Resultat', font=("Arial", 20)) label4.place(x=10, y=280, width=490, height=50) label5 = Label(master=fenster, bg='lightblue', fg='black', text='', font=("Arial", 20)) label5.place(x=10, y=340, width=490, height=50)