Python :: Aufgabe #1 :: Lösung #10

33 Lösungen Lösungen öffentlich
#1

Multiplikation ohne zu multiplizieren

Anfänger - Python von Gustl - 11.11.2012 um 17:24 Uhr
Erstellen Sie ein Konsolenprogramm welches dem Benutzer auffordert 2 Zahlen einzugeben, diese sollen dann multipliziert werden, jedoch ist nur die Grundrechenart Addition erlaubt.

Wenn einer der 2 Zahlen keine Zahl ist, soll eine Fehlermeldung ausgegeben werden und der Benutzer noch einmal aufgefordert werden eine Zahl einzugeben.
#10
vote_ok
von AnnaIhrs (460 Punkte) - 02.06.2016 um 17:26 Uhr
Quellcode ausblenden Python-Code
# -*- coding: cp1252 -*-

# program to multiply 2 numbers whithout realy multypling in german language
# programm zur berechnung von 2 zahlen ohne wirklich 'nur' zu multiplizieren


# introduce program to user
# dem benutzer das programm vorstellen
print("Hallo!!!")
print("Ich bin ein Programm zum multiplizieren zweier Zahlen.")
print("Ich kann zwei ganze Zahlen(ohne Komma), oder auch eine Zahl ")
print("mit Komma und eine Zahl ohne Komma miteinander multiplizieren.")
print("Zwei Zahlen zu multiplizieren die jeweils ein Komma haben ist mir")
print("leider nicht möglich.... :( ^^")

# install posibility for runing program more then once if its users wish
# ermöglichung das programm öfter als einmal laufen zu lassen falls das gewünscht wird
j = "1"
while j == "1" or j == "nein":

# ask user for the first figure to multiply accept onely integer number
# no programfailure possible
# benutzer nach der ersten zahl fragen, nur ganzzahlen möglich
# programm abbruch durch falsche eingabe nicht möglich
    while(1):
        try:
            a = int(input("Bitte die erste zu berechnende Zahl eingeben (ohne Komma!!!). : "))
            break
        except:
            print("Eingabe war leider keine Zahl ohne Komma....")
            print("Also nochmal!!!")

# ask user for the second figure to multiply no programfailure possible
# allow to use ',' like its normal for type 2,345 for numbers
# benutzer nach der ersten zahl fragen, programm abbruch durch falsche eingabe
# nicht möglich, erlaubt die zahlen auch mit ',' einzugeben so wie es normale
# ist zahlen zu schreiben 2,3445
    while(1):
        print("Bitte die zweite zu berechnende Zahl eingeben,")
        b = input("gerne auch mit einem Komma. ;) : ")
        if "," in b:
            b = b.replace(",", ".")
            try:
                b = float(b)
                break
            except:
                print("Eingabe war leider keine Zahl....")
                print("Also nochmal!!!")
        elif "." in b:
            try:
                b = float(b)
                break
            except:
                print("Eingabe war leider keine Zahl....")
                print("Also nochmal!!!")
        else:
            try:
                b = int(b)
                break
            except:
                print("Eingabe war leider keine Zahl....")
                print("Also nochmal!!!")

# enable c for containing addition and result
# erstelle c um in ihr mittels addition das ergebnis zu erzielen
    c = 0

# loop to supplant multiplication
# schleife um multiplikation zu ersetzen
    for i in range(a):
        c = c + b

# because of some minimal trouble, like 10 * 0.4 = 3.9999999999999996
# or 90 * 0.01 = 0.9000000000000006 i made up my mind for following fix
# aufgrund minimaler ungenauigkeitn wie z.b. 10 * 0.4 = 3.9999999999999996
# oder 90 * 0.01 = 0.9000000000000006 habe ich mir folgende lösung ausgedacht
    typefloat = 1.234
    if type(b) == type(typefloat):
        b1 = str(b)
        bteile = b1.split(".")
        r = len(bteile[1])
        c = round(c, r + 1)

# output result
# ausgabe des ergebnis
    print("Das Ergebnis von", a,"mal", b,"ist:" ,c)

# ask user for new round of program, no programfailure possible by false user input
# benutzer befragen ob eine weitere berechnung vorgenommen werden soll
# programmabruch durch falsche eingabe nicht möglich
    z = -1
    print("Möchtest du noch weitere Zahlen multiplizieren???")
    while(1):
        z += 1
        if z == 0:
            j1 = input("Dann bitte 'ja' oder '1' eingeben, falls nicht 'nein', oder '0': ")
        else:
            j1 = input("Bitte 'ja' oder '1' eingeben, falls nicht 'nein', oder '0': ")
        if j1 == "ja" or j1 == "Ja" or j1 == "JA" or j1 == "jA" or j1 == "1":
            break
        elif j1 == "nein" or j1 == "Nein" or j1 == "NEIN" or j1 == "NEin" or j1 == "neiN" or j1 == "0":
            j = "0"
            break
        else:
            print("Leider konnte ich deine Eingabe nicht zuordnen, bitte noch mal!")

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben