NOP 0 im strukturierten Text

Fork1910

Level-2
Beiträge
33
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Freunde der SPS,

kann mir einer weiter helfen, ich habe in SCL einen Sprung zum Bausteinende prorammiert, nach dem allerdings nicht mehr folgen sollte.
Sprungmarke ohne nachfolgenden Befehl geht nicht!
Gibt es einen "NOP 0"-befehl auch für SCL?
(habe bis jetzt dort stehehn: "A:=A;" , nur damit er nicht rummeckert...sieht aber nicht sehr professionell aus..)
 
Hallo liebe Freunde der SPS,

kann mir einer weiter helfen, ich habe in SCL einen Sprung zum Bausteinende prorammiert, nach dem allerdings nicht mehr folgen sollte.
Sprungmarke ohne nachfolgenden Befehl geht nicht!
Gibt es einen "NOP 0"-befehl auch für SCL?
(habe bis jetzt dort stehehn: "A:=A;" , nur damit er nicht rummeckert...sieht aber nicht sehr professionell aus..)
Also Sprungbefehle in SCL sind nicht so der Hit und sollten deshalb lieber vermieden werden.
 
Also Sprungbefehle in SCL sind nicht so der Hit und sollten deshalb lieber vermieden werden.

Da kann ich nur zustimmen. Sprungbefehle gehen in höheren Programmiersprachen gar nicht. Hauptsächlich, weil dadurch ein nachvollziehbarer strukturierter Programmablauf nicht mehr gegeben ist.

Aber es gibt eine ganz einfache Lösung für dein Problem: Schau dir mal "If Then" an.

mfg
MrLeeh
 
Da kann ich nur zustimmen. Sprungbefehle gehen in höheren Programmiersprachen gar nicht. Hauptsächlich, weil dadurch ein nachvollziehbarer strukturierter Programmablauf nicht mehr gegeben ist.

Aber es gibt eine ganz einfache Lösung für dein Problem: Schau dir mal "If Then" an.

mfg
MrLeeh

und ich zitiere immer wieder gern aus wikipedia, weil da die quellen auch gleich genannt werden:

In der Praxis hat sich jedoch gezeigt, dass der Verzicht auf GOTO zwar möglich ist, jedoch in einigen Fällen zu sehr aufwändigen Konstrukten führt.[3] Besonders in zeitkritischen Programmteilen ist ein goto deutlich effizienter als am Ende von mehreren geschachtelten Schleifen jeweils eine Abbruchprüfung durchzuführen.
Von einigen Entwicklern wurde auf der Linux-Kernel-Mailing-Liste die häufige Verwendung von GOTO im Quellcode von Linux diskutiert. Linus Torvalds sagte dabei, dass die Verwendung von GOTO die Lesbarkeit des Quellcodes in vielen Fällen sogar deutlich erhöhen könne.[4]

aus: http://de.wikipedia.org/wiki/Sprunganweisung
 
Zuviel Werbung?
-> Hier kostenlos registrieren
"jedoch in einigen Fällen zu sehr aufwändigen Konstrukten führt."

Ja, "in einigen Fällen" stimmt das vielleicht. Aber du hast sicher auch den folgenden Satz aus dem gleichen Artikel gelesen:

Wikipedia schrieb:
In frühen Varianten älterer Programmiersprachen wie Fortran oder BASIC stellten GOTO-Befehle noch die wichtigste, wenn nicht die einzige Möglichkeit zur Programmierung von Verzweigungen dar; diese wurden deshalb auch zur Realisierung von Schleifen und Wenn-Dann-Bedingungen verwendet. Dies führte zu unübersichtlichem „Spaghetticode“.

mfg
MrLeeh
 
und ich zitiere immer wieder gern aus wikipedia, weil da die quellen auch gleich genannt werden:
Dann zitiere ich mal was Siemens zu der GOTO-Anweisung schreibt:
Quelle: Private Unterlagen
GOTO-Anweisungen sollten nur in Sonderfällen, z.B. bei einer
Fehlerbearbeitung eingesetzt werden.
Nach den Regeln der strukturierten Programmierung sollte die
GOTO-Anweisung nicht verwendet werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dann zitiere ich mal was Siemens zu der GOTO-Anweisung schreibt:
Quelle: Private Unterlagen

was interessieren mich deine privaten unterlagen, GOTO hat berechtigung PUNKT und das bleibt auch so! ein ; reicht, wenn larry einmal mehr recht hat.

natürlich benutzt der erfahrene programmierer nicht GOTO um aus allem und jedem entfliehen zu können, aber gerade wenn er in der zwölften if hängt wird er sich nach einem GOTO sehnen und genau das ist das ding und genau das ist das, was ich zitiert habe.

ich selber habe damals, 7 jährig, auf einem XE130 von atari das laufen gelernt und da war GOTO noch standard. das ich dies nicht merh als standard sehe ist kein werk dieses forums sondern dessen, was man sich selber aneignet und diesem grat der entscheidung zu gehen soll bitte schön jedem selbst überlassen sein!
 
Beitrag

Hi alle,
ich wollte frage ob es normal dass ich beiträge nicht schreiben kann , ich habe mich vor 20 minuten registriert..
danke
 
Hallo Nadia,

Du gehst in eines der Foren, z.B.

SPS-Forum > Automatisierung > Programmierstrategien

und klickst dort auf den Button "Neues Thema".
 

Anhänge

  • newthread.jpg
    newthread.jpg
    4,8 KB · Aufrufe: 1
Zuletzt bearbeitet:
Zurück zu den Sprüngen:

Es geht ohne GOTO; aber macht es Sinn so lange drumrum zu schreiben bis es ohne GOTO programmiert ist?

Der Kernel von Linux ist in C programmiert und ist gut und funktioniert nahezu fehlerfrei.
In diesem Code war, bei der Kernel Version 2.4, mehr als 16000 Goto und oder andere Sprünge.

Es ist doch Blödsinn zu schreiben ein sinnvolles und gutes Programm kommt ohne Sprünge aus.

Nix für ungut


bike
 
Es ist doch Blödsinn zu schreiben ein sinnvolles und gutes Programm kommt ohne Sprünge aus.

Nix für ungut


bike

Na ja sagen wir es so, ein guter Programmierer versucht ohne auszukommen :ROFLMAO: ...
Gerade wenn man diese als Not-Sprünge aus Schleifen programmiert *ROFL*
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es geht ohne GOTO; aber macht es Sinn so lange drumrum zu schreiben bis es ohne GOTO programmiert ist?
Ja, es macht immer Sinn ein Programm so zu optimieren bis es leserlich ist.
Der Kernel von Linux ist in C programmiert und ist gut und funktioniert nahezu fehlerfrei.
In diesem Code war, bei der Kernel Version 2.4, mehr als 16000 Goto und oder andere Sprünge.
Jo, das habe ich auch schon gelesen und ich behaupte jetzt mal dass du noch keine einzige Zeile von dem Code gesehen hast. :rolleyes:
Und hättest du den Code vor dir würdest du ihn nicht lesen können, da er total unleserlich wäre, bei 16000 Sprüngen. ;)

Und wie schon öfters, geht es hier wiedermal um eine Grundsatz-Philosophiefrage.
 
Ja, es macht immer Sinn ein Programm so zu optimieren bis es leserlich ist.

Und ohne GOTO ist ein Programm besser zulesen als mit? :confused:

Jo, das habe ich auch schon gelesen und ich behaupte jetzt mal dass du noch keine einzige Zeile von dem Code gesehen hast. :rolleyes:
Und hättest du den Code vor dir würdest du ihn nicht lesen können, da er total unleserlich wäre, bei 16000 Sprüngen. ;)

Verloren, ich habe einen Teil des Codes gelesen und ob du glaubst oder nicht, ich habe schon Module dafür geschrieben.
Den Ehrgeiz alles zu verstehen was geschrieben ist habe ich nicht, doch auch bei GOTO findet man den Zielpunkt und versteht das Programm.


bike
 
Ich denke, man muss da schon ein wenig differenzieren. Mit GOTO hinter das Ende einer Schleife zu springen, um sie einfach und elegant zu verlassen, ist sicher keine Sünde. Wenn das Ganze dagegen in wildes Herumgehopse ausartet, sieht das schon anders aus.
 
Zurück
Oben