Seite 1 von 1

Hilfe bei 8-Zeilen-Programm

Verfasst: Mittwoch 9. April 2008, 14:57
von Downer
Hallo,

könnte mir jemand helfen, das folgende Struktogramm in Python zu schreiben? Ich wäre wirklich außerordentlich dankbar, da ich nahezu keine Ahnung von Python habe. Vielen Dank im Voraus für jederlei Unterstützung.
Eingabe e
Definition f (x)
Definiere f1 (x)
Eingabe x0
a=x0
Wiederhole bis f(x) <=e
a=a-f(a)/f1(x)
Ausgabe a


Die Funktion lautet f(x)=2*x+4
f1(x) ist die erste Ableitung der Funktion f(x)

Verfasst: Mittwoch 9. April 2008, 15:04
von maxip
Das macht doch so keinen sinn, wenn f(x) <= e, dann wird das immer so bleiben, da sich x ja hier nicht veraendert

und was ist x ueberhaupt ? na variable in einem intervall ?

edit: und f1 kann man sich ja sparen, die ableitung ist 2, also f1 immer gleich 2

Verfasst: Mittwoch 9. April 2008, 15:15
von Downer
X wäre eine Variable.

Wie würde eigentlich der Python-Code aussehen, unabhängig von "f(x) <= e"?

Verfasst: Mittwoch 9. April 2008, 15:15
von numerix
Keine Ahnung von Python hatten wir alle irgendwann mal, aber dann kann man eben auch kein Pythonprogramm schreiben, sondern muss ich erst einmal "Ahnung" verschaffen. Und das ist gerade bei Python besonders leicht.

Meine Empfehlung: Lies das Python-Tutorial bis inkl. Kapitel 4.7 und dann kannst du das Programm selbst schreiben.

Noch eine Anmerkung zu deiner Funktion: Wenn f(x) eine lineare Funktion ist, ist deine Ableitungsfunktion f1 eine Konstante. Viel zu "definieren" gibt es da nicht. Im übrigen sieht es so aus, als sollte das das Newton-Verfahren werden. Das brauchst du bei f(x)=2x-4 sicher auch nicht.

Verfasst: Mittwoch 9. April 2008, 15:17
von EyDu
Sonst wird dir das hier sicherlich auch weiterhelfen ;-)

Verfasst: Mittwoch 9. April 2008, 15:18
von jens
[wiki]FAQ#WieFangeIchAlsEinsteigerAn[/wiki]

Verfasst: Mittwoch 9. April 2008, 15:50
von Downer
Nun ja, soweit bin ich, aber ergibt das überhaupt Sinn?
Eingabe e
Definition f (x)
Definiere f1 (x)
Eingabe x0
a=x0
Wiederhole bis f(x) <=e
a=a-f(a)/f1(x)
Ausgabe a


Die Funktion lautet f(x)=2*x+4
f1(x) ist die erste Ableitung der Funktion f(x)
Input e
Def f(x)=2*x+4
Def f1 (x)
Input x0
a=x0

a=a-f(a)/f1(x)
print a

Re: Hilfe bei 8-Zeilen-Programm

Verfasst: Mittwoch 9. April 2008, 15:52
von jens
Downer hat geschrieben:könnte mir jemand helfen, das folgende Struktogramm in Python zu schreiben?
Woher hast du das überhaupt und warum willst du das Implementieren?

Verfasst: Mittwoch 9. April 2008, 15:58
von Leonidas
Downer hat geschrieben:Nun ja, soweit bin ich, aber ergibt das überhaupt Sinn?
Also der Code den du da postest: nein. Wir können dir zwar gerne helfen, wenn du Code zeigst, aber so offensichtlich falscher Code zeugt nicht gerade davon, dass du dich überhaupt damit beschäftigt hast.

Verfasst: Mittwoch 9. April 2008, 17:37
von Downer
Danke für eure Hilfe. :(

Verfasst: Mittwoch 9. April 2008, 18:19
von audax
Gern geschehen :]

€: Hat dir das Tutorial von python.org nicht geholfen?

Verfasst: Mittwoch 9. April 2008, 20:26
von ne0h
Eingabe e
=>

Code: Alles auswählen

e = int(raw_input("e eingeben"))
Eingabe x0
=>

Code: Alles auswählen

x0 = int(raw_input("x0 eingeben"))
a=x0
=>
Ausgabe a
=>

Code: Alles auswählen

print "%i" % (a, )
Definition f (x)
Definiere f1 (x)
Wiederhole bis f(x) <=e
a=a-f(a)/f1(x)



Die Funktion lautet f(x)=2*x+4
f1(x) ist die erste Ableitung der Funktion f(x)

Die nötige Syntax hast Du oben stehen, noch nicht ganz korrekt, da Du nicht unbedingt mit Integern arbeiten willst/wirst. Aber das kannst Du ja anpassen.

Alles andere hast Du ja schon in Deiner Bechreibung angegeben (also die Teile, die ich jetzt nicht in Python geschrieben habe. Python hat die Eigenschaft, dass es syntaktisch sehr nahe an Pseudocode liegt. Du hast also fast nichts mehr zu tun, ausser eben die Python Syntax anzupassen.

Allerdings wird Dir das hier niemand komplett abnehmen und meine Umsetzungen sind auch nur eine kleine Hilfe und keine Lösung (wie gesagt, Datentypen anpassen etc.).

Ich gehe mal, anhand der Aufgabenstellung, stark davon aus, dass es sich hier um einen Fall von "Macht mir mal meine Hausaufgaben" handelt. Und der Sinn und Zweck liegt darin, dass Du Dich eben selber mit den Gegebenheiten von Python beschäftigst und "selber" die Logik dahinter verstehst. Schwer ist es wirklich nicht, ein wenig Tutorial wälzen würde Dich schon in 20-30 Minuten zur Lösung führen.


MfG


ne0h

Verfasst: Mittwoch 9. April 2008, 20:31
von ne0h
Noch ein letzter Tip:
Wiederhole bis f(x) <=e
ist schon als Schleifenkonstrukt fast ausformuliert, also baust Du daraus sowas wie:

Code: Alles auswählen

while(Bedingung):
    Führe Anweisungen aus....


ne0h

Verfasst: Donnerstag 10. April 2008, 07:52
von jens
@Downer: Lies dir mal bitte http://www.python-forum.de/topic-1689.html durch, dann verstehst du, warum wir hier so reagieren ;)