ich habe zwei Aufgaben aus der Schule programmiert. Es funktioniert, allerdings will ich überprüfen lassen, ob es alle Bedingungen erfüllt.
Könnt Ihr diese zwei Aufgaben überprüfen und einer Rückmeldung geben.
Aufgabe 1
Code: Alles auswählen
print("Willkommen beim Programm Maxzahl, welches die größte Zahl in einer Liste und deren Position blitzschnell angibt!")
#Veränderung der Liste durch den Benutzer/Autor
liste=[ -4,6.5,2,-7,-4,-2,5,7,1.1,-3,-0.9,3,-5,6]
x=len(liste) #Die Länge der Liste braucht man für das "range".
a=liste[0] #Der Wert(Variable a) an der 1.Stelle von der Liste wird als Startwert genommen.
for i in range(1,x):
b=liste[i] #Die Zahlen ab 2.Zahl in der Liste(Variable b) in der Liste werden nacheinander mit Variable a verglichen.
if a > b:
a=a #Falls Variable a größer als der Wert(Variable b) ist, dann bleibt a erhalten.
else:
a=b #Sonst(Wenn b größer als a ist) wird Variable a durch die größere Zahl überschrieben.
print("Die größte Zahl in der Liste", liste, "ist", a, "." )
maxzahl=a #Der Wert, der zuvor durch die Schleife als größte Zahl definiert wurde, wird als Variable maxzahl definiert, um für Klarheit zu sorgen.
position=1
for i in range(0,x): #Die größte Zahl wird nochmal mit den nachfolgenden Zahlen in der Liste verglichen.
if maxzahl == liste[i]:
print("Diese Zahl befindet sich an der" , position , ". Stelle der Liste.") #Falls maxzahl ist gleich Zahl in der Liste, gibt das Programm die Position an.
else:
position=position + 1 #Sonst wird Variable position um 1 vergrößert. Somit wird bei jedem Durchgang die aktuelle Position geändert.
Code: Alles auswählen
print("Willkommen beim Programm der Nullstellenberechnung, welche mithilfe des Intervallhalbierungsverfahren erfolgt.")
print()
print("Hierbei wird die Nullstelle von einer ganzrationalen Funktion vierten Grades innerhalb eines angegebenen Intervalls, die einen Vorzeichenwechsel vorweist,näherungsweise bestimmt.")
print()
print("Die Funktion heißt y=x**4 -9*x**3 + 24*x**2 - 20*x.") #Hier muss die veränderte Funktion ebenso aktualisiert werden.
print()
print("Geben Sie bitte das Intervall ein. Achten Sie dabei, dass der Abstand der beiden Intervallgrenzen nicht sonderlich groß sind. ")
print()
print("Bemerkung: Die linke Intervallgrenze ist immer kleiner als die rechte Intervallgrenze.")
def function(x): #Veränderung der Funktion durch den Benutzer/Autor
return 9*x**4 - 20*x
a=float(input("Bitte geben Sie die linke Intervallgrenze ein:")) #Eingabe der linken und rechten Intervallgrenzen:
b=float(input("Bitte geben Sie die rechte Intervallgrenze ein:")) #Variable a und b definieren die linke und rechte Intervallgrenze
print()
while function(a)*function(b)>= 0: #Überprüfung, ob die Funktionswerte zwei verschiedene Vorzeichen haben=Voraussetzung für Nullstelle
print("Die angegebene Intervallgrenze ist nicht geeignet. Bitte geben Sie die Intervallgrenzen erneut ein.")
a=float(input("Linke Intervallgrenze:")) #Wenn das Vorzeichen bei der Frage negativ ist, kann man davon ausgehen, dass einer der Funktionswerte negativ ist.
b=float(input("Rechte Intervallgrenze:"))
print()
print("Ihr Intervall lautet:[",a,";",b,"]")
differenz=b-a #Variable für die Messung der Abstände zwischen der immer kleiner werdenden rechte und linke Intervallgrenze
intervallmitte=(a+b)/2 #Intervallhalbierung
anzahl=0 #Anzahl der Intervallhalbierungsprozesse
if function(b)>=0: #Schleife und Abfrage, ob Nullstelle ein VZW von - nach + hat, oder umgekehrt.
while differenz >= 0.001: #Abweichung zwischen Intervallgrenze als Abfrage
intervallmitte=(a+b)/2
anzahl=anzahl+1 #Aktualisierung der Anzahl der Intervallhalbierungen bis Abweichung kleiner gleich 0.001 ist.
if function(intervallmitte)>=0: #Falls der Funktionswert von halbierten Intervall zugehörige x-Wert größer als 0 ist:
b=intervallmitte #neue Wertzuweisung von b
differenz=b-a #Abweichung wird aktualisiert, aufgrund der neuen Wertzuweisungen
else:
a=intervallmitte #Sonst(Wenn Funktionswert kleiner als 0, wird a einen neuen Wert zugewiesen, nämlich halbiert Intervall x-Wert ist a.
differenz=b-a
else: #Nullstelle mit Vorzeichenwechsel von + nach -,weil Funktionswert bei b kleiner als 0 ist.
while differenz >= 0.001:
intervallmitte=(a+b)/2
anzahl=anzahl+1
if function(intervallmitte)>=0:
a=intervallmitte #Einziger Unterschied: Wenn Funktionswert von Intervallhalbierten x-Wert größer als 0 ist, wird a einen neuen Wert zugewiesen.
differenz=b-a
else:
b=intervallmitte
differenz=b-a
print()
print("In den folgenden Zeilen erhalten Sie die Ergebnisse der Nullstellenuntersuchung:")
Nullstelle= ((a+b)/2)
print("Die Nullstelle befindet sich in dem angegebenen Intervall näherungsweise bei x=", Nullstelle)
print("Um diese Nullstelle näherungsweise zu bestimmen, hat das Programm das angegebene Intervall",anzahl, "mal halbiert.")