Python :: Aufgabe #96 :: Lösung #2

4 Lösungen Lösungen öffentlich
#96

Tante Emmas Tageseinnahmen

Anfänger - Python von Energy - 09.03.2016 um 14:17 Uhr
Tante Emma ist die Geschäftsleiterin von 5 Tante-Emma-Läden. Sie möchte ermitteln, wie hoch der Umsatz der einzelnen Filialen vom letzten Tag war.
Schreibe ein Programm in dem abgefragt wird, wie viel Geld in den 5 Läden am Anfang des Tages vorhanden war und wie viel Geld sich am Ende des Tages in der Kasse befand. Außerdem möchte Tante Emma wissen, wie viel Umsatz jeder einzelne Laden gemacht hat und welche der 5 Läden den größten bzw. den geringsten Umsatz erzielt hat. Speichere alle Informationen in einem seperaten Array ab, sodass die Informationen nach der Eingabe der Kassenstände und Umsatzberechnungen für jeden Laden, in einem eigenen Array gespeichert wird. Gebe anschließend für jeden Laden die Informationen wieder aus uns bestimme den Laden mit dem größten bzw. kleinsten Umsatz.
#2
2 Kommentare
vote_ok
von Cryptt (390 Punkte) - 20.08.2016 um 13:32 Uhr
Diese Aufgabe hat mich richtig viel Zeit gekostet. Ich bin nur ein Anfänger und der Sortieralgorithmus war schwierig. =) Vermutlich kann das wesentlich eleganter gemacht werden.
Quellcode ausblenden Python-Code
# Tante Emmmas Tageseinnahmen
# Sortierkriterien:
# 0: Nummer des Ladens
# 1: Geld am Beginn des Tages
# 2: Geld am Ende des Tages
# 3: Umsatz ueber den Tag

list = []
anzahl = 5

def eingabe(anzahl):
        for i in range(anzahl):
                eingabe = []
                eingabetext_a = 'Bitte gib das Geld vom Anfang des Tages des '+str(i+1)+'.Ladens ein: '
                eingabetext_e = 'Bitte gib das Geld vom Ende des Tages des '+str(i+1)+'.Ladens ein: '
                eingabe.append((i+1))
                eingabe.append(int(input(eingabetext_a)))
                eingabe.append(int(input(eingabetext_e)))
                eingabe.append((eingabe[1]-eingabe[0]))
                list.append(eingabe)

def sortierung(kriterium):
        t = len(list)-1
        
        while t:
                for i in range(t):
                        if list[i][kriterium]>list[i+1][kriterium]:
                                swap = []
                                swap.append(list[i])
                                list.remove(list[i])
                                list.insert(i,(list[i]))
                                list.remove(list[i+1])
                                list.insert((i+1),swap[0])
                t-=1

def ausgabe_umsatz(anzahl):
        sortierung(3)
        print('Der Laden oben hat am wenigsten und der Laden unten am meisten Umsatz gemacht')
        for i in range(anzahl):
                print('Laden',str(list[i][0]),'hat folgenden Umsatz gemacht:',str(list[i][3]))

def ausgabe_laden(anzahl):
        sortierung(0)
        for i in range(anzahl):
                print('Laden',list[i][0],': Tagesbeginn:',list[i][1],' Ende:',list[i][2],'Umsatz:',list[i][3])
        

eingabe(anzahl)
ausgabe_umsatz(anzahl)
ausgabe_laden(anzahl)

Kommentare:

Cryptt

Punkte: 390


10 Lösungen
1 Kommentare

#1
21.08.2016 um 14:03 Uhr
Leider hat sich ein Fehler eingeschlichen und ich habe es erst gemerkt, nachdem ich es eingereicht habe oO

statt
Quellcode ausblenden Python-Code
 eingabe.append((eingabe[1]-eingabe[0])


muss es natürlich
Quellcode ausblenden Python-Code
 eingabe.append((eingabe[2]-eingabe[1])



heißen. Sorry.
post_arrow
362 0

ZRX88

Punkte: 2770

50 Aufgaben
45 Lösungen
10 Kommentare

#2
28.11.2016 um 23:23 Uhr
Ein Sortieralgo war doch gar nicht notwendig?
Interessante Lösung, du machst dir aber mit dem Array in dem Array list viel unnötigen Aufwand.

post_arrow
377 0
Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben