Hilfe bei 8-Zeilen-Programm

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Downer
User
Beiträge: 4
Registriert: Mittwoch 9. April 2008, 14:37

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)
maxip
User
Beiträge: 61
Registriert: Dienstag 11. März 2008, 09:43

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
Downer
User
Beiträge: 4
Registriert: Mittwoch 9. April 2008, 14:37

X wäre eine Variable.

Wie würde eigentlich der Python-Code aussehen, unabhängig von "f(x) <= e"?
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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.
Zuletzt geändert von numerix am Mittwoch 9. April 2008, 15:19, insgesamt 1-mal geändert.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Sonst wird dir das hier sicherlich auch weiterhelfen ;-)
Zuletzt geändert von EyDu am Mittwoch 9. April 2008, 15:18, insgesamt 1-mal geändert.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

[wiki]FAQ#WieFangeIchAlsEinsteigerAn[/wiki]

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Downer
User
Beiträge: 4
Registriert: Mittwoch 9. April 2008, 14:37

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Downer
User
Beiträge: 4
Registriert: Mittwoch 9. April 2008, 14:37

Danke für eure Hilfe. :(
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Gern geschehen :]

€: Hat dir das Tutorial von python.org nicht geholfen?
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

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
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

@Downer: Lies dir mal bitte http://www.python-forum.de/topic-1689.html durch, dann verstehst du, warum wir hier so reagieren ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten