ALGORITHMEN - Teil XVII: Im Gruselkeller der Hirnwindungen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Information: Wir verlosen 9 Kinderbüchlein von Microsoft Mein Papa arbeitet bei Microsoft. Und ich darf mit!

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • ... und ein konkreter Figurenvorschlag (für Menschen mit guten Augen :oops: )

      Quellcode

      1. var brett$=\
      2. " 32,255,255, 97, 98, 99,100,101,102,103,104,255,255, 32, 10, 13,"+\
      3. " 32,255,255, 95, 95, 95, 95, 95, 95, 95, 95,255,255, 32, 10, 13,"+\
      4. " 32, 56,255,254, 16, 4, 3, 5, 4, 16,254,255, 56, 32, 10, 13,"+\
      5. " 32, 55,255, 9, 9, 9, 9, 9, 9, 9, 9,255, 55, 32, 10, 13,"+\
      6. " 32, 54,255, 32,176, 32,176, 32,176, 32,176,255, 54, 32, 10, 13,"+\
      7. " 32, 53,255,176, 32,176, 32,176, 32,176, 32,255, 53, 32, 10, 13,"+\
      8. " 32, 52,255, 32,176, 32,176, 32,176, 32,176,255, 52, 32, 10, 13,"+\
      9. " 32, 51,255,176, 32,176, 32,176, 32,176, 32,255, 51, 32, 10, 13,"+\
      10. " 32, 50,255,155,155,155,155,155,155,155,155,255, 50, 32, 10, 13,"+\
      11. " 32, 49,255, 64,156, 24, 15, 11, 24,156, 64,255, 49, 32, 10, 13,"+\
      12. " 32,255,255,238,238,238,238,238,238,238,238,255,255, 32, 10, 13,"+\
      13. " 32,255,255, 97, 98, 99,100,101,102,103,104,255,255, 32"
      14. WindowTitle "µBrett":WindowStyle 24:Window 300,200-120,190
      15. font 1:cls rgb(255,255,200):color 4,15
      16. Whileloop 190:print chr$(val(substr$(brett$,&Loop,",")));
      17. endwhile:waitinput
      Alles anzeigen

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von p. specht ()

    • Und jetzt bitte kombinieren.
      Ich habe Dein erstes Beispiel dazu erweitert, den Link hattest Du doch schon herausgesucht.


      Quellcode

      1. cls:font 1:declare i&
      2. whileloop 12:i&=&Loop:whileloop 12
      3. if between(i&,3,10) and between(&Loop,3,10)
      4. print if((i&+&Loop) mod 2," ",chr$(176));
      5. else :print ":";:endif:endwhile:print
      6. Endwhile
      7. 'print:print "Bitte jeweils Tastendruck zum Aussuchen von Figurzeichen"
      8. 'Whileloop 0,255:print &Loop,chr$(&Loop)
      9. 'waitinput
      10. 'endwhile
      11. font 1
      12. print "\n Weiss\n"
      13. print " Bauer ";chr$(1),chr$(9)
      14. print " Turm ";chr$(64),chr$(35),chr$(20),chr$(244)
      15. print " Springer ";chr$(156),chr$(36)
      16. print " Laeufer ";chr$(24),chr$(173)
      17. print " Dame ";chr$(15),chr$(12),chr$(209)
      18. print " Koenig ";chr$(11)
      19. print "\n Schwarz\n"
      20. print " Bauer ";chr$(2)
      21. print " Turm ";chr$(254)
      22. print " Springer ";chr$(21)'§
      23. print " Laeufer ";chr$(4),chr$(30)
      24. print " Dame ";chr$(3)
      25. print " Koenig ";chr$(5)
      26. Declare hFont1&,hFont2&, dy%, widestring ws
      27. Def %DT_WORDBREAK 16
      28. Def %DT_CENTER 1
      29. Def %DT_LEFT 0
      30. Def %DT_RIGHT 2
      31. Def %TA_CENTER 6
      32. Def %TA_LEFT 0
      33. Def %TA_RIGHT 2
      34. hFont1& = Create("Font","Arial Unicode MS",30,15,0,0,0)
      35. SetDialogFont hFont1&
      36. ws = "Ich hatte eigentlich diese Zeichen erwartet. Du hattest den Link doch schon gepostet.\n "
      37. ws = ws + chr$(9812) + " white chess king\n "
      38. ws = ws + chr$(9813) + " white chess queen\n "
      39. ws = ws + chr$(9814) + " white chess rook\n "
      40. ws = ws + chr$(9815) + " white chess bishop\n "
      41. ws = ws + chr$(9816) + " white chess knight\n "
      42. ws = ws + chr$(9817) + " white chess pawn\n "
      43. ws = ws + chr$(9818) + " black chess king\n "
      44. ws = ws + chr$(9819) + " black chess queen\n "
      45. ws = ws + chr$(9820) + " black chess rook\n "
      46. ws = ws + chr$(9821) + " black chess bishop\n "
      47. ws = ws + chr$(9822) + " black chess knight\n "
      48. ws = ws + chr$(9823) + " black chess pawn"
      49. dy% = 30
      50. DrawText 200,dy%,width(%hWnd)-200,0,ws,%DT_WORDBREAK | %DT_LEFT
      51. dy% = dy% + %textheight
      52. ws = chr$(9814) +" "+ chr$(9815) +" "+ chr$(9816) +" "+ chr$(9813) +" "+ chr$(9812) +" "+ chr$(9816) +" "+ chr$(9815) +" "+ chr$(9814) +" "+ chr$(9817) + "\n"
      53. ws = ws + chr$(9820) +" "+ chr$(9821) +" "+ chr$(9822) +" "+ chr$(9819) +" "+ chr$(9818) +" "+ chr$(9822) +" "+ chr$(9821) +" "+ chr$(9820) +" "+ chr$(9823)
      54. DrawText 200,dy%,width(%hWnd)-200,0,ws,%DT_WORDBREAK | %DT_LEFT
      55. dy% = dy% + %textheight
      56. hFont2& = Create("Font","Tahoma",30,15,0,0,0)
      57. SetDialogFont hFont2&
      58. DrawText 200,dy%,width(%hWnd)-200,0,ws,%DT_WORDBREAK | %DT_LEFT
      59. waitmouse
      60. DeleteObject hFont1&
      61. DeleteObject hFont2&
      62. END
      Alles anzeigen
      Irgendwas läuft da aber schief; das sollen 2 unterschiedliche Zeichensätze sein.
      Als Bild
      ChessFont.PNG
      Programmieren, das spannendste Detektivspiel der Welt.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Michael Wodrich ()

    • Auflösung zu NmR-2 Quersumme 2018
      ------------------------------------
      Die kleinstmögliche Zahl mit Quersumme 2018 wird aus 9ern gebildet. Deshalb brauchen wir dazu 2018 / 9
      = 224 Stellen mit ´9´. Das ergibt aber erst 2016, also kommt noch 2018 mod 9 = 2 vorne dran.
      Die Lösung ist also (225, 2).

      Spoiler anzeigen
      Wer´s genau wissen will:
      299999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    • Abt. Kleine Programmieraufgaben KPA-2 ´Schachfiguren´
      ==========================================
      Fleissige Leute hatten bei KPA-1 auch schon an Figuren auf dem Schachbrett gedacht. Das wird hiermit die nächste Aufgabe.

      Abt. Kleine Programmieraufgaben KPA-3 ´Dame-Grundaufstellung´
      ================================================
      Gesucht: Brett, und jeweils in rot und weiß: Einfache Steine, Damen (= Doppelstein) + Ablage für geschlagene Steine
      Gruss
    • Abt. Kleinstes Schachprogramm der Welt
      ==========================
      BootChess.com Freeware, ein 16 bit-Assemblerprogramm von Red Star Inc, hat 486 Byte. Sollte man gelegentlich mal aus der DOSBOX-Umgebung befreien. Mal sehen, ist eine Zeitfrage ...
      Gruss

      P.S.: Credits den Autoren Olivier “Baudsurfer/RSi” Poudade with help of Peter “QKumba” Ferrie.
      Releasedatum war 2015 (!!!)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von p. specht ()

    • Wobei mich das daran erinnert, dass es auch damals für den ZX81 in Grundausstattung mit 1kB RAM (abzüglich Bilschirmspeicher mit ca. 100 Byte für das 9*9 Felder große Spielfeld mit Beschriftung und einigen Bytes für Systemvariablen etc.) ein Schachprogramm in Maschinencode gab.

      Gruß
      Roland
      Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD / ATI Radeon HD4770 512 MB / Windows 7(32) - XProfan X4
      AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


      http://www.xprofan.de
    • Abt. Historische Links
      ==============
      Der MMJ Hoyerswerda in Lauta war das Nest für viele XProfan-Programmierer. Unter Leitung von Dietmar Horn (leider viel zu früh verstorben) fanden Menschen zwischen 10 und 60 Jahren aktiv zum Computer. Hier ein Bericht zum 10-Jahres-Jubiläum des Clubs im August 2011.

      Nächsten Monat jährt sich auch der 5. Todestag von Andreas Miethe, dem die XProfaner-Gemeinde viel zu verdanken hat. Seine Familie erhält dankenswerter Weise bis heute seine Homepage, die noch immer zahreiche wertvolle Programme zum Download bereithält!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von p. specht ()

    • Abt. Noch mehr Rätsel - NmR 4
      =======================
      Wieviele Stunden haben 50% eines Drittels eines Vierteltages?

      NmR 5 ´Dreieck´
      =============
      In einem Dreieck ist der Winkel Alpha dreimal so groß wie der Winkel Beta und halb so groß wie Winkel Gamma. Wieviel Grad hat Alpha?

      NmR 6 ´Kostendeckung´
      ==================
      Eine Gruppe von Senioren plant einen Ausflug. Würde jeder 14 € zahlen, wären das 4 € zuwenig. Würde jeder 16 € geben, blieben 6 € über. Welcher Betrag ist zur genauen Kostendeckung zu bezahlen?

      NmR 7 ´Eine Menge Mengen´
      ======================
      Wieviele Mengen haben folgende Eigenschaft: Die Elemente der Menge sind jeweils mindestens 2 positive, aufeinander folgende Ganzzahlen, deren Summe genau 100 ergibt?

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von p. specht ()

    • NmR 4

      24 / 4 / 3 / 2 = 1 Std.

      NmR 5

      Spoiler anzeigen

      B * 3 = A
      G / 2 = A
      A + B + G = 180


      Quellcode

      1. Declare a!,b!,g!,x180!
      2. Set("Decimals",2)
      3. print "Schleife über Alpha"
      4. WhileLoop 1,180
      5. a! = &loop
      6. b! = a! / 3
      7. g! = a! * 2
      8. x180! = a! + b! + g!
      9. if (x180! >= 170) and (x180! <= 181)
      10. print ">>> Alpha= ";a!,", Beta= ";b!,", Gamma= ";g!,", Summe= ";x180!
      11. endif
      12. EndWhile
      13. print "Schleife über Beta"
      14. WhileLoop 1,180
      15. b! = &loop
      16. a! = b! * 3
      17. g! = a! * 2
      18. x180! = a! + b! + g!
      19. if (x180! >= 170) and (x180! <= 181)
      20. print ">>> Alpha= ";a!,", Beta= ";b!,", Gamma= ";g!,", Summe= ";x180!
      21. endif
      22. EndWhile
      23. print "Schleife über Gamma"
      24. WhileLoop 1,180
      25. g! = &loop
      26. a! = g! / 2
      27. b! = a! / 3
      28. x180! = a! + b! + g!
      29. if (x180! >= 170) and (x180! <= 181)
      30. print ">>> Alpha= ";a!,", Beta= ";b!,", Gamma= ";g!,", Summe= ";x180!
      31. endif
      32. EndWhile
      33. print "ende"
      34. waitinput
      35. end
      Alles anzeigen
      Dort also der jeweils letzte Ausdruck....
      Spoiler anzeigen

      Alpha = 54, Alpha hat also 54 Grad
      Beta = 18
      Gamma = 108

      Programmieren, das spannendste Detektivspiel der Welt.
    • Lösung zu NmR 4: Richtig, 1 Stunde. Punkt an Claudia, sie war die Schnellste!

      Lösung zu NmR 5:

      Spoiler anzeigen
      Alpha + Beta + Gamma = 180° Innenwinkelsumme des Dreiecks
      Alpha = 3 Beta = 1/2 Gamma
      |==> Alpha= 3 Beta
      |==> 6 Beta = 1 Gamma.
      Wir setzen ein:
      Alpha + Beta + Gamma = 180°
      3 Beta + Beta + 6 Beta = 180°
      ==> 10 Beta = 180°
      Beta = 180°/10 = 18°
      Alpha = 3 * Beta = 3 + 18° = 54°
      =========================
      Probe: 54°+18°+108°= 180°, q.e.d.
    • Abt. Noch mehr Rätsel - NmR 8: ´Fragen wird man noch dürfen´
      ===============================================
      Das mit der INNENWINKELSUMME des Dreiecks dürfte wohl klar sein.
      Aber was ist denn die AUSSENWINKELSUMME eines Dreiecks?

      P.S.: NmR 6 und NmR 7 sind dzt. noch offen!
    • p. specht schrieb:

      Abt. Noch mehr Rätsel - NmR 8: ´Fragen wird man noch dürfen´
      ===============================================
      Das mit der INNENWINKELSUMME des Dreiecks dürfte wohl klar sein.
      Aber was ist denn die AUSSENWINKELSUMME eines Dreiecks?

      P.S.: NmR 6 und NmR 7 sind dzt. noch offen!
      Spoiler anzeigen
      3 * 360° - 180° - Bevor ihr jetzt zum Taschenrechner greift: 900°
      Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD / ATI Radeon HD4770 512 MB / Windows 7(32) - XProfan X4
      AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


      http://www.xprofan.de
    • Sind bei NmR 7 auch Leermengen zugelassen? Irgendwie etwas verwirrend das Ganze... -- Passe.

      NmR 6: betrag = (pers * 14 + 4) or (pers * 16 - 6). Da geht auch nichts mehr. Das Buchstaben-Rechnen lag mir noch nie...

      naja, evtl.

      Quellcode

      1. Declare p%,b1!,b2!
      2. Set("Decimals",2)
      3. WhileLoop 1,100
      4. p% = &loop
      5. b1! = (p% * 14 + 4)
      6. b2! = (p% * 16 - 6)
      7. if b1! == b2!
      8. print p%, "Personen"
      9. print "Betrag", b1!
      10. break
      11. endif
      12. EndWhile
      13. print "Dann müssen die",p%,"Personen für den Betrag von",b1!,"Euro jeder", b1! / p%, "Euro bezahlen."
      14. print "ende"
      15. waitinput
      16. end
      Alles anzeigen
      Programmieren, das spannendste Detektivspiel der Welt.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Michael Wodrich ()

    • Die Lösung zu NmR 7 ´Eine Menge Mengen´
      --------------------------------------------------
      war ´sauschwer´ und erforderte viel Rechenarbeit. Es sind mehrfache Versuche notwendig. Die Antwort lautet: Es gibt genau 2 Lösungsmengen. Das nachfolgende Progi zeigt, welche.
      Gruss

      Quellcode

      1. WindowTitle "NmR 7"
      2. WindowStyle 24
      3. CLS
      4. font 0
      5. Declare m&,a&,b&,s&,z&
      6. whileloop 2,40
      7. m&=100\&Loop
      8. b&=m&-&Loop\2+1
      9. case b&<0:continue
      10. s&=0
      11. whileloop 1,&Loop
      12. s&=s&+b& : print b&,
      13. inc b&
      14. endwhile :print " = ";s&
      15. if s&=100:inc z&
      16. font 2
      17. print " ";z&;". Lösung: Die Summe der ";&Loop;" Elemente ab ";int(m&-&Loop\2+1);" = 100"
      18. font 0
      19. endif
      20. a&=m&-&Loop\2
      21. case a&<0:continue
      22. s&=0
      23. whileloop 1,&Loop
      24. s&=s&+a& :print a&,
      25. inc a&
      26. endwhile:print " = ";s&
      27. if s&=100:inc z&
      28. font 2
      29. print " ";z&;". Lösung: Die Summe der ";&Loop;" Elemente ab ";int(m&-&Loop\2);" = 100"
      30. font 0
      31. endif
      32. endwhile
      33. font 2
      34. print "\n Antwort: Es gibt ",z&," derartige Menge(n)."
      35. beep
      36. waitinput
      37. end
      Alles anzeigen