- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 13

Thema: An bestimmte Programmstelle springen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Sind Sie auch ambivalent?

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    26.05.2012
    Beiträge
    15
    Vielen dank für eure Antworten...
    hab den code jetzt so ...






    if(obstacle_right) //Hinderniss rechts//
    {
    move(40, BWD, DIST_MM(20), true);
    rotate(40, LEFT, 10, true);
    moveAtSpeed(80,80); //drehen bis kein Hinderniss mehr zu sehen
    A:
    if(!obstacle_right)
    {
    move(40, BWD, DIST_MM(10), true);
    rotate(40, LEFT, 5, true);
    move(40, FWD, DIST_MM(10), true);
    moveAtSpeed(80,80);
    }
    else
    {
    goto A;
    }
    }



    irgendwas klappt aber no ned so ganz....
    schonmal danke....

  3. #3
    Max Web
    Gast
    Sag ich doch, dass Du kein sinnvolles Goto brauchen wirst Außer in Assembler habe ich das bisher auch noch nie benötigt.
    Das GOTO in Deinem Code hat eigentlich nur einen Zweck: es macht den Code schwerer nachvollziehbar. Mehr nicht.

    irgendwas klappt aber no ned so ganz....
    Tip: Immer beschreiben, was genau nicht geht und was der Code machen soll. In dem Fall können wir das zwar erraten, aber das ist nicht immer so.

    Schau Dir mal die Demoprogramme des RP6 an, da sind schon einige gute Lösungen, um Hindernisse zu umfahren. Besonders zu empfehlen ist das "Move_05"-Beispiel,
    das bietet Dir schon einmal eine Grundarchitektur, um verschiedene Verhaltensmuster umzusetzen.

    Grüße,

    Max

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Mensch ja, er baut ein Goto ein...wo ist das problem dabei, außer das er nicht weiß wo es hin geschreiben werden muß...

    Jetzt sind zwanzig Zeilen ja soooo unglaublich schwer zu lesen...man man man man

    Er hat nach einer Sprunganweisung gefragt: GOTO ist eine "erlaubte" Sprunganweisung. <- Punkt

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Zitat Zitat von petzi-- Beitrag anzeigen
    Vielen dank für eure Antworten...
    hab den code jetzt so ...






    if(obstacle_right) //Hinderniss rechts//
    {
    move(40, BWD, DIST_MM(20), true);
    rotate(40, LEFT, 10, true);
    moveAtSpeed(80,80); //drehen bis kein Hinderniss mehr zu sehen
    A:
    if(!obstacle_right)
    {
    move(40, BWD, DIST_MM(10), true);
    rotate(40, LEFT, 5, true);
    move(40, FWD, DIST_MM(10), true);
    moveAtSpeed(80,80);
    }
    else
    {
    goto A;
    }
    }



    irgendwas klappt aber no ned so ganz....
    schonmal danke....
    Mit dein Goto hast du ein Art von Endloss--Schleife eingebaut.

    Sag mal das obstacle_right stimmt (den Wert, oder was es auch ist, ist nicht 0):

    obstacle_right=1;

    resultiert in die Ablauffolge:

    move(40, BWD, DIST_MM(20), true);
    rotate(40, LEFT, 10, true);
    moveAtSpeed(80,80); //drehen bis kein Hinderniss mehr zu sehen
    A:
    if(!obstacle_right) // wird passiert weil obstacle_right ist Wahr)
    goto A;
    if(!obstacle_right) // wird wieder passiert weil es immer noch nicht ist geändert
    goto A;
    ....
    ad infinitem

  6. #6
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Tu mir nen gefallen und werf dieses abgrundkaputte goto da raus...

    So geht das!

    while(!obstacle_right)
    {
    move(40, BWD, DIST_MM(10), true);
    rotate(40, LEFT, 5, true);
    move(40, FWD, DIST_MM(10), true);
    moveAtSpeed(80,80);
    }

    Nicht nur GOTOs gehören verboten, auch jedes 2.te IF ist ranzig!
    Und die anderen gucken sich den Schrott da oben bitte nicht ab... das is bah bah bah !

    Da fühl ich mich an die gruseligen Zeit vom VC20, ZX81 und Apple 2 erinnert... ja.. es gab auch vor dem C64 schon Computer!
    (Und Leute die aus solchen Fehlern lernten)
    LG Rolf
    Geändert von RolfD (16.10.2012 um 19:32 Uhr)
    Sind Sie auch ambivalent?

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Da fühl ich mich an die gruseligen Zeit vom VC20, ZX81 und Apple 2 erinnert...
    Was heißt hier "gruselige Zeiten"??? Sag nichts gegen meinen alten Apple ][ !!!

    Ich habe ihn geliebt!
    Gruß
    Dirk

Ähnliche Themen

  1. von einem zu anderem springen?
    Von robots4-ever im Forum Software, Algorithmen und KI
    Antworten: 2
    Letzter Beitrag: 08.04.2012, 20:24
  2. Raketenantrieb: Roboterflöhe springen hoch
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 1
    Letzter Beitrag: 30.09.2011, 20:27
  3. Von Unterprogramm zum Hauptprogrammanfang springen
    Von Hübi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 06.02.2007, 18:15
  4. Tiny2313 - Ausgänge springen wirr
    Von graffiti im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 22.01.2007, 13:17
  5. Kugel: Springen oder Rollen
    Von Flex im Forum Mechanik
    Antworten: 3
    Letzter Beitrag: 05.05.2005, 17:27

Stichworte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress