Guten Tag, ich habe eine Aufgabe bekommen, aber alleine leider schaffe ich nicht. Kann mir jemand Helfen bitte.
Erstellen Sie eine Funktion, die eine ganze Zahl als Eingabeparameter bekommt und feststellt, ob
die Zahl kleiner Null ist (Rückgabewert 0)
einstellig ist (Rückgabewert 1)
zweistellig ist (Rückgabewert 2)
dreistellig ist (Rückgabewerte 3)
vierstellig und größer ist (Rückgabewerte 99)
Verwenden Sie keine Schleife in Ihrem Programm und nur eine return-Anweisung.
def klassen(zahl):
return n
An alle Schüler und Studenten mit Informatikproblemen
@Vadym:
Und lies am besten nochmal den ersten Beitrag hier im Thread.
Und wenn du deine Frage in einem eigenen Thread stellst, dann schreibe bitte auch deinen Ansatz und wo konkret du Probleme mit der Aufgabenstellung hast.
Code: Alles auswählen
λ» let
| klassen n
| | n < 0 = 0
| | n < 10 = 1
| | n < 100 = 2
| | n < 1000 = 3
| | otherwise = return 99 !! 0
|
klassen :: (Ord a, Num a, Num p) => a -> p
λ» klassen 42
2
λ» klassen (-123)
0
λ» klassen 1337
99
Und wenn du deine Frage in einem eigenen Thread stellst, dann schreibe bitte auch deinen Ansatz und wo konkret du Probleme mit der Aufgabenstellung hast.
Neue Aufgabe .
Erstellen eine Funktion ,die aus einer Zahl y mit der angegebenen Iterationsformel solange einenneuen Wert x berechnet,bis sich das x nur noch in der z-ten Nachkommastelle ändert.
x《n+1》=((3×x^4《n》)+y)/4×x^3《n》
Eingabeparameter:
y Zahl zwischen 12 und 24(nachprüfen;bei falschem Wert von y -1 zurückgeben)
x0 Startwertfür die Iteration von x
z Anzahl Nachkommastellen für die Genauigkeit
Aus numerischen Gründen ist während der Iteration nicht zu runden.
def my_rt(y,x0,z)
........
...........
return xn1
#Test
x=my_rt(12,1,10)
print(x)
Antwort:1.8.........
Erstellen eine Funktion ,die aus einer Zahl y mit der angegebenen Iterationsformel solange einenneuen Wert x berechnet,bis sich das x nur noch in der z-ten Nachkommastelle ändert.
x《n+1》=((3×x^4《n》)+y)/4×x^3《n》
Eingabeparameter:
y Zahl zwischen 12 und 24(nachprüfen;bei falschem Wert von y -1 zurückgeben)
x0 Startwertfür die Iteration von x
z Anzahl Nachkommastellen für die Genauigkeit
Aus numerischen Gründen ist während der Iteration nicht zu runden.
def my_rt(y,x0,z)
........
...........
return xn1
#Test
x=my_rt(12,1,10)
print(x)
Antwort:1.8.........
Die Anforderungen sind ja nicht so toll gestellt, um eine halbwegs elegante Lösung zu erhalten. Wie hast du es denn gelöst? Ich wollte mehrfach verschachtelte if-else-Anweisungen vermeiden und habe daher den Zehnerlogarithmus bemüht, allerdings auch nur mit Verrenkungen:Vadym hat geschrieben: ↑Sonntag 20. Juni 2021, 14:21o
Erstellen Sie eine Funktion, die eine ganze Zahl als Eingabeparameter bekommt und feststellt, ob
die Zahl kleiner Null ist (Rückgabewert 0)
einstellig ist (Rückgabewert 1)
zweistellig ist (Rückgabewert 2)
dreistellig ist (Rückgabewerte 3)
vierstellig und größer ist (Rückgabewerte 99)
Verwenden Sie keine Schleife in Ihrem Programm und nur eine return-Anweisung.
Code: Alles auswählen
from math import log10
def analyze(n):
return int(log10(n) + 1) if 0 < n < 1000 else int(n == 0) or (0, 99)[n >= 1000]
Und wie das so ist, fällt einem kurz nach dem Posten noch etwas ein:
Code: Alles auswählen
def analyze(n):
return (n >= 0) + (n >= 10) + (n >= 100) if n < 1000 else 99
@snafu: warum der Symmetriebruch?
Code: Alles auswählen
def analyze(n):
return (n >= 0) + (n >= 10) + (n >= 100) + 96 * (n >= 1000)
@Vadym: bitte fange einen eigenen Thread an, und stelle dort eine konkrete Frage, an welcher Stelle Du mit Deinen Hausaufgaben nicht weiter kommst. Und falls Du snafus Lösung klauen und als Deine eigene ausgeben solltest, mußt Du wenigstens erklären können, warum sie funktioniert.
Hier ein guter Link, mit dem du anfangen kannst: posting.php?mode=post&f=1
- __blackjack__
- User
- Beiträge: 13111
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Mit einem eigenen Thema für Deine Frage am besten. Also damit nicht *hier* in diesem Thema antworten, sondern im passenden Unterforum auf „Neues Thema“ klicken und dort dann eine passende Überschrift, und die Frage rein schreiben.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Ich bin ein Student der Systemtechnik, ich bin im zweiten Semester und ein Klassenkamerad empfahl mir dieses Forum, um meine Probleme mit dem schwersten Thema zu lösen und er sagte mir, dass sie unsere Hausaufgaben gemacht haben, ich denke, er gab mir die falschen Informationen, danke für die Klärung es.
Ohhhhhhhhza0 hat geschrieben: ↑Montag 1. November 2004, 15:29 Mahlzeit,
da stimme ich voll zu. "Hausaufgaben" sind dazu da um den Stoff zu üben, damit man ihn beherrscht. Aber im Endeffekt werden solche "Lutscher" sehen was sie davon haben: spätestens wenn Sie die Klausur über das Thema schreiben, werden sie merken, wie richtig es gewesen ist, die Aufgaben von anderen lösen zu lassen und was SIE im Endeffekt davon haben.Dookie hat geschrieben:Hallo,
leider kommt es immer wieder vor, daß hier manche glauben, wir würden ihre Hausaufgaben lösen. Dafür ist dieses Forum echt nicht gedacht. Wenn einer bei einem Problem Hilfe braucht, geben wir gerne Hilfestellung, aber wenn hier Leute her kommen, die weder von Programmierung noch von Python eine Ahnung haben und glauben wir würden Ihnen fertige Lösungen liefern, so sind die hier falsch!
Gruß
Dookie
Grüße
za0
Munter bitte keinen schüler dazu an im Unterricht vom Forum Hilfe zu erlangen…