| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
Autor
|
Thema: Iteration bei Programmierung (2891 mal gelesen)
|
james dorn Mitglied
Beiträge: 16 Registriert: 29.06.2007
|
erstellt am: 03. Aug. 2007 10:30 <-- editieren / zitieren --> Unities abgeben:
Hallo Bezüglich einer Programmierung hätte ich eine Frage: Ist es möglich, die Ergebnisse eines Programms an den Anfang des selbigen zurückzuführen, um mit diesen Werten einen neuen "Durchlauf" zu starten oder widerspricht das in jedem Falle der Programmstruktur? Ich hoffe, dass diese doch recht allgemeine Fragestellung ausreicht. Danke! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Moderator Dipl. Maschinen Ing.
Beiträge: 3731 Registriert: 29.09.2004 Mathcad war besser als Prime, meine Meinung.
|
erstellt am: 03. Aug. 2007 10:38 <-- editieren / zitieren --> Unities abgeben: Nur für james dorn
Hallo James? Mathcad rechnet grundsätzlich von oben links nach unten rechts, und daran kann man auch nichts ändern. Du kannst aber "Programme" erstellen, wo Schlaufen möglich sind. Eine weitere Möglichkeit ist, dass du z.B. per WRITEPRN am Ende des Files die Ergebnisse in eine Datei schreibst, und am Anfang deines Files diese Datei mit READPRN ausliest. Somit musst du nach dem durchrechnen des Files nur das File erneut durchrechnen lassen, was natürlich manuell geschehen muss. Gruss Mike ------------------
The Power Of Dreams Schreib mal wieder Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
james dorn Mitglied
Beiträge: 16 Registriert: 29.06.2007
|
erstellt am: 03. Aug. 2007 10:55 <-- editieren / zitieren --> Unities abgeben:
Die Idee mit dem WRITEPRN etc. ist schonmal nicht schlecht, das werde ich später gleich mal antesten. Aber, nur Interesse halber, wie genau würde ein Programm, das eine Schleife durchläuft, ungefähr aussehen? Wäre dort das "Hauptprogramm" nochmal als Subprogramm vorhanden oder wie kann ich mir das ungefähr vorstellen? [Diese Nachricht wurde von james dorn am 03. Aug. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Moderator Dipl. Maschinen Ing.
Beiträge: 3731 Registriert: 29.09.2004 Mathcad war besser als Prime, meine Meinung.
|
erstellt am: 03. Aug. 2007 11:46 <-- editieren / zitieren --> Unities abgeben: Nur für james dorn
|
Clayton Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 07.02.2004 AMD Athlon 64X2 5600+, 1GB, Nvidia Quadro Pro FX 1100 Inventor Series 10 Mathcad 13
|
erstellt am: 03. Aug. 2007 15:25 <-- editieren / zitieren --> Unities abgeben: Nur für james dorn
Hi, Ich hab hier mal ein Beispiel, wie man den Eingriffswinkel bei Zahnraedern von der Evolvente her bestimmen kann. Die erste Zeile ist die Evolvente, die Zweite ein Schaetzungswert fuer den Winkel und die Dritte ist der Wert fuer die Korrektur. Innerhalb der Schleife musst Du die Variablen mit <- neu definieren und in diesem Fall bricht die Schleife ab und gibt den Winkel aus, wenn die Korrektur klein genug ist. Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
james dorn Mitglied
Beiträge: 16 Registriert: 29.06.2007
|
erstellt am: 06. Aug. 2007 08:59 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank euch beiden. Ich werde mir beide Vorschläge nochmals zu Gemüte führen, fürchte allerdings, dass mein Programm in der Tat zu komplex ist, ich also mit externen Files arbeiten müsste. Habe über das Woende nicht mehr daran gearbeitet, aber ich versuch mich heute mal daran. Noch zwei Fragen hätte ich allerdings: 1.) Falls ein Programm über die Länge einer ganzen Seite gehen sollte, wäre es irgendwie möglich, das Programm zu unterbrechen und auf der kommenden Seite weiterführen zu lassen, ohne dass ein neues Programm starten muss? Die Breite habe ich mit dem Strg+Enter bereits in den Griff bekommen, mir geht es nur noch um die Länge. Aufsplitten in verschiedene (Unter-)Programme habe ich noch nicht versucht, da das wohl nicht so ganz einfach werden wird. 2.)Wenn ich den Befehl WRITEPRN und READPRN benutze, kann ich dann mein Ergebnis in eine Tabelle exportieren, in die ich beispielsweise innerhalb der Ersten Zeile die Namen/Bezeichungen der verschiedenen Ergebnisse fix ausgegeben habe und somit nur die Ergebnisse aktualisiert werden? Angehängt habe ich mal ein paar Screenshots vom Programm. Die Bilder gehen über die ganze Länge und worden so geschnitten, dass sie nahtlos ineinander übergehen. Vielleicht hilft das Etwas dem Verständnis. Der letzte Screenshot zeigt die (Zwischen-)Ergebnisse, die ich gerne auslesen und irgendwo einlesen möchte, wo ich die Bezeichnung des Ergebnisses in einer Spalte abgespeichert habe. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
james dorn Mitglied
Beiträge: 16 Registriert: 29.06.2007
|
erstellt am: 06. Aug. 2007 09:01 <-- editieren / zitieren --> Unities abgeben:
|
Clayton Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 07.02.2004 AMD Athlon 64X2 5600+, 1GB, Nvidia Quadro Pro FX 1100 Inventor Series 10 Mathcad 13
|
erstellt am: 06. Aug. 2007 15:19 <-- editieren / zitieren --> Unities abgeben: Nur für james dorn
|
Lumich Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 53 Registriert: 21.02.2008 Win7, Creo2, MathCAD Prime2.0, MathCad15
|
erstellt am: 21. Feb. 2008 11:34 <-- editieren / zitieren --> Unities abgeben: Nur für james dorn
Hallo, habe auch eine Frage zur While-Loop. Habe folgende erstellt: Ich hoffe jemand kann was damit anfangen. Mein Problem ist, dass er anscheinend rechnet, ich das aber nicht abbrechen kann und ich mir sowieso nicht 100%sicher bin, ob die Schleife so stimmt. Für Tips wäre ich sehr dankbar. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Moderator Dipl. Maschinen Ing.
Beiträge: 3731 Registriert: 29.09.2004 Mathcad war besser als Prime, meine Meinung.
|
erstellt am: 21. Feb. 2008 12:54 <-- editieren / zitieren --> Unities abgeben: Nur für james dorn
Hallo Lumich, Und willkommen auf dem Mathcad - Brett bei CAD.de. Ob deine Berechnung so funktioniert oder nicht ist schwer zu sagen. Dies hängt von den Vorgabewerten ab. In deiner Berechnung vergleichst du immer (1 - b.G[1) / b.G[(i-1) mit 0.001. Das b.G[(i-1) wird dabei nicht verändert. Somit kann es nur einen Abbruch des Loops geben, wenn durch die Berechnung im Loop das b.G[i grösser wird. Im weitern ist zu beachten, dass die Variable b.Ge mit einem Minimumvergleich belegt wird. Ist das b.Gt immer kleiner als das b.G[i, wird die Berechnung nie einen Abbruch bekommen. Gruss Mike
------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lumich Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 53 Registriert: 21.02.2008 Win7, Creo2, MathCAD Prime2.0, MathCad15
|
erstellt am: 21. Feb. 2008 13:18 <-- editieren / zitieren --> Unities abgeben: Nur für james dorn
Hallo Mike, Vielen Dank für die schnelle Antwort. Ich antworte/frage mal gleich im Zitat:
Zitat: Original erstellt von Oberli Mike: Hallo Lumich,
Und willkommen auf dem Mathcad - Brett bei CAD.de. Ob deine Berechnung so funktioniert oder nicht ist schwer zu sagen. Dies hängt von den Vorgabewerten ab. In deiner Berechnung vergleichst du immer (1 - b.G[1) / b.G[(i-1) mit 0.001. Das b.G[(i-1) wird dabei nicht verändert.[b][b]Genau das möchte ich erreichen, dass Mathcad immer den gerade zuvor ausgerechneten Wert nimmt. Ist das möglich?[/b]Somit kann es nur einen Abbruch des Loops geben, wenn durch die Berechnung im Loop das b.G[i grösser wird. Im weitern ist zu beachten, dass die Variable b.Ge mit einem Minimumvergleich belegt wird. Ist das b.Gt immer kleiner als das b.G[i, wird die Berechnung nie einen Abbruch bekommen.b.Gt ist nicht kleiner, zumindest nach den 1. beiden Schritten Gruss Mike [/B]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Moderator Dipl. Maschinen Ing.
Beiträge: 3731 Registriert: 29.09.2004 Mathcad war besser als Prime, meine Meinung.
|
erstellt am: 21. Feb. 2008 17:38 <-- editieren / zitieren --> Unities abgeben: Nur für james dorn
Hallo Lumich, Welche Version verwendest du? Bei der 7 z.B. verwendet Mathcad in einem Programm kein Variablen von ausserhalb. Bei der 14 hingeben schon. Wann das gewechselt weiss ich nicht. Im Bild zwei Versionen wie du es z.B. bei der 7 lösen kannst. Gruss Mike ------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Clayton Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 07.02.2004 AMD Athlon 64X2 5600+, 1GB, Nvidia Quadro Pro FX 1100 Inventor Series 10 Mathcad 13
|
erstellt am: 21. Feb. 2008 17:45 <-- editieren / zitieren --> Unities abgeben: Nur für james dorn
Hi, Ich kann Deine Berechnung natuerlich nicht nachvollziehen, weil die Daten fehlen. Aber es muesste ungefaehr so aussehen --> Gruss [Diese Nachricht wurde von Clayton am 21. Feb. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Verkäufer/-in im Vertriebsinnendienst (m/w/d) Vollzeit | Seit über 40 Jahren sind wir Spezialist für Befestigungen aus Kunststoff, Metall und Federstahl. Als innovatives Handelsunternehmen suchen wir zur Verstärkung unseres Teams eine/n VERKÄUFER/-IN im VERTRIEBSINNENDIENST Vollzeit (m/w/d)
- Angebotserstellung und Auftragsabwicklung
- Telefonische und persönliche Beratung von bestehenden Kunden
- Anlage und Pflege der ...
| Anzeige ansehen | Innendienst, Sachbearbeitung |
|
Lumich Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 53 Registriert: 21.02.2008 Win7, Creo2, MathCAD Prime2.0, MathCad15
|
erstellt am: 22. Feb. 2008 11:36 <-- editieren / zitieren --> Unities abgeben: Nur für james dorn
|