Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Vokabeltrainer
Gehe zu Seite Zurück  1, 2, 3, 4  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  

Wie viele haben sich den Vokabeltrainer schon heruntergeladen?
Ja, ich habe es getan um es zu begutachten
6%
 6%  [ 1 ]
Ja, weil ich es vielleicht nutzten werde
0%
 0%  [ 0 ]
Nein, weil es noch nicht fertig ist
20%
 20%  [ 3 ]
Nein, will ich nicht haben
73%
 73%  [ 11 ]
Stimmen insgesamt : 15

Autor Nachricht
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 07.02.2007, 20:59    Titel: Antworten mit Zitat

Auch ich freue mich, dass ich erwähnt wurde. lächeln

Aber trotzdem nochmal mein Rat:
schau dir mal Schleifen an, damit kannst du wirklich so gut wie jedes GoTo vermeiden. zwinkern
(Empfehle auch croco's Tutorial.)
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Meteorus



Anmeldungsdatum: 03.02.2007
Beiträge: 405

BeitragVerfasst am: 07.02.2007, 23:34    Titel: Antworten mit Zitat

Das einzige was mich an diesen Beiträgen beruhigt ist, dass es sich wenigsten welche anschauen. Allerdings gibt es jetzt npch einige
Punkte zu klären:
1. Lizens: Die lizens hatte ich zu beginn mal eingebaut als ich noch dachte, dass ich nicht den Quellcode veröffentliche. Wahrscheinlich werde ich den bis zur nächsten Version wieder ausbauen, da ich inzwischen auch eingesehen habe das es keinen Sinn macht eine Lizense einzubauen, da jeder hier sich es wahrscheinlich selbst Programmieren könnte und ich somit nicht jemand anderen vorrausbin.
2. Rechtschreibfehler: Es sind hier wahrscheinlich gar nicht so wenig Rechtschreibfehler drin, dies ligt daran, das ich in Rechtschreibung nun nicht gerade eine Leuchte bin. Ich schau mal was sich bis zur nächsten Version verändern kann.
3. Das Vormat: Das nächste mal kann ich es ja auch in einem Textformat mitliefern (vorrausgesetzt ich denke daran).
4. @croco97: Wenn du die Readme richtig gelesen hättest, hättest du gelesen, das man es ins Verzeichnis "C:\vok\.." kopieren muss. Dies hängt damit zusammen, weil ich gesagt habe er soll die Vokabeln in "C:\vok\data\... .txt" abspeichern.
5. GOTO: Ich habe viele GOTO's eingebaut, weil ich finde es ist die beste möcglichkeit im Programm durch die Gegend zu springen. Ausserdem Funktionierts.
6. INPUT: Ich habe viele INPUT Befehle auf Zwei Zeilen verteielt. Dies habe ich gemacht, weil ich es besser finde wenn das eingegebene unter der Eingabeaufforderung steht.
7. @ytwinky: Inzwischen ist es ja so, dass man von den Aktuellen Vokabeln bis zu 40 Stück hat. Das reicht für eine Zeit zum Lernen! Ausserdem werden alle jemals eingetragenen Vokabeln ja auch in einer Liste gespeichert (siehe: vok.txt) und die fast ja momentan 3500 Vokabeln. das sich mit den austauschen von nur wenigen Zahlen (3 oder so) jeder Zeit erweitern läst.
8. Schleifen: Es gibt inzwischen schon einige Schleifen, man muss sie nur suchen. Zu beginn (V.0.15) hatte ich keine Schleife und da war das Programm nooch viel länger. Somit hat sich da schon einiges getan.

Ich hoffe somit habe ich alle Fragen geklärt. Ich bin aber immer offen für weitere kritick (aber auch für lobe), da ich ja nur so weis, was ich verbessern kann.

mfg Meteorus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 07.02.2007, 23:43    Titel: Antworten mit Zitat

GOTO is ne ganz böse möglichkeit, durch die gegend zu springen... durchgeknallt Schau dir am besten mal SUBs und FUNCTIONs an zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Meteorus



Anmeldungsdatum: 03.02.2007
Beiträge: 405

BeitragVerfasst am: 08.02.2007, 14:34    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
GOTO is ne ganz böse möglichkeit, durch die gegend zu springen... durchgeknallt Schau dir am besten mal SUBs und FUNCTIONs an zwinkern


Inwiefern ist GOTO böse?

mfg Meteorus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 08.02.2007, 14:37    Titel: Antworten mit Zitat

GoTo ist der sichere weg zum unstrukturierten programmieren. du verlierst damit sehr schnell die übersicht, wenn du viele gotos in dein prog einbaut. kleines beispiel:

Code:


If A = 1 Then Goto P1
If A = 2 Then Goto P2
If A = 3 Then Goto P3
If A = 4 Then Goto P4
If A = 5 Then Goto P5
If A = 6 Then Goto P6

P1:
Print A
Goto 99

P2:
Print A
Goto 99

50
Print "test"
goto 99

P3:
Print A
Goto 50

..............

_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 08.02.2007, 14:37    Titel: Antworten mit Zitat

hm?
Wenn man es einrücken würde, würde ich es übersichtlich finden....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 08.02.2007, 14:47    Titel: Antworten mit Zitat

Auch mit der eingeworfenen marke 50? durchgeknallt

Btw, eingrückt werden normalerweise NUR zusammengehörige Codeblöcke. Und GOTO ist kein Block-Befehl wie IF...ENDIF und hat auch keinen schließenden befehl.

So ein code verwirrt nur. du findest dich nru zurecht, weil er sehr kurz ist. aber alleine schon an diesem beispiel sieht man, dass das auch sehr gut ohne goto geht (z.B. mit einer subroutine)
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Meteorus



Anmeldungsdatum: 03.02.2007
Beiträge: 405

BeitragVerfasst am: 08.02.2007, 14:55    Titel: Antworten mit Zitat

@Jojo: Hast schon recht, man verliert die Übersicht. Ich hatte es halt mit vielen GOTO's gemacht, weil ich keine ahnung hatte wie sonst. Ich will mal schauen inwieweit ich mien Programm noch retten kann.

mfg Meteorus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 08.02.2007, 14:58    Titel: Antworten mit Zitat

hmm...

Code:

If A = 1 Then Goto P1
If A = 2 Then Goto P2
If A = 3 Then Goto P3
If A = 4 Then Goto P4
If A = 5 Then Goto P5
If A = 6 Then Goto P6

P1:
     Print A
     Goto 99

P2:
     Print A
     Goto 99

P3:
     Print "test"
     goto 99

P4:
     Print A
     Goto 99


So meint ich das eigentlich...
Goto an sich ist nicht schlimm. Es entspricht ja eigentlich nur nem ASM-JMP... (gut, Subs und Functions letzlich auch, aber die Parameterübergabe ist da ja auch noch...)

Man muss nur Ordnung halten, dann gehts. Was aber nicht heißt, dass ich ein GOTO-User bin peinlich peinlich
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Meteorus



Anmeldungsdatum: 03.02.2007
Beiträge: 405

BeitragVerfasst am: 08.02.2007, 14:59    Titel: Antworten mit Zitat

Ich bin GOTO User!

mfg Meteorus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 08.02.2007, 15:21    Titel: Antworten mit Zitat

Ich bin SUB user lachen

Glaub mir, eines Tages wirst du diese ekligen Gotos vedammen...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 08.02.2007, 15:25    Titel: Antworten mit Zitat

Zudem bläht GoTo dein Programm auf, da man dazu neigt, viele Codeteile zu wiederholen, anstatt eine universelle Function/Sub dazu zu schreiben.

@Meteorus:
Du solltest dir trotzdem nochmal Arrays, insbesondere dynamische, anschauen, wenn die Anzahl der Vokabeln durch Konstanten beschränkt wird. zwinkern
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 08.02.2007, 16:29    Titel: Antworten mit Zitat

Für Textadventures ist goto aber FAST zwingend erforderlich happy
Zitat:
Heißt nicht das ih goto user bin.

[Ja!-Mode] trifft auch bei mir zu [/Ja!-Mode]
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 08.02.2007, 17:49    Titel: Antworten mit Zitat

wenn ich heute nochmal ein textadvanture proggen würde, täte ich aber eher zu select case greifen...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 08.02.2007, 17:51    Titel: Antworten mit Zitat

csderats hat Folgendes geschrieben:
Für Textadventures ist goto aber FAST zwingend erforderlich happy
..das glaube ich nun wieder gar nicht happy
Wenn ich alle Programmteile schön in Module aufteile, kann ich das Hauptprogramm so gestalten, daß GOTOs überflüssig werden.
Anders ist es beim Assemblerbefehl Jmp. Er hat Vorteile, die ich nicht leugnen kann..
(Es entfällt zum Beispiel die Rücksprungverwaltung, relative Sprünge sind schnell)
Aber Assembler ist nix für Anfänger! 'Beginners all purpose symbolic instruction code' wurde entwickelt, damit gerade Anfänger den Überblick behalten können. Daß mit diesem 'einfachen' Code auch unübersichtlich gearbeitet werden kann, ist eine andere Sache.
Die Verwendung von (Free-)BASIC setzt nicht zwingend die Bereitschaft voraus, den GOTO-Befehl zu benutzen. Anders ausgedrückt:
Nicht jeder, der GOTO benutzt, weiß auch, wo es langgeht zwinkern
(Das war ein Wortspiel und keinesfalls persönlich gemeint)
Pascal ist eine gute Sprache zum Erlernen des strukturierten Programmierens..
..aber auch in Pascal gibt es einen goto-Befehl!
Mit ein wenig Selbstdisziplin kann in jeder Sprache strukturiert programmiert werden..
..das geht auch einfach, wenn ein ordentliches Konzept für ein Program da ist.
Bevor ich mich jetzt aber in langen Ausführungen zu Programmplanung oder gar Pflichtenheft
verliere, höre ich lieber auf, denn dies ist meine ganz persönliche Meinung und
niemand ist gezwungen, sie zu übernehme|teilen..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 08.02.2007, 18:58    Titel: Antworten mit Zitat

bei meinen textadventure habe ich schon ~20 Module (insgesamt etwa 200 KB) grinsen cool happy Zunge rausstrecken und komm trotzdem nicht ohne goto aus, aber das Sprungziel liegt immer direkt unter der abfargen (if then else) mit den Augen rollen
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 08.02.2007, 19:16    Titel: Antworten mit Zitat

csderats hat Folgendes geschrieben:
komm trotzdem nicht ohne goto aus, aber das Sprungziel liegt immer direkt unter der abfargen (if then else) mit den Augen rollen
Zum Beispiel?
Bitte nicht
Code:
If Eingabe="?" Then Goto 17 Else Goto 17
17: ?"Hier geht es weiter.."
zwinkern
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 09.02.2007, 15:54    Titel: Antworten mit Zitat

z.B.
Code:

3 in$ = INKEY$
  IF in$ = "1" THEN GOTO baueme
  IF in$ = "2" THEN GOTO mauer
  IF in$ = CHR$(27) THEN ende
  IF in$ = "3B" THEN GOSUB help
  IF in$ = "3F" THEN GOSUB savegame
  IF in$ = "40" THEN GOSUB loadgame
  IF in$ = "43" THEN GOSUB printhelp
  GOTO 3

baueme:
PRINT "Ich sprang hinter dem n„chsten Baum. Ich h”rte nur noch das Sirren einer"
PRINT "Bogensehne, dann das Sirren des fliegenden Todes."
PRINT "Und dann sp?rte ich einen unglaublicher Schmerz an meiner Schl„fe."
enter
Sys.StopModule 31
CALL gameover(1)
RUN 1

mauer:
PRINT "Ich sprang also an die Mauer. Die Wache merkte nichts davon. Ich ging an der Mauer weiter."
PRINT "Dann sah ich ein groáes Tor in ca. 300 Ellen Entfernung, davor stand eine"
PRINT "Wagen-Karawane."

_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dominik



Anmeldungsdatum: 22.12.2004
Beiträge: 172

BeitragVerfasst am: 09.02.2007, 16:36    Titel: Antworten mit Zitat

ytwinky hat Folgendes geschrieben:
..das glaube ich nun wieder gar nicht


ich auch nicht....
Ich kann mir kein Programm vorstellen, das zwingend ein goto benutzen muss. Das würde auch kaum Sinn machen...
Wenn ein kleines Programm (und das ist ein Textadventure nun mal) nicht ohne gotos auskommen würde, dann würde es ein großes Programm ganz sicher auch nicht...und das wäre recht traurig, da man bei tausenden Zeilen ganz bestimmt kein Überblick mehr hätte, wenn zwischendurch mal zum Anfang und wieder zurück gesprungen wird^^....ganz nebenbei hättest du auch die objektorientierte Programmierung widerlegt... durchgeknallt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 09.02.2007, 19:01    Titel: Antworten mit Zitat

csderats hat Folgendes geschrieben:
z.B.
Code:

3 in$ = INKEY$
  IF in$ = "1" THEN GOTO baueme
  IF in$ = "2" THEN GOTO mauer
  IF in$ = CHR$(27) THEN ende
  IF in$ = "3B" THEN GOSUB help
  IF in$ = "3F" THEN GOSUB savegame
  IF in$ = "40" THEN GOSUB loadgame
  IF in$ = "43" THEN GOSUB printhelp
  GOTO 3

baueme:
PRINT "Ich sprang hinter dem n„chsten Baum. Ich h”rte nur noch das Sirren einer"
PRINT "Bogensehne, dann das Sirren des fliegenden Todes."
PRINT "Und dann sp?rte ich einen unglaublicher Schmerz an meiner Schl„fe."
enter
Sys.StopModule 31
CALL gameover(1)
RUN 1

mauer:
PRINT "Ich sprang also an die Mauer. Die Wache merkte nichts davon. Ich ging an der Mauer weiter."
PRINT "Dann sah ich ein groáes Tor in ca. 300 Ellen Entfernung, davor stand eine"
PRINT "Wagen-Karawane."
Meine Version
Code:
Do
  in$ = INKEY$
  Sleep 1
  Select Case in$
    Case "1"
      PRINT "Ich sprang hinter dem n„chsten Baum. Ich h”rte nur noch das Sirren einer"
      PRINT "Bogensehne, dann das Sirren des fliegenden Todes."
      PRINT "Und dann sp?rte ich einen unglaublicher Schmerz an meiner Schl„fe."
      enter
      Sys.StopModule 31
      CALL gameover(1)
      RUN 1
    Case "2"
      PRINT "Ich sprang also an die Mauer. Die Wache merkte nichts davon. Ich ging an der Mauer weiter."
      PRINT "Dann sah ich ein groáes Tor in ca. 300 Ellen Entfernung, davor stand eine"
      PRINT "Wagen-Karawane."
    Case CHR$(27)
      ende
    Case "3B"
      Gosub help
    Case "3F"
      GOSUB savegame
    Case "40"
      GOSUB loadgame
    Case "43"
     GOSUB printhelp
  End Select
Loop
Die Gosub's habe ich dringelassen, weil ich das Programm nicht kenne..
(Die lassen sich mit Sicherheit durch richtige Sub's ersetzen..)
Der Code ist übersichtlich und es ist kein Grund vorhanden, GOTO zu benutzen grinsen
Aber letzendlich ist es dein Ding, trotzdem gefällt mir meine Version besser happy
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3, 4  Weiter
Seite 3 von 4

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz