Python :: Aufgabe #289

5 Lösungen Lösungen öffentlich

Differenz(en) von Eingabewerten

Fortgeschrittener - Python von JKooP - 04.10.2020 um 12:26 Uhr
Schreibe eine Methode/Funktion, die die maximale bzw. minimale Differenz von Eingabewerten ermittelt.

z.B. f(3, -2, 18, -1, 50)

Min: 1, da Absolut(-2 - -1) = 1
Max: 52, da Absolut(50 - -2) = 52

Viel Spaß

Lösungen:

vote_ok
von jigga (4260 Punkte) - 11.10.2020 um 10:22 Uhr
Quellcode ausblenden Python-Code
liste = [3, -2, 18, -1, 50]

def min_max(liste):
	_max = max(liste)
	liste.remove(_max)

	_min = min(liste)
	liste.remove(_min)
	
	_scnd_min = min(liste)
	liste.remove(_scnd_min)

	print("Min:", abs(_min - _scnd_min))
	print("Max:", abs(_max - _min))

if __name__ == "__main__":
	min_max(liste)
vote_ok
von Waldgeist (2310 Punkte) - 13.10.2020 um 17:09 Uhr
Habe mich mal an Python gewagt: Ich hoffe meine Lösung ist nicht allzu schrecklich. Immerhin funktioniert der Code...
Grüße Waldgeist


Quellcode ausblenden Python-Code
def eingabe():
    global meineListe
    weiter = "ja"
    while (weiter == "ja"):

        print("Bitte geben Sie eine Zahl ein: ")
        try:
            zahl = int(input())
            meineListe.append(zahl)
        except:
            weiter = "nein"

def verarbeiten():
                global meineListe
                global minimum
                global maximum
                meineListe.sort()
                #lokalesminimum = int(meineListe[1]) - int(meineListe[0])
                laenge = len(meineListe)
                maximum = int(meineListe[laenge - 1]) - int(meineListe[0])
                minimum=maximum

                for i in range(laenge-1):
                    lokalesminimum = int(meineListe[i + 1]) - int(meineListe[i])
                    if lokalesminimum<minimum:
                            minimum=lokalesminimum



def ausgabe():
                global meineListe
                global minimum
                global maximum
                print("  ")
                print("Minimum beträgt: ")
                print(minimum)
                print("Maximum beträgt: ")
                print(maximum)

print("Dieses Programm ermittelt die minimale und maximale Differenz von eingegebenen Zahlen!")

minimum=0
maximum=0
meineListe =[]
eingabe()
verarbeiten()
ausgabe()
vote_ok
von Harmlos (40 Punkte) - 16.10.2020 um 02:04 Uhr
Quellcode ausblenden Python-Code
def min_max_abst(liste):
    c=-1000000000
    d=1000000000
    min_abs=1000000000
    for k in range(0, len(liste)):      #Berechnung den minimalen Abstandes
        for i in range(k, len(liste)):
            a=liste[i]-liste[k]
            if abs(a)<min_abs and i!=k:
                min_abs=abs(a)            #Ergebnis minimaler Abstand      
    print("Minimaler Abstand",abs(min_abs)) 
    for m in range(0, len(liste)):      #Berechnung des maximalen Abstandes
        if liste[m]>c:                    #Bestimmung des größten Wertes c
            c=liste[m]
    for n in range(0, len(liste)): 
        if liste[n]<d:                    #Bestimmung des kleinsten Wertes d
            d=liste[n]    
    max_abs=c-d                           #Ergebnis maximaler Abstand
    print("Maximaler Abstand", max_abs)
vote_ok
von Marty3000 (680 Punkte) - 04.11.2020 um 11:14 Uhr
Quellcode ausblenden Python-Code
def get_min_diff(values):
    mindiff = abs(values[0] - values[1])
    for i in range(len(values)):
        for j in range(len(values)):
            if i != j and values[i] >= values[j] and values[i] - values[j] <= mindiff:
                mindiff = values[i] - values[j]
                min_max = values[i]
                min_min = values[j]
    return mindiff, min_max, min_min


def test_289(values):
    print("Min: %d, wegen %d - %d" % get_min_diff(values))
    print("Max: %d, wegen %d - %d" % (max(values) - min(values), max(values), min(values)))


if __name__ == '__main__':
    test_289([3, -2, 18, -1, 50])
vote_ok
von Klaus (1960 Punkte) - 11.12.2020 um 17:35 Uhr
Quellcode ausblenden Python-Code
data=[3, -2, 18, -1, 50]

cluster = {}
for value_1 in data:
    for value_2 in data:
        cluster[abs(value_1 - value_2)] = (value_1, value_2)
del cluster[0]
print(f'Liste: {data}')
print(f'Min: {min(cluster.keys())}: {cluster[min(cluster.keys())]}')
print(f'Max: {max(cluster.keys())}: {cluster[max(cluster.keys())]}')
1988255

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.