Muenze.BAS - QBasic-Prog fr Mnzen-Problem aus MicroCode'96
(W)+(C) by Mc-F ; Publishing in Cream I
Version 1.0/11.03.1996

OK. Hier mein Vorschlag, wie man das Mnzenproblem lst.
Mein Programm ist in QBasic geschrieben, so da es jeder ohne
Compiler oder kompilierte Version testen kann...
Wer eine (schleifenmig) bersichtlichere Variante haben will,
sollte mal in das dokumentierte oder undokumentierte Listing
reinschauen...
Achso: EdS meinte, die geflschte Mnze ist leichter, auf
einen Check darauf verzichte ich; AUCH WENN DADURCH EIN (!)
WGEVORGANG MEHR NTIG IST!

Als erstes wird gefragt, wieviel Mnzen berhaupt im Spiel sind.


  CLS
  PRINT "Anzahl der Mnzen: ";
  INPUT Anzahl%
  PRINT
  IF Anzahl% < 3 THEN PRINT "Scherzbold!": GOTO xit


Die Abfrage selbst ist in einer FOR...NEXT-Schleife realisiert,
die immer zwei (neue!!) Mnzen nimmt und gegeneinander wgt...


  FOR lop1 = 1 TO Anzahl% STEP 2
  lop2 = lop1 + 1
       
Wie aus dem Listing ersichtlich, nutze ich zwei Variablen: lop1
und lop2. Diese beiden sollen Mnze 1 und Mnze 2 darstellen.
(Unglckliche Namenswahl, ich wei...)
Als nchstes wird getestet, ob lop2 schon ber Limit ist. Wenn 
dies der Fall ist, wird lop1 als Falsche Mnze identifiziert und
an das Label XIT (fr EXIT) gesprungen.

  IF lop2 > Anzahl% THEN PRINT lop1, "ist die falsche Mnze!"
					   [+]      : GOTO xit
       
Jetzt wird vom Benutzer das Gleichgewicht abgefragt:

  PRINT "Ist das Gewicht zw. Mnze "; lop1; " und "; lop2; 
					   [+]  " gleich? ";
  a$ = ""
  DO WHILE a$ = ""
  a$ = INKEY$
  LOOP
  PRINT
       
Wenn sie (die Mnzen) nicht gleich sind, dann mu lop1 oder lop2
falsch sein. Wenn sie gleich sind, dann geht's direkt an NEXT
weiter...

  IF UCASE$(a$) = "N" THEN
	       
Jetzt wird lop1 und (lop1-1) getestet. Sind diese beiden gleich,
ist ZWANGSWEISE lop2 falsch.

  PRINT "Ist das Gewicht zw. Mnze"; lop1; " und "; lop1 - 1;
					   [+]     " gleich? ";
  a$ = ""
  DO WHILE a$ = ""
  a$ = INKEY$
  LOOP
  PRINT
  IF UCASE$(a$) = "J" THEN
  PRINT "Mnze "; lop2; " ist falsch!": GOTO xit

Sind lop1 und (lop1-1) nicht gleich ist lop1 falsch!
 
  ELSE PRINT "Mnze ";lop1;" ist falsch": GOTO xit
  END IF
  END IF

Mit NEXT wird an den Anfang der FOR..NEXT Schleife gesprungen,
also die nchsten beiden Mnzen gecheckt.

  NEXT

XIT(=exit)-Label fr Beenden des Programms...

  xit:
  PRINT "tschuess!"
  SLEEP
		
So, ich hoffe der Programmaufbau ist hiermit geklrt. Auerdem
hoffe ich natrlich, da ich gewinne ;>

Greetinx, Mc-F
