- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: GOTO's sind unschoen - oder doch nicht?

  1. #11
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    Anzeige

    Powerstation Test
    ich sehe für gotos nur eine wirklich sinnvolle verwendung.
    hat man in einem code verschiedene Programme,
    die dann auch jeweils eine eigene mainloop haben
    verwurstelt und werden diese progrmmteile nur einmal
    zum programmstart von einer startvariable ausgewählt
    kann man mit dem befehl schön aufsplitten.
    im normalen programmablauf finde ich gotos eher kritisch
    aus den in den vorangegangenen postings genannten gründen.

    fehleranfällig, schwer lesbar, stacküberläufe, spaghetticode etc.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.07.2004
    Beiträge
    138
    Hallo,
    Das ist eine sher alte Diskussion ...

    Für Programmieranfänger würde ích die Verwendung von GOTO schlicht "verbieten"! Gerade zu Beginn soll man sehr sauber die wichtigen Strukturelemente lernen, vor allem den Gebrauch von Prozeduren, Funktionen, Parametern, lokalen und globalen Variablen und ein klares Beenden von Wiederholstrukturen. Wenn das ohne GOTO nicht geht, ist der Alogorithmus nicht durchdacht genug.

    Für größere Projekte würde ich dies ebenfalls tun, weil Zusammenspiel und Wartbarkeit problematisch sein können.

    Wenn aber jemand gelernt hat, klar zu strukturieren, und für sich ab und an mal ein GOTO benutzt, ist das unproblematisch. Wenn mit jedem Byte gegeizt werden muss, könnte das auch gelten, das sind dann aber keine Probleme für Anfänger mehr.

    Fußnote:
    Schon in alten BASIC-Dialekte, die ohne GOTO und GOSUB nicht auskamen, war es eine hervorragende Möglichkeit, z.B. REPEAT oder WHILE- Schleifen damit nachzubilden. Ich habe mal aus Nostalgiegründen ein altes Dateiverwaltungsprogramm für Apple-Basic liegen (um 12 Seiten Ausdruck, für den II+), das auf diese Weise auch heute ohne große Mühe verstehbar ist. Wenn ich dagegen manche alten Basic-Programme für den C64 sehe, vergeht jegliche Lust, die verstehen zu wollen!

    Also dann:
    REPEAT
    GOTO PC und übe!
    UNTIL alles gut strukturiert

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.01.2008
    Beiträge
    164
    der goto/gosubbefehl ist das sparsamste springen für den atmega.
    der stack wird durch den goto/gosubbefehl am wenigsten belastet.
    ist sehr schnell in der ausführung durch die kürze(wichtig).

    sub/funktion sind speicherfresser und zeitfresser.

  4. #14
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.10.2007
    Ort
    41462 Neuss
    Alter
    56
    Beiträge
    375
    Zitat Zitat von Steinigtmich
    Ähnlich sieht es in Java aus, welches als objektorientierte Programmiersprache quasi noch eine "Generation weiter" ist, wenn man Methoden in einer Klasse als static deklariert. Damit verweichlicht man auch das objektorientierte Prinzip und kann diese Methoden aufrufen ohne vorher ein Objekt zu erzeugen. Schon hat man wieder prozedurale Programmierung.
    als ich mit oop anfing dachte ich auch, ich müsse nun unbedingt alles mit objekten ausdrücken. aber das ist natürlich quatsch. all die schönen paradigmen sind letztlich werkzeuge, um ein ziel zu erreichen. und ganz egal wie toll die werkzeuge in deinem werkzeugkasten auch sind - ab und zu wirst du einfach einen simplem schraubendreher benötigen. und dann soltest du auch genau den benutzen, und nicht versuchen den akkuschrauber in einen simplen schraubendreher zu verwandeln.

    davon mal abgesehen gibts ganz verschiedene oo sprachen. ich kenne c++ und java und das sind schon mal ganz verschiedene sachen.

    in java kannst du ohnehin nicht alles als objekt ausdrücken: die elementaren datentypen sind nämlich keine! deshalb gibts die wrapperklassen zu den elementaren datentypen und deshalb braucht man z.b. statische methoden um manipulationen mit diesen nichtobjekten in ner utiliti-klasse zusammenfassen zu können.

    dann gibts auch sachen, die alle instanzen einer klasse betreffen. die kann man eben nicht einem bestimmten objekt zuordnen. oft bemühtes beispiel dazu: eine klasse die grafische objekte wie z.b. rechtecke repräsentiert. da möchte man vielleicht wissen, wieviele instanzen (rechtecke) gerade existieren. und dazu braucht man dann statische variablen und methoden in der klasse.

  5. #15
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Ich könnte mir vorstellen, dass selbst MS den GOTO-Befehl nutzt, und zwar dort, wo ein zurückspringen nicht notwendig ist:
    Code:
    on error goto bluescreen
    Gerade wegen der Stacküberläufe wurde der Befehl verteufelt, weil ihn einige Programmierer achtlos in einer Sub aufgerufen haben und so das Return nicht mehr erreicht wurde. Sowas passiert dann, wenn man eine Routine in ein Sub auslagert und vergisst, dass ein direkter Sprung darin verborgen ist. Unübersichtlich wird der Code durch diesen Befehl allein nicht.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  6. #16
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Klaus Schmaranz, Softwareentwicklung in C hat folgendes geschrieben::......


    .......Man sieht schon bei diesem winzigen Codeschnipsel, dass die Lesbarkeit des Codes eine mittlere Katastrophe darstellt.

    Jemand der in C programiert sollte kaum auf andere Zeigen und das Wort "Lesbarkeit" in den Mund nehmen.
    Da fällt mir spontan "Wer im Glashaus sitzt.....Rest bekannt" ein.

    Das "Böse GOTO" ist ein Relikt aus Zeiten als BASIC-Programme noch numerierte Zeilen hatten und Labels dort jedenfalls noch unbekannt waren.

    Der Herr Schmaranz ist wohl auch einer derer die uralte Geschichten mit sich schleppen auch wenn sie lange nicht mehr war sind.


    Ich bitte um Nachsicht für meinen Sarkasmus aber solche Leute kann ich nicht ernst nehmen denn sie haben offensichtlich nur gelernt aber nie verstanden bzw. reden über Zeiten die sie auf diesem Gebiet ebenso offensichtlich nie erlebt haben

    Vermutlich ist er auch einer derer die dauernd "Alle IBM HD's sind Ka**e" absondern.

    Solche Komiker habe ich am liebsten auf der Arbeit.

    Warum ?

    Nun,ich kann mich dort über solche Pappnasen kaputtlachen,halte meine Freizeit davon frei und werde noch dafür bezahlt



    Wenn man mit Goto's verantwortungsvoll umgeht spricht nichts dagegen sie zu verwenden.
    Ich tue es auch und finde nichts dabei.
    Wichtig ist das man selber seinen eigenen Code versteht.
    Gruß
    Ratber

  7. #17
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Wenn man mit Goto's verantwortungsvoll umgeht spricht nichts dagegen sie zu verwenden.
    Ich tue es auch und finde nichts dabei.
    Wichtig ist das man selber seinen eigenen Code versteht.
    Du sprichst mir aus der Seele...
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test