Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Demoprogramm: Kopfrechnen - um geistig fit zu bleiben Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 4.04.2021 10:55)
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini Station
' ===========================================================================
' Demoprogramm: Kopfrechnen - um geistig fit zu bleiben
' In OCBASIC 1.12a_e1 für Open-Maxi von Dietmar Harlos am 30. März 2021
' ===========================================================================

' Dieses Programm demonstriert Zufallszahlen und die Schleife REPEAT..UNTIL.

' An dieser Stelle möchte ich mich bei Dirk von "das |_ Team" und bei Norbert
' für ihre Unterstützung bedanken.

' --- Definitionen ----------------------------------------------------------

INCLUDE "omax.def"  'Definitionen für die Open-Maxi

DIM zb,z,d1,d2,d3,d4,e,w WORD

DIM debug,nummer BYTE

' --- Hauptprogramm ---------------------------------------------------------

PrintSpc=ON         'SPACE vor einem dezimalen PRINT
End2Host=ON         'Bei Programmende gleich in den Host-Modus wechseln

debug=OFF           'zum Debugging

RANDOMIZE 0         'Zufallsgenerator initialisieren (z.B. RANDOMIZE TIMER)

zb=100              'Zahlenbereich, ein anderer wird z.Z. nicht unterstützt
nummer=0

?:?"Kopfrechnen auf der Open-Maxi mit Zahlenbereich"zb

WHILE TRUE
  z=0:d1=0:d2=0:d3=0:d4=0:e=0

  'z/d1*d2-d3+d4=e
  ?

  d1=((RAND SHR 1)+16384)/1366+2 'Zufallszahlen von 2 bis 25 generieren

  REPEAT
    e=((RAND SHR 1)+16384)/1311+1 '1 bis 25
  UNTIL e<>1 AND d1*e<=zb
  z=d1*e

  IF debug THEN ?"1:"z;d1;d2;d3;d4;e

  REPEAT
    d2=((RAND SHR 1)+16384)/1311+1 '1 bis 25
  UNTIL d2<>1 AND d2<>d1 AND e*d2<=zb
  e=e*d2

  IF debug THEN ?"2:"z;d1;d2;d3;d4;e

  REPEAT
    d3=((RAND SHR 1)+16384)/328+1 '1 bis 100
  UNTIL (e-d3)>0
  e=e-d3

  IF debug THEN ?"3:"z;d1;d2;d3;d4;e

  REPEAT
    d4=((RAND SHR 1)+16384)/328+1 '1 bis 100
  UNTIL (e+d4)<=zb
  e=e+d4

  IF debug THEN ?"4:"z;d1;d2;d3;d4;e

  ADD nummer,1

  REPEAT
    PrintSpc=OFF
    ?nummer". Aufgabe:"
    ?z"/"d1"*"d2"-"d3"+"d4"=";
    PrintSpc=ON
    INPUT w
    IF w=-1 THEN GOTO abbruch
    IF w=0 THEN
      ?"Das richtige Ergebnis lautet"e"."
      GOTO naechste
    END IF
    IF w<>e THEN
      ?"Das ist leider nicht richtig. Bitte noch einmal rechnen."
    END IF
  UNTIL w=e
  ?"Das war richtig!"

  #naechste

WEND

#abbruch

?:?"Auf Wiedersehen!"

END                 'Zurück in den Hostmodus. Neustart mit RETURN-Taste.

' --- Programmende ---------------------------------------------------------


Passender Link: Offizielle Infosite zu den OM-Mikrocontrollern

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten:

Re: Demoprogramm: Kopfrechnen - um geistig fit zu bleiben (von Joachim - 4.04.2021 11:55)
    Re: Demoprogramm: Kopfrechnen - um geistig fit zu bleiben (von Dietmar - 4.04.2021 12:00)