Wie gehts weiter???

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Wie gehts weiter???

Beitrag von Xin » Mi Jan 28, 2009 3:52 pm

tutorials.at hat geschrieben:
Xin hat geschrieben:Wenn Du goto im Tutorial von tutorials.at gefunden hast, maile ich dem Autor persönlich seine fachliche Disqualifikation.
Lieber Xin,

hier hätte dir die Suchfunktion geholfen.
Ui, da fühlt sich wer auf den Schlips getreten. ;-)
Das 'Wenn' steht nicht umsonst im Satz. Der Kollege Empire sagte, dass er bei Dir die Tutorials las und dass er jetzt goto gefunden hat.
Wenn das also nicht in Deinem Tutorial steht, brauchst Du Dir auch keine Gedanken bzgl. diqualifizierender Mails zu machen. Würde es doch drinstehen, so wäre eine Mail doch auch berechtigt, oder?

Ich habe Dein Tutorial noch nicht gelesen, dazu fehlt mir derzeit die Zeit und das unsrige ist ja noch nicht vollständig fertig.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
tutorials.at
Beiträge: 10
Registriert: Mo Jan 19, 2009 2:23 pm
Wohnort: Wien
Kontaktdaten:

Re: Wie gehts weiter???

Beitrag von tutorials.at » Mi Jan 28, 2009 4:04 pm

Xin hat geschrieben:Wenn das also nicht in Deinem Tutorial steht, brauchst Du Dir auch keine Gedanken bzgl. diqualifizierender Mails zu machen. Würde es doch drinstehen, so wäre eine Mail doch auch berechtigt, oder?
Das kommt sicher darauf an, was dazu geschrieben wird.
Etwas zu erwähnen ist nicht automatisch ein Fehler (in manchen C-Büchern wirds ja auch stehen).
Höchstens im Kontext eines Tutorials für Anfänger ist es bedenklich.
Bei BASIC muss ich es hingegen erwähnen, weil es im "Durchschnitts"-Quellcode leider vorkommt.
Webmaster und Autor von Tutorials.at,
überarbeitet und erweitert 2008/2009, mit Tutorials zu C, Pascal und BASIC.

Empire
Beiträge: 272
Registriert: Mo Jan 26, 2009 5:36 pm

Re: Wie gehts weiter???

Beitrag von Empire » Sa Jan 31, 2009 11:54 am

Schleifen sind ja schön und Toll aber das würde in dem fall die sache nur verkommplizieren.

Code: Alles auswählen

#include <stdio.h>

int main ()
{
  int f;

  printf ("Willkommen in Empire's Labyrint!\nHier kommt eine kutze Einleitung:\n1. Das + ist eure Spielfigur.\n2. Ihr könnt nicht über # laufen.\n3. Das - ist das Ziehl.\n");
  printf ("Gehen geht so:\nHoch = 1\nRechts = 2\nRunter = 3\nLinks = 4\n\n");
  printf ("Jetzt kans los gehen!!!");

  p1:
  printf ("########\n########\n##++\n##++\n##  ##\n##  ##\n##  ##\n##  ##\n");
  scanf ("%d", &f);

  switch (f)
  {
    case 2: goto p2;
    break;

    case 3: goto p10;
    break;

    default: goto p1;
  }


  p2:
  printf (" \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n##########\n##########\n##  ++\n##  ++\n##  ##  ##\n##  ##  ##\n##  ##  ##\n##  ##  ##\n ");
  scanf ("%d", &f);
  switch (f)
 {
    case 2: goto p3;
    break;

    case 4: goto p1;
    break;
    default: goto p2;
 }


  p3:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("##########\n##########\n    ++\n    ++\n  ##  ##  \n  ##  ##  \n  ##  ##  \n  ##  ## \n");
  scanf ("%d", &f);

  switch (f)
  {
    case 2: goto p4;
    break;

    case 3: goto p11;
    break;

    case 4: goto p2;
    break;
    default: goto p3;
  }


  p4:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("##########\n##########\n    ++\n    ++\n##  ##  ##\n##  ##  ##\n##  ##  ##\n##  ##  ##\n");
  scanf ("%d", &f);

  switch (f)
  {
    case 2: goto p5;
    break;

    case 4: goto p3;
    break;
    default: goto p4;
  }


      p5:
      printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("##########\n##########\n    ++\n    ++\n  ##  ####\n  ##  ####\n  ##  ##\n  ##  ##\n");
  scanf ("%d", &f);

  switch (f)
  {
    case 2: goto p6;
    break;

    case 3: goto p12;
    break;

    case 4: goto p4;
    break;
    default: goto p5;
  }


      p6:
      printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("##########\n##########\n    ++\n    ++\n##  ####\n##  ####\n##  ##\n##  ##\n");
  scanf ("%d", &f);

  switch (f)
  {
    case 2: goto p7;
    break;

    case 4: goto p5;
    break;
    default: goto p6;
  }


      p7:
      printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("##########\n##########\n    ++  ##\n    ++  ##\n  ####  ##\n  ####  ##\n  ##    ##\n  ##    ##\n");
  scanf ("%d", &f);

  switch (f)
  {
    case 2: goto p8;
    break;

    case 4: goto p6;
    break;
    default: goto p7;
  }


      p8:
      printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("##########\n##########\n    ++##\n    ++##\n####  ##\n####  ##\n##    ##\n##    ##\n");
  scanf ("%d", &f);

  switch (f)
  {
    case 3: goto p13;
    break;

    case 4: goto p7;
    break;
    default: goto p8;
  }


      p9:
      printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("########\n########\n  ##++##\n  ##++##\n  ##  ##\n  ##  ##\n  ##  ##\n  ##  ##\n");
  scanf ("%d", &f);

  switch (f)
  {
    case 3: goto p14;
    break;
    default: goto p9;
  }


      p10:
      printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("########\n########\n##\n##\n##++##\n##++##\n##  ##\n##  ##\n##  ####\n##  ####");
  scanf ("%d", &f);

  switch (f)
  {
    case 1: goto p1;
    break;

    case 3: goto p15;
    break;
    default: goto p10;

  }


      p11:
      printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("##########\n##########\n\n\n  ##++##\n  ##++##\n  ##  ##\n  ##  ##\n  ######\n  ######");
  scanf ("%d", &f);

  switch (f)
  {
    case 1: goto p3;
    break;

    case 3: goto p16;
    break;
    default: goto p11;
  }


      p12:
      printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("##########\n##########\n\n\n  ##++####\n  ##++####\n  ##  ##\n  ##  ##\n####  ####\n####  ####");
  scanf ("%d", &f);

  switch (f)
  {
    case 1: goto p5;
    break;

    case 3: goto p17;
    break;
    default: goto p12;
  }


      p13:
      printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("##########\n##########\n      ##\n      ##\n####++##\n####++##\n##    ##\n##    ##\n########\n########");
  scanf ("%d", &f);

  switch (f)
  {
    case 1: goto p8;
    break;

    case 3: goto p19;
    break;
    default: goto p13;
  }


      p14:
      printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("########\n########\n  ##  ##\n  ##  ##\n  ##++##\n  ##++##\n  ##  ##\n  ##  ##\n####  ##\n####  ##");
  scanf ("%d", &f);

  switch (f)
  {
    case 1: goto p9;
    break;

    case 3: goto p20;
    break;
    default: goto p14;
  }


  p15:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("##\n##\n##  ##\n##  ##\n##++##\n##++##\n##  ####\n##  ####\n##  ##\n##  ##");
  scanf ("%d", &f);

  switch (f)
  {
    case 1: goto p10;
    break;

    case 3: goto p21;
    break;
    default: goto p15;
  }


  p16:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("\n\n  ##  ##\n  ##  ##\n  ##++##\n  ##++##\n  ######\n  ######\n  ##\n  ##");
  scanf ("%d", &f);

  switch (f)
  {
    case 1: goto p11;
    break;
    default: goto p16;
  }


  p17:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("\n\n  ##  ####\n  ##  ####\n  ##++##\n  ##++##\n####  ####\n####  ####\n      ##\n      ##");
  scanf ("%d", &f);

  switch (f)
  {
    case 1: goto p12;
    break;

    case 3: goto p22;
    break;
    default: goto p17;
  }


  p18:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("        ##\n        ##\n  ####  ##\n  ####  ##\n  ##++  ##\n  ##++  ##\n  ########\n  ########\n  ##  ##\n  ##  ##");
  scanf ("%d", &f);

  switch (f)
  {
    case 2: goto p19;
    break;
    default: goto p18;
  }


  p19:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("      ##\n      ##\n####  ##\n####  ##\n##  ++##\n##  ++##\n########\n########\n##  ##\n##  ##");
  scanf ("%d", &f);

  switch (f)
  {
    case 1: goto p13;
    break;

    case 4: goto p18;
    break;
    default: goto p19;
  }


  p20:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("  ##  ##\n  ##  ##\n  ##  ##\n  ##  ##\n  ##++##\n  ##++##\n####  ##\n####  ##\n##    ##\n##    ##");
  scanf ("%d", &f);

  switch (f)
  {
    case 1: goto p14;
    break;

    case 3: goto p23;
    break;
    default: goto p20;

  }


  p21:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("##  ##\n##  ##\n##  ##\n##  ##\n##++####\n##++####\n##  ##\n##  ##\n##    ##\n##    ##");
  scanf ("%d", &f);

 /* switch (f)
  {
    case 1: goto p15;
    break;

    case 3: goto p24;
    break;
    default: goto p21;
  }*/


  p22:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("  ##  ####\n  ##  ####\n  ##  ##\n  ##  ##\n####++####\n####++####");
  scanf ("%d", &f);

 /* switch (f)
  {
    case 1: goto p17;
    break;

    case 3: goto p27;
    break;
    default: goto p22;
  }*/


  p23:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("  ##  ##\n  ##  ##\n  ##  ##\n  ##  ##\n####++##\n####++##\n##    ##\n##    ##\n##  ####\n##  ####");
  scanf ("%d", &f);

 /* switch (f)
  {
    case 1: goto p20;
    break;

    case 3: goto p30;
    break;
    default: goto p23;
  }*/


  p24:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("##  ##\n##  ##\n##  ####\n##  ####\n##++##\n##++##\n##    ##\n##  ##\n##\n##");
  scanf ("%d", &f);

 /* switch (f)
  {
    case 1: goto p21;
    break;

    case 3: goto p31;
    break;
    default: goto p24;
  }*/


  p15:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("");
  scanf ("%d", &f);

/*  switch (f)
  {
    case 1: goto;
    break;

    case 2: goto;
    break;

    case 3: goto;
    break;

    case 4: goto;
    break;
    default: goto p25;
  }


  p15:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("");
  scanf ("%d", &f);

  switch (f)
  {
    case 1: goto;
    break;

    case 2: goto;
    break;

    case 3: goto;
    break;

    case 4: goto;
    break;
    default: goto p26;
  }


  pENDE:
  printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  printf ("");
  scanf ("%d", &f);

  switch (f)
  {
    case 1: goto;
    break;

    case 2: goto;
    break;

    case 3: goto;
    break;

    case 4: goto;
    break;
    default: goto p1;
  }
    */






    return 0;
}
(leider konnte ich den Befehl nicht finden das das in so einem Kästchen kommt)
(das als komentar markierte is entweder noch nicht überarbeitet oder die goto punkte sind noch nicht da und um es testen zu können hab ich das als komentar markiert)

ich finde (bis auf die Länge) ist es sehr übersichtig was zu viele schleifen nicht wären.
Nur so ne bemerkung am rande am ende sind das 63 possitionen die die "Figur" haben kann.
Deshalb kapier ich net was ihr gegen goto habt.

mfg Empire

edit by Xin: Codetags eingeführt

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Wie gehts weiter???

Beitrag von Xin » Sa Jan 31, 2009 11:58 am

Empire hat geschrieben:Schleifen sind ja schön und Toll aber das würde in dem fall die sache nur verkommplizieren.
Definitiv nicht... das Programm ist der Albtraum jedes Programmierers... und bitte erwarte nicht, dass ich Dir dabei helfe, es zu debuggen - du hast den Hinweis bekommen, wie es richtig geht, wenn Du Dich absichtlich dagegen stellst, darfst Du auch selbst debuggen.

Bitte benutze Funktionen und Schleifen und verzichte auf goto.
Empire hat geschrieben:(leider konnte ich den Befehl nicht finden das das in so einem Kästchen kommt)
Es steht über dem Eingabeeditor und heißt "code".
Empire hat geschrieben:ich finde (bis auf die Länge) ist es sehr übersichtig was zu viele schleifen nicht wären.
Nur so ne bemerkung am rande am ende sind das 63 possitionen die die "Figur" haben kann.
Deshalb kapier ich net was ihr gegen goto habt.
Offensichtlich nicht genug...

Jeder muss seine eigenen Erfahrungen machen, Du wirst schon noch dahinter kommen, wenn Du das Programm verändern möchtest.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Empire
Beiträge: 272
Registriert: Mo Jan 26, 2009 5:36 pm

Re: Wie gehts weiter???

Beitrag von Empire » Sa Jan 31, 2009 12:03 pm

Ich will dich nicht ärgern aber warum ist das ein abltraum???

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Wie gehts weiter???

Beitrag von cloidnerux » Sa Jan 31, 2009 12:31 pm

Weil du irgendwann mal

Code: Alles auswählen

goto IrgendeineSprungmarke
liest und dich fragst:
Ja wo ist die denn?
Dann suchst du 1 Stunde nach der Sprungmarke, um zu merken das da was nicht richtig ist.
Dann hast du 10 mal denselben code, der irgendwas überprüft, statt es in eine Funktion zu Packen, wo es übersichtlich wird und du Fehler schneller entedecken und verhindern kannst schreibst dus lieber manuell hin. Dann änderst irgendwas an dem Code und vergisst es 100 Zeilen weiter unten auch zu ändern => BUGs.
Schleifen sind WICHTIG!!!!!!! GOTOs sind einfach nur Böse, kein Programmierer der bei Verstand ist, würde eine GOTO einer Schleife vorziehen, außer es hat bringt ihm einen Vorteil
Solche Erfahrungen muss man halt selbst gemacht haben.
Bald wirst du merken, das dein CODE die H Ö L L E ist.
Wie XIN schon gesagt hat, wir haben keine Lust das zu Debuggen :evil: :evil: :evil:
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Wie gehts weiter???

Beitrag von Xin » Sa Jan 31, 2009 4:20 pm

Empire hat geschrieben:Ich will dich nicht ärgern aber warum ist das ein abltraum???
Die Begründung hat cloidnerux eigentlich schon gegeben.
Ein Quelltext mit Gotos ist nahezu unwartbar. Du schreibst noch sehr kleine Programme, aber selbst da hätte ich keine Lust durchzusteigen. Ein solcher Code ist reines suchen, zumal Du mit Goto nicht garantieren kannst, welche Werte wann wo benutzt werden. Du musst alles über globale Variablen lösen, was sich bei ein wenig(!) größeren Programmen ebenfalls regelmäßig als gigantische Fehlerquelle erwiesen hat.

Bitte versuch Dich an Funktionen, du wirst sehen, dass sich Dein Code in eine Art Tabelle verwandelt, aus der man sehr einfach lesen kann, was wann passiert und Du keine globalen Variablen benötigst.
cloidnerux hat geschrieben: :evil: :evil: :evil:
Deine Erklärung ist soweit korrent, doch die sind überflüssig.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Empire
Beiträge: 272
Registriert: Mo Jan 26, 2009 5:36 pm

Re: Wie gehts weiter???

Beitrag von Empire » Sa Jan 31, 2009 5:29 pm

Also:
ich hab nochmal im Tutorial den Abschnitt über funktionen gelesen. Und ich seh nicht die möglichkeit das das mein Skript vereinfacht da auser goto nichts mehrmals vorkommt.

mfg

Empire

PS: Ich weis ich bin ein schwerer fall

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Wie gehts weiter???

Beitrag von cloidnerux » Sa Jan 31, 2009 6:10 pm

Wieso liest du nicht mal den Teil über Schleifen?
:evil: :evil: :evil:
Deine Erklärung ist soweit korrent, doch die sind überflüssig.
Es sollte einen besonderen Nachdruck verleien.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Wie gehts weiter???

Beitrag von Xin » Sa Jan 31, 2009 7:55 pm

Empire hat geschrieben:ich hab nochmal im Tutorial den Abschnitt über funktionen gelesen. Und ich seh nicht die möglichkeit das das mein Skript vereinfacht da auser goto nichts mehrmals vorkommt.
Mach aus den Sprungadressen Funktionen und statt dahin zu springen, rufst Du sie auf. Du kommst dann im Switch wieder an und springst dann mit break aus dem Switch raus.
Was das Debuggen angeht, bekommst Du so einen graden Programm-Fluss hin, weil Du das Programm von oben nach unten lesen kannst und sich in den Funktionen die Details befinden.
Empire hat geschrieben:PS: Ich weis ich bin ein schwerer fall
Das ist jeder Anfänger - ich inklusive. Der Unterschied ist nur, dass es bei mir 23 Jahre her ist und bei Dir halt noch aktuell.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten